/* dabu inner pages: nav, menu, case studies, about, speaking, contact */

:root {
	--g: clamp(20px, 5.556vw, 80px);
	--muted: #949494;
	--line: #333;
	--ink: #090909;
	--fs-label: clamp(12px, 0.97vw, 14px);
	--fs-lead: clamp(22px, 2.5vw, 36px);
	--fs-pull: clamp(32px, 3.89vw, 56px);
	--fs-body: clamp(17px, 1.53vw, 22px);
	--fs-small: clamp(15px, 1.18vw, 17px);
	--fs-card: clamp(19px, 1.67vw, 24px);
	--sec: clamp(64px, 11.1vw, 160px);
}

/* ---------- Shared resets ---------- */
.dabu-page { position: relative; min-height: 60vh; }
.dabu-page, .dabu-page *, .dabu-bar, .dabu-bar *, .dabu-menu-overlay, .dabu-menu-overlay *, .dabu-foot, .dabu-foot * { box-sizing: border-box; }
.dabu-page p, .dabu-page h1, .dabu-page h2, .dabu-page h3, .dabu-page figure, .dabu-page blockquote, .dabu-page ul, .dabu-page ol { margin: 0; }
.dabu-page ul, .dabu-page ol { padding: 0; list-style: none; }
.dabu-page a { color: inherit; text-decoration: none; }
.dabu-page img.dabu-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dabu-page button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.wp-site-blocks > * { margin-block: 0 !important; }
body.dabu-case-study, body[class*="dabu-page-"] { overflow-x: hidden; }

/* ---------- Nav bar ---------- */
.dabu-bar {
	position: relative; z-index: 30;
	display: flex; align-items: center; justify-content: space-between;
	padding: 32px var(--g);
}
.dabu-bar--home, .dabu-case-study .dabu-bar { position: absolute; top: 0; left: 0; right: 0; }
.dabu-case-study .dabu-bar { background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,0)); }
.dabu-bar--home { padding-top: 28px; padding-bottom: 28px; padding-left: var(--dabu-gutter, 40px); padding-right: var(--dabu-gutter, 40px); }
.dabu-bar__brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 500; letter-spacing: .01em; }
.dabu-bar__brand img { width: 25px; height: 28px; display: block; }
.dabu-bar__brand:hover { opacity: .8; }
.dabu-burger { width: 44px; height: 44px; margin-right: -9px; display: inline-flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6.5px; background: none; border: 0; cursor: pointer; padding: 9px; }
.dabu-burger span { display: block; height: 2px; width: 26px; background: #fff; transition: width .25s ease; }
.dabu-burger span:nth-child(2) { width: 18.2px; }
.dabu-burger:hover span:nth-child(2) { width: 26px; }

/* Menu overlay */
.dabu-menu-overlay {
	position: fixed; inset: 0; z-index: 100; background: var(--ink); color: #fff;
	display: flex; flex-direction: column; justify-content: space-between;
	padding: 28px var(--g) 40px;
	opacity: 0; transition: opacity .3s ease;
}
.dabu-menu-overlay[hidden] { display: none; }
.dabu-menu-overlay.is-open { opacity: 1; }
.dabu-menu-overlay__top { display: flex; align-items: center; justify-content: space-between; }
.dabu-menu-close { display: inline-flex; align-items: center; gap: 10px; background: none; border: 0; color: #fff; cursor: pointer; font: inherit; padding: 8px 0; }
.dabu-menu-close span { color: var(--muted); font-size: 15px; }
.dabu-menu-close b { font-weight: 400; font-size: 22px; }
.dabu-menu-overlay__links { display: flex; flex-direction: column; gap: 4px; }
.dabu-menu-overlay__links a {
	color: #fff; text-decoration: none; font-weight: 600; letter-spacing: -.04em; line-height: 1.05;
	font-size: clamp(48px, 8.9vw, 128px);
	opacity: 0; transform: translateY(16px); transition: opacity .4s ease, transform .5s cubic-bezier(.2,.7,.2,1), color .2s;
}
.dabu-menu-overlay.is-open .dabu-menu-overlay__links a { opacity: 1; transform: none; }
.dabu-menu-overlay.is-open .dabu-menu-overlay__links a:nth-child(2) { transition-delay: .05s; }
.dabu-menu-overlay.is-open .dabu-menu-overlay__links a:nth-child(3) { transition-delay: .1s; }
.dabu-menu-overlay.is-open .dabu-menu-overlay__links a:nth-child(4) { transition-delay: .15s; }
.dabu-menu-overlay__links:hover a { color: #555; }
.dabu-menu-overlay__links a:hover { color: #fff; }
.dabu-menu-overlay__foot { display: flex; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; font-size: 15px; color: var(--muted); }
.dabu-menu-overlay__foot a { color: #fff; text-decoration: none; }
.dabu-menu-overlay__foot span a { color: var(--muted); }
body.dabu-menu-open { overflow: hidden; }

/* Hide the old core navigation remnants if any */
.dabu-nav { display: none !important; }

/* ---------- Footer bar ---------- */
.dabu-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap;
	padding: 40px var(--g); margin-top: 100px;
}
.dabu-case-study .dabu-foot { margin-top: 0; }
.dabu-foot a { color: #fff; text-decoration: none; }
.dabu-foot__email { font-size: 15px; }
.dabu-foot__links { display: flex; gap: 32px; flex-wrap: wrap; font-size: 14px; }
.dabu-foot__links a { color: var(--muted); }
.dabu-foot a:hover { color: #fff; opacity: .8; }

/* ---------- Type primitives ---------- */
.cs-label { font-size: var(--fs-label); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.cs-lead { font-size: var(--fs-lead); line-height: 1.35; letter-spacing: -.01em; }
.cs-mid { font-size: clamp(20px, 1.95vw, 28px); line-height: 1.45; }
.cs-pull { font-size: var(--fs-pull); font-weight: 600; line-height: 1.02; letter-spacing: -.04em; }
.cs-h3 { font-size: clamp(24px, 2.78vw, 40px); font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }
.cs-body { font-size: var(--fs-body); line-height: 1.5; color: var(--muted); }
.cs-body a { color: #fff; border-bottom: 1px solid rgba(255,255,255,.3); }
.cs-caption { font-size: var(--fs-small); line-height: 1.5; color: var(--muted); margin-top: 16px !important; }
.cs-caption--narrow { max-width: 760px; }
.cs-sublabel { font-size: var(--fs-label); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 12px 0 28px !important; }
.cs-textlink { font-size: 16px; font-weight: 500; color: #fff; margin-top: 12px; }
.cs-textlink:hover { opacity: .75; }

/* ---------- Hero ---------- */
.cs-hero {
	position: relative; overflow: hidden;
	min-height: 100vh; min-height: 100svh; max-height: 1100px;
	display: flex; align-items: flex-end;
	padding: 140px var(--g) clamp(48px, 5vw, 72px);
}
.cs-hero__media { position: absolute; inset: 0; z-index: 0; background: #000; }
.cs-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.25) 35%, rgba(0,0,0,.9) 100%); pointer-events: none; }
.cs-hero__video, .cs-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cs-hero__inner { position: relative; z-index: 2; width: 100%; display: flex; flex-direction: column; gap: 20px; }
.cs-hero__title { font-size: clamp(52px, 8.89vw, 128px); font-weight: 600; line-height: .95; letter-spacing: -.04em; color: #fff; }
.cs-hero__sub { font-size: clamp(19px, 2.22vw, 32px); line-height: 1.25; letter-spacing: -.01em; max-width: 30em; }
.cs-hero__link { align-self: flex-start; font-size: 16px; font-weight: 500; color: #fff; padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,.35); transition: border-color .2s; }
.cs-hero__link:hover { border-color: #fff; }

/* RSM hero */
.cs-hero--rsm { background: #fff355; color: #000; }
.cs-hero--rsm .cs-hero__media { background: #fff355; }
.cs-hero--rsm .cs-hero__media::after { display: none; }
.rsm-hero-bg { position: absolute; inset: 0; overflow: hidden; }
.rsm-hero-bg img.rsm-hero-bg__mark { position: absolute; left: 44%; top: -5%; width: 104%; height: auto; max-width: none; object-fit: contain; opacity: .09; animation: rsm-drift 18s ease-in-out infinite alternate; }
@keyframes rsm-drift { from { transform: translate3d(0,0,0) rotate(0deg); } to { transform: translate3d(-2%,1.5%,0) rotate(-2deg); } }
.cs-hero--rsm .cs-hero__title { color: #000; }
.cs-hero--rsm .cs-hero__sub { color: rgba(0,0,0,.75); }
.rsm-hero__old { font-size: clamp(22px, 7.2vw, 104px); line-height: 1.3; letter-spacing: -.01em; color: rgba(0,0,0,.18); margin-bottom: -4px !important; }
.rsm-hero__old b { color: #000; font-weight: 400; }
.dabu-page-rsm-studio .dabu-bar { background: none; }
.dabu-page-rsm-studio .dabu-bar__brand { color: #000; }
.dabu-page-rsm-studio .dabu-bar__brand img { filter: invert(1); }
.dabu-page-rsm-studio .dabu-burger span { background: #000; }

/* ---------- Meta strip ---------- */
.cs-meta { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 40px; padding: 40px var(--g); border-bottom: 1px solid var(--line); }
.cs-meta__item { display: flex; flex-direction: column; gap: 10px; }
.cs-meta__label { font-size: 13px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.cs-meta__value { font-size: 17px; line-height: 1.4; }

/* ---------- Split (image + text) ---------- */
.cs-split { display: grid; grid-template-columns: 560fr 640fr; gap: 80px; align-items: center; padding: clamp(48px, 5vw, 72px) var(--g); }
.cs-split--wide { grid-template-columns: 640fr 560fr; }
.cs-split--roomy { padding-top: var(--sec); padding-bottom: var(--sec); }
.cs-split__frame { position: relative; overflow: hidden; border-radius: 4px; }
.cs-split__frame img.dabu-img { position: absolute; inset: 0; }
.cs-fit--contain img.dabu-img { object-fit: contain; }
.cs-split__content { display: flex; flex-direction: column; gap: 28px; }
.cs-split__content .cs-pull { margin-bottom: 0; }

/* Partner / award blocks under split text */
.cs-partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 12px; }
.cs-partner { display: flex; flex-direction: column; gap: 12px; padding-top: 21px; }
.cs-partner__logo, .dabu-page img.cs-partner__logo { width: 88px; height: 88px; object-fit: contain; object-position: left center; }
.cs-partner__name { font-size: 17px; font-weight: 500; line-height: 1.35; }
.cs-partner__sub { font-size: 13px; color: var(--muted); line-height: 1.25; }
.cs-seals { margin-top: 8px; }
.cs-seals img.dabu-img { height: auto; object-fit: contain; }
.cs-badge { display: flex; align-items: center; gap: 24px; border-top: 1px solid var(--line); padding-top: 21px; }
.dabu-page img.cs-badge__logo { width: 180px; height: auto; object-fit: contain; }
.cs-badge__div { width: 1px; height: 40px; background: rgba(255,255,255,.2); }
.cs-badge__text { font-size: 17px; font-weight: 500; }

/* ---------- Problem / Solution ---------- */
.cs-ps { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 40px var(--g) var(--sec); }
.cs-ps__col { border-top: 1px solid var(--line); padding-top: 28px; display: flex; flex-direction: column; gap: 20px; }
.cs-ps__text { font-size: var(--fs-body); line-height: 1.5; }

/* ---------- Full-bleed media ---------- */
.cs-media { position: relative; width: 100%; overflow: hidden; background: #000; }
.cs-media img.dabu-img { position: absolute; inset: 0; }
.cs-media--contain img.dabu-img { object-fit: contain; }
.cs-media--fade-top::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #090909 0%, rgba(9,9,9,.85) 12%, rgba(9,9,9,0) 30%); pointer-events: none; }

/* ---------- Statement (label col + content) ---------- */
.cs-statement { display: grid; grid-template-columns: 320px 1fr; gap: 80px; padding: 70px var(--g) 80px; }
.cs-statement--roomy { padding-top: var(--sec); padding-bottom: var(--sec); }
.cs-statement--top { padding-top: var(--sec); padding-bottom: 40px; }
.cs-statement--flush { padding-top: 0; padding-bottom: 64px; }
.cs-statement__content { display: flex; flex-direction: column; gap: 28px; max-width: 900px; }

/* ---------- Generic block ---------- */
.cs-block { padding: 0 var(--g) 80px; }
.cs-block--roomy { padding-top: var(--sec); padding-bottom: var(--sec); }
.cs-block--tight { padding-bottom: 48px; }
.cs-block__head { display: flex; flex-direction: column; gap: 24px; margin-bottom: 40px; max-width: 1280px; }
.cs-block__head .cs-body { max-width: 1100px; }
.cs-wrap { padding: 0 var(--g) 70px; }
.cs-wrap--tight { padding-bottom: 70px; }
.cs-wrap-inner { display: flex; flex-direction: column; gap: 24px; }

/* Figure frames */
.cs-figure { display: block; }
.cs-figure__frame { position: relative; overflow: hidden; border-radius: 4px; background: #111; }
.cs-figure__frame img.dabu-img { position: absolute; inset: 0; object-fit: contain; }
.cs-figure__frame--white { background: #fff; }
section.cs-figure { padding: 0 var(--g) 80px; }
/* crop the flattened label row off before/after logo composites */
.cs-figure__frame[style*="1280/349"] { aspect-ratio: 1280/320 !important; }
.cs-figure__frame[style*="1280/449"] { aspect-ratio: 1280/420 !important; }
.cs-figure__frame[style*="1280/349"] img.dabu-img, .cs-figure__frame[style*="1280/449"] img.dabu-img { object-fit: cover; object-position: center bottom; }

/* ---------- Cards ---------- */
.cs-cards { display: grid; gap: 48px 24px; }
.cs-cards--1 { grid-template-columns: 1fr; gap: 24px; }
.cs-cards--2 { grid-template-columns: repeat(2, 1fr); }
.cs-cards--3 { grid-template-columns: repeat(3, 1fr); }
.cs-cards--4 { grid-template-columns: repeat(4, 1fr); }
.cs-cards--rounded .cs-card__media { border-radius: 4px; }
.cs-cards--refs { gap: 16px; }
.cs-card { display: flex; flex-direction: column; gap: 14px; }
.cs-card__media { position: relative; overflow: hidden; background: #111; }
.cs-card__media img.dabu-img { position: absolute; inset: 0; }
.cs-cards--bordered .cs-card__media { border: 1px solid var(--line); }
.cs-card figcaption { display: flex; flex-direction: column; gap: 8px; }
.cs-card__title { font-size: var(--fs-card); font-weight: 500; letter-spacing: -.01em; line-height: 1.2; }
.cs-card__desc { font-size: var(--fs-small); line-height: 1.5; color: var(--muted); max-width: 36em; }

/* Mosaic (big + stack) */
.cs-mosaic { display: grid; grid-template-columns: 836fr 420fr; gap: 24px; }
.cs-mosaic .cs-cards--1 { gap: 24px; }

/* ---------- Numbers ---------- */
.cs-numbers { display: grid; gap: 24px; padding: 0 var(--g) 48px; }
.cs-numbers--roomy { padding-top: 120px; }
.cs-numbers--3 { grid-template-columns: repeat(3, 1fr); }
.cs-numbers--4 { grid-template-columns: repeat(4, 1fr); }
.cs-number { border-top: 1px solid var(--line); padding-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.cs-number__big { font-size: clamp(48px, 5.56vw, 80px); font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.cs-number__small { font-size: var(--fs-small); line-height: 1.4; color: var(--muted); max-width: 16em; }
.cs-stars { letter-spacing: 2px; color: #fff; margin-right: 6px; }
.cs-sources { padding: 0 var(--g) 120px; font-size: 13px; color: var(--muted); line-height: 1.5; max-width: 1440px; }

/* ---------- Steps ---------- */
.cs-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cs-step { border-top: 1px solid var(--line); padding-top: 25px; display: flex; flex-direction: column; gap: 12px; }
.cs-step__kicker { font-size: 15px; color: var(--muted); }
.cs-step__title { font-size: clamp(22px, 1.95vw, 28px); font-weight: 500; letter-spacing: -.01em; }
.cs-step__desc { font-size: 16px; line-height: 1.5; color: var(--muted); }
.cs-block .cs-steps + * { margin-top: 64px; }

/* ---------- Quote & press ---------- */
.cs-quote { border-top: 1px solid var(--line); padding: var(--sec) var(--g); text-align: center; }
.cs-quote blockquote { margin: 0 auto; max-width: 1120px; display: flex; flex-direction: column; gap: 40px; align-items: center; }
.cs-quote__text { font-size: clamp(34px, 5vw, 72px); font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.cs-quote__cite { font-style: normal; font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.cs-press { display: flex; align-items: center; gap: 64px; padding: 40px var(--g); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cs-press .cs-label { white-space: nowrap; font-size: 13px; }
.cs-press__logos { flex: 1; justify-content: space-between; }

/* Logos */
.cs-logos { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 56px; }
.cs-logos__item { display: inline-flex; align-items: center; height: var(--h); }
.dabu-page .cs-logos__item img.dabu-img { height: 100%; width: auto; max-width: 240px; object-fit: contain; }
.cs-strip-img img.dabu-img { width: auto !important; height: auto !important; max-width: 100%; max-height: 22px; object-fit: contain; object-position: left center; }

/* Talks */
.cs-talks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.cs-talk { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.cs-talk__thumb { position: relative; display: block; width: 100%; aspect-ratio: 428/241; overflow: hidden; background: #111; }
.cs-talk__thumb img.dabu-img { position: absolute; inset: 0; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.cs-talk__thumb::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); z-index: 1; transition: background .3s; }
button.cs-talk__thumb:hover img.dabu-img { transform: scale(1.03); }
button.cs-talk__thumb:hover::before { background: rgba(0,0,0,.2); }
.cs-play { position: absolute; z-index: 2; left: 50%; top: 50%; width: 0; height: 0; transform: translate(-40%, -50%); border-style: solid; border-width: 13px 0 13px 23px; border-color: transparent transparent transparent #fff; }
.cs-talk--sm .cs-play { border-width: 9px 0 9px 16px; }
.cs-talk__kicker { font-size: 14px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.cs-talk__title { font-size: var(--fs-card); font-weight: 500; letter-spacing: -.01em; line-height: 1.2; }
.cs-talk__desc { font-size: var(--fs-small); line-height: 1.5; color: var(--muted); }

/* ---------- Before / after ---------- */
.cs-ba { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cs-ba__item { display: flex; flex-direction: column; gap: 12px; }
.cs-ba__tag { font-size: 14px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.cs-ba__media { position: relative; overflow: hidden; border: 1px solid var(--line); background: #111; }
.cs-ba__media img.dabu-img { position: absolute; inset: 0; object-position: top center; }

/* Compare slider */
.cs-compare { position: relative; overflow: hidden; --pos: 50%; border: 1px solid var(--line); user-select: none; touch-action: pan-y; }
.cs-compare__after, .cs-compare__before { position: absolute; inset: 0; }
.cs-compare__before { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.cs-compare img.dabu-img { position: absolute; inset: 0; }
.cs-compare__handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; pointer-events: none; }
.cs-compare__handle span { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 48px; height: 48px; border-radius: 50%; background: rgba(9,9,9,.7); border: 1px solid #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; letter-spacing: 2px; }
.cs-compare__range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.cs-compare__tag { position: absolute; top: 20px; font-size: 13px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; background: rgba(9,9,9,.6); padding: 6px 10px; pointer-events: none; }
.cs-compare__tag--l { left: 20px; }
.cs-compare__tag--r { right: 20px; }

/* ---------- Viewer ---------- */
.cs-viewer__stage { position: relative; overflow: hidden; border: 1px solid var(--line); background: #111; }
.cs-viewer__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; }
.cs-viewer__slide.is-active { opacity: 1; }
.cs-viewer__slide img.dabu-img { object-fit: contain; }
.cs-viewer__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; background: rgba(9,9,9,.7) !important; border: 1px solid #fff !important; color: #fff; font-size: 19px; opacity: 0; transition: opacity .2s; z-index: 2; }
.cs-viewer__arrow--prev { left: 24px; }
.cs-viewer__arrow--next { right: 24px; }
.cs-viewer:hover .cs-viewer__arrow, .cs-viewer__arrow:focus-visible { opacity: 1; }
.cs-viewer__bar { display: flex; justify-content: flex-end; margin-top: 24px; }
.cs-viewer__count { font-size: 15px; letter-spacing: .04em; color: var(--muted); }
.cs-viewer__count b { color: #fff; font-weight: 400; }
.cs-viewer__thumbs { display: flex; gap: 8px; margin-top: 24px; overflow-x: auto; scrollbar-width: none; }
.cs-viewer__thumb { flex: 0 0 auto; width: 84px; aspect-ratio: 16/9; position: relative; border: 1px solid var(--line) !important; opacity: .6; transition: opacity .2s; overflow: hidden; }
.cs-viewer__thumb img.dabu-img { position: absolute; inset: 0; }
.cs-viewer__thumb.is-active { border-color: #fff !important; opacity: 1; }
.cs-viewer__thumb:hover { opacity: 1; }

/* ---------- Swatches ---------- */
.cs-swatches { display: grid; gap: 24px; margin-top: 4px; }
.cs-swatches--3 { grid-template-columns: repeat(3, 1fr); }
.cs-swatches--6 { grid-template-columns: repeat(6, 1fr); }
.cs-swatch { display: flex; flex-direction: column; gap: 12px; }
.cs-swatch__chip { display: block; height: 120px; border-radius: 4px; border: 1px solid rgba(255,255,255,.08); }
.cs-swatch__name { font-size: 14px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); white-space: pre-line; }

/* Feature logo (BARDA master logo) */
.cs-feature-logo { padding: 0 0 var(--sec); }
.cs-feature-logo__frame { position: relative; background: #fff; overflow: hidden; }
.cs-feature-logo__frame img.dabu-img { position: absolute; inset: 0; object-fit: contain; }
.cs-feature-logo__cap { padding: 14px var(--g) 0; display: flex; flex-direction: column; gap: 8px; }

/* Icons */
.cs-icons { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.cs-icons__item { aspect-ratio: 1; position: relative; }
.cs-icons__item img.dabu-img { position: absolute; inset: 0; object-fit: contain; }

/* Platforms (Jaunt) */
.cs-platforms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 28px; }
.cs-platform { border-top: 1px solid var(--line); padding-top: 25px; display: flex; flex-direction: column; gap: 16px; }
.cs-platform__name { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.cs-platform__sub { font-size: 15px; color: var(--muted); margin-top: -4px !important; }
.cs-platform ul { display: flex; flex-direction: column; gap: 12px; }
.cs-platform li { display: flex; align-items: center; gap: 12px; font-size: 17px; }
.dabu-page img.cs-platform__icon { width: 44px; height: 44px; flex: 0 0 44px; background: #1a1a1a; border: 1px solid #333; border-radius: 6px; padding: 10px; object-fit: contain; }

/* Venn */
.cs-venn-wrap { margin-top: 64px; }
.cs-venn { position: relative; height: clamp(280px, 38.9vw, 560px); margin-top: 24px; display: flex; justify-content: center; align-items: center; }
.cs-venn__circle { position: absolute; top: 50%; width: clamp(250px, 34.4vw, 495px); aspect-ratio: 1; border-radius: 50%; border: clamp(8px, 1vw, 14px) solid rgba(255,255,255,.35); background: rgba(255,255,255,.03); transform: translateY(-50%); display: flex; align-items: center; transition: left 1.2s cubic-bezier(.2,.7,.2,1), right 1.2s cubic-bezier(.2,.7,.2,1); }
.cs-venn__circle p { font-size: clamp(14px, 1.5vw, 22px); line-height: 1.3; color: #c9c9c9; }
.cs-venn__circle b { display: block; font-size: clamp(10px, .9vw, 13px); letter-spacing: .14em; text-transform: uppercase; color: #fff; font-weight: 600; margin-bottom: 8px; }
.cs-venn__circle--l { left: 2%; padding-left: 18%; mix-blend-mode: screen; }
.cs-venn__circle--r { right: 2%; justify-content: flex-end; text-align: right; padding-right: 18%; mix-blend-mode: screen; }
.cs-venn.is-in .cs-venn__circle--l { left: calc(50% - clamp(250px, 34.4vw, 495px) + clamp(30px, 3.2vw, 44px)); }
.cs-venn.is-in .cs-venn__circle--r { right: calc(50% - clamp(250px, 34.4vw, 495px) + clamp(30px, 3.2vw, 44px)); }
.cs-venn__center { position: relative; z-index: 2; text-align: center; font-size: clamp(12px, 1.1vw, 16px); font-weight: 600; line-height: 1.3; opacity: 0; transition: opacity .6s ease .9s; }
.cs-venn.is-in .cs-venn__center { opacity: 1; }
.cs-venn-wrap + .cs-figure { margin-top: 64px; }

/* Brand voice */
.cs-voice { font-size: clamp(48px, 6.67vw, 96px); font-weight: 600; line-height: 1.04; letter-spacing: -.04em; }

/* RSM shift */
.cs-shift { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; padding: 0 var(--g) var(--sec); }
.cs-shift__col { display: flex; flex-direction: column; gap: 20px; padding-top: 29px; }
.cs-shift__words { font-size: clamp(28px, 2.78vw, 40px); line-height: 1.25; }

/* Note box (Dolgo) */
.cs-note { padding: var(--sec) var(--g) 24px; }
.cs-note__box { border: 1px solid var(--line); padding: 29px 33px; display: flex; flex-direction: column; gap: 12px; }
.cs-note__text { font-size: var(--fs-small); color: var(--muted); line-height: 1.5; }

/* ---------- Next project ---------- */
.cs-next { position: relative; display: flex; align-items: flex-end; min-height: 480px; padding: 64px var(--g); overflow: hidden; color: #fff; text-decoration: none; }
.cs-next__bg { position: absolute; inset: 0; }
.cs-next__bg img.dabu-img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.cs-next__bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.55); transition: background .4s; }
.cs-next:hover .cs-next__bg img.dabu-img { transform: scale(1.04); }
.cs-next:hover .cs-next__bg::after { background: rgba(0,0,0,.4); }
.cs-next__inner { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 12px; }
.cs-next__title { font-size: clamp(40px, 5vw, 72px); font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.cs-next--light { color: #000; }
.cs-next--light .cs-next__bg::after { background: rgba(0,0,0,0); }
.cs-next--light .cs-label { color: rgba(0,0,0,.6); }

/* ---------- Lightbox ---------- */
.dabu-lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.94); display: flex; align-items: center; justify-content: center; padding: 64px var(--g); }
.dabu-lightbox[hidden] { display: none; }
.dabu-lightbox__frame { width: min(100%, calc((100vh - 128px) * 16 / 9)); aspect-ratio: 16/9; background: #000; }
.dabu-lightbox__frame iframe, .dabu-lightbox__frame video { width: 100%; height: 100%; border: 0; display: block; }
.dabu-lightbox__close { position: absolute; top: 24px; right: var(--g); background: none; border: 0; color: #fff; font-size: 15px; cursor: pointer; display: inline-flex; gap: 10px; align-items: center; }
.dabu-lightbox__close b { font-size: 22px; font-weight: 400; }

/* =================================================================
 * About
 * ================================================================= */
.pg-about { padding-top: 0; }
.ab-story { display: grid; grid-template-columns: 509fr 691fr; gap: 80px; padding: 0 var(--g) 24px; align-items: start; }
.ab-story__portrait { position: relative; aspect-ratio: 509/901; overflow: hidden; }
.ab-story__portrait img.dabu-img { position: absolute; inset: 0; }
.ab-story__content { display: flex; flex-direction: column; gap: 24px; }
.ab-story__content p { font-size: var(--fs-body); line-height: 1.55; }
h1.ab-story__lead { font-size: clamp(24px, 2.08vw, 30px); font-weight: 400; line-height: 1.35; letter-spacing: -.01em; }
.ab-story__sig { width: min(431px, 80%); }
.ab-story__sig img.dabu-img { height: auto; object-fit: contain; }
.ab-story__name { display: flex; flex-direction: column; gap: 6px; padding-bottom: 16px; }
.ab-story__content p.ab-story__who { font-size: 32px; font-weight: 500; letter-spacing: -.01em; line-height: 1.2; }
.ab-story__content p.ab-story__where { font-size: 16px; color: var(--muted); }

.ab-sec { padding: 44px var(--g) 80px; display: flex; flex-direction: column; gap: 32px; }
.ab-path__steps { display: grid; grid-template-columns: repeat(7, 1fr); gap: 16px; }
.ab-path__step { border-top: 1px solid var(--line); padding-top: 20px; display: flex; flex-direction: column; gap: 6px; }
.ab-path__role { font-size: 19px; font-weight: 500; line-height: 1.25; letter-spacing: -.01em; }
.ab-path__logos { gap: 12px 14px; padding: 8px 0 6px; flex-wrap: nowrap; }
.ab-path__org { font-size: 14px; line-height: 1.4; color: var(--muted); }
.ab-recog__items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ab-recog__item { border-top: 1px solid var(--line); padding-top: 20px; display: flex; flex-direction: column; gap: 14px; }
.ab-recog__item .cs-logos { height: 40px; }
.ab-recog__title { font-size: 22px; font-weight: 500; letter-spacing: -.01em; line-height: 1.25; }
.ab-recog__sub { font-size: 14px; color: var(--muted); }
.ab-press { padding-top: 0; }
.ab-press__logos { border-top: 1px solid var(--line); padding-top: 32px; justify-content: space-between; }
.logo-grid { display: grid; gap: 24px; border-top: 1px solid var(--line); padding-top: 32px; }
.logo-grid--4 { grid-template-columns: repeat(4, 1fr); }
.logo-grid--6 { grid-template-columns: repeat(6, 1fr); border-top: 0; padding-top: 0; }
.logo-grid__cell { height: 140px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 4px; display: flex; align-items: center; justify-content: center; padding: 6px; }
.logo-grid__cell--sm { height: 96px; }
.logo-grid__cell .cs-logos { justify-content: center; }
.ab-thread { padding: 80px var(--g); }
.ab-thread p { font-size: clamp(26px, 2.78vw, 40px); font-weight: 500; line-height: 1.25; letter-spacing: -.02em; max-width: 1280px; }
.ab-more__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.ab-more__card { border: 1px solid var(--line); padding: 36px 40px; display: flex; flex-direction: column; gap: 16px; transition: border-color .25s, background .25s; }
.ab-more__card:hover { border-color: #666; background: rgba(255,255,255,.02); }
.ab-more__title { font-size: clamp(22px, 1.95vw, 28px); font-weight: 500; letter-spacing: -.01em; line-height: 1.25; }
.ab-more__desc { font-size: 17px; line-height: 1.5; color: var(--muted); }
.ab-more__link { font-size: 16px; font-weight: 500; }

/* =================================================================
 * Speaking
 * ================================================================= */
.sp-hero { padding: 96px var(--g) 41px; display: flex; flex-direction: column; gap: 28px; }
.sp-hero__title { font-size: clamp(44px, 6.1vw, 88px); font-weight: 500; line-height: 1.02; letter-spacing: -.03em; max-width: 12.5em; }
.sp-hero__sub { font-size: clamp(18px, 1.67vw, 24px); line-height: 1.45; color: var(--muted); max-width: 52em; }
.sp-talks { padding: 38px var(--g) 80px; display: flex; flex-direction: column; gap: 32px; }
.sp-talks__featured { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sp-talks__more { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding-top: 32px; }
.cs-talk--feat .cs-talk__thumb { aspect-ratio: 628/353; }
.cs-talk--feat { gap: 16px; }
.cs-talk--feat .cs-talk__kicker { letter-spacing: .06em; text-transform: none; font-size: 14px; }
.cs-talk--feat .cs-talk__title { font-size: clamp(24px, 2.22vw, 32px); }
.cs-talk--sm .cs-talk__thumb { aspect-ratio: 302/170; }
.cs-talk--sm .cs-talk__kicker { font-size: 13px; letter-spacing: .04em; text-transform: none; }
.cs-talk--sm .cs-talk__title { font-size: 19px; }
.sp-sec { padding: 24px var(--g) 28px; display: flex; flex-direction: column; gap: 32px; }
.sp-topics { padding: 80px var(--g); }
.sp-chips { display: flex; flex-wrap: wrap; gap: 12px; }
.sp-chips li { border: 1px solid var(--line); border-radius: 40px; padding: 12px 20px; font-size: 16px; }
.sp-invite { border-top: 1px solid var(--line); padding: 80px var(--g); display: flex; flex-direction: column; gap: 32px; }
.sp-invite__title { font-size: clamp(36px, 3.89vw, 56px); font-weight: 500; line-height: 1.08; letter-spacing: -.02em; }
.sp-invite__sub { font-size: 20px; color: var(--muted); }
.sp-invite__link { font-size: 18px; font-weight: 500; }
.sp-invite__link:hover, .ab-more__link:hover { opacity: .75; }

/* =================================================================
 * Contact
 * ================================================================= */
.ct-body { padding: 80px var(--g) 40px; display: flex; flex-direction: column; gap: 32px; max-width: 900px; }
.ct-title { font-size: clamp(48px, 5.56vw, 80px); font-weight: 500; line-height: 1.02; letter-spacing: -.03em; max-width: 7em; }
.ct-email { font-size: clamp(22px, 2.22vw, 32px); }
.ct-email:hover { opacity: .75; }
.ct-links { display: flex; flex-direction: column; gap: 14px; padding-top: 16px !important; }
.ct-links li { display: flex; gap: 16px; align-items: baseline; flex-wrap: wrap; }
.ct-links a { font-size: 17px; font-weight: 500; }
.ct-links span { font-size: 15px; color: var(--muted); }
.ct-note { font-size: 15px; color: var(--muted); }

/* =================================================================
 * Home additions
 * ================================================================= */
.dabu-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.dabu-hero .wp-block-cover__background { z-index: 1; }
.dabu-hero .wp-block-cover__inner-container { z-index: 2; }
.dabu-tile { position: relative; }
.dabu-tile__link { position: absolute; inset: 0; z-index: 5; }
.dabu-tile .wp-block-cover__inner-container { position: static; }
.dabu-tile .wp-block-cover__inner-container > *:not(.dabu-tile__link) { position: relative; z-index: 2; }

/* =================================================================
 * Responsive
 * ================================================================= */
@media (max-width: 1100px) {
	.cs-meta { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
	.cs-statement { grid-template-columns: 200px 1fr; gap: 40px; }
	.cs-split { gap: 48px; }
	.ab-path__steps { grid-template-columns: repeat(4, 1fr); row-gap: 32px; }
	.logo-grid--6 { grid-template-columns: repeat(4, 1fr); }
	.cs-press { flex-direction: column; align-items: flex-start; gap: 24px; }
	.cs-press__logos { width: 100%; }
	.sp-talks__more { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 781px) {
	.dabu-bar { padding: 20px var(--g); }
	.dabu-bar--home { padding: 20px var(--dabu-gutter, 20px); }
	.cs-hero { min-height: 640px; min-height: 88svh; padding-top: 100px; padding-bottom: 32px; }
	.cs-hero__inner { gap: 14px; }
	.rsm-hero-bg img.rsm-hero-bg__mark { left: 20%; top: -2%; width: 160%; }
	.cs-meta { grid-template-columns: 1fr 1fr; gap: 24px 20px; padding: 28px var(--g); }
	.cs-meta__value { font-size: 15px; }
	.cs-meta__label { font-size: 11px; }
	.cs-split, .cs-split--wide { grid-template-columns: 1fr; gap: 28px; padding: 48px var(--g); }
	.cs-split--roomy { padding: 64px var(--g); }
	.cs-split__frame { aspect-ratio: 350/260 !important; }
	.cs-split--wide .cs-split__frame, .dabu-page-operation-ajax .cs-split__frame { aspect-ratio: 1 !important; }
	.cs-partners { grid-template-columns: 1fr; gap: 16px; }
	.cs-partner { display: grid; grid-template-columns: 72px 1fr; column-gap: 16px; row-gap: 4px; padding-top: 16px; border-top: 1px solid var(--line); align-items: center; }
	.dabu-page img.cs-partner__logo { width: 72px; height: 72px; grid-row: span 2; }
	.cs-ps { grid-template-columns: 1fr; gap: 32px; padding-bottom: 64px; }
	.cs-media { aspect-ratio: 4/3 !important; }
	.cs-media--fade-top { aspect-ratio: 3/4 !important; }
	.cs-statement, .cs-statement--roomy, .cs-statement--top { grid-template-columns: 1fr; gap: 20px; padding: 64px var(--g); }
	.cs-statement--flush { padding: 0 var(--g) 48px; }
	.cs-statement__content { gap: 20px; }
	.cs-block { padding: 0 var(--g) 56px; }
	.cs-block--roomy { padding: 64px var(--g); }
	.cs-block__head { gap: 16px; margin-bottom: 28px; }
	.cs-cards--2, .cs-cards--3 { grid-template-columns: 1fr; gap: 32px; }
	.cs-cards--4 { grid-template-columns: 1fr 1fr; gap: 12px; }
	.cs-cards--refs { grid-template-columns: 1fr; gap: 12px; }
	.cs-mosaic { grid-template-columns: 1fr; }
	.cs-numbers--3, .cs-numbers--4 { grid-template-columns: 1fr 1fr; gap: 32px 16px; }
	.cs-numbers--roomy { padding-top: 64px; }
	.cs-sources { padding-bottom: 64px; }
	.cs-steps { grid-template-columns: 1fr; gap: 24px; }
	.cs-quote { padding: 80px var(--g); }
	.cs-quote blockquote { gap: 24px; }
	.cs-press__logos { gap: 20px 32px; justify-content: flex-start; }
	.cs-logos { gap: 16px 32px; }
	.cs-talks { grid-template-columns: 1fr; gap: 40px; }
	.cs-ba { grid-template-columns: 1fr; gap: 28px; }
	.cs-compare { aspect-ratio: 4/3 !important; }
	.cs-viewer__arrow { opacity: 1; width: 40px; height: 40px; }
	.cs-viewer__arrow--prev { left: 10px; }
	.cs-viewer__arrow--next { right: 10px; }
	.cs-viewer__thumbs { display: none; }
	.cs-swatches--3, .cs-swatches--6 { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
	.cs-swatch__chip { height: 72px; }
	.cs-swatch__name { font-size: 11px; letter-spacing: .06em; }
	.cs-icons { grid-template-columns: repeat(3, 1fr); gap: 12px; }
	.cs-platforms { grid-template-columns: 1fr; gap: 28px; }
	.cs-venn { height: 300px; }
	.cs-venn__circle { width: 220px; border-width: 6px; }
	.cs-venn__circle--l { left: -8%; padding-left: 16%; }
	.cs-venn__circle--r { right: -8%; padding-right: 16%; }
	.cs-venn.is-in .cs-venn__circle--l { left: calc(50% - 190px); }
	.cs-venn.is-in .cs-venn__circle--r { right: calc(50% - 190px); }
	.cs-venn__circle p { font-size: 13px; }
	.cs-venn__center { font-size: 11px; max-width: 70px; }
	.cs-shift { grid-template-columns: 1fr; gap: 28px; padding-bottom: 64px; }
	.cs-note { padding: 64px var(--g); }
	.cs-next { min-height: 300px; padding: 40px var(--g); }
	.cs-feature-logo { padding-bottom: 64px; }
	.cs-feature-logo__frame { aspect-ratio: 4/3 !important; }
	.cs-figure__frame[style*="1280/400"] { aspect-ratio: 16/9 !important; }
	.cs-badge { flex-wrap: wrap; gap: 16px; }
	.dabu-foot { flex-direction: column; align-items: flex-start; padding: 32px var(--g); margin-top: 64px; }
	.dabu-foot__links { gap: 20px; }

	/* About */
	.ab-story { grid-template-columns: 1fr; gap: 32px; }
	.ab-story__portrait { aspect-ratio: 4/5; }
	.ab-path__steps { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
	.ab-path__logos { flex-wrap: wrap; }
	.ab-recog__items { grid-template-columns: 1fr; gap: 28px; }
	.ab-press__logos { justify-content: flex-start; gap: 24px 36px; }
	.logo-grid--4 { grid-template-columns: 1fr 1fr; gap: 12px; }
	.logo-grid--6 { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.logo-grid__cell { height: 100px; }
	.logo-grid__cell--sm { height: 72px; }
	.logo-grid__cell .cs-logos__item { transform: scale(.8); }
	.ab-sec { padding: 32px var(--g) 48px; gap: 24px; }
	.ab-thread { padding: 48px var(--g); }
	.ab-more__cards { grid-template-columns: 1fr; }
	.ab-more__card { padding: 28px 24px; }

	/* Speaking */
	.sp-hero { padding-top: 48px; gap: 20px; }
	.sp-talks { padding-top: 20px; padding-bottom: 48px; }
	.sp-talks__featured { grid-template-columns: 1fr; gap: 40px; }
	.sp-talks__more { grid-template-columns: 1fr 1fr; gap: 28px 16px; padding-top: 16px; }
	.cs-talk--sm .cs-talk__title { font-size: 16px; }
	.sp-topics, .sp-invite { padding: 56px var(--g); }

	/* Contact */
	.ct-body { padding-top: 48px; gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.rsm-hero-bg img.rsm-hero-bg__mark { animation: none; }
	.cs-venn__circle, .cs-venn__center, .dabu-menu-overlay__links a { transition: none; }
}
