@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url('/assets/manrope.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('/assets/dm-sans.ttf') format('truetype')}
:root{--bg:#141119;--panel:#1e1b23;--ink:#faf7fd;--muted:#b9b6bd;--accent:#eab66a;--line:#3a3640;--paper:#f8f6fb;--dark:#302a38;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:6px}p{margin:0 0 1.1rem;color:var(--muted)}h1,h2,h3{font-family:'Manrope',Arial,sans-serif;font-weight:600;line-height:1.12;letter-spacing:-.045em;margin:0 0 1.3rem}h1{font-size:clamp(3.4rem,6.25vw,6rem)}h2{font-size:clamp(2.25rem,4.2vw,3.8rem)}h3{font-size:1.65rem}h2 span{color:var(--muted)}em{font-style:normal;color:var(--accent)}ul{padding-left:1.2rem}li{padding-left:.1rem}a:hover{color:var(--accent)}.wrap{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.section{padding-block:100px}.eyebrow,.mini-label{font:500 11px/1.6 'DM Sans',Arial,sans-serif;letter-spacing:.15em;color:var(--accent);text-transform:uppercase;margin-bottom:1.6rem}.lead{font-size:1.25rem;line-height:1.6;color:var(--ink)}.caption,.fine{font-size:.8rem;color:var(--muted);line-height:1.65}.caption{margin-top:24px}.skip{position:fixed;top:-100px;left:16px;padding:10px 20px;background:var(--accent);color:var(--bg);z-index:100}.skip:focus{top:16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.header{background:rgba(48,42,56,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.nav{display:flex;align-items:center;min-height:86px;gap:24px}.brand{font-family:'Manrope',Arial,sans-serif;font-size:2rem;font-weight:800;letter-spacing:-.1em;line-height:1}.brand span{color:var(--accent)}.brand-caption{font-size:9px;letter-spacing:.12em;max-width:100px;line-height:1.5;color:var(--muted)}.nav nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:13px}.nav nav>a[aria-current]{color:var(--accent)}.nav-cta{border:1px solid #60576f;border-radius:30px;padding:9px 18px}.nav-cta:hover{border-color:var(--accent)}.menu-toggle{display:none}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;padding:13px 23px;border-radius:5px;border:1px solid transparent;font-size:13px;font-weight:700;line-height:1.5;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.accent{background:var(--accent);color:#1c1822}.accent:hover{background:#f2c789;color:#19161f}.outline{border-color:#56525e;color:var(--ink);background:transparent}.outline:hover{background:#2a2630;color:var(--accent)}.dark{background:var(--dark);color:var(--ink)}.dark:hover{background:#3c3547;color:white}.text-link{font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:6px;text-decoration-color:#787381;display:inline-block}.text-link:hover{text-decoration-color:var(--accent)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--accent);margin-right:8px;vertical-align:2px;box-shadow:0 0 0 5px #eab66a0d}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:70px;padding-block:90px 72px;align-items:center}.hero h1{font-size:clamp(3.2rem,5.4vw,5.3rem);letter-spacing:-.065em;margin-bottom:25px}.hero .lead{max-width:510px;margin-bottom:18px}.hero-description{font-size:14px;max-width:490px;margin-bottom:30px}.hero-aside{padding-top:30px}.signal{background:linear-gradient(135deg,#2b2731,#1a1620);padding:28px 24px 16px;border:1px solid #433d4d;border-radius:12px;overflow:hidden;position:relative}.signal-top{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:var(--muted)}.signal-top>span+span{font-size:25px;color:var(--accent);line-height:1}.signal svg{width:100%;height:auto;margin:35px 0 20px;display:block;overflow:visible}.signal .grid{stroke:#5b516d;opacity:.18;stroke-width:1}.signal .line-muted{stroke:#8c77af;opacity:.25;stroke-width:1.5}.signal .line-bright{stroke:var(--accent);stroke-width:2.5}.signal circle{stroke:var(--accent);fill:var(--panel);stroke-width:2.5}.signal-labels{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:10px;border-top:1px solid #433d4d;padding-top:18px}.signal-labels small{display:block;font-size:8px;letter-spacing:.12em;color:#a49fac}.signal-labels strong{font-size:10px;font-weight:500;display:block;color:#e1dcea;margin-top:6px}.diagram-note{font-size:8px;margin:19px 0 0;opacity:.7;letter-spacing:.02em}.expert-card{padding:26px 4px 0}.expert-card .mini-label{font-size:9px;color:#8f8a97}.expert-card p{margin-block:10px 14px;font-size:15px}.expert-card strong{color:var(--ink);font-weight:500}.expert-card a{font-size:12px;color:var(--accent)}.tool-strip{border-block:1px solid var(--line);background:#19161e}.tool-strip>.wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:21px}.tool-strip span{font-size:9px;letter-spacing:.16em;color:#90899b}.tool-strip p{font-size:15px;margin:0;color:var(--ink)}.tool-strip b{color:#695e7b;font-size:12px;margin-inline:14px}.section-heading{max-width:740px;margin-bottom:45px}.section-heading>p:not(.eyebrow){max-width:650px;font-size:15px}.section-heading.split{max-width:none;display:grid;grid-template-columns:1.35fr 1fr;gap:90px;align-items:end}.split>p{padding-bottom:8px}.section-heading h2{margin-bottom:24px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service{padding:34px 27px 32px 0;display:flex;flex-direction:column}.service+.service{padding-left:30px;border-left:1px solid var(--line)}.service-no{color:var(--accent);font-size:11px;margin-bottom:30px}.service h3{font-size:1.75rem;letter-spacing:-.04em}.service>p{font-size:14px}.service ul{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 26px;padding-left:18px}.service li{margin-bottom:9px}.service .deliverable{font-size:12px;border-top:1px solid var(--line);padding-top:19px;margin-top:auto}.deliverable strong{color:#e0dce7;font-weight:500}.service .text-link{font-size:12px;margin-top:10px}.additional{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:30px;padding:25px 30px;background:#211d27;border-radius:6px}.additional p{margin:0;font-size:13px;max-width:650px}.additional strong{color:var(--ink);font-weight:500}.additional a{white-space:nowrap;font-size:12px}.light-section{background:var(--paper);color:var(--dark)}.light-section p{color:#58545e}.light-section .eyebrow{color:#4b3e60}.light-section h2 span{color:#746e7e}.light-section a:hover{color:#3a265c}.featured{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #c2bec9}.featured article{padding:34px 28px 30px 0;display:flex;flex-direction:column}.featured article+article{padding-left:28px;border-left:1px solid #c2bec9}.featured .eyebrow{font-size:9px;letter-spacing:.1em;min-height:26px}.featured h3{font-size:1.9rem}.featured p:not(.eyebrow){font-size:14px}.featured a{margin-top:auto;font-size:12px}.section-bottom{display:flex;align-items:center;gap:40px;justify-content:space-between;padding-top:30px}.section-bottom p{font-size:12px;margin:0;max-width:520px}.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;gap:35px}.steps li{padding:0;border-top:1px solid var(--line);padding-top:22px}.steps span{font-size:10px;color:var(--accent)}.steps h3{font-size:1.35rem;margin-top:24px}.steps p{font-size:13px}.contact-section{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;padding:60px;background:#221e28;border:1px solid #3e384a;border-radius:12px}.contact-section h2{font-size:clamp(2.5rem,4vw,3.7rem)}.contact-section p{font-size:14px;max-width:400px}.contact-direct{display:flex;align-items:flex-start;gap:22px;flex-direction:column;margin-top:30px}.contact-section form{display:flex;flex-direction:column;background:#1a171f;padding:28px;border:1px solid #383242;border-radius:8px}.contact-section h3{font-size:1.2rem;letter-spacing:-.02em}.contact-section label{font-size:11px;margin-bottom:8px;color:var(--muted)}.contact-section select,.contact-section textarea{min-width:0;width:100%;background:#24202b;border:1px solid #534c5e;padding:12px;color:var(--ink);border-radius:4px;margin-bottom:20px;font-size:12px}.contact-section textarea{resize:vertical;min-height:110px}.contact-section textarea::placeholder{color:#a39eab}.contact-section .fine{font-size:10px;margin:15px 0 0}.hire-strip{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:45px 70px}.hire-strip p{font-size:13px;margin:0}.hire-strip .eyebrow{font-size:9px;margin-bottom:9px}.hire-strip .button{font-size:12px}.footer{display:flex;justify-content:space-between;gap:40px;padding-block:38px;border-top:1px solid var(--line);align-items:center}.footer>div:first-child{display:flex;gap:30px;align-items:center}.footer p{font-size:10px;margin:0}.footer-links{display:flex;gap:22px;font-size:11px}.footer>.fine{font-size:9px;line-height:1.8}
.portfolio-hero{padding-block:80px 70px}.portfolio-hero h1{font-size:clamp(4.5rem,9.2vw,9rem);letter-spacing:-.075em;line-height:1.02;margin-bottom:45px}.outline-name{-webkit-text-stroke:1px #c7c0d2;color:transparent}.portfolio-intro{display:grid;grid-template-columns:1.45fr 1fr;gap:100px;align-items:center}.portfolio-intro h2{font-size:2rem;letter-spacing:-.04em;line-height:1.25}.portfolio-intro .lead{font-size:1.2rem;max-width:570px}.portfolio-intro p:not(.lead){font-size:14px;max-width:560px}.portfolio-intro .actions{margin-top:30px}.socials{display:flex;gap:24px;font-size:12px;margin-top:26px}.profile-note{border-left:1px solid #675585;padding:20px 0 20px 32px}.profile-note h3{font-size:1.5rem}.profile-note p.eyebrow{font-size:10px}.profile-note p.fine{font-size:11px;line-height:1.8}.filters{display:flex;gap:10px;margin-bottom:40px;flex-wrap:wrap}.filters button{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:30px;font-size:12px;padding:10px 20px}.filters .active{color:var(--dark);background:var(--accent);border-color:var(--accent)}.projects{display:flex;flex-direction:column;gap:58px}.project{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;border-bottom:1px solid var(--line);padding-bottom:55px;align-items:center}.project[hidden]{display:none}.project:nth-child(even) .project-visual{order:2}.project .signal{min-height:290px;padding:28px 30px 20px;transition:border-color .2s}.project-visual:hover .signal{border-color:var(--accent)}.project .signal svg{margin-block:32px 15px}.project-copy .eyebrow{font-size:9px;letter-spacing:.12em}.project-copy h3{font-size:2.4rem}.project-copy p{font-size:14px}.project-copy .tags{margin:22px 0}.tags{display:flex;gap:7px;flex-wrap:wrap;list-style:none;padding:0;margin:0}.tags li{border:1px solid #514a5c;border-radius:4px;color:#b5aec2;font-size:10px;padding:4px 9px}.project .text-link{font-size:12px}.signal-labor{background:linear-gradient(130deg,#332e3b,#1c1921)}.signal-credit{background:linear-gradient(135deg,#37333e,#1e1a24)}.signal-forecast{background:linear-gradient(135deg,#2d2737,#19161e)}.signal-territory{background:linear-gradient(135deg,#312d37,#1d1b22)}.signal-digital{background:linear-gradient(135deg,#2e2937,#1e1926)}.signal-model{background:linear-gradient(135deg,#35323a,#1d1a23)}.work-list{border-top:1px solid #b9b5c1}.work-list details{border-bottom:1px solid #b9b5c1}.work-list summary{list-style:none;display:flex;align-items:center;gap:25px;padding:27px 0}.work-list summary::-webkit-details-marker{display:none}.work-index{font-size:11px;color:#615673;width:25px}.work-list summary small{display:block;font-size:10px;color:#666070;margin-bottom:8px;letter-spacing:.04em}.work-list summary strong{font-family:'Manrope',Arial,sans-serif;letter-spacing:-.02em;font-weight:600;font-size:1.35rem}.expand{margin-left:auto;font-size:25px;font-weight:400;color:#564a6b}.work-list details[open] .expand{transform:rotate(45deg)}.work-body{padding:0 55px 30px;max-width:930px}.work-body .lead{font-size:1.1rem;color:var(--dark)}.work-body p{font-size:14px}.work-label{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#4b405d}.about{display:grid;grid-template-columns:1.35fr 1fr;gap:100px}.about p{font-size:14px}.about .lead{font-size:1.2rem}.education{background:#221f28;padding:35px;align-self:start;border-top:2px solid #8266b1}.education h3{font-size:1.4rem;line-height:1.4;margin-bottom:8px}.education p{font-size:12px}.education .eyebrow{font-size:9px}.education hr{border:0;border-top:1px solid var(--line);margin-block:25px}.education .fine{font-size:10px;margin-bottom:0}.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px}.capabilities article{border-top:1px solid var(--line);padding-top:25px}.capabilities h3{font-size:1.2rem}.capabilities p{font-size:13px}.trajectory{border-top:1px solid var(--line);padding-top:80px}.job{display:grid;grid-template-columns:230px 1fr;gap:45px;border-top:1px solid var(--line);padding-block:28px}.job-date{font-size:11px;color:#9c92ac;margin-top:3px}.job h3{font-size:1.4rem;letter-spacing:-.03em;margin-bottom:8px}.job .organization{font-size:13px;color:#d5d0de;margin-bottom:10px}.job p{font-size:13px;max-width:760px}.trajectory>.fine{margin-top:20px;font-size:10px}.github-strip{background:#292530;border:1px solid #463c56;padding:45px 50px;display:flex;align-items:center;justify-content:space-between;gap:50px;border-radius:10px}.github-strip h2{font-size:2.3rem}.github-strip p:not(.eyebrow){font-size:13px;max-width:570px;margin-bottom:0}.stack{display:flex;align-items:flex-start;gap:20px;flex-direction:column}.portfolio-contact{text-align:center;padding-block:100px}.portfolio-contact h2{font-size:3rem}.portfolio-contact .actions{justify-content:center}.case-page{padding-block:55px 80px}.back-link{font-size:12px;display:inline-block;margin-bottom:50px;color:var(--muted)}.case-page h1{max-width:900px;font-size:clamp(3rem,6vw,5rem)}.case-page>.lead{max-width:750px}.case-page>.eyebrow{margin-top:10px}.case-page>.tags{margin-top:26px}.case-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;margin-top:60px;align-items:start}.case-narrative section{margin-bottom:40px}.case-narrative h2{font-size:1.5rem;letter-spacing:-.025em;color:var(--ink)}.case-narrative p{font-size:15px}.case-narrative .stack{margin-top:25px}.case-source{padding:28px 8px 10px}.case-source p{font-size:13px}.case-source .eyebrow{font-size:9px}.case-source .fine{font-size:11px}.case-limits{border-top:1px solid var(--line);padding-top:30px}.case-limits p{font-size:13px}.case-cta{border-top:1px solid var(--line);margin-top:35px;padding-top:45px}.case-cta h2{font-size:2rem}.case-cta p{font-size:14px}
@media(min-width:1600px){.hero{padding-block:110px 90px}.hero h1{font-size:5.3rem}}
@media(max-width:1100px){.wrap{width:calc(100% - 48px)}.nav{gap:18px}.brand-caption{display:none}.nav nav{gap:23px}.hero{gap:40px;padding-top:65px}.hero h1{font-size:4rem}.hero-aside{min-width:0}.section{padding-block:75px}.portfolio-intro,.about{gap:50px}.section-heading.split{gap:50px}.contact-section{padding:40px;gap:40px}.project{gap:35px}.signal-labels strong{font-size:9px}.job{grid-template-columns:190px 1fr;gap:35px}.footer{gap:25px}.footer>div:first-child{gap:20px}.footer-links{gap:15px}.case-layout{gap:45px}}
@media(max-width:800px){.nav nav{gap:18px;font-size:12px}.hero{grid-template-columns:1fr;gap:25px;padding-block:60px 45px}.hero h1{font-size:clamp(3.2rem,8vw,4.5rem)}.hero-description{max-width:560px}.hero-aside{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;padding-top:0;align-items:center}.hero-aside .signal{padding:20px}.hero-aside .signal svg{margin:20px 0}.expert-card{padding:0}.tool-strip>.wrap{flex-direction:column;align-items:flex-start;gap:8px;padding-block:20px}.tool-strip p{font-size:13px}.tool-strip b{margin-inline:10px}.services{grid-template-columns:1fr}.service,.service+.service{padding:28px 0;border-left:0;border-bottom:1px solid var(--line)}.service:last-child{border-bottom:0}.service-no{margin-bottom:20px}.service ul{max-width:570px}.service .deliverable{margin-top:0;max-width:570px}.additional{align-items:flex-start;flex-direction:column;gap:16px}.section-heading.split{grid-template-columns:1fr;gap:5px}.featured{grid-template-columns:1fr}.featured article,.featured article+article{padding:28px 0;border-left:0;border-bottom:1px solid #c2bec9}.featured article:last-child{border-bottom:0}.featured .eyebrow{min-height:0}.featured h3{font-size:1.7rem}.featured a{margin-top:10px}.section-bottom{flex-direction:column;align-items:flex-start;gap:20px}.steps{grid-template-columns:repeat(2,1fr);gap:30px}.contact-section{grid-template-columns:1fr;gap:35px}.contact-section form{max-width:600px}.hire-strip{align-items:flex-start;flex-direction:column;gap:25px}.footer{align-items:flex-start;flex-wrap:wrap}.footer>div:first-child{flex-basis:100%}.footer>.fine{margin-left:auto}.portfolio-intro{grid-template-columns:1fr;gap:40px}.profile-note{max-width:600px}.portfolio-hero h1{font-size:clamp(4.3rem,12vw,7rem);margin-bottom:35px}.project{grid-template-columns:1fr;gap:25px}.project:nth-child(even) .project-visual{order:0}.project-visual{max-width:620px;width:100%}.project .signal{min-height:0}.project-copy h3{font-size:2rem}.project-copy p{max-width:620px}.project .signal svg{max-height:150px}.about{grid-template-columns:1fr;gap:30px}.capabilities{gap:20px}.capabilities h3{font-size:1rem}.job{grid-template-columns:155px 1fr;gap:25px}.github-strip{flex-direction:column;align-items:flex-start;padding:35px}.case-layout{grid-template-columns:1fr;gap:15px}.case-layout>aside{grid-row:1;max-width:620px}.case-layout>aside .signal svg{max-height:170px}.case-page h1{font-size:3.2rem}.case-page>.lead{font-size:1.1rem}}
@media(max-width:600px){.wrap{width:calc(100% - 36px)}.header .nav{min-height:70px;justify-content:space-between}.brand{font-size:1.8rem}.menu-toggle{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink);background:transparent;border:1px solid #534c5e;padding:8px 12px;border-radius:5px}.nav nav{display:none;position:absolute;top:69px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:22px 24px;align-items:stretch;gap:10px}.nav nav.is-open{display:flex;flex-direction:column}.nav nav a{padding:12px 0}.nav nav .nav-cta{padding:12px}.hero{padding-top:43px}.hero h1{font-size:clamp(2.6rem,10vw,3.8rem);line-height:1.15;letter-spacing:-.06em}.hero .eyebrow{font-size:9px;letter-spacing:.13em}.hero .lead{font-size:1.1rem}.hero-description{font-size:13px}.actions{gap:20px}.button{font-size:12px;min-height:46px;padding:12px 18px;gap:20px}.hero .actions{gap:22px}.caption{font-size:10px;max-width:290px}.hero-aside{grid-template-columns:1fr;gap:24px}.hero-aside .signal{padding:23px}.hero-aside .signal svg{max-height:130px;margin:25px 0}.expert-card{border-left:1px solid #615576;padding:0 0 0 20px}.expert-card p{font-size:13px}.tool-strip p{font-size:11px;line-height:2}.tool-strip b{margin-inline:6px}.section{padding-block:60px}.eyebrow{font-size:9px}.section-heading h2{font-size:2.1rem;line-height:1.2}.section-heading>p:not(.eyebrow){font-size:13px}.section-heading{margin-bottom:30px}.service h3{font-size:1.8rem}.additional{padding:22px}.additional p{font-size:12px}.steps{gap:24px}.steps h3{font-size:1.15rem;margin-top:16px}.steps p{font-size:12px}.contact-section{padding:30px 22px;width:calc(100% - 24px);border-radius:8px}.contact-section h2{font-size:2.4rem}.contact-section p{font-size:13px}.contact-section form{padding:20px}.contact-section .fine{font-size:10px}.contact-section select,.contact-section textarea{font-size:16px}.contact-section h3{font-size:1.15rem}.hire-strip{padding-block:35px 50px}.hire-strip .actions{gap:20px}.footer{padding-block:30px;gap:25px}.footer p{font-size:10px}.footer>.fine{margin-left:0;font-size:9px}.portfolio-hero{padding-block:45px}.portfolio-hero h1{font-size:clamp(3.2rem,11.8vw,5rem);letter-spacing:-.065em;line-height:1.08}.outline-name{-webkit-text-stroke:.7px #c7c0d2}.portfolio-intro h2{font-size:1.8rem}.portfolio-intro .lead{font-size:1.1rem}.portfolio-intro p:not(.lead){font-size:13px}.portfolio-intro .actions{gap:15px}.socials{font-size:11px;gap:20px}.profile-note{padding-left:22px}.filters{gap:8px}.filters button{font-size:10px;padding:9px 14px}.projects{gap:35px}.project{padding-bottom:35px}.project .signal{padding:22px}.signal-top{font-size:8px;letter-spacing:.1em}.signal-labels strong{font-size:8px}.project-copy h3{font-size:1.9rem}.project-copy p{font-size:13px}.tags li{font-size:9px}.work-list summary{gap:13px;padding-block:25px}.work-index{font-size:10px;width:16px}.work-list summary small{font-size:8px;line-height:1.7}.work-list summary strong{font-size:1.1rem;line-height:1.4;display:block}.work-body{padding:0 0 25px 29px}.work-body .lead{font-size:1rem}.work-body p{font-size:12px}.work-label{font-size:8px}.about p{font-size:13px}.about .lead{font-size:1.1rem}.education{padding:25px}.education h3{font-size:1.3rem}.capabilities{grid-template-columns:1fr;gap:18px;margin-top:35px}.capabilities h3{font-size:1.2rem}.capabilities p{font-size:12px}.job{grid-template-columns:1fr;gap:0;padding-block:24px}.job-date{margin-bottom:12px;font-size:10px}.job h3{font-size:1.25rem}.job p{font-size:12px}.job .organization{font-size:12px}.github-strip{padding:30px 25px;gap:25px}.github-strip h2{font-size:2rem}.portfolio-contact{padding-block:65px}.portfolio-contact h2{font-size:2.1rem}.portfolio-contact .actions{gap:22px}.case-page{padding-top:30px}.back-link{margin-bottom:35px}.case-page h1{font-size:2.6rem}.case-layout{margin-top:35px}.case-narrative p{font-size:14px}.case-narrative h2{font-size:1.4rem}.case-limits p{font-size:12px}.case-cta h2{font-size:1.8rem}.case-source p{font-size:12px}.case-source{padding-bottom:0}.signal-labels{gap:7px}.signal-labels small{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.product-shot{margin:0;background:#f3f0f7;border:1px solid #514a5c;border-radius:9px;overflow:hidden}.product-shot img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.product-shot figcaption{font-size:9px;padding:12px 18px;color:#534d5e;border-top:1px solid #c1bdc7}.project-visual:hover .product-shot{border-color:var(--accent)}

/* DFT identity: mineral violet, amber and a light neutral background. */
:root{--bg:#f8f6fb;--panel:#eee8f5;--ink:#302a38;--muted:#665d70;--line:#beb8c9;--accent:#eab66a;--paper:#eee8f5;--dark:#302a38}
body{background:var(--bg);color:var(--ink)}a:hover{color:#3a2a55}em{color:var(--ink);box-shadow:inset 0 -.28em 0 #eab66a}h2 span{color:#61586f}.header{background:rgba(248,246,251,.96)}.brand span{color:#5e3d96}.nav nav>a[aria-current]{color:#3e2d5b}.nav-cta{border-color:#a096b1}.nav-cta:hover{border-color:#432f64;background:#e9e1f3}.eyebrow,.mini-label{color:#433261}.status-dot{background:#543b80;box-shadow:0 0 0 5px #eab66a40}.brand-caption{color:#575160}.outline{border-color:#857a97}.outline:hover{background:#e9e1f3;color:#261f32}.dark{background:#302a38;color:#faf7fd}.dark:hover{background:#3c3547;color:#fff}.text-link{text-decoration-color:#857b96}.text-link:hover{text-decoration-color:#3d2c5b}.expert-card .mini-label{color:#554b67}.expert-card strong{color:#302a38}.expert-card a{color:#3f2f5b}.tool-strip{background:#eee8f5}.tool-strip span{color:#554a67}.tool-strip b{color:#695e7b}.service-no,.steps span{color:#412d63}.deliverable strong,.additional strong{color:#272032}.additional{background:#eee8f5}.light-section{background:#f0ebf7}.light-section h2 span{color:#5b516d}.light-section p{color:#4f485a}.featured,.featured article+article{border-color:#b2abbf}.contact-section{background:#eee8f5;border-color:#afa5c0}.contact-section form{background:#fcfaff;border-color:#b4acc2}.contact-section select,.contact-section textarea{background:#ffffff;color:#302a38;border-color:#9e93b2}.contact-section textarea::placeholder{color:#5f586c}.outline-name{-webkit-text-stroke-color:#4d3f64}.profile-note{border-left-color:#5a467b}.filters button{border-color:#a79eb5;color:#4b425a}.filters button:hover{background:#eee8f5}.filters button.active{background:#eab66a;color:#302a38;border-color:#61498a}.tags li{border-color:#a499b6;color:#46395b}.education{background:#eee8f5;border-top-color:#745d9d}.job-date{color:#544868}.job .organization{color:#362e43}.github-strip{background:#eee8f5;border-color:#a79bbb}.light-section .work-label{color:#45385c}.footer-links a:hover{color:#3e2d5b}
.signal{--panel:#1e1b23;color:#faf7fd}.signal-top{color:#b9b6bd}.signal-top>span+span{color:#eab66a}.signal .diagram-note{color:#c0bbc8}.signal .line-bright{stroke:#eab66a}.signal circle{stroke:#eab66a;fill:#1e1b23}.signal-labels small{color:#a49fac}.signal-labels strong{color:#e1dcea}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#4b376d}.skip:focus{background:#eab66a;color:#302a38}
@media(max-width:600px){.menu-toggle{color:#302a38;border-color:#a49cb3}.nav nav{background:#f8f6fb}.hero-aside .expert-card{border-color:#604c81}}

/* Brand roles and contrast for the published violet identity. */
:root{--primary:#6743b3;--accent:#eab66a;--bg:#f8f6fb;--paper:#f0ebf7;--panel:#eee8f5;--ink:#302a38;--dark:#302a38;--muted:#665d70;--line:#d7cde3}
.brand{color:var(--primary)}.brand span{color:var(--accent)}a:hover,.nav nav>a[aria-current],.eyebrow,.mini-label,.service-no,.steps span,.expert-card a,.footer-links a:hover{color:var(--primary)}
.accent{background:var(--primary);color:#fff}.accent:hover{background:#533394;color:#fff}.dark{background:#302a38;color:#faf7fd}.dark:hover{background:#483553;color:#fff}
.filters button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.filters button:hover{border-color:var(--primary)}
.status-dot{background:var(--primary);box-shadow:0 0 0 5px #6743b314}em{color:var(--ink);box-shadow:inset 0 -.28em 0 #eab66a}
.header{background:rgba(248,246,251,.96)}.nav-cta:hover,.outline:hover{background:#eee8f5;color:#533394;border-color:#6743b3}
.signal{--panel:#302a38;background:linear-gradient(135deg,#463451,#302a38);border-color:#675473;color:#faf7fd}.signal-top{color:#ddd3e6}.signal-top>span+span,.signal .line-bright,.signal circle{color:#eab66a;stroke:#eab66a}.signal .grid{stroke:#c6b1d7}.signal .line-muted{stroke:#c6b1d7}.signal circle{fill:#302a38}.signal .diagram-note{color:#e2d9e9}.signal-labels{border-color:#675473}.signal-labels small{color:#d1c2de}.signal-labels strong{color:#faf7fd}
.outline-name{-webkit-text-stroke-color:#6743b3}.profile-note,.education{border-color:#b69bd9}.education{background:#eee8f5}.github-strip,.contact-section{background:#eee8f5;border-color:#cfc0df}
.contact-section form{background:#fcfaff;border-color:#cfc0df}.contact-section select,.contact-section textarea{background:#fff;color:#302a38;border-color:#a99ab9}.contact-section textarea::placeholder{color:#665d70}
.skip:focus{background:#6743b3;color:#fff}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#6743b3}
@media(max-width:600px){.nav nav{background:#f8f6fb}.menu-toggle{color:#302a38;border-color:#b8a9c9}.hero-aside .expert-card{border-color:#b69bd9}}
