:root {
  --paper:#f4f7f5;
  --paper-2:#e5ece8;
  --ink:#0b1c18;
  --muted:#4f615b;
  --line:rgba(11,28,24,.18);
  --green:#103f36;
  --teal:#147a69;
  --coral:#d45d43;
  --yellow:#c8a449;
  --white:#ffffff;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}.wrap{width:min(var(--max),calc(100% - 40px));margin:0 auto}.serif{font-family:"Newsreader",Georgia,serif}.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
.skip{position:absolute;left:-9999px}.skip:focus{left:14px;top:14px;background:var(--white);padding:10px 14px;z-index:100}
header.site{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.nav{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;font-weight:700;letter-spacing:-.03em;font-size:19px}.brand small{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-family:"IBM Plex Mono",monospace}.links{display:flex;align-items:center;gap:24px}.links a{text-decoration:none;color:var(--muted);font-size:14px;font-weight:600}.links a:hover,.links a[aria-current="page"]{color:var(--ink)}.links .pill{border:1px solid var(--ink);padding:8px 13px;border-radius:4px;color:var(--ink)}.menu{display:none;border:0;background:none;font-size:25px;color:var(--ink)}
.hero{padding:100px 0 78px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{font:600 12px/1.4 "IBM Plex Mono",monospace;letter-spacing:.11em;text-transform:uppercase;color:var(--teal);margin:0 0 18px}.hero h1{font:500 clamp(54px,7.2vw,100px)/.91 "Newsreader",serif;letter-spacing:-.055em;margin:0;max-width:850px}.hero h1 em{font-weight:400;font-style:normal;color:var(--coral)}.lede{font-size:19px;color:var(--muted);max-width:62ch;margin:28px 0 0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;border-radius:4px;text-decoration:none;background:var(--green);color:var(--white);font-size:14px;font-weight:700;border:1px solid var(--green);transition:background .2s,color .2s}.btn:hover{background:var(--teal)}.btn.alt{background:transparent;color:var(--ink);border-color:var(--line)}
.pipeline{position:relative;background:var(--green);color:var(--white);padding:28px;border-radius:28px;box-shadow:0 30px 70px rgba(18,63,53,.18)}.pipeline:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:var(--coral);filter:blur(0);opacity:.16;right:-50px;top:-60px}.pipeline-head{display:flex;justify-content:space-between;gap:20px;position:relative}.pipeline h2{font:500 27px/1.05 "Newsreader",serif;margin:0}.status{font:600 10px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 9px;height:max-content;color:#d9eee8}.stages{list-style:none;margin:26px 0 6px;padding:0;display:grid;gap:0}.stages li{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;border-top:1px solid rgba(255,255,255,.14);padding:11px 0;font-size:14px}.stages .n{font:500 11px "IBM Plex Mono",monospace;color:#a7d3c8}.stages .state{font:500 10px "IBM Plex Mono",monospace;color:#a7d3c8}.pipeline-note{font-size:12px;color:#b8cec8;margin:18px 0 0}
.portrait-card{position:relative;background:var(--green);padding:14px;border-radius:6px}
.portrait-card:before{content:"";position:absolute;width:180px;height:180px;border:34px solid var(--yellow);border-radius:50%;right:-58px;top:-62px;opacity:.85;z-index:-1}
.photo-shell{position:relative;overflow:hidden;border-radius:3px;aspect-ratio:1;background:#d8d4e5}
.photo-shell img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 38%}
.photo-shell:after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:linear-gradient(transparent,rgba(9,32,27,.74))}
.photo-id{position:absolute;left:23px;right:23px;bottom:20px;color:var(--white);z-index:2}.photo-id b{display:block;font:500 30px/1 "Newsreader",serif}.photo-id span{display:block;margin-top:7px;font:500 11px "IBM Plex Mono",monospace;letter-spacing:.06em;color:#d0e1dc}
.portrait-project{display:flex;justify-content:space-between;gap:20px;padding:18px 6px 4px;color:var(--white)}.portrait-project span{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:#9ed6c8}.portrait-project b{font:500 14px/1.35 "DM Sans",sans-serif;text-align:right;max-width:260px}
.delivery-mini{position:absolute;left:-52px;top:45px;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:13px 16px;display:grid;gap:7px}.delivery-mini span{font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.delivery-mini span:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-right:7px}.delivery-mini span:last-child:before{background:var(--coral)}
.signal{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.signal-grid{display:grid;grid-template-columns:repeat(3,1fr)}.signal-item{padding:24px 30px;border-right:1px solid var(--line)}.signal-item:last-child{border-right:0}.signal-item b{display:block;font:500 26px "Newsreader",serif}.signal-item span{font-size:12px;color:var(--muted)}
section{padding:94px 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:.55fr 1fr;gap:40px;margin-bottom:46px}.section-head h2{font:500 clamp(38px,5vw,66px)/.98 "Newsreader",serif;letter-spacing:-.04em;margin:0}.section-head p{font-size:18px;color:var(--muted);margin:5px 0 0;max-width:61ch}.kicker{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.11em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:12px}
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px}.prose p{font:400 25px/1.45 "Newsreader",serif;margin:0 0 22px}.prose p:first-child::first-letter{float:left;font-size:74px;line-height:.72;padding:12px 10px 0 0;color:var(--coral)}.facts{display:grid;gap:0;border-top:1px solid var(--line)}.fact{padding:17px 0;border-bottom:1px solid var(--line)}.fact dt{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--teal)}.fact dd{margin:6px 0 0;font-size:15px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:transparent;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:25px 4px;min-height:230px;display:flex;flex-direction:column;transition:background .2s}.card:hover{background:var(--paper-2)}.card .tag{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}.card h3{font:500 28px/1.05 "Newsreader",serif;margin:34px 0 13px}.card p{font-size:14px;color:var(--muted);margin:0}.card a.more{margin-top:auto;padding-top:24px;text-decoration:none;font-weight:700;font-size:13px}.card a.more:after{content:" ↗";color:var(--coral)}
.feature{background:var(--green);color:var(--white);border-radius:8px;padding:50px;display:grid;grid-template-columns:1.25fr .75fr;gap:55px}.feature .kicker{color:#9ed6c8}.feature h3{font:500 clamp(36px,5vw,68px)/.98 "Newsreader",serif;margin:0;letter-spacing:-.04em}.feature p{color:#c1d6d0;font-size:16px}.feature blockquote{font:400 25px/1.25 "Newsreader",serif;margin:0;padding-left:22px;border-left:2px solid var(--coral)}.feature .btn{background:var(--white);border-color:var(--white);color:var(--green)}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.work-card{display:grid;grid-template-columns:50px 1fr auto;gap:17px;align-items:start;padding:24px;border:1px solid var(--line);border-radius:4px;text-decoration:none;background:transparent}.work-card:hover{background:var(--white)}.glyph{width:48px;height:48px;border-radius:2px;background:var(--paper-2);display:grid;place-items:center;font:600 14px "IBM Plex Mono",monospace;color:var(--teal)}.work-card h3{margin:0;font-size:17px}.work-card p{margin:5px 0 0;color:var(--muted);font-size:13px}.arrow{color:var(--coral)}
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}.focus{padding:25px 25px 25px 0;border-bottom:1px solid var(--line)}.focus+.focus{padding-left:25px;border-left:1px solid var(--line)}.focus .num{font:500 11px "IBM Plex Mono",monospace;color:var(--coral)}.focus h3{font:500 24px "Newsreader",serif;margin:28px 0 8px}.focus p{font-size:13px;color:var(--muted);margin:0}
.page-hero{padding:94px 0 60px}.page-hero h1{font:500 clamp(50px,7vw,92px)/.95 "Newsreader",serif;letter-spacing:-.05em;margin:0;max-width:1000px}.page-hero .lede{max-width:760px}.crumbs{font:600 11px "IBM Plex Mono",monospace;color:var(--teal);text-transform:uppercase;letter-spacing:.08em;margin-bottom:28px}.crumbs a{text-decoration:none}
.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.method{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:24px 4px;background:transparent}.method .n{font:600 11px "IBM Plex Mono",monospace;color:var(--coral)}.method h3{font:500 26px "Newsreader",serif;margin:17px 0 8px}.method p{font-size:14px;color:var(--muted);margin:0}.note{background:var(--paper-2);border-left:3px solid var(--coral);padding:20px 22px;margin:30px 0;font-size:15px;border-radius:0}
.article{max-width:780px;margin:0 auto}.article h1{font:500 clamp(48px,7vw,82px)/.95 "Newsreader",serif;letter-spacing:-.05em}.article .meta{font:500 11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--teal);margin:24px 0 50px}.article h2{font:500 38px/1.05 "Newsreader",serif;margin:58px 0 16px}.article h3{font:500 27px "Newsreader",serif;margin:38px 0 10px}.article p,.article li{font-size:17px;color:#32433d}.article p{margin:0 0 22px}.article blockquote{font:400 30px/1.25 "Newsreader",serif;border-left:3px solid var(--coral);margin:42px 0;padding-left:26px;color:var(--ink)}.article .revision{font-size:13px;background:var(--paper-2);padding:18px;border-radius:0;margin-top:50px}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:22px 4px;text-decoration:none;min-height:185px;background:transparent;display:flex;flex-direction:column}.project:hover{background:var(--white)}.project .group{font:600 9px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}.project h3{font:500 23px "Newsreader",serif;margin:30px 0 8px}.project p{font-size:13px;color:var(--muted);margin:0}.project .open{margin-top:auto;padding-top:20px;font-size:12px;font-weight:700;color:var(--coral)}
.socials{display:flex;gap:10px;flex-wrap:wrap}.socials a{border:1px solid var(--line);border-radius:4px;padding:9px 13px;text-decoration:none;font-size:13px;font-weight:700}.socials a:hover{background:var(--green);color:var(--white)}
footer{background:var(--green);color:var(--white);padding:62px 0 35px}.footer-grid{display:grid;grid-template-columns:1fr auto;gap:50px;align-items:end}.footer-grid h2{font:500 clamp(37px,5vw,62px)/1 "Newsreader",serif;margin:0 0 18px}.footer-grid p{color:#b9d0ca;max-width:58ch}.footer-links{display:grid;grid-template-columns:repeat(2,auto);gap:11px 30px}.footer-links a{color:#d9ebe6;text-decoration:none;font-size:13px}.legal{border-top:1px solid rgba(255,255,255,.14);margin-top:44px;padding-top:20px;display:flex;justify-content:space-between;color:#91aaa3;font-size:11px}
.reveal{opacity:0;transform:translateY(10px);transition:opacity .22s ease-out,transform .22s ease-out}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){.links a:not(.pill){display:none}.menu{display:block}.hero{padding-top:66px}.hero-grid,.about-grid,.feature,.section-head{grid-template-columns:1fr}.hero-grid{gap:42px}.pipeline,.portrait-card{max-width:610px}.delivery-mini{left:18px;top:18px;background:rgba(255,253,247,.92)}.signal-grid{grid-template-columns:1fr}.signal-item{border-right:0;border-bottom:1px solid var(--line)}.cards,.portfolio-grid{grid-template-columns:1fr 1fr}.focus-grid{grid-template-columns:1fr}.focus+.focus{padding-left:0;border-left:0}.footer-grid{grid-template-columns:1fr}}
@media(max-width:620px){.wrap{width:min(100% - 28px,var(--max))}.hero{padding:54px 0}.hero h1{font-size:52px}.cards,.work-grid,.portfolio-grid,.method-grid{grid-template-columns:1fr}.feature{padding:30px}.section-head h2{font-size:43px}.links .pill{display:none}.nav.open .links{position:absolute;display:grid;top:68px;left:0;right:0;padding:20px;background:var(--paper);border-bottom:1px solid var(--line)}.nav.open .links a{display:block}.footer-links{grid-template-columns:1fr}.legal{display:grid;gap:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.card{transition:none}}
