/* Futura Bold is resolved from the visitor's installed font. No system font
   file is redistributed; a licensed webfont can replace this local source. */
@font-face{font-family:'TMNC Futura';src:local('Futura-Bold'),local('Futura Bold');font-weight:700;font-style:normal;font-display:swap}
:root{--brand-display:'TMNC Futura','Futura','Hanken Grotesk',sans-serif}
body h1,body h2,body h3,body .pwyw-price,body .proof-result strong{font-family:var(--brand-display);font-weight:700;font-style:normal;letter-spacing:-.04em}
body .lockup-full,body .foot-lockup,body .lockup-short{font-family:var(--brand-display)}
body .dusk-hero h1{font-family:var(--brand-display);font-weight:700;font-size:clamp(2.2rem,3.6vw,3.5rem);line-height:1.12;letter-spacing:-.045em;text-wrap:initial}
body .dusk-hero h1 span{color:#969696}
body .journey-panel h2{font-weight:700;font-size:28px;letter-spacing:-.04em}
body .dusk-section-heading h2,body .dusk-proof h2,body .dusk-audit h2,body .journey-section-intro h2{font-weight:700;letter-spacing:-.04em}
body .dusk-service-list h3{font-weight:700;font-size:22px}
body .proof-feature h3{font-weight:700;font-size:28px}
body .proof-result h3{font-size:14px;line-height:1.4}
body .scene-caption h2{font-size:24px;font-weight:700}
.scene-controls button{padding-inline:13px;font-size:11px}
.campaign-showcase{padding-block:100px 90px}
.campaign-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:40px}
.campaign-heading h2{font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.12;letter-spacing:-.045em}
.campaign-heading>div:last-child{max-width:34ch}.campaign-heading>div:last-child>p{font-size:15px;color:#aaa;line-height:1.7;margin-bottom:14px}
.campaign-tabs{display:flex;align-items:center;gap:32px;border-bottom:1px solid #333;margin-bottom:22px}
.campaign-tabs button{display:flex;align-items:center;gap:12px;min-height:62px;border-bottom:2px solid transparent;color:#aaa;font-size:15px;text-align:left;transition:color .2s,border-color .2s}
.campaign-tabs button span{font:11px var(--mono);color:#888}.campaign-tabs button[aria-selected=true]{color:#fff;border-color:#fff}.campaign-tabs button:hover{color:#fff}
.campaign-art{display:block;background:#171717;overflow:hidden;border-radius:5px}.campaign-art img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;transition:filter .25s}.campaign-art:hover img{filter:brightness(.9)}
.campaign-caption{display:grid;grid-template-columns:1fr 1fr auto;align-items:start;gap:30px;margin-top:24px}.campaign-caption h3{font-size:22px;line-height:1.3;margin-bottom:7px}.campaign-caption p{font-size:13px;color:#aaa;line-height:1.6}.campaign-caption span{font-size:12px;display:block;color:#ddd;margin-bottom:8px}.campaign-caption>a{font-size:13px;text-decoration:underline;text-underline-offset:5px;min-height:44px;display:flex;align-items:center}.campaign-note{font-size:11px;color:#999;margin-top:28px}
@media(max-width:1100px){body .dusk-hero h1{font-size:clamp(2.1rem,3.5vw,3rem)}.campaign-heading{gap:35px}.campaign-heading h2{font-size:34px}.campaign-caption{gap:20px}.scene-controls button{font-size:10px;padding-inline:12px}}
@media(max-width:760px){body .dusk-hero h1{font-size:clamp(2rem,7.4vw,3.4rem);line-height:1.17;letter-spacing:-.045em}.campaign-showcase{padding-block:60px}.campaign-heading{display:block;margin-bottom:25px}.campaign-heading h2{font-size:32px}.campaign-heading>div:last-child{max-width:48ch;margin-top:22px}.campaign-tabs{gap:24px}.campaign-tabs button{font-size:13px;gap:8px}.campaign-caption{grid-template-columns:1fr auto;gap:18px}.campaign-caption>div:nth-child(2){grid-column:1;grid-row:2}.campaign-caption>a{grid-column:2;grid-row:1}.campaign-note{font-size:10px}.scene-controls button{font-size:10px;padding-inline:13px}.campaign-art img{aspect-ratio:2/1;object-fit:contain}body .dusk-section-heading h2,body .dusk-proof h2,body .dusk-audit h2,body .journey-section-intro h2{font-size:32px}}
@media(max-width:400px){.campaign-tabs{gap:16px}.campaign-tabs button{font-size:12px}.campaign-tabs button span{display:none}.campaign-heading h2{font-size:27px}.campaign-caption h3{font-size:19px}.scene-controls button{font-size:9px;padding-inline:11px}body .scene-caption h2{font-size:20px}body .proof-feature h3{font-size:24px}}

/* One founder profile combines the introduction and professional background. */
.founder-profile{display:grid;grid-template-columns:minmax(0,310px) minmax(0,1fr);gap:clamp(36px,7vw,100px);align-items:start;margin-top:32px}
.founder-profile .person h2{font-size:26px;line-height:1.2;margin-bottom:8px}
.founder-story{display:grid;gap:20px;max-width:65ch}
.founder-story h3{font-size:clamp(1.5rem,2.7vw,2.3rem);line-height:1.2;margin-bottom:4px}
.founder-story p{line-height:1.75;color:var(--muted)}
.founder-links{display:flex;flex-wrap:wrap;gap:8px 28px}
@media(max-width:760px){.founder-profile{grid-template-columns:1fr;gap:32px}.founder-story h3{font-size:26px}}

/* Source-backed breakdowns: vector marks with permanent HTML labels. */
.report-breakdown{margin:36px 0 0;padding-top:28px;border-top:1px solid var(--rule)}
.report-breakdown figcaption{margin-bottom:26px}
.report-breakdown figcaption .label{font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.report-breakdown h3{font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.25;margin:10px 0 7px}
.report-breakdown figcaption p{font-size:13px;color:var(--muted)}
.breakdown-rows{list-style:none;display:grid;gap:22px;padding:0}
.breakdown-label{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:10px;font-size:14px}
.breakdown-label>span{display:inline-flex;align-items:center;gap:10px}
.breakdown-label strong{font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink)}
.breakdown-label small{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:48px;text-align:right}
.breakdown-key{width:8px;height:8px;border-radius:50%;display:inline-block}
.breakdown-key.paid{background:var(--cobalt)}.breakdown-key.organic{background:var(--orange)}
.breakdown-bar{display:block;width:100%;height:14px;overflow:visible}
.breakdown-track{fill:#242424}.breakdown-bar .paid{fill:var(--cobalt)}.breakdown-bar .organic{fill:var(--orange)}
.breakdown-note{font-size:12px!important;line-height:1.6!important;color:var(--muted);margin-top:20px;max-width:65ch}
@media(max-width:400px){.breakdown-label{font-size:13px}.breakdown-label>span{gap:6px}.breakdown-label strong{font-size:14px}.breakdown-label small{min-width:42px;font-size:11px}}

/* Portfolio boards retain their full composition; categories describe the work. */
.portfolio-gallery{gap:44px 30px}.portfolio-gallery .project[hidden]{display:none}
.portfolio-gallery .card{display:block;width:100%;text-align:left}
.portfolio-gallery .card-art{aspect-ratio:16/9;background:#171717}
.portfolio-gallery .card-art img{display:block;width:100%;height:100%;object-fit:contain;transform:none!important;filter:none}
.portfolio-gallery .card-row{padding-top:17px;display:block}
.portfolio-gallery h2{font-size:24px;line-height:1.2;margin-bottom:7px}
.portfolio-gallery .card-meta{font-size:14px;line-height:1.5;display:block}
.gallery-context{display:block;font-size:11px;color:#999;margin-top:8px}
.gallery-status{color:var(--muted);font-size:13px;margin:22px 0}
body[data-page=work] .filters{flex-wrap:wrap;gap:8px}
body[data-page=work] .filters button{min-height:44px;font-size:13px;padding:10px 14px}
#project-dialog .stage{height:auto;max-height:none;background:#111}
#project-dialog .stage img{width:100%;height:auto;max-height:70vh;object-fit:contain}
#project-dialog .dlg-ctrl[hidden]{display:none}
.client-wordmark{display:grid;text-align:center;color:#aaa;line-height:1;gap:3px}
.client-wordmark b{font-family:Georgia,serif;font-size:32px;font-weight:400}
.client-wordmark>span{font-family:Georgia,serif;font-size:12px}
@media(max-width:760px){.portfolio-gallery{grid-template-columns:1fr;gap:34px}.portfolio-gallery h2{font-size:22px}.dusk-logos{row-gap:34px}.client-wordmark b{font-size:25px}.client-wordmark>span{font-size:10px}}
.ages-wordmark{display:grid;justify-items:center;gap:6px}.dusk-logos .ages-wordmark img{filter:grayscale(1);background:#fff;padding:3px;width:64px;height:42px;opacity:.85}.ages-wordmark>span{font-size:8px;line-height:1.3;color:#aaa;text-align:center}

/* One continuous row; manual scrolling for reduced-motion and no-JS visitors. */
.client-conveyor{overflow-x:auto;margin-top:28px;max-width:100%;scrollbar-width:thin}
.client-track{display:flex;width:max-content}
.client-track .dusk-logos{display:flex;flex-wrap:nowrap;gap:44px;margin:0;padding:12px 44px 12px 0;width:max-content}
.client-track .dusk-logos>img,.client-track .dusk-logos>span{flex:0 0 130px;width:130px}
.client-conveyor.is-moving{overflow:hidden}
.client-conveyor.is-moving .client-track{animation:client-conveyor 48s linear infinite}
.client-conveyor:hover .client-track,.client-conveyor:focus-within .client-track,.client-conveyor.is-paused .client-track{animation-play-state:paused}
.client-motion{font-size:12px;color:#bcbcbc;min-height:44px;margin-top:12px;text-decoration:underline;text-underline-offset:4px}
@keyframes client-conveyor{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.client-conveyor.is-moving{overflow-x:auto}.client-conveyor.is-moving .client-track{animation:none}.client-track .logo-copy{display:none}}
