/* Project overview and independent case studies. */
.intro-name>span:first-child{color:var(--ink);font-weight:600}
.project-entry{transition:transform .25s ease,box-shadow .25s ease}.project-entry:hover{transform:translateY(-4px);box-shadow:0 16px 36px #1a2e1810}.project-entry:hover .project-open>span{transform:translate(3px,-3px)}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.portfolio-card{display:flex;flex-direction:column;min-width:0;min-height:560px;padding:34px;border-radius:var(--radius);overflow:hidden}.portfolio-card .card-top{color:#51624a}.portfolio-card .card-top>span:last-child{font-size:24px;line-height:1}.portfolio-card .card-top .mono{font-size:11px;letter-spacing:.065em}.tone-2{background:#e0e9d7}.tone-3{background:#dce5df}.tone-4{background:#e9e5d9}.tone-5{background:#e1e3db}
.card-signal{display:flex;align-items:center;justify-content:center;min-height:160px;margin:18px 0 28px}.flow-signal{gap:12px}.flow-signal>span{font-size:14px;padding:12px 18px;border:1px solid #a0b38e;border-radius:40px;background:#ecf2e6;white-space:nowrap}.flow-signal>span:last-child{background:var(--ink);color:var(--green);border-color:var(--ink)}.flow-signal i{font-style:normal;color:#738365}.vqa-signal{gap:62px}.vqa-signal>div{display:flex;flex-direction:column;gap:7px}.vqa-signal strong{font-family:Georgia,serif;font-weight:400;font-size:68px;line-height:1;letter-spacing:-.055em}.vqa-signal small{font-size:32px}.vqa-signal span{font-size:12px;color:#5c7061}
.caption-signal{gap:9px;flex-wrap:wrap;align-content:center}.caption-signal span{display:grid;place-items:center;border:1px solid #b9b39d;border-radius:50%;width:64px;height:64px;font-size:15px}.caption-signal span:first-child{background:#373e2f;color:#eeeadd;border-color:#373e2f}.caption-signal span:nth-child(even){transform:translateY(15px)}.caption-signal span:nth-child(3){transform:translateY(-10px)}.sft-signal{flex-direction:column;gap:16px}.sft-signal>div{display:flex;align-items:center;gap:22px}.sft-signal strong{font-family:Georgia,serif;font-size:60px;font-weight:400;line-height:1;letter-spacing:-.055em}.sft-signal strong:first-child{color:#788170}.sft-signal small{font-size:28px}.sft-signal i{font-style:normal;font-size:32px;color:#6a785d}.sft-signal>span{font-size:12px;color:#5b6b4e}
.portfolio-card-copy{max-width:465px;margin-bottom:28px}.portfolio-card-copy .green-label{font-family:var(--body);color:#58743f;letter-spacing:.025em}.portfolio-card h3{font-size:36px;line-height:1.32;letter-spacing:-.025em;font-weight:500;margin-bottom:20px}.portfolio-card-copy>p:last-child{color:#5c6854;font-size:15px;line-height:1.9;margin:0}.portfolio-card .project-open{border-color:#b6c0ad}.portfolio-card:hover .project-open{color:#365d20}
.case-breadcrumb{display:flex;justify-content:space-between;align-items:center;margin-top:54px;font-size:13px;color:var(--muted)}.case-breadcrumb>span{font-family:var(--mono);font-size:12px}.case-breadcrumb a:hover{color:#3b6b27}.case-hero{padding:52px 0 40px}.case-hero>.eyebrow{margin-bottom:24px}.case-hero h1{font-size:clamp(44px,6vw,80px);line-height:1.22;font-weight:500;letter-spacing:-.04em;margin-bottom:28px}.case-lead{max-width:780px;font-size:20px;line-height:1.9;color:#626f5a;margin-bottom:26px}.case-keywords{display:flex;flex-wrap:wrap;gap:9px}.case-keywords>span{font-size:12px;padding:5px 12px;background:#e5eadd;border:1px solid #d4dccb;border-radius:6px}.case-identity{display:flex;gap:28px;flex-wrap:wrap;margin-top:32px;font-size:12px;color:var(--muted)}
.case-metrics{display:flex;flex-wrap:wrap;gap:30px 64px;border-top:1px solid var(--line);padding:30px 0 38px}.case-metrics>div{display:flex;flex-direction:column;gap:8px;min-width:135px}.case-metrics strong{font-size:38px;line-height:1.25;font-weight:500;letter-spacing:-.035em;color:#3b542d}.case-metrics span{color:var(--muted);font-size:13px}.case-nav{display:flex;gap:30px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;font-size:13px}.case-nav a{border-bottom:1px solid transparent}.case-nav a:hover{border-bottom-color:#709453;color:#41692b}
.case-section{display:grid;grid-template-columns:280px minmax(0,1fr);gap:60px;padding:64px 0;border-bottom:1px solid var(--line)}.case-section-title .eyebrow{display:block;margin-bottom:20px}.case-section-title h2{font-size:32px;line-height:1.4}.case-section-body{min-width:0}.case-body-lead{font-size:18px;line-height:1.95;margin-bottom:28px;max-width:770px}.focus-box{padding:26px 30px;background:#e7ebdf;border-radius:12px}.focus-box>.eyebrow{font-size:10px;color:#7a8c6a}.focus-box h3{font-size:21px;font-weight:500;margin:16px 0 12px;line-height:1.6}.focus-box p{font-size:15px;line-height:1.9;color:#69755e;margin:0}.responsibility-list{list-style:none;margin:0;padding:0}.responsibility-list li{display:flex;gap:24px;padding:20px 0;border-top:1px solid var(--line)}.responsibility-list li:first-child{padding-top:0;border-top:0}.responsibility-list li:last-child{padding-bottom:0}.responsibility-list li>span{font-family:var(--mono);font-size:12px;color:#769260;padding-top:5px}.responsibility-list p{font-size:17px;line-height:1.9;margin:0;max-width:750px}
.case-process{padding:64px 0;border-bottom:1px solid var(--line)}.case-process .evaluation-flow{margin:34px 0 0}.case-process .evaluation-flow h3{font-size:19px}.case-process .evaluation-flow p{line-height:1.95}.process-pipeline{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#e3eade;padding:28px;border-radius:12px}.process-pipeline>div{min-width:0}.process-pipeline span{font-family:var(--mono);font-size:11px;color:#748664}.process-pipeline h3{font-size:16px;font-weight:500;margin:8px 0 0}.process-pipeline i{font-style:normal;color:#7a8a6c}.case-caption{font-size:12px;color:var(--muted);margin:12px 0 0}.error-types{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;font-size:12px;align-items:center}.error-types>span{padding:4px 10px;border:1px solid #c8d0be;border-radius:5px;color:#526346}.error-types>span:first-child{border:0;padding-left:0;color:var(--muted);margin-right:6px}
.deliverables{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.deliverables li{padding:14px 18px;background:#e5eadd;border-radius:7px;font-size:14px;color:#536249;display:flex;align-items:flex-start;gap:10px}.deliverables li::before{content:'↗';color:#7b9666;flex-shrink:0}.metric-note{font-size:12px;color:#7a8371;line-height:1.8;margin:22px 0 0}.case-outcomes{border-bottom:0;padding-bottom:80px}.project-page .method-section{padding-top:50px;border-top:1px solid var(--line)}.project-sources{padding:30px 0;border-bottom:1px solid var(--line);color:#7a8371;font-size:12px}.project-sources p{margin:0}
.project-switcher{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;padding:60px 0 78px}.project-switcher .eyebrow{margin-bottom:27px}.next-project{display:grid;grid-template-columns:1fr auto;gap:12px 20px}.next-project>span{grid-column:1 / -1;font-size:12px;color:var(--muted)}.next-project strong{font-size:29px;line-height:1.5;font-weight:500;letter-spacing:-.035em}.next-project b{font-weight:400;font-size:36px;align-self:end;transition:transform .2s}.next-project:hover b{transform:translate(3px,-3px)}.all-projects{display:flex;flex-direction:column}.all-projects>span{font-size:12px;color:var(--muted);padding-bottom:12px}.all-projects>a{font-size:13px;display:flex;gap:16px;border-top:1px solid var(--line);padding:10px 0;color:#65735b}.all-projects small{font-family:var(--mono);color:#8b9a7f;font-size:10px;padding-top:3px}.all-projects>a[aria-current=page]{color:var(--ink);font-weight:600}.all-projects>a:hover{color:#375f22}
@media(max-width:1000px){.portfolio-card{padding:27px;min-height:550px}.flow-signal{gap:8px}.flow-signal>span{padding:10px 12px;font-size:12px}.vqa-signal{gap:42px}.caption-signal{gap:6px}.caption-signal span{width:53px;height:53px;font-size:13px}.case-section{grid-template-columns:210px minmax(0,1fr);gap:36px}.case-section-title h2{font-size:29px}.case-section-title .eyebrow{font-size:10px}.project-switcher{gap:45px}.process-pipeline{padding:22px;gap:12px}.process-pipeline h3{font-size:14px}}
@media(max-width:700px){.portfolio-grid{grid-template-columns:1fr;gap:18px;margin-top:18px}.portfolio-card{padding:26px;border-radius:18px;min-height:480px}.card-signal{min-height:140px;margin:12px 0 26px}.portfolio-card h3{font-size:32px}.portfolio-card .card-top .mono{font-size:10px}.portfolio-card-copy{margin-bottom:25px}.flow-signal{gap:10px}.flow-signal>span{padding:10px 13px;font-size:12px}.vqa-signal{gap:55px}.vqa-signal strong{font-size:62px}.caption-signal{gap:9px}.caption-signal span{width:54px;height:54px}.sft-signal strong{font-size:56px}.case-breadcrumb{margin-top:30px;font-size:12px}.case-hero{padding:32px 0}.case-hero>.eyebrow{font-size:10px;margin-bottom:20px}.case-hero h1{font-size:clamp(34px,8.6vw,54px);line-height:1.35;margin-bottom:22px}.case-lead{font-size:17px;line-height:1.9}.case-keywords{gap:7px}.case-keywords>span{font-size:11px;padding:4px 9px}.case-identity{flex-direction:column;gap:7px;margin-top:25px}.case-metrics{gap:24px 35px;padding:27px 0}.case-metrics>div{min-width:100px}.case-metrics strong{font-size:30px}.case-metrics span{font-size:12px}.case-nav{gap:13px 23px;padding:17px 0;font-size:12px}.case-section{grid-template-columns:1fr;gap:26px;padding:42px 0}.case-section-title .eyebrow{margin-bottom:12px}.case-section-title h2{font-size:28px}.case-body-lead{font-size:17px;margin-bottom:24px}.focus-box{padding:22px}.focus-box h3{font-size:19px}.focus-box p{font-size:14px}.responsibility-list li{gap:20px;padding:18px 0}.responsibility-list p{font-size:16px}.case-process{padding:42px 0}.case-process .evaluation-flow{margin-top:26px}.case-process .evaluation-flow h3{font-size:18px}.process-pipeline{gap:8px;padding:18px 15px}.process-pipeline h3{font-size:13px}.process-pipeline i{font-size:12px}.deliverables{gap:10px}.deliverables li{padding:13px;font-size:13px}.case-outcomes{padding-bottom:48px}.project-page .method-section{padding-top:38px}.project-sources{padding:24px 0;font-size:11px}.project-switcher{grid-template-columns:1fr;gap:36px;padding:38px 0 48px}.project-switcher .eyebrow{margin-bottom:18px}.next-project strong{font-size:26px}.next-project b{font-size:30px}}
@media(max-width:370px){.flow-signal{gap:6px}.flow-signal>span{padding:10px}.caption-signal{gap:6px}.caption-signal span{width:46px;height:46px}.deliverables{grid-template-columns:1fr}.process-pipeline{flex-direction:column;align-items:flex-start}.process-pipeline i{transform:rotate(90deg);margin-left:40px}.portfolio-card .card-top .mono{font-size:9px}}
