@font-face{font-family:"Geist";src:url(assets/fonts/geist-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"GeistMono";src:url(assets/fonts/geist-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--paper:#F4F4F2;--ink:#0D0D0D;--g1:#E2E2DE;--g2:#9A9A96;--g3:#5C5C59;--acc:#FF4D00;--sans:"Geist",system-ui,sans-serif;--mono:"GeistMono",ui-monospace,monospace;--pad:clamp(16px,3vw,48px)}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);overflow-x:hidden}
a{color:inherit}
.mono{font-family:var(--mono);letter-spacing:.02em}
.acc{color:var(--acc)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:99}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
h1,h2{font-weight:500;letter-spacing:-.045em;line-height:.9}
.fine{font-size:12px;color:var(--g3);margin-top:16px}
.progress{position:fixed;top:0;left:0;height:3px;background:var(--acc);width:0;z-index:60}
.cols{position:fixed;inset:0 var(--pad);display:grid;grid-template-columns:repeat(12,1fr);gap:16px;pointer-events:none;z-index:55;opacity:0;transition:opacity .3s}
.cols i{background:rgba(255,77,0,.07);border-inline:1px solid rgba(255,77,0,.25)}
.cols.on{opacity:1}

.nav{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px var(--pad);background:rgba(244,244,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--ink)}
.nav nav{display:flex;gap:26px}
.nav nav a{font:13px var(--mono);text-decoration:none}
.nav nav a:hover{color:var(--acc)}
.grid-btn{font:12px var(--mono);background:none;border:1px solid var(--ink);padding:7px 10px;cursor:pointer;color:var(--ink)}
.grid-btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}
kbd{font:inherit;border:1px solid currentColor;padding:0 4px;margin-left:4px}
.btn{display:inline-flex;gap:12px;align-items:center;background:var(--ink);color:var(--paper);text-decoration:none;font:500 14px var(--mono);padding:16px 22px;border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--acc)}

.hero{position:relative;padding:28px var(--pad) 60px;border-bottom:1px solid var(--ink);min-height:calc(100vh - 62px);display:flex;flex-direction:column}
.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);font-size:12px;color:var(--g3);border-bottom:1px solid var(--g1);padding-bottom:12px}
.hero-meta span:last-child{text-align:right}
.hero h1{font-size:clamp(64px,11.5vw,190px);margin-top:4vh;position:relative;z-index:2}
.hero-row{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:auto;padding-top:40px;position:relative;z-index:2;align-items:end}
.hero-row p{grid-column:1/6;font-size:18px;color:var(--g3)}
.hero-row .btn{grid-column:10/13;justify-self:end}
.module{position:absolute;right:var(--pad);top:16%;width:min(46vw,640px);z-index:1}
.draw path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.8s cubic-bezier(.6,0,.2,1) forwards}
.draw path:nth-child(2){animation-delay:.3s}.draw path:nth-child(3){animation-delay:.5s}.draw path:nth-child(4){animation-delay:.7s}.draw path:nth-child(5){animation-delay:1s;stroke:var(--g2)}
@keyframes draw{to{stroke-dashoffset:0}}
.cells rect:first-child{animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.2}}
.lbl{font-size:12px;fill:var(--g3)}

section{scroll-margin-top:70px}
.sec-head{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:14px;margin-bottom:34px}
.sec-head span{grid-column:1/3;font-size:13px;color:var(--acc)}
.sec-head h2{grid-column:3/13;font-size:clamp(48px,7vw,112px)}
.systems,.model,.method,.contact{padding:110px var(--pad)}
.table{border-top:1px solid var(--ink)}
.tr{display:grid;grid-template-columns:2fr 4fr 4fr 2fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--g1);transition:background .2s,padding .2s;font-size:18px}
.tr:not(.th):hover{background:var(--ink);color:var(--paper);padding-inline:14px}
.tr:not(.th):hover em{color:var(--acc)}
.th{font:12px var(--mono);color:var(--g3);text-transform:uppercase;padding:12px 0}
.tr em{font-style:normal;font-family:var(--mono);font-size:13px}

.model{background:var(--ink);color:var(--paper)}
.model .sec-head{border-color:var(--paper)}
.model-wrap{display:grid;grid-template-columns:4fr 8fr;gap:32px;align-items:start}
.model-ui p{color:var(--g2);margin-bottom:28px}
.model-ui label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px}
.model-ui output{color:var(--acc)}
input[type=range]{width:100%;accent-color:var(--acc)}
.readout{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--g3);margin:28px 0 20px}
.readout div{padding:14px;border-right:1px solid var(--g3)}.readout div:last-child{border:0}
.readout dt{font-size:11px;color:var(--g2);text-transform:uppercase}
.readout dd{font-size:30px;margin-top:4px}
.legend{list-style:none;display:grid;gap:8px;font-size:12px;color:var(--g2)}
.legend i{display:inline-block;width:22px;height:2px;vertical-align:middle;margin-right:10px}
.k1{background:var(--paper)}.k2{background:var(--g2);height:8px!important;opacity:.6}.k3{background:var(--acc);height:3px!important}
#chart{width:100%;aspect-ratio:16/9;border:1px solid var(--g3)}

.acc-list{list-style:none;border-top:1px solid var(--ink)}
.acc-list li{border-bottom:1px solid var(--ink)}
.acc-list button{width:100%;display:grid;grid-template-columns:2fr 9fr 1fr;gap:16px;align-items:center;text-align:left;background:none;border:0;padding:26px 0;font:500 clamp(24px,3vw,44px)/1 var(--sans);letter-spacing:-.03em;cursor:pointer;color:var(--ink)}
.acc-list button .mono{font-size:13px;color:var(--acc);letter-spacing:0}
.pm{justify-self:end;width:20px;height:20px;position:relative}
.pm::before,.pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--ink);transition:transform .3s}
.pm::after{transform:rotate(90deg)}
button[aria-expanded=true] .pm::after{transform:rotate(0)}
.acc-list .body{display:grid;grid-template-columns:2fr 9fr 1fr;gap:16px;padding-bottom:28px}
.acc-list .body[hidden]{display:none}
.acc-list .body p{grid-column:2;font-size:18px;color:var(--g3);max-width:56ch}

.statement{padding:140px var(--pad);border-block:1px solid var(--ink)}
.statement p{font-size:clamp(30px,4.6vw,76px);letter-spacing:-.04em;line-height:1.02;font-weight:500}

.contact-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.contact-grid>p{grid-column:1/5;color:var(--g3);font-size:18px}
.contact form{grid-column:6/13;display:grid;gap:22px}
.contact label{display:grid;gap:8px;font-size:12px;color:var(--g3);text-transform:uppercase}
.contact input,.contact select{font:18px var(--sans);border:0;border-bottom:1px solid var(--ink);background:none;padding:10px 0;color:var(--ink);border-radius:0}
.contact .btn{justify-self:start}
.msg{font-size:13px;min-height:1.4em}

.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:40px var(--pad) 80px;border-top:1px solid var(--ink);font-size:12px;color:var(--g3)}
.tarzi-ribbon{position:fixed;right:0;bottom:0;z-index:70;font-size:11px;text-decoration:none;background:var(--acc);color:var(--ink);padding:7px 12px}

@media (max-width:900px){
  .nav nav{display:none}
  .hero-meta span:nth-child(2){display:none}.hero-meta{grid-template-columns:1fr 1fr}
  .module{position:relative;right:auto;top:auto;width:100%;margin:24px 0 0}
  .hero-row{grid-template-columns:1fr}.hero-row p,.hero-row .btn{grid-column:1;justify-self:start}
  .sec-head span{grid-column:1/13}.sec-head h2{grid-column:1/13}
  .tr{grid-template-columns:1fr 2fr;font-size:16px}.tr span:nth-child(3),.tr span:nth-child(4){display:none}
  .model-wrap{grid-template-columns:1fr}
  .acc-list button,.acc-list .body{grid-template-columns:1fr 6fr 1fr}
  .contact-grid>p,.contact form{grid-column:1/13}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.draw path{stroke-dashoffset:0}html{scroll-behavior:auto}}
/* imagery */
.ph,.ph img{display:block;width:100%;height:100%}
.ph img{object-fit:cover}
figure{margin:0}
.field{position:relative;height:78vh;min-height:420px;border-bottom:1px solid var(--ink);overflow:hidden}
.field img{filter:grayscale(.2) contrast(1.05)}
.field figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:16px;padding:60px var(--pad) 16px;font-size:12px;color:var(--paper);background:linear-gradient(transparent,rgba(13,13,13,.75))}
.plates{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:48px}
.plates figure{position:relative;overflow:hidden;border:1px solid var(--ink);background:var(--g1)}
.plates figcaption{position:absolute;left:0;top:0;background:var(--paper);border:0 solid var(--ink);border-width:0 1px 1px 0;font-size:11px;padding:6px 10px}
.plates img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.plates figure:hover img{transform:scale(1.04)}
.p-a{grid-column:1/9;aspect-ratio:16/10}.p-b{grid-column:9/13;grid-row:span 2}.p-c{grid-column:9/13;display:none}.p-d{grid-column:1/9;aspect-ratio:16/10}
.p-b{grid-row:1/3}
@media (min-width:901px){.plates{grid-template-rows:auto auto auto}.p-b{grid-row:1/2}.p-c{display:block;grid-row:2/3;aspect-ratio:auto}.p-a{grid-row:1/2}.p-d{grid-row:2/3}}
@media (max-width:900px){.plates figure{grid-column:1/13!important;grid-row:auto!important;display:block;aspect-ratio:4/3}.p-b{aspect-ratio:3/4!important}.field{height:56vh}.field figcaption span:last-child{text-align:right}}
