@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/jakarta-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/jakarta-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--forest:#0d2309;--forest-deep:#0b2707;--forest-tint:#16351045;--paper:#fff;--panel:#f9f9f9;--mint:#d4f9cd;--mint-soft:#eafce5;--ink:#11210d;--ink-2:#3d4a39;--muted:#6d7a68;--on-forest:#f2f8ef;--on-forest-dim:#a8c39f;--line:#e6e9e4;--line-mint:#bcecb1;--line-forest:#24401d;--sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--t--1:.78rem;--t-0:clamp(.92rem, .89rem + .14vw, 1rem);--t-1:clamp(1.05rem, 1rem + .25vw, 1.2rem);--t-2:clamp(1.35rem, 1.15rem + .9vw, 1.9rem);--t-3:clamp(1.9rem, 1.4rem + 2.2vw, 3rem);--t-4:clamp(2.3rem, 1.5rem + 3.6vw, 4rem);--r-xl:30px;--r-lg:20px;--r-md:14px;--r-sm:10px;--pad:clamp(1.25rem, 4vw, 4.5rem);--measure:58ch;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}:target{scroll-margin-top:2rem}}body{background:var(--forest);color:var(--ink);font-family:var(--sans);font-size:var(--t-0);-webkit-font-smoothing:antialiased;line-height:1.65}img,svg{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}a{color:inherit}ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:4px}::selection{background:var(--mint);color:var(--ink)}.frame{padding:clamp(.6rem,1.6vw,1.5rem)}.canvas{background:var(--paper);border-radius:var(--r-xl);max-width:1440px;margin-inline:auto;overflow:hidden}.skip{position:absolute;left:-9999px}.skip:focus{z-index:50;background:var(--mint);color:var(--ink);border-radius:var(--r-sm);padding:.7rem 1.1rem;font-weight:600;top:1rem;left:1rem}.pill{background:var(--mint);color:var(--ink);font-family:var(--sans);font-size:var(--t--1);letter-spacing:.09em;text-transform:uppercase;border-radius:999px;padding:.32rem .8rem;font-weight:600;display:inline-block}.pill--outline{border:1px solid var(--line-mint);background:0 0}.pill--forest{background:var(--forest-deep);color:var(--mint)}.h-display{font-size:var(--t-4);letter-spacing:-.035em;text-wrap:balance;font-weight:800;line-height:1.04}.h-section{font-size:var(--t-3);letter-spacing:-.032em;text-wrap:balance;font-weight:700;line-height:1.1}.lede{color:var(--muted);max-width:var(--measure);text-wrap:pretty}.btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);font-size:var(--t--1);cursor:pointer;white-space:nowrap;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:.45rem;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink);transform:translateY(-1px)}.btn--solid{background:var(--forest-deep);border-color:var(--forest-deep);color:var(--paper)}.btn--solid:hover{background:#123a0c;border-color:#123a0c}.btn--mint{background:var(--mint);border-color:var(--mint);color:var(--ink)}.btn--mint:hover{background:#c3f5b9;border-color:#c3f5b9}.head{padding:1rem var(--pad);border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.85rem 1.5rem;display:grid}.logo{letter-spacing:-.025em;grid-area:1/1;font-size:1.1rem;font-weight:800;text-decoration:none}.head__nav{scrollbar-width:none;border-top:1px solid var(--line);padding-top:.15rem;grid-area:2/1/auto/-1;gap:1.35rem;padding-block:.6rem .1rem;display:flex;overflow-x:auto}.head__nav::-webkit-scrollbar{display:none}.head__nav a{font-size:var(--t--1);color:var(--ink-2);transition:color .2s var(--ease);font-weight:500;text-decoration:none}.head__nav a:hover,.head__nav a[aria-current=true]{color:var(--ink)}.head__cta{grid-area:1/2;justify-self:end;gap:.5rem;display:flex}.head__cta .btn:first-child{display:none}@media (min-width:940px){.head{grid-template-columns:auto 1fr auto}.head__nav{border-top:0;grid-area:1/2;justify-content:center;gap:1.6rem;padding-block:0;overflow-x:visible}.head__cta{grid-area:1/3}.head__cta .btn:first-child{display:inline-flex}}.hero{padding:clamp(3rem, 8vw, 6.5rem) var(--pad) clamp(2.5rem, 6vw, 4.5rem);text-align:center}.hero__pill{margin-bottom:clamp(1.25rem,3vw,1.75rem)}.hero__title{max-width:17ch;margin-inline:auto}.hero__lede{max-width:54ch;margin:clamp(1.1rem,3vw,1.6rem) auto 0}.hero__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:clamp(1.5rem,4vw,2.25rem);display:flex}.core{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1.25rem;display:flex}.core li{font-family:var(--sans);font-size:var(--t--1);border:1px solid var(--line-mint);color:var(--ink);border-radius:999px;padding:.28rem .7rem;font-weight:600}.stats{background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);text-align:left;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:clamp(2.25rem,5vw,3.25rem);display:grid;overflow:hidden}.stat{background:var(--paper);padding:1.1rem 1.25rem}.stat__value{font-size:var(--t-2);letter-spacing:-.03em;font-weight:800;line-height:1.1}.stat__label{font-family:var(--sans);font-size:var(--t--1);color:var(--muted);margin:.25rem 0 0;font-weight:500}@media (min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}.split{border-top:1px solid var(--line);grid-template-columns:1fr;display:grid}.split__art{background:var(--mint);place-items:center;min-height:320px;padding:clamp(1.75rem,4vw,3rem);display:grid}.portrait{border-radius:var(--r-lg);background:var(--paper);width:min(100%,420px);margin:0;overflow:hidden;box-shadow:0 18px 40px -28px #0d23098c}.portrait img{width:100%;height:auto;display:block}.split__body{background:var(--panel);padding:clamp(2rem, 5vw, 4rem) var(--pad)}.split__title{max-width:18ch;margin:1.1rem 0 1.75rem}.two-col{background:var(--paper);border-radius:var(--r-lg);gap:1.75rem;padding:clamp(1.5rem,3vw,2.25rem);display:grid}.two-col h3{font-size:var(--t-1);letter-spacing:-.02em;margin-bottom:.6rem;font-weight:700;line-height:1.3}.two-col p{color:var(--muted);font-size:.92rem}.two-col dt{margin-bottom:.25rem;font-size:.92rem;font-weight:700}.two-col dd{color:var(--muted);margin:0 0 1.1rem;font-size:.92rem}.two-col dd:last-child{margin-bottom:0}.two-col dl>div+div{margin-top:1.1rem}.two-col dl>div:last-child dd{margin-bottom:0}@media (min-width:900px){.split,.two-col{grid-template-columns:1fr 1fr}}.section{padding:clamp(3rem, 7vw, 5.5rem) var(--pad);border-top:1px solid var(--line)}.section--panel{background:var(--panel)}.section__head{gap:1rem;margin-bottom:clamp(2rem,4vw,3rem);display:grid}.section__head .pill{justify-self:start}@media (min-width:900px){.section__head{grid-template-columns:1fr auto;align-items:end}.section__head .pill{grid-area:1/1}.section__head .h-section{grid-area:2/1}.section__head .lede{text-align:right;grid-area:2/2;justify-self:end;max-width:34ch}}.work-grid{gap:1rem;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);flex-direction:column;gap:.9rem;padding:clamp(1.35rem,2.5vw,2rem);display:flex}.card:hover{border-color:var(--line-mint);transform:translateY(-3px);box-shadow:0 14px 34px -22px #0d230966}.card--feature{background:var(--mint-soft);border-color:var(--line-mint)}.card__top{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card__title{font-size:var(--t-2);letter-spacing:-.028em;font-weight:700;line-height:1.15}.card--sm .card__title{font-size:var(--t-1)}.card__blurb{color:var(--muted)}.card__stat{font-family:var(--sans);font-size:var(--t--1);color:var(--ink);background:var(--mint);border-radius:999px;align-self:flex-start;width:fit-content;margin-top:.8rem;padding:.22rem .6rem;font-weight:600}.card--feature .card__stat{background:var(--paper);border:1px solid var(--line-mint)}.card__points{color:var(--ink-2);gap:.45rem;font-size:.92rem;display:grid}.card__points li{padding-left:1.15rem;position:relative}.card__points li:before{content:"";background:var(--line-mint);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}.card__foot{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.85rem;margin-top:auto;padding-top:.9rem;display:flex}.card--feature .card__foot{border-top-color:var(--line-mint)}@media (min-width:560px){.card__foot{flex-flow:wrap;justify-content:space-between;align-items:center}}.chips{flex-wrap:wrap;gap:.35rem;display:flex}.chip{font-family:var(--sans);border:1px solid var(--line);color:var(--muted);background:var(--paper);white-space:nowrap;border-radius:6px;padding:.2rem .5rem;font-size:.74rem;font-weight:500}.card__link{font-family:var(--sans);font-size:var(--t--1);border-bottom:1px solid var(--line-mint);transition:gap .2s var(--ease), border-color .2s var(--ease);align-items:center;gap:.35rem;padding-bottom:1px;font-weight:500;text-decoration:none;display:inline-flex}.card__link:hover{border-bottom-color:var(--ink);gap:.6rem}.card__note{font-family:var(--sans);font-size:var(--t--1);color:var(--muted)}@media (min-width:900px){.work-grid{grid-template-columns:1fr 1fr}.card--feature{grid-column:1/-1}.card--feature .card__body{grid-template-columns:1fr 1fr;gap:2rem;display:grid}}.index{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);margin-top:clamp(2rem,4vw,3rem);overflow:hidden}.index__head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1.1rem clamp(1.1rem,2.5vw,1.75rem);display:flex}.index__note{color:var(--muted);font-size:.92rem}.index__list li+li{border-top:1px solid var(--line)}.index__row{transition:background .2s var(--ease);grid-template-columns:1fr auto;gap:.3rem 1.25rem;padding:1rem clamp(1.1rem,2.5vw,1.75rem);text-decoration:none;display:grid}.index__row--link:hover{background:var(--mint-soft)}.index__title{letter-spacing:-.015em;font-weight:700}.index__kind{font-family:var(--sans);font-size:var(--t--1);color:var(--muted);grid-column:1;font-weight:600}.index__detail{color:var(--ink-2);grid-column:1;font-size:.92rem}.index__stack{font-family:var(--sans);font-size:var(--t--1);color:var(--muted);grid-column:1}.index__go{color:var(--muted);grid-area:1/2;align-self:center}.index__go em{font-family:var(--sans);font-size:var(--t--1);white-space:nowrap;font-style:normal}.index__row--link:hover .index__go{color:var(--ink)}@media (min-width:900px){.index__row{grid-template-columns:220px 150px 1fr 220px 28px;align-items:center;gap:1.5rem}.index__kind,.index__detail,.index__stack{grid-column:auto}.index__go{text-align:right;grid-column:5}.index__go em{font-size:.7rem}}.roles{gap:1rem;display:grid}.role{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);gap:1rem;padding:clamp(1.35rem,2.5vw,2rem);display:grid}.role__meta{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.role__period{font-family:var(--sans);font-size:var(--t--1);color:var(--muted)}.role__title{font-size:var(--t-1);letter-spacing:-.02em;font-weight:700;line-height:1.3}.role__co{color:var(--muted);margin-top:.15rem;font-size:.92rem}.role__points{color:var(--ink-2);max-width:var(--measure);gap:.45rem;font-size:.92rem;display:grid}.role__points li{padding-left:1.15rem;position:relative}.role__points li:before{content:"";background:var(--line-mint);border-radius:50%;width:6px;height:6px;position:absolute;top:.6em;left:0}@media (min-width:900px){.role{grid-template-columns:260px 1fr;gap:2.5rem}}.stack-list{gap:.75rem;display:grid}.stack-row{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);gap:.7rem;padding:1.1rem 1.25rem;display:grid}.stack-row__label{font-family:var(--sans);font-size:var(--t--1);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}@media (min-width:780px){.stack-row{grid-template-columns:190px 1fr;align-items:center;gap:1.5rem}}.edu{background:var(--mint);border-radius:var(--r-lg);gap:.75rem;margin-top:1rem;padding:clamp(1.35rem,2.5vw,2rem);display:grid}.edu__q{font-size:var(--t-1);letter-spacing:-.02em;font-weight:700}.edu__meta{font-family:var(--sans);font-size:var(--t--1);color:#33502c}@media (min-width:780px){.edu{grid-template-columns:1fr 1fr;align-items:start;gap:2.5rem}}.contact{background:var(--forest);color:var(--on-forest);padding:clamp(3rem, 7vw, 5.5rem) var(--pad)}.contact__grid{gap:2.5rem;display:grid}.contact__title{max-width:14ch;margin:1.1rem 0 1.25rem}.contact__lede{color:var(--on-forest-dim);max-width:42ch;margin-bottom:2rem}.contact__list{gap:0;display:grid}.contact__row{border-bottom:1px solid var(--line-forest);align-items:baseline;gap:1rem;padding:.7rem 0;display:flex}.contact__key{font-family:var(--sans);font-size:var(--t--1);text-transform:uppercase;letter-spacing:.1em;color:var(--on-forest-dim);min-width:5.5rem;font-weight:600}.contact__val{word-break:break-word;transition:border-color .2s var(--ease);border-bottom:1px solid #0000;text-decoration:none}.contact__val:hover{border-bottom-color:var(--mint)}.form{border:1px solid var(--line-forest);border-radius:var(--r-lg);background:#ffffff0a;gap:.9rem;padding:clamp(1.35rem,2.5vw,2rem);display:grid}.field{gap:.35rem;display:grid}.field label{font-family:var(--sans);font-size:var(--t--1);text-transform:uppercase;letter-spacing:.1em;color:var(--on-forest-dim);font-weight:600}.field input,.field textarea{border:1px solid var(--line-forest);border-radius:var(--r-sm);color:var(--on-forest);width:100%;transition:border-color .2s var(--ease);background:#ffffff0f;padding:.65rem .8rem}.field input:hover,.field textarea:hover,.field input:focus,.field textarea:focus{border-color:var(--mint)}.field textarea{resize:vertical;min-height:6.5rem}.field__error{font-family:var(--sans);font-size:var(--t--1);color:#ffb3a0}.form__status{font-family:var(--sans);font-size:var(--t--1);color:var(--mint);min-height:1.2em}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}@media (min-width:900px){.contact__grid{grid-template-columns:1fr 1fr;gap:4rem}}.contact__actions{flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;display:flex}.btn svg{flex:none}.foot__links a{align-items:center;gap:.35rem;display:inline-flex}.foot{font-family:var(--sans);font-size:var(--t--1);color:var(--on-forest-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;max-width:1440px;margin-inline:auto;padding:1.25rem clamp(.75rem,2vw,1.75rem) .75rem;display:flex}.foot a{transition:color .2s var(--ease);text-decoration:none}.foot a:hover{color:var(--mint)}.foot__links{gap:1.25rem;display:flex}.badge-art{width:min(100%,330px);height:auto}.badge-art .stroke{fill:none;stroke:var(--forest);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.badge-art .thin{stroke-width:1.1px;opacity:.55}.badge-art .fill{fill:var(--forest)}.badge-art .paper{fill:#fff}@media (prefers-reduced-motion:no-preference){.badge-art .sway{transform-origin:165px 18px;animation:sway 7s var(--ease) infinite}}@keyframes sway{0%,to{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}@media (prefers-reduced-motion:no-preference){.rise{animation:rise .65s var(--ease) backwards}.rise-1{animation-delay:40ms}.rise-2{animation-delay:.12s}.rise-3{animation-delay:.2s}.rise-4{animation-delay:.28s}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
