/* One visual language: woven matter, open connections, resolved work. */
.scene-gesture{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 19px;color:#8299bd;font:9px var(--mono)}
.scene-gesture button{display:flex;align-items:center;gap:7px;background:none;border:0;padding:8px 0;color:#a2baff;font:inherit;cursor:pointer}.scene-gesture .icon{width:15px;height:15px}.scene-gesture button:hover{color:#6384ee}.scene-gesture button:focus-visible{outline:2px solid #7b9aff;outline-offset:5px}
.home-scene .scene{touch-action:pan-y;opacity:1!important}.home-scene .scene:before{opacity:.2}.scene-label{pointer-events:none}

.projects .section-heading{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:9%;max-width:none;margin-bottom:45px}.projects .section-heading h2{font-size:clamp(35px,4vw,62px);line-height:1.12}.projects .section-heading p{max-width:395px;font-size:14px;line-height:1.9}
.projects .project-playground{grid-template-columns:minmax(220px,.8fr) minmax(0,2.2fr);gap:5%;border:0;border-radius:0;background:transparent;overflow:visible}
.projects .project-menu{background:none;border:0;padding:0;gap:0;align-self:start}.projects .project-selection{display:none}.projects .project-menu>button{padding:25px 0;gap:13px;border:0;border-bottom:1px solid #242d3d;border-radius:0;background:none!important;transition:color .25s}.projects .project-menu strong{font-size:clamp(16px,1.5vw,23px);font-weight:500;letter-spacing:-.045em;line-height:1.4;color:#8996ac;transition:color .25s}.projects .project-menu small{font-size:11px;color:#7385a2;margin-top:8px}.projects .project-menu>button[aria-selected=true] strong{color:#edf1fc}.projects .project-menu>button[aria-selected=true] small{color:#99b2ff}.projects .project-number{align-self:flex-start;margin-top:7px}.projects .project-menu b{display:block;color:#97b0ff;opacity:0;translate:-5px 5px;transition:opacity .2s,translate .3s}.projects .project-menu button:is(:hover,[aria-selected=true]) b{opacity:1;translate:0 0}.projects .project-menu button:focus-visible{outline:2px solid #7395ff;outline-offset:5px}.projects .project-menu-note{padding:35px 0 0;margin:0}.projects .project-menu-note p{color:#8c9bb4;font-size:12px}
.projects .project-demo{overflow:clip;background:none;min-width:0}.projects .demo-header{display:grid;grid-template-columns:1fr 46%;gap:12px 14px;padding:0 0 24px;border:0;min-height:180px}.projects .demo-header>div:first-child{grid-column:1;grid-row:1;align-self:end}.projects .demo-header h3{font-size:clamp(23px,2.4vw,35px);font-weight:500;letter-spacing:-.05em;line-height:1.2;max-width:360px}.projects .demo-header .eyebrow{font-size:9px;letter-spacing:.08em;color:#94a7ce}.projects .demo-badge{grid-column:1;grid-row:2;align-self:start;justify-self:start;background:none;border:0;padding:0;color:#7d91b7;letter-spacing:.08em;font-size:8px}.projects .project-art{grid-column:2;grid-row:1/3;width:100%;align-self:center;min-width:0}.project-art>svg{display:block;width:100%;height:auto;overflow:visible;color:#a1b9f2}
.projects #demo-surface{padding:12px 0 25px;background:none;min-height:440px}.projects .project-impact{background:none;border-color:#2c3648}.projects .project-impact>div{padding:23px 25px 23px 0}.projects .project-impact>div+div{border:0;padding-left:20px}.projects .project-impact span{color:#8da0c0}.projects .project-impact>div:last-child span{color:#a3bcff}.projects .project-stack{padding:22px 0;gap:18px}.projects .project-stack>a{color:#b3c6ff}.projects .demo-disclosure{margin-top:28px;max-width:880px;color:#8493ac}.projects .brain-answer{border:1px solid #304361;border-radius:4px;background:#101b2c}.projects .source-toggle{background:#101724;border-color:#2c3b52}.projects .demo-challenge{border:0;background:none;padding:13px 0}.projects .design-choice{border-bottom:0}
.project-art rect,.project-art .art-bubble>path:first-child{fill:#121e34;stroke:#496393;stroke-width:1.1}.project-art .art-sheet>path,.project-art .art-output>path,.project-art .art-bubble>path:not(:first-child),.project-art .art-task>path,.project-art .art-envelope>path,.project-art .art-inbox>path{stroke:#708ab6;stroke-width:1.3;stroke-linecap:round}.project-art .art-hub>circle{fill:#182952;stroke:#5c80cf}.project-art .art-hub .art-halo{fill:none;stroke:#304571;stroke-dasharray:3 6}.art-wire{stroke:#3c5582;stroke-width:1.2;transition:opacity .4s}.art-signal{stroke:#94b2ff;stroke-width:2;stroke-dasharray:.08 .92;stroke-dashoffset:1;opacity:0}.project-art[data-state=working][data-visible=true] .art-signal{opacity:1;animation:art-transmit 1.1s linear infinite}.project-art[data-state=working][data-visible=true] .art-halo{transform-origin:0 0;animation:art-orbit 8s linear infinite}
.project-art .art-node>circle{fill:#111e35;stroke:#4a628c;transition:fill .35s,stroke .35s}.project-art .art-node .art-node-ring{fill:none;stroke:#253756}.project-art .art-reached>circle{stroke:#8babff;fill:#1b3261}.project-art .art-gap{opacity:0;transition:opacity .35s}.art-gap circle{fill:#101724;stroke:#a0aec8}.art-gap text{font:13px var(--mono);fill:#d6e1f7}.art-gap path{stroke:#aab8d1;stroke-width:2;fill:none}.art-code text{font:9px var(--mono);fill:#627898}.art-code text:last-child{fill:#96afff}.art-trace{stroke:#647fac;stroke-width:1.2}.art-output,.art-merge,.art-inbox,.art-message-out{opacity:.45;transition:opacity .4s}.project-art[data-state=complete] :is(.art-output,.art-merge,.art-inbox,.art-message-out),.project-art[data-state=review] .art-merge{opacity:1}.project-art .source-removed{opacity:.13}.project-art[data-state=blocked] .wire-output{opacity:.12;stroke-dasharray:3 8}.project-art[data-state=blocked] .art-gap{opacity:1}.project-art[data-state=blocked] .art-output{opacity:.15}.project-art[data-state=blocked] .art-merge{opacity:.2}.project-art[data-state=blocked] .art-signal{animation:none;opacity:0}.project-art[data-state=complete] .art-wire{stroke:#7e9dde}.project-art[data-state=complete] .art-result-tick{stroke:#b0c7ff;stroke-width:2}.project-art[data-state=complete] .art-task{opacity:1}.project-art[data-state=idle] .art-task{opacity:.4}.project-art .art-task{transition:opacity .4s;transition-delay:var(--delay)}
@keyframes art-transmit{to{stroke-dashoffset:0}}@keyframes art-orbit{to{rotate:360deg}}
/* A large, quiet closing composition shared by every page. */
.site-footer{padding-top:0;gap:24px 38px}.footer-art{position:relative;grid-column:1/-1;grid-row:1;width:100%;padding-top:67px;overflow:clip;isolation:isolate}.footer-wordmark{display:block;font:500 clamp(70px,17.4vw,285px)/1.13 Manrope,sans-serif;letter-spacing:-.086em;color:#a7baff;white-space:nowrap;padding-bottom:18px;user-select:none}.footer-art-caption{width:72%;display:flex;justify-content:space-between;gap:15px;color:#8c9bbb;font:9px var(--mono);letter-spacing:.06em;margin-bottom:25px}.footer-sculpture{position:absolute;right:-1.5%;top:-17px;width:29%;height:87%;z-index:1;pointer-events:none}.footer-sculpture>img{width:55%;height:55%;object-fit:contain;position:absolute;top:20%;left:23%;opacity:.65}.footer-sculpture>canvas{position:relative;width:100%;height:100%}.footer-sculpture.is-ready>img{visibility:hidden}.site-footer>.brand,.site-footer>.footer-signature,.site-footer>.footer-links,.site-footer>.back-top{grid-row:2}.site-footer>.brand{font-size:21px}.site-footer>.brand .brand-mark{width:25px;height:25px}.site-footer .privacy-preferences{grid-row:3}.site-footer>.back-top{grid-column:4}
@media(min-width:1600px){.footer-wordmark{font-size:17.4vw}}
@media(max-width:1100px){.projects .project-playground{grid-template-columns:minmax(190px,.8fr) minmax(0,2fr);gap:4%}.projects .demo-header{grid-template-columns:1fr 42%;min-height:175px}.projects .demo-header h3{font-size:25px}.projects .project-menu strong{font-size:17px}.projects .project-menu b{display:none}}
@media(max-width:960px){.site-footer>.footer-links{grid-column:1/3;grid-row:3}.site-footer>.back-top{grid-column:3;grid-row:2}.site-footer .privacy-preferences{grid-row:4}.projects .project-stack{flex-wrap:wrap}.projects .project-art{min-width:0}}
@media(max-width:760px){.projects .section-heading{display:block;margin-bottom:28px}.projects .section-heading h2{font-size:36px}.projects .project-playground{display:block}.projects .project-menu{display:flex;flex-direction:row;overflow:auto;scrollbar-width:thin;gap:24px;padding:0 0 18px;margin-bottom:28px;scroll-snap-type:x proximity}.projects .project-menu>button{display:block;flex:0 0 190px;padding:0 0 14px;scroll-snap-align:start}.projects .project-menu strong{font-size:17px;white-space:normal}.projects .project-number{display:block;margin:0 0 11px}.projects .project-menu small{white-space:normal;margin-top:6px}.projects .project-menu-note{display:none}.projects .demo-header{grid-template-columns:1fr 43%;gap:10px;min-height:145px;padding-bottom:12px}.projects .demo-header h3{font-size:24px;max-width:none}.projects .demo-badge{max-width:none;text-align:left;font-size:7px}.projects .demo-header .eyebrow{font-size:8px}.projects #demo-surface{padding:10px 0 24px;min-height:0}.projects .project-impact>div,.projects .project-impact>div+div{padding:18px 0}.projects .project-impact>div+div{border-top:1px solid #273348}.projects .project-stack{padding:20px 0}.scene-gesture{font-size:8px}.footer-art{padding-top:45px}.footer-wordmark{font-size:17.3vw;padding-bottom:16px}.footer-art-caption{width:72%;font-size:8px;line-height:1.6;margin-bottom:7px}.footer-sculpture{top:-8px;right:0;width:29%;height:85%}.site-footer{gap:20px}.site-footer>.brand{grid-column:1;grid-row:2}.site-footer>.back-top{grid-column:2;grid-row:2}.site-footer>.footer-signature{grid-column:1/-1;grid-row:3}.site-footer>.footer-links{grid-column:1/-1;grid-row:4}.site-footer .privacy-preferences{grid-row:5}}
@media(max-width:400px){.projects .demo-header{grid-template-columns:1fr 40%;min-height:140px}.projects .demo-header h3{font-size:22px}.footer-art-caption>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){.project-art *,.scene-gesture *{animation:none!important;transition:none!important}.home-scene .scene canvas{transform:none}.project-art[data-state=working] .art-wire{stroke:#9db8ff}.footer-wordmark{transform:none!important}}

.project-art .art-tool-github{filter:brightness(0) invert(1)}
.projects .project-demo[data-project] #demo-surface{background:none}
.projects .source-toggles{display:flex!important;flex-wrap:wrap;gap:8px!important}
.projects .source-toggle{flex:0 1 auto}
@media(max-width:760px){.projects .source-toggle{padding:10px 8px!important}.projects .brain-sources>.mono{font-size:9px!important}}

@media(prefers-reduced-motion:reduce){.scene-gesture button{display:none}}

/* The sculpture crosses section boundaries; text and controls stay above it. */
.sculpture-journey{position:fixed;inset:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}
.sculpture-journey[hidden]{display:none}
.has-sculpture-journey .home-scene .scene{overflow:clip;isolation:auto}
.has-sculpture-journey .home-scene .scene-label{z-index:2}
.has-sculpture-journey .home-scene :is(.scene-heading,.scene-gesture,#hero-roles){position:relative;z-index:2}
.home-hero+.projects{position:relative;padding-top:42px}
.projects .projects-intro{animation:none!important;transform:none!important;will-change:auto;position:relative;grid-template-columns:minmax(0,1fr) 30%;gap:6%;align-items:center;margin-top:34px;margin-bottom:36px}
.projects-intro-copy{position:relative;z-index:2}
.projects .projects-intro p{max-width:520px;margin:24px 0 0;font-size:14px}
.project-sculpture-anchor{height:250px;pointer-events:none}
.has-sculpture-journey .projects :is(.section-kicker,.project-playground,.demo-disclosure){position:relative;z-index:2}
@media(min-width:1600px){.projects .projects-intro{grid-template-columns:minmax(0,1fr) 32%}.project-sculpture-anchor{height:280px}}
@media(max-width:960px) and (min-width:701px){.project-sculpture-anchor{height:200px}.projects .projects-intro{grid-template-columns:minmax(0,1fr) 27%;gap:3%}.projects .projects-intro h2{font-size:clamp(34px,4.5vw,44px)}}
@media(max-width:700px){
 .home-hero+.projects{padding-top:36px}
 .projects .projects-intro{display:block;position:static;margin-top:34px}
 .projects .projects-intro h2{font-size:clamp(32px,8.6vw,44px)}
 .projects .projects-intro p{margin-top:22px;font-size:13px;max-width:440px}
 .project-sculpture-anchor{position:absolute;top:-22px;right:4%;width:112px;height:118px}
 .home-hero+.projects .section-kicker{min-height:45px;align-items:start;padding-right:112px}
 .home-hero+.projects .section-kicker>span:last-child{display:none}
}
