:root{--panel:#e6ecdc;--onaccent:#fff;--accent-soft:#e0e9d4;--banner:#244f41;--banner-text:#d6e8b2}
:root[data-theme=clay]{--paper:#faf3eb;--white:#fffaf5;--ink:#382b25;--green:#924627;--muted:#756257;--line:#e3d4c6;--panel:#f0e0ce;--accent-soft:#f2ddc9;--banner:#603424;--banner-text:#ffdbb0}
:root[data-theme=midnight]{--paper:#0d1917;--white:#14231f;--ink:#f0f4ec;--green:#9dddb8;--muted:#b5c6bb;--line:#32483e;--panel:#20382d;--onaccent:#10291d;--accent-soft:#284236;--banner:#1c382c;--banner-text:#c2ecd0;color-scheme:dark}
:root[data-theme=violet]{--paper:#11111d;--white:#1b1b2c;--ink:#f2f0fa;--green:#b8adff;--muted:#c0bcd1;--line:#38354f;--panel:#2b2941;--onaccent:#211a42;--accent-soft:#35304c;--banner:#29223e;--banner-text:#e0d5ff;color-scheme:dark}
.palette-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.palette-label{font-size:10px;letter-spacing:1.6px;color:var(--muted)}.palette-options{display:flex;gap:8px;flex-wrap:wrap}.palette-options button{background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:24px;display:flex;align-items:center;gap:9px;padding:9px 14px;font-size:12px;min-height:42px}.palette-options button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.palette-options i{width:13px;height:13px;border-radius:50%;background:var(--swatch);border:1px solid #ffffff50}.palette-status{margin-left:auto;font-size:12px;color:var(--muted)}
/* Readable body type across every palette. */
nav{font-size:14px}.wordmark-sub{font-size:9px}.eyebrow{font-size:11px}.hero-intro{font-size:18px}.hero-position{font-size:13px}.button{font-size:14px}.text-link{font-size:12px}.hero-actions{flex-wrap:wrap}.proof-strip p,.proof-strip .proof-note{font-size:12px}.proof-strip strong span{font-size:17px}.section-intro{font-size:15px;max-width:355px}.filter{font-size:13px;min-height:44px}.results-count{font-size:12px}.project-meta{font-size:10px;flex-wrap:wrap}.project-body h3{font-size:24px}.project-description{font-size:14px}.project-result{flex-wrap:wrap;gap:5px 10px;padding-bottom:10px}.project-result strong{font-size:24px}.project-result span{font-size:12px}.case-button{font-size:13px;min-height:44px}.work-note{font-size:12px}.about-copy>p:not(.eyebrow){font-size:16px}.about-copy>p.bio-lead{font-size:20px}.education h3{font-size:15px}.education p{font-size:12px}.education .tiny-label{font-size:10px}.skill-block h3{font-size:15px}.skills span{font-size:12px}.timeline-heading h3{font-size:19px}.timeline-heading .tiny-label,.timeline-date{font-size:11px}.timeline p,.timeline p.role{font-size:14px}.timeline h4{font-size:24px}.current-pill{font-size:8px}.writing-heading>p:last-child{font-size:15px}.link-list strong{font-size:18px}.link-list .tiny-label{font-size:10px}.link-description{font-size:12px}.contact-block p:not(.eyebrow){font-size:14px}.contact-block .eyebrow{font-size:10px}footer{font-size:11px}.footer-name{font-size:15px}.case-eyebrow{font-size:11px}.case-content-block h3{font-size:12px}.case-content-block p,.case-content-block li{font-size:15px}.case-metrics span{font-size:13px}.case-source{font-size:11px}
.company-strip{gap:18px;flex-wrap:wrap}.company-strip>.company-name{display:flex;align-items:center;gap:9px;font-family:var(--sans);font-size:17px}.company-strip>span{font-size:10px}.company-badge{display:inline-grid;place-content:center;width:37px;height:37px;flex-shrink:0;border:1px solid var(--line);border-radius:9px;background:var(--accent-soft);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:0;color:var(--green)}.timeline h4{display:flex;align-items:center;gap:12px}.timeline h4 .company-badge{width:32px;height:32px;font-size:10px}
.essays-block{border-top:1px solid var(--line);padding:40px 0 60px}.essays-block h3{font-size:28px;font-weight:500;letter-spacing:-.7px;margin:14px 0}.essays-block>div>p:last-child{font-size:15px;color:var(--muted)}.essays-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;margin-top:22px}.essay-link{border-bottom:1px solid var(--line);padding:20px 28px 20px 0;position:relative;display:flex;flex-direction:column;gap:8px}.essay-date{font-size:11px;color:var(--muted)}.essay-link strong{font-size:16px;font-weight:500;line-height:1.6}.essay-link>span:last-child{position:absolute;right:0;top:42px;color:var(--green)}.essay-link:hover strong{color:var(--green)}
/* Semantic palette colors cover content, controls, dialogs, and navigation. */
.work-section,.project-card,.case-takeaway{background:var(--white)}.work-section,.project-card,.project-result,.case-button,.project-body,.filter{border-color:var(--line)}.hero-intro,.hero-position,.company-strip,.section-intro,.project-meta,.project-description,.project-result span,.work-note,.about-copy>p:not(.eyebrow),.education p,.timeline-date,.timeline p,.timeline p.role,.writing-heading>p:last-child,.link-description,.link-list .tiny-label,footer,.case-summary,.case-content-block p,.case-content-block li,.case-source,.case-metrics span{color:var(--muted)}.about-copy>p.bio-lead,.case-takeaway p{color:var(--ink)}.skills span,.link-symbol,.education .tiny-label,.case-content-block h3,.case-takeaway strong,.case-eyebrow,.back-top{color:var(--green);border-color:var(--line)}.education-mark,.current-pill{background:var(--accent-soft);color:var(--green)}.button.primary,.filter.active,.monogram{background:var(--green);color:var(--onaccent)}.filter:hover{background:var(--accent-soft);color:var(--ink)}.filter.active:hover{background:var(--green);color:var(--onaccent)}.button.primary:hover{background:var(--green);filter:brightness(1.07)}.contact-block{background:var(--banner)}.contact-block h2 em{color:var(--banner-text)}.contact-button{background:var(--banner-text);color:var(--banner)}.contact-button:hover{background:var(--banner-text);filter:brightness(1.06)}dialog,.dialog-close{background:var(--paper);color:var(--ink);border-color:var(--line)}.dialog-close:hover,.case-metrics{background:var(--panel)}.timeline li{border-color:var(--line)}.timeline li:last-child{border-color:transparent}.timeline li:before{background:var(--muted);border-color:var(--paper)}.timeline li.current:before{background:var(--green);box-shadow:0 0 0 3px var(--accent-soft)}.case-source{border-color:var(--line)}.case-takeaway{border-color:var(--green)}.skills span,.link-symbol,.text-link{border-color:var(--line)}
:root[data-theme=clay] .hero-art,:root[data-theme=clay] .project-art{filter:hue-rotate(305deg) saturate(.7)}:root[data-theme=violet] .hero-art,:root[data-theme=violet] .project-art{filter:hue-rotate(135deg) saturate(.75)}
@media(max-width:850px){.filter-row{flex-wrap:wrap}.company-strip{justify-content:center}.company-strip>span{width:100%;text-align:center}.hero-intro{font-size:16px}.section-top{align-items:start}.section-intro{max-width:285px}.project-body h3{font-size:22px}.about-layout,.writing-block{gap:35px}.timeline-date{flex-wrap:wrap}.contact-block{flex-wrap:wrap}.palette-status{display:none}}
@media(max-width:650px){nav{background:var(--white);border-color:var(--line)}.menu-toggle{border-color:var(--line)}.menu-toggle span{background:var(--green)}.nav-contact{border-color:var(--line)}.palette-bar{gap:10px;padding:12px 0}.palette-label{width:100%;font-size:9px}.palette-options{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.palette-options button{font-size:11px;padding:9px 10px}.hero-main{padding-top:28px}.hero-intro{font-size:16px}.hero-position{font-size:12px}.proof-strip strong span{font-size:12px}.proof-strip p{font-size:11px;padding-right:4px}.proof-strip strong{font-size:26px}.proof-strip{align-items:start}.company-strip>.company-name{font-size:14px}.company-badge{width:31px;height:31px;font-size:10px}.section-intro{max-width:none;font-size:15px}.filter{font-size:12px;padding:9px 12px}.project-description{font-size:15px}.project-body h3{font-size:25px}.project-result span{font-size:13px}.work-note{font-size:11px}.about-copy>p:not(.eyebrow){font-size:16px}.about-copy>p.bio-lead{font-size:19px}.education h3{font-size:14px}.education p{font-size:11px}.skills span{font-size:12px}.timeline p,.timeline p.role{font-size:14px}.timeline-date{font-size:10px}.link-list strong{font-size:17px}.link-list .tiny-label{font-size:9px}.link-description{font-size:12px}.essays-grid{grid-template-columns:1fr}.essays-block h3{font-size:26px}.contact-block .eyebrow{font-size:9px}.contact-block p:not(.eyebrow){font-size:14px}.contact-block h2{font-size:30px}.contact-button{white-space:normal;font-size:13px;gap:18px}footer{font-size:10px}.case-content-block p,.case-content-block li{font-size:14px}.case-metrics{flex-wrap:wrap}.case-metrics span{font-size:12px}.case-source{font-size:11px}}
