.node{left:calc(var(--rail) / -2);width:0;display:block;position:absolute;top:clamp(4.5rem,12vh,9rem);transform:translate(-50%)}@media (width<=760px){.node{display:none}}.node .g{width:30px;height:30px;position:absolute;left:50%;transform:translate(-50%,-50%)}.node .g circle{fill:none;stroke:var(--c)}.phero{padding:clamp(7rem, 16vh, 11rem) var(--gut) clamp(3rem, 6vh, 5rem);margin-left:var(--rail);border-bottom:1px solid var(--line);position:relative}.phero-back{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);align-items:center;gap:.5rem;margin-bottom:2.4rem;font-size:.7rem;transition:color .2s;display:inline-flex}.phero-back:hover{color:var(--c)}.phero-back .ar{color:var(--c);transition:transform .2s}.phero-back:hover .ar{transform:translate(-3px)}.phero-meta{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--c);margin-bottom:1.2rem;font-size:.7rem}.phero-title{font-family:var(--disp);letter-spacing:-.03em;margin-bottom:1.4rem;font-size:clamp(2.8rem,8vw,6rem);font-weight:900;line-height:.9}.phero-title em{color:var(--c);text-shadow:0 0 40px #00f0c859;font-style:normal}.phero-tag{color:var(--mid);max-width:56ch;margin-bottom:2rem;font-size:clamp(1.05rem,1.8vw,1.4rem);line-height:1.5}.phero-badges{flex-wrap:wrap;gap:.55rem;display:flex}.chip.stack{color:var(--mid)}.chip.stack .s{display:none}.chip.stack{padding-left:.65rem}@media (width<=760px){.phero{margin-left:0}}.csec{padding:clamp(3rem, 6vh, 5rem) var(--gut)}.csec .seclabel{margin-bottom:1rem}.csec .ctitle{font-family:var(--disp);letter-spacing:-.02em;margin-bottom:1.4rem;font-size:clamp(1.8rem,4vw,3rem);font-weight:800;line-height:1.05}.csec .cbody{color:var(--mid);max-width:64ch;margin-bottom:1.1rem;font-size:clamp(1rem,1.3vw,1.1rem)}.csec .cbody:last-child{margin-bottom:0}.csec .csubtitle{font-family:var(--disp);letter-spacing:-.01em;color:var(--ink);margin:2.2rem 0 .9rem;font-size:1.2rem;font-weight:700}.csec+.feats{padding:0 var(--gut) clamp(3rem, 6vh, 5rem);margin-top:-1rem}.feats{padding:clamp(1rem, 3vh, 2rem) var(--gut) clamp(4rem, 8vh, 6rem);grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,3vw,2.2rem);display:grid}@media (width<=760px){.feats{grid-template-columns:1fr}}.feat{border:1px solid var(--line);background:linear-gradient(160deg,#00f0c806,#0000 60%);grid-template-columns:auto 1fr;gap:clamp(.8rem,2vw,1.4rem);padding:clamp(1.2rem,2.5vw,1.8rem);transition:border-color .25s,background .25s;display:grid}.feat:hover{border-color:var(--line2);background:linear-gradient(160deg,#00f0c80d,#0000 60%)}.feat .fn{font-family:var(--mono);color:var(--c);align-self:start;padding-top:.25rem;font-size:.82rem}.feat h3{font-family:var(--disp);letter-spacing:-.01em;margin-bottom:.55rem;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:700;line-height:1.2}.feat p{color:var(--mid);font-size:.95rem;line-height:1.55}.csec .stack{margin-top:1.6rem}.ctas{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.cta{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line2);color:var(--ink);align-items:center;gap:.55rem;padding:.85rem 1.35rem;font-size:.78rem;transition:all .2s;display:inline-flex}.cta:hover{border-color:var(--c);color:var(--c)}.cta .ar{transition:transform .2s}.cta:hover .ar{transform:translate(3px)}.cta-pri{background:var(--c);color:var(--bg);border-color:var(--c)}.cta-pri:hover{background:var(--c-lite);border-color:var(--c-lite);color:var(--bg);box-shadow:0 0 22px #00f0c84d}.eu-csec{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:linear-gradient(#00f0c804,#0000 30%)}.eu-banner{border:1px solid var(--line2);background:#00339914;align-items:center;gap:clamp(1rem,2.5vw,1.6rem);margin:0 0 2rem;padding:1.2rem 1.4rem;display:flex}.eu-flag{flex:none;width:clamp(80px,14vw,120px);height:auto;display:block}.eu-banner-text{font-family:var(--sans);flex-direction:column;gap:.25rem;line-height:1.35;display:flex}.eu-banner-text strong{font-family:var(--disp);color:var(--ink);letter-spacing:-.005em;font-size:clamp(.95rem,1.5vw,1.15rem);font-weight:700}.eu-banner-text span{font-family:var(--mono);letter-spacing:.08em;color:var(--mid);font-size:.72rem}@media (width<=520px){.eu-banner{text-align:left;flex-direction:column;align-items:flex-start}}.eu-details{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;margin:1.8rem 0 2rem;display:grid}@media (width<=640px){.eu-details{grid-template-columns:1fr}}.eu-row{background:var(--bg);flex-direction:column;gap:.35rem;padding:1rem 1.2rem;display:flex}.eu-row dt{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);font-size:.6rem}.eu-row dd{color:var(--ink);font-size:.95rem;line-height:1.4}.projects-list{padding:clamp(3rem, 6vh, 5rem) var(--gut);margin-left:var(--rail);flex-direction:column;display:flex}@media (width<=760px){.projects-list{margin-left:0}}.proj-link{border-top:1px solid var(--line);grid-template-columns:auto 168px 1fr auto;align-items:start;gap:clamp(1rem,3vw,2.6rem);padding:clamp(1.8rem,3vw,2.4rem) 0;transition:background .3s;display:grid}.proj-link:last-child{border-bottom:1px solid var(--line)}.proj-link:hover{background:linear-gradient(90deg,#00f0c80b,#0000 55%)}.proj-link .pn{font-family:var(--mono);color:var(--c);padding-top:.3rem;font-size:.82rem}.proj-link .slug{font-family:var(--mono);color:var(--ink);letter-spacing:.01em;font-size:1.05rem;display:block}.proj-link h3{font-family:var(--disp);letter-spacing:-.01em;margin-bottom:.6rem;font-size:clamp(1.3rem,2.6vw,2rem);font-weight:800;line-height:1.05}.proj-link p{color:var(--mid);max-width:62ch;font-size:.98rem}.proj-link .go{font-family:var(--mono);color:var(--dim);white-space:nowrap;font-size:.78rem;transition:color .2s,transform .2s}.proj-link:hover .go{color:var(--c);transform:translate(3px)}@media (width<=860px){.proj-link{grid-template-columns:auto 1fr}.proj-link .meta{grid-column:2}.proj-link .body,.proj-link .links{grid-column:1/-1}}
