/*
 * Velora sections — press group (article listing, newspaper, portfolio).
 * Loaded after velora-sections.css. Every rule is scoped under .vws (sections); the few
 * navbar/footer adjustments are scoped to one template through body:has(.vwp-t-<key>),
 * a class the template puts on its first section. Optional tokens (all default to the
 * core look): --vws-p-btn-radius, --vws-p-img-radius, --vws-p-hl-weight, --vws-p-hl-track,
 * --vws-p-kicker, --vws-p-mast-weight, --vws-p-search-radius, --vws-p-display (display
 * face for nameplates and big headlines), --vws-p-deck-font.
 */

/* ---------------------------------------------------------------- shared */
html .vws .vws-btn, html .vwn .vws-btn, html .vwf .vws-btn { border-radius: var(--vws-p-btn-radius, 999px); }
.vws .vwp-label { display: block; font-family: var(--_fb); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--_fg); padding-bottom: 12px; border-bottom: 2px solid var(--_fg); margin-bottom: 6px; }
.vws .vwp-label--mono { border: 0; padding: 0; margin-bottom: 18px; color: var(--_mut); letter-spacing: .08em; }
.vws .vwp-note { font-size: .86rem; color: var(--_mut); margin-top: 14px; }
.vws .vwp-kicker { display: inline-block; justify-self: start; font-family: var(--_fb); font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--vws-p-kicker, var(--_accent)); position: relative; z-index: 2; }
.vws--dark .vwp-kicker, .vws--brand .vwp-kicker { color: var(--_ac); }
.vws a.vwp-kicker:hover { text-decoration: underline; }
.vws .vwp-kicker--chip { background: var(--_ac); color: var(--_onac); padding: 6px 10px; border-radius: 4px; }
.vws .vwp-hl { font-family: var(--_fh); font-weight: var(--vws-p-hl-weight, 600); letter-spacing: var(--vws-p-hl-track, -.02em); line-height: 1.14; color: var(--_fg); text-wrap: balance; overflow-wrap: break-word; }
.vws .vwp-hl a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--_ease); }
.vws .vwp-hl a:hover, .vws .vwp-hl a:focus-visible { background-size: 100% 1px; }
.vws .vwp-hl--xxl, .vws .vwp-hl--xl, .vws .vwp-mast__name, .vws .vwp-intro__title { font-family: var(--vws-p-display, var(--_fh)); }
.vws .vwp-hl--xxl { font-size: clamp(2.3rem, 5.4vw, 4.9rem); line-height: 1.02; letter-spacing: calc(var(--vws-p-hl-track, -.02em) - .01em); }
.vws .vwp-hl--xl { font-size: clamp(1.85rem, 3.4vw, 3rem); line-height: 1.06; }
.vws .vwp-hl--lg { font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1.1; }
.vws .vwp-hl--md { font-size: clamp(1.12rem, 1.45vw, 1.32rem); }
.vws .vwp-hl--sm { font-size: 1.06rem; line-height: 1.25; }
.vws .vwp-hl--xs { font-size: .98rem; line-height: 1.3; }
.vws .vwp-byline { font-size: .82rem; color: var(--_mut); }
.vws .vwp-byline span { display: inline; }
.vws .vwp-dot { margin-inline: .45em; }
/* The newspaper theme colours every heading with "html body.newspaper h2" (0,1,3), which beats
   the core one-class heading rules on dark and brand tones: restate the tone colour at (0,2,0). */
.vws .vws-statement, .vws .vws-h3 { color: var(--_fg); }
/* the vendor theme stylesheets round every image; frames here do their own clipping */
.vws [class*="vwp-"] img { border-radius: 0; }
.vws .vwp-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: .9rem; font-weight: 600; color: var(--_accent); text-decoration: none; }
.vws--dark .vwp-more { color: var(--_ac); }
.vws .vwp-more:hover { text-decoration: underline; }
.vws .vwp-icon { display: block; }

/* story card */
.vws .vwp-story { position: relative; display: grid; gap: 14px; align-content: start; min-width: 0; }
.vws .vwp-story__media { display: block; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r)); background: var(--_soft); }
.vws .vwp-story__media img { transition: transform 1s var(--_ease); }
.vws .vwp-story:hover .vwp-story__media img { transform: scale(1.035); }
.vws .vwp-ratio--wide { aspect-ratio: 16 / 10; }
.vws .vwp-ratio--photo { aspect-ratio: 4 / 3; }
.vws .vwp-ratio--square { aspect-ratio: 1; }
.vws .vwp-ratio--tall { aspect-ratio: 4 / 5; }
.vws .vwp-story__body { display: grid; gap: 9px; align-content: start; min-width: 0; }
.vws .vwp-story__deck { color: var(--_mut); font-size: 1rem; line-height: 1.55; }
.vws .vwp-story--xl .vwp-story__deck, .vws .vwp-story--lg .vwp-story__deck { font-size: 1.1rem; max-width: 62ch; }
.vws .vwp-story--numbered .vwp-story__body { padding-left: 48px; position: relative; }
.vws .vwp-story__num { position: absolute; left: 0; top: -2px; font-family: var(--_fh); font-size: 1.7rem; font-weight: 600; line-height: 1; color: var(--_accent); }
.vws--dark .vwp-story__num { color: var(--_ac); }

/* empty state */
.vws .vwp-empty { display: grid; justify-items: center; text-align: center; gap: 12px; padding: clamp(40px, 6vw, 72px) 24px; border: 1px dashed var(--_ln); border-radius: var(--_r-lg); color: var(--_mut); }
.vws .vwp-empty__mark { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--_soft); color: var(--_fg); }
.vws--dark .vwp-empty__mark { background: var(--_cd); }
.vws .vwp-empty__title { font-family: var(--_fh); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 600; color: var(--_fg); line-height: 1.1; }
.vws .vwp-empty__text { max-width: 46ch; }

/* ---------------------------------------------------------------- masthead */
.vws.vws-press-masthead { padding-top: var(--vws-pt, 28px); padding-bottom: var(--vws-pb, 0px); }
.vws .vwp-mast { display: grid; gap: 16px; }
.vws .vwp-mast--broadsheet { text-align: center; }
.vws .vwp-mast__meta { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--_ln); font-size: .86rem; color: var(--_mut); }
.vws .vwp-mast__date { text-align: left; }
.vws .vwp-mast__edition { font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--_fg); }
.vws .vwp-mast__cta { display: flex; justify-content: flex-end; }
.vws .vwp-mast__name { font-weight: var(--vws-p-mast-weight, 700); font-size: clamp(2.6rem, 8.6vw, 7.4rem); line-height: .92; letter-spacing: -.025em; color: var(--_fg); overflow-wrap: break-word; padding-top: 6px; }
.vws .vwp-mast__name em { color: var(--_fg); }
.vws .vwp-mast__tagline { font-family: var(--_fa); font-style: italic; font-size: 1.1rem; color: var(--_mut); }
.vws .vwp-mast__nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6px; border-top: 3px double var(--_fg); border-bottom: 1px solid var(--_fg); margin-top: 6px; }
.vws .vwp-mast__nav a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 14px; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--_fg); }
.vws .vwp-mast__nav a:hover { color: var(--_accent); }
.vws .vwp-mast--compact { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px 32px; padding-bottom: 6px; }
.vws .vwp-mast--compact .vwp-mast__name { font-size: clamp(2rem, 4.6vw, 3.6rem); padding: 0; }
.vws .vwp-mast--compact .vwp-mast__tagline { margin-top: 8px; font-size: 1rem; }
.vws .vwp-mast__side { display: grid; justify-items: end; gap: 10px; }
.vws .vwp-mast--compact .vwp-mast__date { display: flex; gap: 12px; align-items: baseline; font-size: .86rem; color: var(--_mut); }
.vws .vwp-mast__nav--chips { grid-column: 1 / -1; }
.vws .vwp-mast__nav--chips ul { justify-content: flex-start; border: 0; border-top: 1px solid var(--_ln); padding-top: 14px; gap: 8px; }
.vws .vwp-mast__nav--chips a { min-height: 40px; padding: 0 16px; border: 1px solid var(--_ln); border-radius: 999px; letter-spacing: .04em; text-transform: none; font-size: .9rem; font-weight: 600; }
.vws .vwp-mast__nav--chips a:hover { border-color: var(--_fg); color: var(--_fg); }

/* ticker */
.vws.vws-press-masthead--ticker { padding-top: var(--vws-pt, 0px); padding-bottom: var(--vws-pb, 0px); }
.vws .vwp-ticker { display: flex; align-items: center; gap: 22px; min-height: 52px; font-size: .9rem; }
.vws .vwp-ticker__label { flex: none; display: inline-flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--_ac); }
.vws .vwp-ticker__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; animation: vwp-pulse 1.8s ease-in-out infinite; }
@keyframes vwp-pulse { 50% { opacity: .25; } }
.vws .vwp-ticker__list { flex: 1; min-width: 0; display: flex; gap: 32px; overflow: hidden; }
.vws .vwp-ticker__list li { min-width: 0; flex: 0 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vws .vwp-ticker__list li + li { padding-left: 32px; border-left: 1px solid var(--_ln); }
.vws .vwp-ticker__list a { text-decoration: none; font-weight: 500; }
.vws .vwp-ticker__list a:hover { text-decoration: underline; }
.vws .vwp-ticker__date { flex: none; color: var(--_mut); font-size: .84rem; }
.vws .vwp-ticker__nav { border-top: 1px solid var(--_ln); }
.vws .vwp-ticker__nav ul { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.vws .vwp-ticker__nav ul::-webkit-scrollbar { display: none; }
.vws .vwp-ticker__nav a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 14px; white-space: nowrap; font-size: .9rem; font-weight: 600; text-decoration: none; color: var(--_mut); }
.vws .vwp-ticker__nav li:first-child a { padding-left: 0; }
.vws .vwp-ticker__nav a:hover { color: var(--_fg); }

/* ---------------------------------------------------------------- lead story */
.vws.vws-press-lead { padding-top: var(--vws-pt, clamp(32px, 4vw, 56px)); padding-bottom: var(--vws-pb, clamp(56px, 6vw, 96px)); }
.vws .vwp-front--classic { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); }
.vws .vwp-story--lead .vwp-story__media { margin-bottom: 8px; }
.vws .vwp-front__rail { padding-left: clamp(24px, 3vw, 40px); border-left: 1px solid var(--_ln); }
.vws .vwp-rail > li { padding-block: 18px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-rail > li:last-child { border-bottom: 0; }

.vws .vwp-stack__head { display: grid; justify-items: center; gap: 18px; max-width: 1000px; margin-inline: auto; text-align: center; }
.vws .vwp-stack__head .vwp-kicker { justify-self: center; }
.vws .vwp-stack__deck { font-family: var(--vws-p-deck-font, var(--_fb)); font-size: clamp(1.08rem, 1.5vw, 1.3rem); line-height: 1.55; color: var(--_mut); max-width: 64ch; }
.vws .vwp-stack__media { display: block; aspect-ratio: 21 / 9; overflow: hidden; margin-top: clamp(28px, 4vw, 48px); border-radius: var(--vws-p-img-radius, var(--_r)); background: var(--_soft); }
.vws .vwp-stack__row { margin-top: clamp(36px, 4vw, 56px); }
.vws .vwp-stack__label { margin-bottom: 26px; }
.vws .vwp-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.vws .vwp-cols > li { padding: 0 clamp(18px, 2.4vw, 32px); border-left: 1px solid var(--_ln); }
.vws .vwp-cols > li:first-child { padding-left: 0; border-left: 0; }
.vws .vwp-cols > li:last-child { padding-right: 0; }

.vws .vwp-front--overlay { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); border-radius: var(--vws-p-img-radius, var(--_r-lg)); overflow: hidden; background: var(--_dark); }
.vws .vwp-overlay { position: relative; display: flex; align-items: flex-end; min-height: clamp(440px, 46vw, 660px); }
.vws .vwp-overlay__media { position: absolute; inset: 0; }
.vws .vwp-overlay__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 8, 12, .15) 0%, rgba(8, 8, 12, .35) 40%, rgba(8, 8, 12, .9) 100%); }
.vws .vwp-overlay__body { position: relative; z-index: 1; display: grid; gap: 14px; max-width: 780px; padding: clamp(24px, 4vw, 52px); --_fg: #ffffff; --_mut: rgba(255, 255, 255, .88); }
.vws .vwp-overlay__body .vwp-hl { color: #fff; }
.vws .vwp-overlay__rail { padding: clamp(24px, 3vw, 40px); color: var(--vws-dark-ink, #f5f3ee); --_fg: var(--vws-dark-ink, #f5f3ee); --_mut: var(--vws-dark-muted, #b6b3bd); --_ln: rgba(255, 255, 255, .16); --_ac: var(--vws-highlight, #d4f75a); --_accent: var(--vws-highlight, #d4f75a); }

.vws .vwp-front--cover { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.vws .vwp-cover__body { display: grid; gap: 20px; justify-items: start; }
.vws .vwp-cover__body .vws-actions { margin-top: 8px; }
.vws .vwp-cover__issue { font-family: var(--_fa); font-style: italic; font-size: 1.15rem; color: var(--_mut); }
.vws .vwp-cover__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-cover__more { margin-top: clamp(48px, 6vw, 88px); }
.vws .vwp-cols--numbered { margin-top: 24px; }

.vws .vwp-front--briefing { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.vws .vwp-brief__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; border-bottom: 2px solid var(--_fg); margin-bottom: 8px; }
.vws .vwp-brief__top .vwp-label { border: 0; margin: 0; }
.vws .vwp-brief__date { font-size: .85rem; color: var(--_mut); padding-bottom: 12px; }
.vws .vwp-brief__date span { margin-left: 12px; padding-left: 12px; border-left: 1px solid var(--_ln); }
.vws .vwp-brief__lead { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; padding-block: 26px 30px; }
.vws .vwp-brief__num { font-family: var(--vws-p-display, var(--_fh)); font-size: clamp(3rem, 5vw, 4.4rem); font-weight: 600; line-height: .9; color: var(--_accent); }
.vws--dark .vwp-brief__num { color: var(--_ac); }
.vws .vwp-brief__list > li { padding-block: 22px; border-top: 1px solid var(--_ln); }
.vws .vwp-brief__list .vwp-story--numbered .vwp-story__body { padding-left: 64px; }
.vws .vwp-brief__list .vwp-story__num { font-size: 2rem; }
.vws .vwp-brief__media { position: sticky; top: 100px; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-brief__cta { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: var(--vws-p-btn-radius, 999px); background: var(--_paper); color: var(--_ink); font-size: .92rem; font-weight: 600; }

/* ---------------------------------------------------------------- stories by section */
.vws.vws-press-categories { padding-top: var(--vws-pt, clamp(56px, 6vw, 96px)); padding-bottom: var(--vws-pb, clamp(56px, 6vw, 96px)); }
.vws .vwp-desks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 48px); }
.vws .vwp-desks--1 { grid-template-columns: 1fr; }
.vws .vwp-desks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vws .vwp-desks--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vws .vwp-desk { padding-top: 14px; border-top: 3px solid var(--_fg); min-width: 0; }
.vws .vwp-desk__head, .vws .vwp-shelf__head, .vws .vwp-mosaic__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.vws .vwp-desk__title, .vws .vwp-shelf__title, .vws .vwp-mosaic__title { font-family: var(--_fh); font-size: 1.3rem; font-weight: 700; letter-spacing: -.01em; color: var(--_fg); }
.vws .vwp-desk__title a { text-decoration: none; }
.vws .vwp-desk__list > li { padding-block: 16px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-desk__list > li:last-child { border-bottom: 0; }

.vws .vwp-shelves { display: grid; gap: clamp(40px, 5vw, 64px); }
.vws .vwp-shelf { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 32px; padding-top: 22px; border-top: 1px solid var(--_fg); }
.vws .vwp-shelf__head { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; }
.vws .vwp-shelf__title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.05; }
.vws .vwp-shelf__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }

.vws .vwp-mosaics { display: grid; gap: clamp(48px, 6vw, 88px); }
.vws .vwp-mosaic__head { padding-bottom: 14px; margin-bottom: 26px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-mosaic__title { font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 600; }
.vws .vwp-mosaic__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr); gap: 28px; }
.vws .vwp-mosaic__big { grid-row: span 2; }
.vws .vwp-mosaic--flip .vwp-mosaic__big { grid-column: 3; grid-row: 1 / span 2; }
.vws .vwp-mosaic--flip .vwp-mosaic__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr); }

/* ---------------------------------------------------------------- latest */
.vws.vws-press-latest { padding-top: var(--vws-pt, clamp(56px, 6vw, 96px)); padding-bottom: var(--vws-pb, clamp(56px, 6vw, 96px)); }
.vws .vwp-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 18px; }
.vws .vwp-sechead .vws-h2, .vws .vwp-sechead + * .vws-h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.vws .vwp-sechead .vws-head .vws-lead { margin-top: 10px; font-size: 1rem; }
.vws .vwp-sechead .vws-eyebrow { margin-bottom: 12px; }
.vws .vwp-sechead--rule { padding-bottom: 16px; border-bottom: 2px solid var(--_fg); }
.vws .vwp-river-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 5vw, 72px); align-items: start; }
.vws .vwp-river-layout--solo { grid-template-columns: minmax(0, 1fr); }
.vws .vwp-river__item { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 20px; padding-block: 26px; border-top: 1px solid var(--_ln); }
.vws .vwp-river__time { font-size: .82rem; font-weight: 600; color: var(--_mut); letter-spacing: .02em; padding-top: 3px; text-transform: uppercase; }
.vws .vwp-story--row { grid-template-columns: minmax(0, 1fr) 210px; gap: 28px; align-items: start; }
.vws .vwp-story--row .vwp-story__media { order: 2; }
.vws .vwp-mostread { position: sticky; top: 110px; padding: 24px; border-radius: var(--_r); background: var(--_soft); }
.vws--soft .vwp-mostread { background: var(--_cd); }
.vws .vwp-mostread__list > li { padding-block: 16px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-mostread__list > li:last-child { border-bottom: 0; padding-bottom: 0; }

.vws .vwp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3vw, 44px) clamp(20px, 2.4vw, 32px); }
.vws .vwp-cards > li:first-child { grid-column: span 2; grid-row: span 2; }
.vws .vwp-cards > li:first-child > .vwp-story { height: 100%; grid-template-rows: minmax(0, 1fr) auto; }
.vws .vwp-cards > li:first-child .vwp-story__media { aspect-ratio: auto; min-height: 300px; height: 100%; }

.vws .vwp-wire { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 44px); }
.vws .vwp-wire__item { display: grid; gap: 8px; align-content: start; padding-block: 22px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-wire__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; font-size: .8rem; color: var(--_mut); }
.vws .vwp-wire__deck { color: var(--_mut); font-size: .94rem; }

/* ---------------------------------------------------------------- newsletter */
.vws.vws-press-newsletter { padding-top: var(--vws-pt, clamp(64px, 7vw, 112px)); padding-bottom: var(--vws-pb, clamp(64px, 7vw, 112px)); }
.vws .vwp-nl--band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.vws .vwp-nl--card { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 760px; margin-inline: auto; padding: clamp(28px, 5vw, 64px); border-radius: var(--_r-lg); background: var(--_cd); border: 1px solid var(--_ln); text-align: left; }
.vws .vwp-nl--card.vwp-nl--has-image { max-width: 1120px; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.vws .vwp-nl__media { aspect-ratio: 4 / 5; border-radius: var(--_r); overflow: hidden; }
.vws .vwp-nl__copy { display: grid; gap: 0; align-content: start; }
.vws .vwp-nl__copy .vws-lead { margin-top: 16px; }
.vws .vwp-nl--card .vwp-nl-form { margin-top: 26px; }
.vws .vwp-nl__perks { display: grid; gap: 10px; margin-top: 22px; }
.vws .vwp-nl__perks li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; color: var(--_mut); }
.vws .vwp-nl__perks strong { color: var(--_fg); font-weight: 600; }
.vws .vwp-nl__perks .vws-ico--check { color: var(--_accent); margin-top: 3px; }
.vws--dark .vwp-nl__perks .vws-ico--check, .vws--brand .vwp-nl__perks .vws-ico--check { color: var(--_ac); }
.vws .vwp-nl--inline { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 80px); align-items: start; padding-top: 28px; border-top: 1px solid var(--_fg); }
.vws .vwp-nl__title { font-family: var(--_fh); font-size: clamp(1.6rem, 3vw, 2.6rem); font-weight: 600; line-height: 1.08; letter-spacing: -.02em; color: var(--_fg); }
.vws .vwp-nl--inline .vws-body { margin-bottom: 18px; }
.vws .vwp-nl--inline .vwp-label { border: 0; padding-bottom: 0; margin-bottom: 14px; color: var(--_mut); }
.vws .vwp-nl-form { display: flex; flex-wrap: wrap; gap: 10px; }
.vws .vwp-nl-form__input { flex: 1 1 220px; min-width: 0; min-height: 54px; padding: 0 20px; font: inherit; font-size: 1rem; color: var(--_ink); background: var(--_card); border: 1px solid var(--_ln); border-radius: var(--vws-p-btn-radius, 999px); }
.vws--dark .vwp-nl-form__input, .vws--brand .vwp-nl-form__input { background: #fff; color: #15151a; border-color: transparent; }
.vws .vwp-nl-form__input::placeholder { color: var(--_muted); opacity: 1; }
.vws--dark .vwp-nl-form__input::placeholder, .vws--brand .vwp-nl-form__input::placeholder { color: #5a5862; }
.vws .vwp-nl-form__input:focus-visible { outline: 3px solid var(--_ac); outline-offset: 2px; }
.vws .vwp-nl-form--line .vwp-nl-form__input { border-radius: 0; border: 0; border-bottom: 1px solid var(--_fg); background: transparent; padding-left: 0; }
.vws .vwp-nl-form__status { flex-basis: 100%; font-size: .92rem; font-weight: 600; color: var(--_fg); }
.vws .vwp-nl-form__status:empty { display: none; }
.vws .vwp-nl-form button[disabled] { opacity: .6; }

/* ---------------------------------------------------------------- knowledge base: search hero */
.vws.vws-press-kbsearch { padding-top: var(--vws-pt, clamp(56px, 8vw, 128px)); padding-bottom: var(--vws-pb, clamp(56px, 7vw, 112px)); }
.vws .vwp-kbhero { display: grid; gap: 0; }
.vws .vwp-kbhero .vws-lead { margin-top: 20px; }
.vws .vwp-kbhero--centered { justify-items: center; text-align: center; max-width: 900px; }
.vws .vwp-kbhero--centered .vws-lead { margin-inline: auto; }
.vws .vwp-kbhero--centered .vwp-search { margin-top: 36px; }
.vws .vwp-kbhero--centered .vwp-quick { justify-content: center; }
.vws .vwp-search { display: flex; align-items: center; gap: 8px; width: min(100%, 700px); padding: 8px 8px 8px 20px; background: var(--_card); color: var(--_ink); border: 1px solid var(--_line); border-radius: var(--vws-p-search-radius, 999px); box-shadow: 0 24px 60px -32px rgba(10, 12, 30, .35); }
.vws .vwp-search:focus-within { border-color: var(--_accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--_accent) 18%, transparent), 0 24px 60px -32px rgba(10, 12, 30, .35); }
.vws .vwp-search__icon { flex: none; color: var(--_muted); }
.vws .vwp-search__input { flex: 1; min-width: 0; min-height: 52px; border: 0; background: transparent; font: inherit; font-size: 1.06rem; color: var(--_ink); outline: none; }
.vws .vwp-search__input::placeholder { color: var(--_muted); opacity: 1; }
.vws .vwp-search .vws-btn { flex: none; background: var(--_accent); border-color: var(--_accent); color: var(--_on-accent); }
.vws .vwp-search--square { border-radius: var(--vws-p-search-radius, var(--_r)); }
.vws .vwp-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 22px; }
.vws .vwp-quick__label { font-size: .9rem; color: var(--_mut); margin-right: 4px; }
.vws .vwp-quick__list { display: flex; flex-wrap: wrap; gap: 8px; }
.vws .vwp-quick__list a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--_ln); border-radius: 999px; font-size: .92rem; font-weight: 500; text-decoration: none; color: var(--_fg); background: color-mix(in srgb, var(--_cd) 70%, transparent); }
.vws .vwp-quick__list a:hover { border-color: var(--_fg); }
.vws .vwp-quick--plain .vwp-quick__list { gap: 4px 18px; }
.vws .vwp-quick--plain .vwp-quick__list a { padding: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--_ln); }
.vws .vwp-quick--plain .vwp-quick__list a:hover { text-decoration-color: currentColor; }

.vws .vwp-kbhero--split { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.vws .vwp-kbhero--split .vwp-search { margin-top: 34px; }
.vws .vwp-kbhero__media { position: relative; aspect-ratio: 4 / 5; border-radius: var(--_r-lg); overflow: hidden; background: var(--_soft); }
.vws .vwp-kbhero__badge { position: absolute; left: 20px; bottom: 20px; display: flex; align-items: baseline; gap: 10px; padding: 14px 18px; border-radius: var(--_r); background: var(--_card); color: var(--_ink); box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .4); }
.vws .vwp-kbhero__badge strong { font-family: var(--_fh); font-size: 1.6rem; letter-spacing: -.03em; }
.vws .vwp-kbhero__badge span { font-size: .88rem; color: var(--_muted); }

.vws .vwp-kbhero--banner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: end; }
.vws .vwp-kbhero--banner .vws-h2 { font-size: clamp(2.2rem, 4.6vw, 4rem); }
.vws .vwp-kbhero--banner .vwp-search { width: 100%; box-shadow: none; }

.vws.vws-press-kbsearch--photo { padding-top: var(--vws-pt, clamp(48px, 8vw, 128px)); padding-bottom: var(--vws-pb, clamp(48px, 8vw, 128px)); }
.vws .vwp-kbhero__bg { position: absolute; inset: 0; }
.vws .vwp-kbhero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 14, 20, .55), rgba(10, 14, 20, .15)); }
.vws .vwp-kbhero--photo { position: relative; z-index: 1; }
.vws .vwp-kbhero__panel { display: grid; justify-items: start; max-width: 680px; padding: clamp(28px, 4.4vw, 56px); border-radius: var(--_r-lg); background: var(--_paper); color: var(--_ink); --_fg: var(--_ink); --_mut: var(--_muted); --_ln: var(--_line); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .55); }
.vws .vwp-kbhero__panel .vws-display { font-size: clamp(2.3rem, 4.8vw, 4.2rem); }
.vws .vwp-kbhero__panel .vwp-search { margin-top: 28px; width: 100%; box-shadow: none; background: var(--_soft); border-color: transparent; }

/* ---------------------------------------------------------------- knowledge base: topics */
.vws .vwp-topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; }
.vws .vwp-topic { display: grid; gap: 14px; align-content: start; padding: clamp(24px, 2.4vw, 32px); border-radius: var(--_r-lg); background: var(--_cd); border: 1px solid var(--_ln); transition: border-color .3s, box-shadow .4s var(--_ease); }
.vws .vwp-topic:hover { border-color: color-mix(in srgb, var(--_accent) 45%, transparent); box-shadow: 0 30px 60px -40px rgba(0, 0, 0, .35); }
.vws .vwp-topic__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.vws .vwp-topic__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: color-mix(in srgb, var(--_accent) 12%, var(--_cd)); color: var(--_accent); }
.vws--dark .vwp-topic__icon { background: rgba(255, 255, 255, .08); color: var(--_ac); }
.vws .vwp-topic__count { font-size: .82rem; color: var(--_mut); }
.vws .vwp-topic .vws-h3 a { text-decoration: none; }
.vws .vwp-topic .vws-h3 a:hover { text-decoration: underline; }
.vws .vwp-topic__links { display: grid; gap: 2px; }
.vws .vwp-topic__links a { display: block; padding-block: 6px; font-size: .95rem; color: var(--_mut); text-decoration: none; }
.vws .vwp-topic__links a::before { content: "→"; margin-right: 8px; color: var(--_accent); }
.vws .vwp-topic__links a:hover { color: var(--_fg); }

.vws .vwp-dir { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vws .vwp-dir__aside { position: sticky; top: 110px; display: grid; gap: 26px; justify-items: start; }
.vws .vwp-dir__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px clamp(24px, 3vw, 48px); }
.vws .vwp-dir__group { padding-block: 20px; border-top: 1px solid var(--_ln); }
.vws .vwp-dir__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--_fh); font-size: 1.1rem; font-weight: 600; color: var(--_fg); }
.vws .vwp-dir__title a { text-decoration: none; }
.vws .vwp-dir__title a:hover { color: var(--_accent); }
.vws .vwp-dir__count { flex: none; min-width: 30px; padding: 2px 9px; border-radius: 999px; background: var(--_soft); font-family: var(--_fb); font-size: .78rem; font-weight: 600; text-align: center; color: var(--_mut); }
.vws--soft .vwp-dir__count { background: var(--_cd); }
.vws .vwp-dir__links { display: grid; gap: 0; margin-top: 10px; }
.vws .vwp-dir__links a { display: block; padding-block: 5px; font-size: .93rem; color: var(--_mut); text-decoration: none; }
.vws .vwp-dir__links a:hover { color: var(--_fg); text-decoration: underline; }

.vws .vwp-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.vws .vwp-tile { position: relative; display: grid; grid-template-rows: auto 1fr auto auto; gap: 6px; min-height: 230px; padding: 26px; border-radius: var(--_r-lg); background: var(--_cd); border: 1px solid var(--_ln); transition: transform .45s var(--_ease), box-shadow .45s var(--_ease); }
.vws .vwp-tile:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .4); }
.vws .vwp-tile--0 { background: color-mix(in srgb, var(--_accent) 10%, var(--_paper)); border-color: transparent; }
.vws .vwp-tile--2 { background: color-mix(in srgb, var(--vws-highlight, #ffd166) 32%, var(--_paper)); border-color: transparent; }
.vws .vwp-tile__num { font-size: .8rem; font-weight: 700; letter-spacing: .08em; color: var(--_mut); }
.vws .vwp-tile__icon { position: absolute; top: 22px; right: 22px; color: var(--_accent); }
.vws .vwp-tile__title { align-self: end; font-family: var(--_fh); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; color: var(--_fg); padding-right: 48px; }
.vws .vwp-tile__count { font-size: .9rem; color: var(--_mut); }
.vws .vwp-tile__arrow { position: absolute; right: 22px; bottom: 22px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--_ln); transition: background-color .3s, color .3s, transform .4s var(--_ease); }
.vws .vwp-tile:hover .vwp-tile__arrow { background: var(--_fg); color: var(--_bg); transform: rotate(-45deg); }

/* ---------------------------------------------------------------- knowledge base: articles */
.vws .vwp-ranked-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vws .vwp-ranked-layout__head { position: sticky; top: 110px; display: grid; gap: 26px; justify-items: start; }
.vws .vwp-ranked { border-top: 1px solid var(--_ln); }
.vws .vwp-ranked__item { position: relative; display: grid; grid-template-columns: 60px minmax(0, 1fr) 44px; gap: 18px; align-items: center; padding-block: 22px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-ranked__num { font-family: var(--_fh); font-size: 1.5rem; font-weight: 600; color: var(--_accent); letter-spacing: -.02em; }
.vws--dark .vwp-ranked__num { color: var(--_ac); }
.vws .vwp-ranked__title { font-family: var(--_fh); font-size: 1.14rem; font-weight: 600; line-height: 1.3; color: var(--_fg); transition: transform .4s var(--_ease); }
.vws .vwp-ranked__title a { text-decoration: none; }
.vws .vwp-ranked__meta { margin-top: 4px; font-size: .85rem; color: var(--_mut); }
.vws .vwp-ranked__arrow { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--_ln); transition: background-color .3s, color .3s; }
.vws .vwp-ranked__item:hover .vwp-ranked__title, .vws .vwp-ranked__item:focus-within .vwp-ranked__title { transform: translateX(6px); }
.vws .vwp-ranked__item:hover .vwp-ranked__arrow, .vws .vwp-ranked__item:focus-within .vwp-ranked__arrow { background: var(--_fg); color: var(--_bg); }

.vws .vwp-kbfeature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 20px; }
.vws .vwp-kbfeature__lead { position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--_r-lg); overflow: hidden; background: var(--_cd); border: 1px solid var(--_ln); }
.vws .vwp-kbfeature__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--_soft); }
.vws .vwp-kbfeature__body { display: grid; gap: 12px; align-content: start; padding: clamp(22px, 3vw, 36px); }
.vws .vwp-kbfeature__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.vws .vwp-kbcard { position: relative; display: grid; gap: 10px; align-content: start; padding: 24px; border-radius: var(--_r); background: var(--_cd); border: 1px solid var(--_ln); transition: border-color .3s, transform .4s var(--_ease); }
.vws .vwp-kbcard:hover { border-color: var(--_fg); transform: translateY(-3px); }
.vws .vwp-kbcard__text { font-size: .92rem; color: var(--_mut); }

.vws .vwp-table { border-top: 1px solid var(--_fg); }
.vws .vwp-table__row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 200px 140px 70px; gap: 20px; align-items: center; padding: 18px 12px; border-bottom: 1px solid var(--_ln); transition: background-color .2s; }
.vws .vwp-table__row:not(.vwp-table__row--head):hover { background: var(--_soft); }
.vws--soft .vwp-table__row:not(.vwp-table__row--head):hover { background: var(--_cd); }
.vws .vwp-table__row--head { padding-block: 12px; font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--_mut); }
.vws .vwp-table__title { font-weight: 600; color: var(--_fg); }
.vws .vwp-table__title a { text-decoration: none; }
.vws .vwp-table__topic, .vws .vwp-table__date, .vws .vwp-table__min { font-size: .9rem; color: var(--_mut); }
.vws .vwp-table__min { text-align: right; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- portfolio: projects */
.vws .vwp-masonry { columns: 3 300px; column-gap: 22px; }
.vws .vwp-shot { break-inside: avoid; margin-bottom: 26px; }
.vws .vwp-shot__link { display: grid; gap: 14px; text-decoration: none; color: inherit; }
.vws .vwp-shot__media { display: block; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r)); background: var(--_soft); aspect-ratio: 4 / 5; }
.vws .vwp-shot--1 .vwp-shot__media { aspect-ratio: 1; }
.vws .vwp-shot--2 .vwp-shot__media { aspect-ratio: 4 / 3; }
.vws .vwp-shot--3 .vwp-shot__media { aspect-ratio: 3 / 4; }
.vws .vwp-shot--4 .vwp-shot__media { aspect-ratio: 5 / 4; }
.vws .vwp-shot__media img { transition: transform 1.1s var(--_ease); }
.vws .vwp-shot__link:hover .vwp-shot__media img { transform: scale(1.04); }
.vws .vwp-shot__caption { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.vws .vwp-shot__title { font-family: var(--_fh); font-weight: 600; font-size: 1.08rem; color: var(--_fg); }
.vws .vwp-shot__meta { font-size: .85rem; color: var(--_mut); text-align: right; }
.vws .vwp-shot__link:hover .vwp-shot__title { text-decoration: underline; text-underline-offset: 4px; }

.vws .vwp-bigtiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(36px, 4vw, 56px) clamp(20px, 2.4vw, 32px); }
.vws .vwp-bigtile { position: relative; display: grid; gap: 18px; align-content: start; }
.vws .vwp-bigtile--full { grid-column: 1 / -1; }
/* a half tile left alone on the last row takes the full width */
.vws .vwp-bigtile:not(.vwp-bigtile--full):last-child:nth-child(3n+2) { grid-column: 1 / -1; }
.vws .vwp-bigtile:not(.vwp-bigtile--full):last-child:nth-child(3n+2) .vwp-bigtile__media { aspect-ratio: 21 / 9; }
.vws .vwp-bigtile__media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-bigtile--full .vwp-bigtile__media { aspect-ratio: 21 / 9; }
.vws .vwp-bigtile__media img { transition: transform 1.2s var(--_ease); }
.vws .vwp-bigtile:hover .vwp-bigtile__media img { transform: scale(1.03); }
.vws .vwp-bigtile__body { display: grid; gap: 8px; }
.vws .vwp-bigtile--full .vwp-bigtile__body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; column-gap: 40px; }
.vws .vwp-bigtile--full .vwp-bigtile__meta { grid-column: 1 / -1; }
.vws .vwp-bigtile__meta { font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--_mut); }
.vws .vwp-bigtile__title { font-family: var(--_fh); font-size: clamp(1.5rem, 2.6vw, 2.4rem); font-weight: 500; line-height: 1.05; letter-spacing: -.02em; color: var(--_fg); }
.vws .vwp-bigtile__title a { text-decoration: none; }
.vws .vwp-bigtile__text { color: var(--_mut); max-width: 52ch; }

.vws .vwp-plist { border-top: 1px solid var(--_ln); }
.vws .vwp-plist__item { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, .7fr) 150px 56px; gap: 24px; align-items: center; padding-block: clamp(22px, 3vw, 36px); border-bottom: 1px solid var(--_ln); }
.vws .vwp-plist__num { font-size: .85rem; font-weight: 600; color: var(--_mut); font-variant-numeric: tabular-nums; }
.vws .vwp-plist__title { font-family: var(--_fh); font-size: clamp(1.7rem, 3.8vw, 3.4rem); font-weight: 500; line-height: 1; letter-spacing: -.035em; color: var(--_fg); transition: transform .5s var(--_ease), color .3s; }
.vws .vwp-plist__title a { text-decoration: none; }
.vws .vwp-plist__meta { font-size: .92rem; color: var(--_mut); }
.vws .vwp-plist__peek { width: 150px; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; opacity: 0; transform: scale(.9) rotate(3deg); transition: opacity .45s var(--_ease), transform .45s var(--_ease); }
.vws .vwp-plist__arrow { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--_ln); transition: background-color .3s, color .3s, transform .45s var(--_ease); }
.vws .vwp-plist__item:hover .vwp-plist__title, .vws .vwp-plist__item:focus-within .vwp-plist__title { transform: translateX(10px); color: var(--_accent); }
.vws--dark .vwp-plist__item:hover .vwp-plist__title, .vws--dark .vwp-plist__item:focus-within .vwp-plist__title { color: var(--_ac); }
.vws .vwp-plist__item:hover .vwp-plist__peek, .vws .vwp-plist__item:focus-within .vwp-plist__peek { opacity: 1; transform: none; }
.vws .vwp-plist__item:hover .vwp-plist__arrow, .vws .vwp-plist__item:focus-within .vwp-plist__arrow { background: var(--_fg); color: var(--_bg); transform: rotate(-45deg); }

.vws .vwp-pcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 32px); }
.vws .vwp-pcard { position: relative; display: grid; grid-template-rows: auto 1fr; overflow: hidden; border-radius: var(--_r-lg); background: var(--_cd); border: 1px solid var(--_ln); transition: transform .5s var(--_ease), box-shadow .5s var(--_ease); }
.vws .vwp-pcard:hover { transform: translateY(-5px); box-shadow: 0 36px 70px -44px rgba(0, 0, 0, .45); }
.vws .vwp-pcard__media { aspect-ratio: 16 / 11; overflow: hidden; background: var(--_soft); }
.vws .vwp-pcard__body { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 24px 26px 26px; }
.vws .vwp-pcard .vws-h3 a { text-decoration: none; }
.vws .vwp-pcard__text { margin-top: 8px; color: var(--_mut); font-size: .96rem; }

.vws .vwp-reel { display: grid; grid-auto-flow: column; grid-auto-columns: min(80vw, 440px); gap: clamp(16px, 2vw, 28px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding: 4px max(var(--_gutter), calc((100% - var(--vws-max, 1240px)) / 2)) 18px; scroll-padding-inline: max(var(--_gutter), calc((100% - var(--vws-max, 1240px)) / 2)); }
.vws .vwp-reel:focus-visible { outline: 3px solid var(--_ac); outline-offset: -3px; }
.vws .vwp-reel__item { position: relative; display: grid; gap: 10px; align-content: start; scroll-snap-align: start; }
.vws .vwp-reel__media { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); margin-bottom: 8px; }
.vws .vwp-reel__media img { transition: transform 1.1s var(--_ease); }
.vws .vwp-reel__item:hover .vwp-reel__media img { transform: scale(1.04); }
.vws .vwp-reel__meta { display: flex; gap: 12px; font-size: .82rem; color: var(--_mut); }
.vws .vwp-reel__meta span { font-weight: 700; color: var(--_accent); }
.vws--dark .vwp-reel__meta span { color: var(--_ac); }
.vws .vwp-reel__title { font-family: var(--_fh); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; color: var(--_fg); }
.vws .vwp-reel__title a { text-decoration: none; }
.vws .vwp-reel__text { color: var(--_mut); font-size: .95rem; }

/* ---------------------------------------------------------------- portfolio: case study */
.vws .vwp-case__hero { position: relative; aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-case__pull { position: absolute; left: clamp(16px, 3vw, 36px); bottom: clamp(16px, 3vw, 36px); max-width: 460px; padding: 22px 26px; border-radius: var(--_r); background: color-mix(in srgb, var(--_paper) 92%, transparent); color: var(--_ink); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.vws .vwp-case__pull p { font-family: var(--_fa); font-size: 1.25rem; line-height: 1.35; font-style: italic; color: var(--_ink); }
.vws .vwp-case__pull cite, .vws .vwp-case__quote cite { display: block; margin-top: 12px; font-style: normal; font-size: .85rem; color: var(--_muted); }
.vws .vwp-case__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); margin-top: clamp(36px, 4vw, 56px); align-items: start; }
.vws .vwp-case__story { display: grid; gap: 0; justify-items: start; }
.vws .vwp-case__story .vws-lead { margin-top: 20px; }
.vws .vwp-case__story .vws-actions { margin-top: 30px; }
.vws .vwp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; }
.vws .vwp-facts > div { padding-top: 14px; border-top: 1px solid var(--_ln); }
.vws .vwp-facts dt { font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--_mut); }
.vws .vwp-facts dd { margin: 6px 0 0; font-family: var(--_fh); font-size: 1.22rem; font-weight: 600; color: var(--_fg); letter-spacing: -.01em; }
.vws .vwp-facts--list { grid-template-columns: 1fr; gap: 0; margin-block: 8px 6px; }
.vws .vwp-facts--list > div { display: flex; justify-content: space-between; gap: 16px; padding-block: 12px; }
.vws .vwp-facts--list dd { margin: 0; font-size: 1rem; text-align: right; }

.vws .vwp-case--sticky { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vws .vwp-case__aside { align-self: stretch; }
.vws .vwp-case__sticky { position: sticky; top: 110px; display: grid; gap: 18px; justify-items: start; }
.vws .vwp-case__sticky .vws-actions { margin-top: 8px; }
.vws .vwp-case__stack { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.vws .vwp-case__shot { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-case__shot--tall { grid-column: 1 / -1; aspect-ratio: 16 / 11; }
.vws .vwp-case__caption { position: absolute; left: 14px; right: 14px; bottom: 14px; padding: 14px 16px; border-radius: var(--_r); background: color-mix(in srgb, var(--_paper) 92%, transparent); color: var(--_ink); font-size: .9rem; line-height: 1.45; }
.vws .vwp-case__caption span { color: var(--_muted); }

.vws .vwp-case--quote { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.vws .vwp-case__photo { aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r-lg)); background: var(--_soft); }
.vws .vwp-case__words { display: grid; gap: 22px; justify-items: start; }
.vws .vwp-case__quote { margin: 6px 0; padding-left: 22px; border-left: 2px solid var(--_ac); }
.vws--light .vwp-case__quote, .vws--soft .vwp-case__quote { border-left-color: var(--_accent); }
.vws .vwp-case__quote p { font-family: var(--_fa); font-style: italic; font-size: clamp(1.35rem, 2.2vw, 1.9rem); line-height: 1.3; color: var(--_fg); }
.vws .vwp-case__quote cite { color: var(--_mut); }
.vws .vwp-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); gap: 20px; width: 100%; padding-top: 22px; border-top: 1px solid var(--_ln); }
.vws .vwp-results dt { font-family: var(--_fh); font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 600; line-height: 1; letter-spacing: -.04em; color: var(--_fg); }
.vws .vwp-results dd { margin: 8px 0 0; font-size: .9rem; color: var(--_mut); }

/* ---------------------------------------------------------------- portfolio: skills */
.vws .vwp-caps { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vws .vwp-caps__head { position: sticky; top: 110px; display: grid; gap: 26px; justify-items: start; }
.vws .vwp-caps__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 3vw, 44px); }
.vws .vwp-cap { display: grid; gap: 10px; align-content: start; padding-block: 26px; border-top: 1px solid var(--_ln); }
.vws .vwp-cap__num { font-size: .8rem; font-weight: 700; color: var(--_accent); letter-spacing: .06em; }
.vws--dark .vwp-cap__num { color: var(--_ac); }
.vws .vwp-cap__text { color: var(--_mut); font-size: .96rem; }
.vws .vwp-cap__tags { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .86rem; color: var(--_fg); }
.vws .vwp-cap__tags li + li::before { content: "/"; margin: 0 8px; color: var(--_mut); }

.vws .vwp-clients { border-top: 1px solid var(--_ln); }
.vws .vwp-clients__item { position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) 90px; gap: 24px; align-items: baseline; padding-block: clamp(18px, 2.2vw, 28px); border-bottom: 1px solid var(--_ln); }
.vws .vwp-clients__name { font-family: var(--_fh); font-size: clamp(1.5rem, 3.2vw, 2.8rem); font-weight: 500; line-height: 1.05; letter-spacing: -.03em; color: var(--_fg); transition: transform .45s var(--_ease), color .3s; }
.vws .vwp-clients__name a { text-decoration: none; }
.vws .vwp-clients__role { color: var(--_mut); }
.vws .vwp-clients__year { text-align: right; font-variant-numeric: tabular-nums; color: var(--_mut); font-size: .92rem; }
.vws .vwp-clients__item:hover .vwp-clients__name { transform: translateX(8px); color: var(--_accent); }
.vws--dark .vwp-clients__item:hover .vwp-clients__name { color: var(--_ac); }

.vws .vwp-timeline-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.vws .vwp-timeline-layout__head { position: sticky; top: 110px; display: grid; gap: 26px; justify-items: start; }
.vws .vwp-timeline { border-top: 1px solid var(--_ln); }
.vws .vwp-timeline__item { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 24px; padding-block: 22px; border-bottom: 1px solid var(--_ln); }
.vws .vwp-timeline__year { font-family: var(--_fh); font-size: 1.05rem; font-weight: 600; color: var(--_accent); font-variant-numeric: tabular-nums; }
.vws--dark .vwp-timeline__year { color: var(--_ac); }
.vws .vwp-timeline__title { font-family: var(--_fh); font-size: 1.15rem; font-weight: 600; line-height: 1.3; color: var(--_fg); }
.vws .vwp-timeline__text { margin-top: 4px; color: var(--_mut); font-size: .95rem; }

/* ---------------------------------------------------------------- portfolio: intro */
.vws.vws-press-intro { padding-top: var(--vws-pt, clamp(48px, 7vw, 112px)); padding-bottom: var(--vws-pb, clamp(64px, 8vw, 128px)); }
.vws .vwp-status { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 16px; border: 1px solid var(--_ln); border-radius: 999px; font-size: .88rem; font-weight: 500; color: var(--_fg); }
.vws .vwp-status__dot { width: 8px; height: 8px; border-radius: 50%; background: #22a45d; box-shadow: 0 0 0 4px rgba(34, 164, 93, .18); }
.vws .vwp-intro--monogram { display: grid; gap: 0; }
.vws .vwp-intro__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.vws .vwp-intro__top .vwp-label { border: 0; padding: 0; margin: 0; color: var(--_mut); }
.vws .vwp-intro__title { font-weight: var(--vws-p-hl-weight, 600); font-size: clamp(2.7rem, 8.6vw, 8.6rem); line-height: .94; letter-spacing: -.045em; color: var(--_fg); text-wrap: balance; overflow-wrap: break-word; }
.vws .vwp-intro--monogram .vwp-intro__title { margin-block: clamp(28px, 4vw, 56px) clamp(32px, 4vw, 56px); }
.vws .vwp-intro__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(20px, 3vw, 40px); align-items: center; padding-top: 28px; border-top: 1px solid var(--_ln); }
.vws .vwp-intro__row .vws-lead { margin: 0; }
.vws .vwp-intro__portrait { width: 104px; height: 104px; border-radius: 50%; overflow: hidden; background: var(--_soft); }
.vws .vwp-intro__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 20px; margin-top: clamp(40px, 5vw, 72px); }
.vws .vwp-intro__facts dt { font-family: var(--_fh); font-size: clamp(1.6rem, 2.6vw, 2.3rem); font-weight: 600; letter-spacing: -.03em; color: var(--_fg); line-height: 1.05; }
.vws .vwp-intro__facts dd { margin: 6px 0 0; font-size: .9rem; color: var(--_mut); }

.vws .vwp-intro--grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.vws .vwp-intro__copy { display: grid; justify-items: start; gap: 0; }
.vws .vwp-intro__copy .vws-lead { margin-top: 24px; }
.vws .vwp-intro__copy .vws-actions { margin-top: 34px; }
.vws .vwp-intro__copy .vwp-status { margin-top: 26px; }
.vws .vwp-intro__work { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vws .vwp-intro__thumb { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--vws-p-img-radius, var(--_r)); background: var(--_soft); }
.vws .vwp-intro__thumb--1, .vws .vwp-intro__thumb--3 { transform: translateY(36px); }
.vws .vwp-intro__tag { position: absolute; left: 10px; right: 10px; bottom: 10px; display: grid; gap: 2px; padding: 10px 12px; border-radius: calc(var(--_r) * .7); background: color-mix(in srgb, var(--_paper) 92%, transparent); color: var(--_ink); font-size: .88rem; font-weight: 600; line-height: 1.25; }
.vws .vwp-intro__tag a { text-decoration: none; }
.vws .vwp-intro__tag small { font-size: .78rem; font-weight: 500; color: var(--_muted); }

.vws .vwp-intro--statement { display: grid; justify-items: center; text-align: center; max-width: 1080px; gap: 26px; }
.vws .vwp-intro--statement .vwp-label { border: 0; padding: 0; margin: 0; color: var(--_mut); }
.vws .vwp-intro--statement .vwp-intro__title { font-size: clamp(2.4rem, 6.2vw, 5.8rem); line-height: 1.02; letter-spacing: -.035em; }
.vws .vwp-intro--statement .vws-lead { margin-inline: auto; }
.vws .vwp-intro--statement .vws-actions--center { margin-top: 6px; }
.vws .vwp-intro__line { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 56px; margin-top: 18px; padding-top: 26px; border-top: 1px solid var(--_ln); width: 100%; }
.vws .vwp-intro__line dt { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--_mut); }
.vws .vwp-intro__line dd { margin: 6px 0 0; font-weight: 600; color: var(--_fg); }

/* ---------------------------------------------------------------- motion */
@media (prefers-reduced-motion: reduce) {
    .vws .vwp-ticker__dot { animation: none; }
    .vws .vwp-story__media img, .vws .vwp-shot__media img, .vws .vwp-bigtile__media img, .vws .vwp-reel__media img { transition: none; }
}

/* ---------------------------------------------------------------- responsive */
@media (max-width: 1100px) {
    .vws .vwp-desks--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vws .vwp-shelf__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vws .vwp-river-layout { grid-template-columns: minmax(0, 1fr) 280px; }
    .vws .vwp-plist__item { grid-template-columns: 44px minmax(0, 1fr) 150px 56px; }
    .vws .vwp-plist__meta { grid-column: 2; grid-row: 2; margin-top: -12px; }
}
@media (max-width: 860px) {
    .vws .vwp-mast__meta { grid-template-columns: 1fr auto; }
    .vws .vwp-mast__edition { display: none; }
    .vws .vwp-mast__nav ul { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
    .vws .vwp-mast__nav ul::-webkit-scrollbar { display: none; }
    .vws .vwp-mast__nav a { white-space: nowrap; }
    .vws .vwp-mast--compact { grid-template-columns: 1fr; }
    .vws .vwp-mast__side { justify-items: start; grid-auto-flow: column; align-items: center; justify-content: space-between; }
    .vws .vwp-ticker__date { display: none; }
    .vws .vwp-ticker__list li:nth-child(n+2) { display: none; }
    .vws .vwp-front--classic, .vws .vwp-front--overlay, .vws .vwp-front--cover { grid-template-columns: 1fr; }
    .vws .vwp-front__rail { padding-left: 0; border-left: 0; padding-top: 8px; }
    .vws .vwp-front--briefing { grid-template-columns: 1fr; }
    .vws .vwp-brief__media { position: static; order: -1; aspect-ratio: 16 / 10; }
    .vws .vwp-cover__media { aspect-ratio: 4 / 3; order: -1; }
    .vws .vwp-stack__media { aspect-ratio: 4 / 3; }
    .vws .vwp-cols > li { padding: 22px 0 0; margin-top: 22px; border-left: 0; border-top: 1px solid var(--_ln); }
    .vws .vwp-cols > li:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
    .vws .vwp-desks, .vws .vwp-desks--2, .vws .vwp-desks--4 { grid-template-columns: 1fr; }
    .vws .vwp-shelf { grid-template-columns: 1fr; gap: 18px; }
    .vws .vwp-shelf__head { flex-direction: row; align-items: center; justify-content: space-between; }
    .vws .vwp-mosaic__grid, .vws .vwp-mosaic--flip .vwp-mosaic__grid { grid-template-columns: 1fr 1fr; }
    .vws .vwp-mosaic__big, .vws .vwp-mosaic--flip .vwp-mosaic__big { grid-column: 1 / -1; grid-row: auto; }
    .vws .vwp-river-layout { grid-template-columns: 1fr; }
    .vws .vwp-mostread { position: static; }
    .vws .vwp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vws .vwp-cards > li:first-child { grid-column: 1 / -1; grid-row: auto; }
    .vws .vwp-wire { grid-template-columns: 1fr 1fr; }
    .vws .vwp-nl--band, .vws .vwp-nl--inline, .vws .vwp-nl--card.vwp-nl--has-image { grid-template-columns: 1fr; }
    .vws .vwp-nl__media { aspect-ratio: 16 / 9; }
    .vws .vwp-kbhero--split, .vws .vwp-kbhero--banner { grid-template-columns: 1fr; }
    .vws .vwp-kbhero__media { aspect-ratio: 16 / 10; }
    .vws .vwp-dir, .vws .vwp-ranked-layout, .vws .vwp-caps, .vws .vwp-timeline-layout { grid-template-columns: 1fr; }
    .vws .vwp-dir__aside, .vws .vwp-ranked-layout__head, .vws .vwp-caps__head, .vws .vwp-timeline-layout__head { position: static; }
    .vws .vwp-tiles { grid-template-columns: 1fr 1fr; }
    .vws .vwp-kbfeature { grid-template-columns: 1fr; }
    .vws .vwp-table__row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding-inline: 0; }
    .vws .vwp-table__row--head { display: none; }
    .vws .vwp-table__topic { grid-column: 1; grid-row: 2; }
    .vws .vwp-table__date { display: none; }
    .vws .vwp-table__min { grid-column: 2; grid-row: 1 / span 2; }
    .vws .vwp-bigtiles { grid-template-columns: 1fr; }
    .vws .vwp-bigtile--full .vwp-bigtile__media { aspect-ratio: 4 / 3; }
    .vws .vwp-bigtile--full .vwp-bigtile__body { grid-template-columns: 1fr; }
    .vws .vwp-pcards { grid-template-columns: 1fr; }
    .vws .vwp-case__hero { aspect-ratio: 4 / 3; overflow: visible; }
    .vws .vwp-case__hero > img, .vws .vwp-case__hero > .vws-art { border-radius: inherit; }
    .vws .vwp-case__pull { position: static; max-width: none; margin-top: 14px; background: var(--_soft); }
    .vws .vwp-case__grid, .vws .vwp-case--sticky, .vws .vwp-case--quote { grid-template-columns: 1fr; }
    .vws .vwp-case__sticky { position: static; }
    .vws .vwp-case__photo { aspect-ratio: 4 / 3; }
    .vws .vwp-intro--grid { grid-template-columns: 1fr; }
    .vws .vwp-intro__row { grid-template-columns: auto minmax(0, 1fr); }
    .vws .vwp-intro__row .vws-actions { grid-column: 1 / -1; }
    .vws .vwp-clients__item { grid-template-columns: minmax(0, 1fr) auto; }
    .vws .vwp-clients__role { grid-column: 1; grid-row: 2; font-size: .92rem; }
    .vws .vwp-clients__year { grid-column: 2; grid-row: 1; }
}
@media (max-width: 600px) {
    .vws .vwp-mast__cta .vws-btn { min-height: 44px; padding: 0 14px; }
    .vws .vwp-brief__lead { grid-template-columns: 44px minmax(0, 1fr); }
    .vws .vwp-brief__list .vwp-story--numbered .vwp-story__body { padding-left: 44px; }
    .vws .vwp-story--row { grid-template-columns: minmax(0, 1fr) 96px; gap: 16px; }
    .vws .vwp-story--row .vwp-story__media { aspect-ratio: 1; }
    .vws .vwp-story--row .vwp-story__deck { display: none; }
    .vws .vwp-river__item { grid-template-columns: 1fr; gap: 8px; padding-block: 20px; }
    .vws .vwp-cards { grid-template-columns: 1fr; }
    .vws .vwp-wire { grid-template-columns: 1fr; }
    .vws .vwp-shelf__list { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
    .vws .vwp-search { padding-left: 14px; }
    .vws .vwp-search .vws-btn { padding: 0 16px; }
    .vws .vwp-search__icon { display: none; }
    .vws .vwp-dir__cols, .vws .vwp-kbfeature__list, .vws .vwp-tiles, .vws .vwp-caps__list { grid-template-columns: 1fr; }
    .vws .vwp-tile { min-height: 180px; }
    .vws .vwp-ranked__item { grid-template-columns: 40px minmax(0, 1fr); }
    .vws .vwp-ranked__arrow { display: none; }
    .vws .vwp-plist__item { grid-template-columns: minmax(0, 1fr) 84px; gap: 6px 16px; }
    .vws .vwp-plist__num, .vws .vwp-plist__arrow { display: none; }
    .vws .vwp-plist__title { grid-column: 1; grid-row: 1; }
    .vws .vwp-plist__meta { grid-column: 1; grid-row: 2; margin: 0; }
    .vws .vwp-plist__peek { grid-column: 2; grid-row: 1 / span 2; width: 84px; opacity: 1; transform: none; }
    .vws .vwp-facts { grid-template-columns: 1fr 1fr; }
    .vws .vwp-case__stack { grid-template-columns: 1fr; }
    .vws .vwp-timeline__item { grid-template-columns: 1fr; gap: 6px; }
    .vws .vwp-intro__row { grid-template-columns: 1fr; }
    .vws .vwp-intro__portrait { width: 80px; height: 80px; }
    .vws .vwp-intro__thumb--1, .vws .vwp-intro__thumb--3 { transform: translateY(18px); }
    .vws .vwp-masonry { columns: 1; }
    .vws .vwp-overlay { min-height: 460px; }
}

/* ---------------------------------------------------------------- per-template chrome (navbar / footer) */
/* Ledger: a newspaper rule under the bar, small-caps menu */
body:has(.vwp-t-ledger) .vwn--classic { border-bottom: 1px solid var(--vws-ink); }
body:has(.vwp-t-ledger) .vwn__menu > li > a { border-radius: 0; font-size: .8rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
/* Pulse: a squared bar sitting on the live ticker */
body:has(.vwp-t-pulse) .vwn--floating { padding-bottom: 12px; }
body:has(.vwp-t-pulse) .vwn--floating .vwn__bar { border-radius: 12px; }
body:has(.vwp-t-pulse) .vwn__menu > li > a { border-radius: 8px; font-weight: 600; }
/* Gazette: a warmer, taller centred bar */
body:has(.vwp-t-gazette) .vwn--centered .vwn__nav--row { border-top-style: dashed; }
body:has(.vwp-t-gazette) .vwn__menu > li > a { font-weight: 600; }
/* Brief: an accent rule on top of the bar */
body:has(.vwp-t-brief) .vwn--classic { border-top: 4px solid var(--vws-accent); }
body:has(.vwp-t-brief) .vwn__menu > li > a { border-radius: 6px; }
/* Long Read: no pill, a hairline and a serif menu */
body:has(.vwp-t-longread) .vwn--floating { padding-top: 0; }
body:has(.vwp-t-longread) .vwn--floating .vwn__bar { border-radius: 0; border: 0; border-bottom: 1px solid var(--vws-ink); background: var(--vws-paper); -webkit-backdrop-filter: none; backdrop-filter: none; padding-inline: 0; }
body:has(.vwp-t-longread) .vwn--floating.is-scrolled .vwn__bar { box-shadow: none; }
body:has(.vwp-t-longread) .vwn__menu > li > a { border-radius: 0; font-family: var(--vws-font-heading); font-size: 1.08rem; font-weight: 400; }
body:has(.vwp-t-longread) .vwf--minimal { border-top-color: var(--vws-ink); }
body:has(.vwp-t-pulse) .vws em, body:has(.vwp-t-pulse) .vwf em { font-style: normal; font-weight: inherit; }
body:has(.vwp-t-longread) .vws .vws-h2, body:has(.vwp-t-longread) .vws .vws-statement, body:has(.vwp-t-longread) .vws .vws-display, body:has(.vwp-t-longread) .vws .vws-h3, body:has(.vwp-t-longread) .vwf__statement { font-weight: 400; letter-spacing: -.01em; }
/* Answers: one sans family, accents in colour only */
body:has(.vwp-t-answers) .vws em, body:has(.vwp-t-answers) .vwf em { font-style: normal; font-weight: inherit; }
body:has(.vwp-t-answers) .vwn__menu > li > a { border-radius: 10px; }
/* Field Guide: serif menu row */
body:has(.vwp-t-fieldguide) .vwn--centered .vwn__menu > li > a { font-family: var(--vws-font-heading); font-size: 1.04rem; }
/* Manual: monospace accents and menu */
body:has(.vwp-t-manual) .vws em, body:has(.vwp-t-manual) .vwf em { font-style: normal; font-family: var(--vws-font-heading); }
body:has(.vwp-t-manual) .vwn__menu > li > a, body:has(.vwp-t-manual) .vws .vwp-label--mono, body:has(.vwp-t-manual) .vws .vws-eyebrow { font-family: 'JetBrains Mono', ui-monospace, monospace; }
body:has(.vwp-t-manual) .vwn__menu > li > a { font-size: .84rem; border-radius: 6px; }
body:has(.vwp-t-manual) .vws .vws-eyebrow { letter-spacing: .04em; text-transform: none; }
/* Resource Center: a navy rule over the centred bar */
body:has(.vwp-t-resources) .vwn--centered { border-top: 3px solid var(--vws-ink); }
/* Commons: softer, rounder tiles in four pastel tints */
body:has(.vwp-t-commons) .vws .vwp-tile { min-height: 250px; border-radius: 32px; }
body:has(.vwp-t-commons) .vws .vwp-tile--1 { background: color-mix(in srgb, #b9a7f5 26%, var(--vws-paper)); border-color: transparent; }
body:has(.vwp-t-commons) .vws .vwp-tile--3 { background: color-mix(in srgb, #f6a97f 28%, var(--vws-paper)); border-color: transparent; }
body:has(.vwp-t-commons) .vws .vwp-tile__icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--vws-card); }
/* Monograph: dark bar, monospaced-feel menu */
body:has(.vwp-t-monograph) .vwn--classic { border-bottom-color: rgba(242, 239, 233, .12); }
body:has(.vwp-t-monograph) .vwn__menu > li > a { border-radius: 4px; font-size: .9rem; letter-spacing: .02em; }
body:has(.vwp-t-monograph) .vwn__menu > li > a:hover { background: rgba(242, 239, 233, .08); }
body:has(.vwp-t-monograph) .vws em, body:has(.vwp-t-monograph) .vwf em { font-style: normal; font-weight: inherit; }
/* Atelier: small-caps serif menu */
body:has(.vwp-t-atelier) .vwn__menu > li > a { border-radius: 0; font-size: .82rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
body:has(.vwp-t-atelier) .vws .vws-display, body:has(.vwp-t-atelier) .vws .vws-h2, body:has(.vwp-t-atelier) .vws .vws-statement, body:has(.vwp-t-atelier) .vws .vws-h3 { font-weight: 500; letter-spacing: -.01em; }
/* Frame: a flat bar with a typewriter menu */
body:has(.vwp-t-frame) .vwn--floating .vwn__bar { border-radius: 0; border: 0; background: var(--vws-paper); -webkit-backdrop-filter: none; backdrop-filter: none; padding-inline: 0; }
body:has(.vwp-t-frame) .vwn--floating.is-scrolled .vwn__bar { box-shadow: 0 1px 0 var(--vws-line); }
body:has(.vwp-t-frame) .vwn__menu > li > a { border-radius: 0; font-family: 'Fragment Mono', ui-monospace, monospace; font-size: .82rem; text-transform: uppercase; }
body:has(.vwp-t-frame) .vws em, body:has(.vwp-t-frame) .vwf em { font-style: italic; font-family: var(--vws-font-heading); font-weight: 500; }
body:has(.vwp-t-frame) .vws .vwp-intro__title { font-weight: 500; }
/* Practice: accents in colour, not italics */
body:has(.vwp-t-practice) .vws em, body:has(.vwp-t-practice) .vwf em { font-style: normal; font-weight: inherit; }
/* Folio: warm hairline bar */
body:has(.vwp-t-folio) .vwn--classic { background: var(--vws-paper); }
body:has(.vwp-t-folio) .vwn__menu > li > a { font-weight: 600; }
