/* Shared palette and component colours. */
:root{--ink:#172b43;--muted:#52657b;--blue:#285fc1;--line:#dce5ef;--paper:#f6f8fc;--surface:#fff;--soft-blue:#eaf1fc;--focus:#3476d2}
body{background:var(--paper);color:var(--ink)}header{background:#ffffffed;border-bottom-color:#e2e9f2}nav a{color:#53657b}nav a:hover{color:var(--blue)}.nav-cta{background:var(--soft-blue);color:#28558f;border-color:#d8e4f6}.nav-cta:hover{background:#e0ebfc}.hero-copy,.hero-portrait{border-color:#dde6f2;box-shadow:0 8px 30px #18365705}.hero h1{color:#172b43}.hero h1 span{color:var(--blue)}.hero-specialties span{background:#f1f5fc;color:#4e6b91;border-color:#dde6f4}.hero-bottom>span{box-shadow:none}.hero-bottom>span:first-child{background:#fff}.hero-bottom>span:nth-child(2){background:#edf2fc}.hero-bottom>span:nth-child(3){background:#eaf4ef}.section-head>p{color:var(--muted)}h2 span{color:#6d8097}.eyebrow{color:#5f7691}
.project{--project-accent:#196b70;--project-soft:#eaf4f3;--project-border:#c9dfdd;--project-muted:#4f7274;border-color:#dce5ec;box-shadow:0 4px 16px #213b5103}.project[data-project=legallens-ai]{--project-accent:#66518f;--project-soft:#f0edf7;--project-border:#dbd2eb;--project-muted:#6b6082}.project[data-project=ai-travel-planner]{--project-accent:#2a684f;--project-soft:#edf4ee;--project-border:#cddfd2;--project-muted:#557664}.project .project-visual{background:var(--project-soft)!important;border-left:1px solid var(--project-border)}.project[data-project=legallens-ai] .project-visual,.project[data-project=ai-travel-planner] .project-visual{background:var(--project-soft)!important}.project h3{color:var(--ink)}.project .eyebrow{color:var(--project-muted);font-size:9px}.project p{color:#53667a}.project .backend-label{color:#60768b;font-size:10px}.project .proof{border-top-color:#e0e7ed}.project .proof strong{color:var(--project-accent);font-size:15px}.project .proof small{color:#607284}.preview-switch{border-color:var(--project-border);background:#ffffff8f;box-shadow:none}.preview-switch button{color:var(--project-muted);font-weight:500}.preview-switch button[aria-pressed=true]{background:var(--project-accent);color:#fff;box-shadow:0 2px 5px #15354e0d}.preview-switch button:hover:not([aria-pressed=true]){background:#ffffffc9}.preview-caption{color:var(--project-muted);font-size:10px}.project .resource-links a{background:#fff;border-color:#dce5ed;color:var(--project-accent);transition:background .18s,border-color .18s}.project .resource-links a:hover{background:var(--project-soft);border-color:var(--project-border)}.project-links button{display:inline-flex;align-items:center;gap:12px;padding:12px 17px;border-radius:23px;background:var(--project-accent);color:white;font-size:12px;font-weight:500;border:1px solid var(--project-accent);transition:filter .18s,transform .18s}.project-links button:hover{filter:brightness(1.07);transform:translateY(-1px)}.gallery-trigger{border:1px solid var(--project-border);background:#ffffffb3;color:var(--project-accent);font-size:10px}.gallery-trigger:hover{background:white}.preview-open{border-color:var(--project-border);color:var(--project-accent);background:#ffffffb3}.ios-status{background:#f5f7fa;border-color:#dde4ed;color:#607184}.ios-status small{color:#697b8c}.filters button{background:#fff;border-color:#dce4ee;color:#5c7087}.filters button.active{background:#244568;border-color:#244568;color:#fff}.filters button:hover:not(.active){border-color:#b9cbe2;background:#eff4fc}
.product-context{border-color:#cbdcf0;background:#edf3fc}.product-context strong{color:#315d8a}.product{border-color:#dce6ef}.product-no{color:#5d7896}.tags span{color:#536f8c;background:#eff4fa}.product:nth-child(2) .tags span{color:#6a5e83;background:#f2eff8}.product:nth-child(3) .tags span{color:#4d756b;background:#edf5f1}.outcome strong{color:#2e4a6c}.intern{border-left-color:#b6cbe4}.expertise-grid article{border-color:#dde6ef;background:#fff;box-shadow:0 5px 18px #17365103}.expertise-grid .symbol{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;background:#eaf1fc;color:#3568ab;font-size:27px}.expertise-grid article:nth-child(2) .symbol{background:#f0ecf8;color:#74609f}.expertise-grid article:nth-child(3) .symbol{background:#eaf4f0;color:#397862}.expertise-grid h3{color:#203b58}.credential{border-color:#dce6f0}.completion-label{background:#edf6ef;color:#39704d;border:1px solid #d9eadc;padding:4px 8px;border-radius:20px;align-self:flex-start}.contact{background:#18314b}.contact .accent-text{color:#b2d0fc}.contact p{color:#c2d1df}footer{color:#65798f}a:focus-visible,button:focus-visible{outline-color:var(--focus)}
@media(max-width:700px){.project .project-visual{border-left:0;border-top:1px solid var(--project-border)}.project-links button{padding:11px 16px;font-size:12px}.preview-caption{font-size:9px}.completion-label{font-size:9px}}
/* Reference-led typography: graphite, neutral grey, selective colour. */
:root{--ink:#1d1d1f;--muted:#626268;--paper:#f5f5f7;--blue:#2463c8}body{color:var(--ink);background:var(--paper)}h1,h2,.hero h1,.project h3,.expertise-grid h3,.employment h3,.product h3{color:#1d1d1f}.hero h1 span{color:#3f56b6;background:linear-gradient(105deg,#245fc6 4%,#4b50b5 58%,#74449e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero p,.project p,.section-head>p,.about-grid p,.expertise-grid p,.outcome p,.product p{color:#626268}.hero-name{color:#6e6e73}.hero h1{letter-spacing:-.06em}h2 span{color:#6e6e73}.eyebrow,.project .eyebrow{color:#65717c}.hero-bottom strong{color:#343c48}.hero-bottom>span:nth-child(3) strong{color:#315d52}.hero-bottom>span{color:#697581}.work .section-head h2 span{color:#6e6e73}.hero-copy{border-color:#e5e7ee;background:#fff;box-shadow:0 8px 30px #1d1d1f03}.hero{background:radial-gradient(ellipse at 85% 20%,#e7e2fa66,transparent 48%),radial-gradient(ellipse at 60% 40%,#dcecfb77,transparent 60%)}.hero-portrait{padding:10px;border-radius:30px;border:1px solid #e6e6f0;background:linear-gradient(145deg,#ffffff,#f2effb);box-shadow:-15px 15px 45px #c0daf333,15px -5px 45px #d8c9f52b}.hero-portrait>img{border-radius:23px;background:#e6edf9;filter:none}.hero-portrait figcaption{background:#ffffffa6;border-radius:0 0 20px 20px;backdrop-filter:blur(16px);padding:20px 15px 12px}.hero-portrait figcaption strong{color:#242a34}.hero-portrait figcaption span{color:#6e7481}.project .project-visual{background:radial-gradient(ellipse at 50% 40%,#cde7e4 0%,#e8f3f1 48%,#f1f6f5 100%)!important}.project[data-project=legallens-ai] .project-visual{background:radial-gradient(ellipse at 50% 40%,#dfd5f0 0%,#eeebf7 48%,#f5f3fa 100%)!important}.project[data-project=ai-travel-planner] .project-visual{background:radial-gradient(ellipse at 50% 40%,#d4e5d9 0%,#ebf2eb 48%,#f2f6f1 100%)!important}.project{border-color:#e3e7ec}.project .project-visual{border-left-color:#e0e7e9}.credential h3,.skill-group h3{color:#25272d}.contact{background:#172536}.contact h2{color:#fff}.contact .accent-text{color:#b9d3ff}.contact p{color:#c3cedc}.contact .eyebrow{color:#b5c6da}
@media(max-width:700px){.hero{background:none}.hero-portrait{border-radius:25px;padding:9px;box-shadow:0 12px 32px #b9cce82b}.hero-portrait>img{border-radius:18px}.hero-portrait figcaption{padding:17px 13px 10px}.project .project-visual{border-top-color:#e1e7ea}}
@media(forced-colors:active){.hero h1 span{background:none;-webkit-text-fill-color:currentColor;color:CanvasText}}
