:root{--ink:#101713;--paper:#f2f0e8;--paper-deep:#e7e4d9;--muted:#59615b;--line:#c7c8be;--acid:#d7ff64;--blue:#74a9ff;--white:#fbfaf5;--sans:"Avenir Next", Avenir, "Helvetica Neue", sans-serif;--mono:"SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:linear-gradient(#10171309 1px, transparent 1px), linear-gradient(90deg, #10171309 1px, transparent 1px), var(--paper);font-family:var(--sans);background-size:32px 32px;margin:0;font-size:16px;line-height:1.6}a{color:inherit}a:focus-visible{outline-offset:4px;outline:3px solid #174f92}.contact-panel a:focus-visible{outline-color:var(--acid)}.skip-link{z-index:20;background:var(--acid);padding:.65rem .9rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,main,footer{width:min(100% - 3rem,1240px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:84px;display:flex}.wordmark{align-items:center;gap:.8rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark>span:first-child{width:2.4rem;height:2.4rem;color:var(--acid);background:var(--ink);font-family:var(--mono);place-items:center;font-size:.78rem;display:grid}nav{font-family:var(--mono);text-transform:uppercase;gap:clamp(1rem,3vw,2.5rem);font-size:.75rem;display:flex}nav a,footer a{text-underline-offset:.35rem;text-decoration-thickness:1px}.hero{grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);align-items:end;gap:clamp(3rem,7vw,7rem);min-height:calc(100vh - 84px);padding:clamp(5rem,10vw,9rem) 0 clamp(4rem,8vw,7rem);display:grid}.eyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:.72rem;font-weight:500;display:flex}.eyebrow:before{background:var(--blue);content:"";width:2.5rem;height:2px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.065em;max-width:970px;margin-bottom:2rem;font-size:clamp(3.3rem,8.2vw,7.4rem);font-weight:500;line-height:.91}h1 span{display:block}@supports (-webkit-text-stroke:1px black){h1 span{color:#0000;-webkit-text-stroke:1.5px var(--ink)}}.hero-intro{color:#354039;max-width:690px;margin-bottom:2.2rem;font-size:clamp(1.05rem,1.7vw,1.28rem)}.text-link{border-bottom:2px solid var(--ink);font-family:var(--mono);text-transform:uppercase;align-items:center;gap:1rem;padding-bottom:.4rem;font-size:.78rem;text-decoration:none;display:inline-flex}.text-link span{color:#376daf;font-size:1.15rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.button-link{min-height:2.8rem;color:var(--acid);background:var(--ink);font-family:var(--mono);text-transform:uppercase;align-items:center;padding:.65rem 1rem;font-size:.72rem;text-decoration:none;display:inline-flex}.signal-panel{color:var(--white);background:var(--ink);box-shadow:14px 14px 0 var(--blue);padding:1.5rem;position:relative}.signal-heading{color:#cbd0cc;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #39413c;align-items:center;gap:.65rem;padding-bottom:1.1rem;font-size:.7rem;display:flex}.pulse{background:var(--acid);border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 5px #d7ff641f}.signal-panel dl{margin:1.6rem 0 2.5rem}.signal-panel dl div{grid-template-columns:4.25rem 1fr;gap:1rem;padding:.55rem 0;display:grid}.signal-panel dt{color:#8b948e;font-family:var(--mono);text-transform:uppercase;font-size:.68rem}.signal-panel dd{margin:0;font-size:.92rem}.signal-diagram{color:var(--acid);font-family:var(--mono);text-transform:uppercase;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:.5rem;font-size:.58rem;display:grid}.signal-diagram i{background:#67716a;height:1px}.work-section,.capability-section,.about-section,.contact-section{border-top:1px solid var(--line);padding:clamp(5rem,10vw,9rem) 0}.section-heading{grid-template-columns:minmax(260px,.7fr) minmax(300px,1.3fr);column-gap:4rem;margin-bottom:clamp(3.5rem,7vw,6.5rem);display:grid}.section-heading .eyebrow{grid-row:span 2}.section-heading h2,.about-section h2{letter-spacing:-.055em;margin-bottom:1rem;font-size:clamp(2.3rem,5vw,4.8rem);font-weight:500;line-height:1}.section-heading>p:last-child{max-width:540px;color:var(--muted)}.project-card{border-top:1px solid var(--ink);grid-template-columns:5rem minmax(0,1fr) minmax(190px,.4fr);gap:clamp(1.5rem,4vw,4rem);padding:2.75rem 0;display:grid}.project-card:last-child{border-bottom:1px solid var(--ink)}.project-index{color:#376daf;font-family:var(--mono);padding-top:.25rem;font-size:.85rem}.project-meta{color:var(--muted);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.66rem;display:flex}.project-main h3{letter-spacing:-.04em;margin-bottom:1rem;font-size:clamp(1.7rem,3vw,2.6rem);font-weight:600;line-height:1.05}.project-summary{max-width:740px;margin-bottom:.8rem;font-size:1.08rem;font-weight:600}.project-detail{color:#555f59;max-width:760px;margin-bottom:0}.project-link{font-family:var(--mono);text-underline-offset:.3rem;text-transform:uppercase;gap:.6rem;margin-top:1.25rem;font-size:.72rem;font-weight:500;display:inline-flex}.tag-list{flex-wrap:wrap;align-content:flex-start;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);font-family:var(--mono);background:#fbfaf580;padding:.38rem .6rem;font-size:.65rem}.section-heading.compact{grid-template-columns:1fr 1.3fr}.capability-grid{border:1px solid var(--ink);background:var(--ink);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.capability-grid article{background:var(--paper);min-height:260px;padding:1.75rem}.capability-grid article:nth-child(2){background:var(--paper-deep)}.capability-grid article>span{color:#376daf;font-family:var(--mono);font-size:.72rem}.capability-grid h3{margin:4.5rem 0 1rem;font-size:1.5rem}.capability-grid p{color:var(--muted);margin-bottom:0}.about-section{grid-template-columns:minmax(260px,.7fr) minmax(300px,1.3fr);gap:4rem;display:grid}.about-section>div{max-width:760px}.about-section>div p{color:#424d46;font-size:1.08rem}.contact-section{grid-template-columns:minmax(260px,.7fr) minmax(300px,1.3fr);gap:4rem;display:grid}.contact-section h2{letter-spacing:-.055em;max-width:700px;margin-bottom:0;font-size:clamp(2.3rem,5vw,4.8rem);font-weight:500;line-height:1}.contact-panel{color:var(--white);background:var(--ink);align-self:end;padding:clamp(1.5rem,4vw,2.5rem)}.contact-panel>p{color:#d5dad6;max-width:620px;margin-bottom:2rem;font-size:1.08rem}.contact-links{flex-wrap:wrap;gap:.75rem;display:flex}.contact-links a{color:var(--acid);font-family:var(--mono);text-transform:uppercase;border:1px solid #58615b;padding:.55rem .75rem;font-size:.67rem;text-decoration:none}footer{border-top:1px solid var(--ink);font-family:var(--mono);text-transform:uppercase;grid-template-columns:1fr 1fr auto;gap:1rem;padding:2rem 0 3rem;font-size:.68rem;display:grid}@media (width<=900px){.hero{grid-template-columns:1fr;min-height:auto}.signal-panel{max-width:440px}.section-heading,.section-heading.compact,.about-section,.contact-section{grid-template-columns:1fr;gap:1rem}.section-heading .eyebrow{grid-row:auto}.project-card{grid-template-columns:3rem minmax(0,1fr)}.tag-list{grid-column:2}}@media (width<=640px){.site-header,main,footer{width:min(100% - 1.5rem,1240px)}.site-header{align-items:flex-start;padding:1rem 0}.wordmark-name{display:none}nav{flex-direction:column;align-items:flex-end;gap:.8rem}.hero{padding-top:4rem}h1{font-size:clamp(3rem,15vw,5.2rem)}.signal-panel{box-shadow:8px 8px 0 var(--blue);margin-right:.8rem}.project-card{grid-template-columns:1fr;gap:1rem}.project-index,.tag-list{grid-column:auto}.project-meta{flex-direction:column;align-items:flex-start;gap:.35rem}.capability-grid{grid-template-columns:1fr}.capability-grid article{min-height:auto}.capability-grid h3{margin-top:2.5rem}footer{grid-template-columns:1fr}.hero-actions{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media (forced-colors:active){h1 span{color:canvastext;-webkit-text-stroke:0}}
