@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--bg:#0b0e0d;--line:#26302b;--text:#edf2ee;--muted:#8b9690;--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}
.nav{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;z-index:20;background:rgba(11,14,13,.95);backdrop-filter:blur(12px)}
.nav-in{width:min(var(--max),calc(100% - 48px));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:25px}.brand{display:flex;gap:12px;align-items:baseline;white-space:nowrap}.brand b{font-size:15px;letter-spacing:.18em}.brand small,.mono{font-family:"IBM Plex Mono",monospace}.brand small{font-size:9px;color:var(--muted);letter-spacing:.1em}
.navlinks{display:flex;gap:23px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#aeb8b2}.navlinks a:hover,.navlinks .active{color:white}.project{border:1px solid #53635b;padding:11px 14px}.project:hover{background:#e4eee8;color:#0b0e0d}.menu{display:none;background:none;border:0;color:white;font-size:22px}
main{width:min(var(--max),calc(100% - 48px));margin:auto}.hero{min-height:calc(100vh - 78px);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:60px;border-bottom:1px solid var(--line)}.eyebrow{font:10px "IBM Plex Mono",monospace;letter-spacing:.18em;color:#7f8d85;text-transform:uppercase;margin-bottom:28px}
h1{font-size:clamp(65px,9.5vw,150px);line-height:.83;letter-spacing:-.075em;font-weight:500;margin:0}.copy{max-width:650px;color:#aeb8b2;font-size:17px;margin-top:40px}.copy strong{color:white;font-weight:500}.cta{margin-top:32px;display:inline-flex;gap:22px;border:1px solid #68786f;padding:15px 18px;font:10px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase}.cta:after{content:"↗";font-size:14px}.cta:hover{background:#e4eee8;color:#0b0e0d}
.diagram{height:500px;position:relative;display:grid;place-items:center}.diagram:before{content:"";position:absolute;width:80%;height:80%;border:1px solid var(--line);background:repeating-linear-gradient(0deg,transparent 0 39px,rgba(184,215,197,.05) 40px),repeating-linear-gradient(90deg,transparent 0 39px,rgba(184,215,197,.05) 40px)}.ring{width:270px;height:270px;border:1px solid #53655b;border-radius:50%;position:relative}.ring:before{content:"";position:absolute;inset:22%;border:1px solid #34423b;border-radius:50%}.ring:after{content:"";position:absolute;width:8px;height:8px;left:calc(50% - 4px);top:calc(50% - 4px);border-radius:50%;background:#c7ddd0}.cross{position:absolute;left:0;right:0;top:50%;height:1px;background:#4c5c54}.cross.v{transform:rotate(90deg)}.coord{position:absolute;font:9px "IBM Plex Mono",monospace;color:#65736c}.c1{top:8%;left:2%}.c2{right:2%;bottom:9%}.c3{right:4%;top:17%}
.section{padding:130px 0;border-bottom:1px solid var(--line)}.head{display:grid;grid-template-columns:.7fr 1.3fr;gap:50px}.section h2{font-size:clamp(45px,6vw,88px);line-height:.9;letter-spacing:-.065em;font-weight:500;margin:0}.lead{font-size:22px;color:#c1cac5;max-width:700px;margin:0}.rows{margin-top:80px;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:70px 1fr 1.35fr;gap:35px;padding:25px 0;border-bottom:1px solid var(--line)}.row .num{font:10px "IBM Plex Mono",monospace;color:#68766f}.row h3{font-size:16px;font-weight:500;margin:0}.row p{margin:0;color:#919d96}.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:45px}.tag{border:1px solid var(--line);padding:10px 13px;font:10px "IBM Plex Mono",monospace;color:#a7b2ac}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:70px}.card{background:var(--bg);min-height:270px;padding:30px}.card .num{font:10px "IBM Plex Mono",monospace;color:#68766f}.card h3{font-size:25px;font-weight:500;margin:75px 0 10px}.card p{color:#8f9a94;margin:0}
.project-page{min-height:calc(100vh - 78px);display:grid;grid-template-columns:.75fr 1.25fr;gap:90px;padding:100px 0}.project-page h1{font-size:clamp(60px,8vw,115px)}.form{border-top:1px solid var(--line)}.field{padding:21px 0;border-bottom:1px solid var(--line)}.field label{display:block;font:9px "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#738078;margin-bottom:9px}.field input,.field textarea{width:100%;background:transparent;border:0;outline:0;color:white;font-size:17px}.field textarea{min-height:110px;resize:vertical}.submit{margin-top:25px;background:transparent;color:white;border:1px solid #66776d;padding:15px 20px;cursor:pointer;font:10px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase}.submit:hover{background:#e4eee8;color:#0b0e0d}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:80px}.contact-block{border-top:1px solid var(--line);padding-top:20px}.contact-block h3{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.contact-block p{color:#9ba59f}.mail{font-size:clamp(24px,4vw,55px);letter-spacing:-.04em}
.edu{width:min(var(--max),calc(100% - 48px));margin:auto;border-bottom:1px solid var(--line);padding:55px 0 30px;display:flex;justify-content:space-between;gap:30px}.edu p{color:#8f9a94}.edu a{font:10px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase}.small{font:10px "IBM Plex Mono",monospace;letter-spacing:.14em;color:#748079;text-transform:uppercase}.footer{padding:35px 0;color:#66736d;font:9px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase}.footer-in{width:min(var(--max),calc(100% - 48px));margin:auto;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}
@media(max-width:850px){.navlinks{display:none}.menu{display:block}.hero,.head,.project-page{grid-template-columns:1fr}.hero{padding:80px 0;gap:25px}.diagram{height:350px}.section{padding:90px 0}.row{grid-template-columns:45px 1fr}.row p{grid-column:2}.cards{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}.brand small{display:none}.navlinks.open{display:flex;flex-direction:column;position:absolute;top:78px;left:0;right:0;background:#0b0e0d;border-top:1px solid #262c29;border-bottom:1px solid #262c29;padding:18px 24px;gap:18px;z-index:40;font-size:13px}.navlinks.open a{padding:6px 0}}
