﻿/* Design tokens and base */
:root{--bg:#f6f7f9;--surface:#fff;--ink:#20252c;--muted:#6d7580;--line:#e0e4e8;--amber:#bd8114;--amber-bright:#efb949;--dark:#1c242c;--sans:Inter,'Segoe UI',Arial,sans-serif;--mono:'JetBrains Mono',Consolas,'Courier New',monospace;--radius:15px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c78a17;outline-offset:5px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}::selection{background:#f1c66c;color:#1c242c}.container{width:min(1200px,calc(100% - 96px));margin-inline:auto}.section{padding-block:95px}.eyebrow,.mono{font-family:var(--mono)}.eyebrow{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:500;letter-spacing:1.1px;line-height:1.8;margin-bottom:25px}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--amber-bright);box-shadow:0 0 0 4px #efb94914;flex-shrink:0}.eyebrow-divider{color:#c0c5cb;margin:0 4px}.amber{color:var(--amber)}.muted{color:#7a838d}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:47px;padding:13px 20px;font-size:12px;font-weight:600;border:1px solid transparent;border-radius:7px;transition:background .2s,transform .2s,box-shadow .2s}.button span{font-size:18px;font-weight:400}.button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #151e2810}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#35424d}.button-outline{background:transparent;border-color:#d8dde1}.button-outline:hover{background:#fff}.button-amber{background:var(--amber-bright);color:#222a2f}.section-title{font-size:clamp(30px,3.2vw,43px);font-weight:560;letter-spacing:-1.8px;line-height:1.2}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:35px;gap:30px}.section-heading .eyebrow{margin-bottom:15px}.section-heading>p{font-size:12px;line-height:1.8;color:var(--muted)}
/* Navigation */
.site-header{border-bottom:1px solid var(--line);background:#f6f7f9f5;position:sticky;top:0;z-index:5;backdrop-filter:blur(14px)}.nav-row{display:flex;align-items:center;justify-content:space-between;height:88px;gap:30px}.wordmark{display:inline-flex;align-items:center;gap:16px;font-size:13px;font-weight:600;white-space:nowrap}.monogram{font-size:36px;font-weight:750;letter-spacing:-3px;line-height:1}.monogram>span{color:var(--amber)}.wordmark-role{display:block;font-family:var(--mono);font-size:12px;letter-spacing:1px;color:var(--muted);margin-top:7px;font-weight:400}.nav-row nav{display:flex;align-items:center;gap:30px;font-size:12px;font-weight:550}.nav-row nav>a{transition:color .2s}.nav-row nav>a:hover{color:#a66d05}.nav-contact{padding:11px 14px;border:1px solid #cfd5da;border-radius:6px}.nav-contact span{margin-left:18px}.menu-toggle{display:none}
/* Hero and conceptual architecture */
.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:65px;padding-top:76px;padding-bottom:72px;align-items:center}.hero h1{font-size:clamp(60px,6.1vw,84px);line-height:1.02;font-weight:580;letter-spacing:-5px;margin:28px 0 24px}.title-arrow{font-size:61px;color:#c7ccd0;display:inline-block;vertical-align:8px;margin-left:12px;font-weight:300}.hero h2{font-size:22px;line-height:1.45;font-weight:500;letter-spacing:-.7px;margin-bottom:18px}.hero-description{font-size:13px;line-height:1.9;color:var(--muted);max-width:425px}.hero-actions{display:flex;gap:12px;margin-top:28px}.hero-affiliations{display:flex;align-items:center;gap:23px;margin-top:36px;color:#4b545e}.hero-affiliations>span{font-size:12px;font-weight:700;letter-spacing:1px}.hero-affiliations small{display:block;font:12px var(--mono);letter-spacing:.7px;margin-top:6px;color:var(--muted)}.hero-affiliations i{height:24px;width:1px;background:var(--line)}.system-panel{background:linear-gradient(135deg,#29343e,#1b232c 75%);border:1px solid #3a4651;border-radius:17px;color:#e7ebef;box-shadow:0 25px 55px #23314117;overflow:hidden;transform:rotate(1deg);transition:transform .35s}.system-panel:hover{transform:rotate(0)}.panel-heading{display:flex;justify-content:space-between;margin:22px 24px 0;font:12px var(--mono);letter-spacing:1px;color:#b0bdc9}.panel-heading>span:first-child{display:flex;align-items:center;gap:9px}.architecture-stage{position:relative;height:324px;background-image:radial-gradient(#93a6b921 .7px,transparent .7px);background-size:15px 15px;margin-top:12px}.connections{position:absolute;width:100%;height:100%;inset:0;overflow:visible}.connections path{stroke:#57616b;fill:none;stroke-width:1}.connections path.flow{stroke:url(#wire);stroke-width:2;stroke-dasharray:6 140;animation:energy-flow 10s linear infinite}.connections circle{fill:#d3ac5d}.system-node{position:absolute;top:46px;display:flex;align-items:center;gap:11px;border:1px solid #4a5864;background:#2d3944;padding:15px;border-radius:9px;width:40%;font-size:12px;box-shadow:0 8px 18px #12182040}.solar-node{left:6%}.storage-node{right:6%}.node-icon{font-size:29px;color:#e9b657;line-height:1}.system-node small{display:block;font:12px var(--mono);color:#a3b1bd;letter-spacing:1px;margin-top:6px}.battery-icon{color:#a0bdad}.edge-core{position:absolute;left:50%;top:157px;transform:translateX(-50%);width:154px;height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(130deg,#475054,#2a343c);border:1px solid #c5a56a;border-radius:11px;box-shadow:0 0 40px #d7b86715,inset 0 0 20px #d8b36e09}.core-mark{position:absolute;left:16px;top:14px;font-size:16px;color:#efbd58}.edge-core strong{font:19px var(--mono);letter-spacing:2px;margin-top:8px}.edge-core small{font:12px var(--mono);letter-spacing:1px;color:#b9bfbe}.chip-corner{position:absolute;width:10px;height:10px;border-color:#efbd58;border-style:solid}.top-left{top:-5px;left:-5px;border-width:1px 0 0 1px}.bottom-right{bottom:-5px;right:-5px;border-width:0 1px 1px 0}.endpoint{position:absolute;bottom:16px;font-size:12px;display:flex;align-items:center;gap:8px;color:#d0d8df;background:#24303a;padding:10px;border:1px solid #3f4d59;border-radius:5px}.endpoint-left{left:7%}.endpoint-right{right:5%}.endpoint span{font-size:16px;color:#b8c7d2}.architecture-tabs{display:flex;gap:5px;margin:0 24px;border-bottom:1px solid #47515a}.architecture-tabs button{flex:1;padding:12px 5px;background:transparent;font:12px var(--mono);color:#abb9c5;border-bottom:2px solid transparent}.architecture-tabs .is-active{color:#f1c36d;border-color:#f1c36d}.panel-description{padding:20px 24px 22px;min-height:105px}.panel-description>span{font:12px var(--mono);letter-spacing:1.3px;color:#deba73}.panel-description p{font-size:12px;line-height:1.8;color:#b6c1ca;margin-top:8px}.panel-footer{display:flex;justify-content:space-between;gap:15px;padding:13px 24px;border-top:1px solid #3b4650;font:12px var(--mono);letter-spacing:.7px;color:#a0afbd}.system-panel[data-active-layer=ai] .edge-core{box-shadow:0 0 40px #e1b55d44}.system-panel[data-active-layer=software] .endpoint{border-color:#e7be69}.discipline-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.discipline-strip>.container{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}.discipline-strip span{font-size:12px;white-space:nowrap}.discipline-strip span:first-child{color:var(--muted);font-size:12px}.discipline-strip b{font:12px var(--mono);color:#78838d;margin-right:14px}
/* Vision */
.about-section{display:grid;grid-template-columns:1fr 1.1fr;gap:95px;border-bottom:1px solid var(--line)}.about-section .section-title{line-height:1.3}.about-copy>p{font-size:13px;color:var(--muted);line-height:1.95;margin-bottom:17px}.about-copy .lead{font-size:20px;color:var(--ink);line-height:1.6;letter-spacing:-.4px;margin-bottom:22px}.about-note{display:flex;gap:18px;border-left:2px solid var(--amber);padding-left:19px;margin-top:26px}.about-note>span{font:25px var(--mono);color:var(--amber)}.about-note p{font-size:12px;line-height:1.8;color:var(--muted)}.about-note strong{font-weight:550;color:var(--ink)}
/* Project bento */
.projects-section{padding-bottom:75px}.project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{padding:9px 14px;border-radius:6px;font-size:12px;background:transparent;color:var(--muted);transition:background .2s}.filters button:hover{background:#e8ebed}.filters .is-active{background:var(--ink);color:#fff}.filters span{font:12px var(--mono);margin-left:7px;color:#bfc5cc}.toolbar-note{font-size:12px;letter-spacing:.6px;color:var(--muted)}.bento-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:19px}.project-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;grid-column:span 2;display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s}.project-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px #2834400a}.project-featured{grid-column:span 3;grid-row:span 2;background:#202a34;color:#edf1f4}.project-digital,.project-field{grid-column:span 3}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 23px 0}.card-topline>.mono{font-size:12px;color:#6d7b86;letter-spacing:.5px}.project-featured .card-topline>.mono{color:#a8b6c1}.badge{padding:6px 8px;font:12px var(--mono);letter-spacing:.7px;border:1px solid #dce2e6;border-radius:4px;color:#66727b}.badge-dark{display:flex;align-items:center;gap:7px;border-color:#46525d;color:#c3ccd4}.badge .status-dot{width:4px;height:4px}.card-content{padding:25px;display:flex;flex:1;flex-direction:column}.card-kicker{font:12px var(--mono);letter-spacing:1px;color:var(--muted);margin-bottom:11px}.card-content h3{font-size:25px;letter-spacing:-.8px;font-weight:560;margin-bottom:12px}.card-content>p:not(.card-kicker){font-size:12px;line-height:1.85;color:var(--muted);max-width:410px}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tags>span{font:12px var(--mono);border:1px solid #e0e5e8;padding:5px 7px;border-radius:4px;color:var(--muted)}.round-link{width:36px;height:36px;border:1px solid #dde3e7;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:transparent;font-size:19px;flex-shrink:0;transition:background .2s}.round-link:hover{background:#efb949;color:#20252c;border-color:#efb949}.project-featured .card-content{padding:29px}.project-featured h3{font-size:43px;letter-spacing:-1.5px}.project-featured .card-kicker{color:#deb96d}.project-featured .card-content>p:not(.card-kicker){color:#bac5ce;font-size:14px;line-height:1.9}.project-featured .tags>span{color:#bac5ce;border-color:#47535f}.project-featured .round-link{color:#e7ba61;border-color:#56616b}.research-visual{position:relative;min-height:365px;flex:1;overflow:hidden;background-image:radial-gradient(#70879b30 .7px,transparent .7px);background-size:20px 20px}.research-chip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-13deg);width:148px;height:148px;background:linear-gradient(135deg,#4d5c68,#263541);border:1px solid #7b8b98;border-radius:20px;box-shadow:9px 9px 0 #16202a,10px 10px 0 1px #596b7a,0 0 65px #b5c6d715;display:flex;align-items:center;justify-content:center;font-size:62px;font-weight:450;color:#eef0df}.research-chip>span{font-size:37px;color:#e3ba69;margin-top:-19px;margin-left:2px}.research-chip>small{position:absolute;bottom:19px;font:12px var(--mono);letter-spacing:1px;color:#b1c0cc}.research-orbit{position:absolute;top:50%;left:50%;width:320px;height:220px;border:1px solid #52616c;border-radius:50%;transform:translate(-50%,-50%) rotate(-29deg)}.orbit-two{transform:translate(-50%,-50%) rotate(46deg);border-color:#414f5b}.orbit-tag{position:absolute;font:12px var(--mono);padding:8px;background:#283540;border:1px solid #576673;border-radius:5px;color:#cbd5dd}.tag-pv{left:12%;top:37%}.tag-bms{right:11%;top:29%}.tag-load{right:25%;bottom:18%}.research-annotation{position:absolute;left:27px;bottom:16px;font:12px/1.7 var(--mono);letter-spacing:1px;color:#a4b2bc}.digital-visual{height:125px;display:flex;align-items:center;justify-content:center;gap:19px;color:#213c3c;margin:22px 24px 0;background:linear-gradient(120deg,#f0f4ef,#e6eee9);border:1px solid #e0e7e0;border-radius:7px}.digital-visual>div:nth-child(2){font-size:13px;letter-spacing:2px;line-height:1.5}.digital-visual strong{font-size:16px;letter-spacing:.6px}.digital-symbol{display:grid;grid-template-columns:repeat(2,19px);gap:4px;transform:skewY(-10deg)}.digital-symbol>span{height:19px;background:#3d6c62;border-radius:2px}.digital-symbol>span:first-child{background:#d4b05b}.digital-arrow{font-size:35px;color:#89a79c;margin-left:25px}.project-digital .card-content{padding-top:22px}.domain-label{font:12px var(--mono);color:#637b70}.solar-visual{height:132px;position:relative;overflow:hidden;margin-top:14px;background:linear-gradient(180deg,#edf1f2,#e6eced);border-block:1px solid #e4eaee}.solar-sun{position:absolute;right:65px;top:19px;width:48px;height:48px;border-radius:50%;background:#e9c677;box-shadow:0 0 0 13px #edcf8d25}.pv-array{position:absolute;left:12%;bottom:13px;display:grid;grid-template-columns:repeat(3,80px);gap:5px;transform:perspective(300px) rotateX(38deg) rotateZ(-9deg)}.pv-array span{height:40px;border:2px solid #5b7080;background:repeating-linear-gradient(90deg,transparent 0 17px,#8295a86b 17px 18px),repeating-linear-gradient(0deg,#344d62 0 16px,#8295a86b 16px 17px);box-shadow:0 4px 0 #aab7be}.solar-caption{position:absolute;bottom:9px;right:12px;font:12px var(--mono);letter-spacing:1px;color:#667882}.project-field .card-content{padding-top:20px}.project-compact{grid-column:span 3;display:grid;grid-template-columns:100px 1fr;align-items:center;min-height:210px}.project-compact h3{font-size:22px}.project-compact .card-content{padding-left:0}.compact-icon{width:62px;height:62px;justify-self:center;display:flex;align-items:center;justify-content:center;font:21px var(--mono);color:#637989;background:#eef2f5;border:1px solid #dce4e9;border-radius:14px}.robot-icon{font-size:37px;color:#9a7b3d;background:#f5f1e6;border-color:#e7dfcc;position:relative}.robot-icon span{position:absolute;bottom:2px;right:5px;font-size:16px}.subtle-label{font-size:12px;color:var(--muted)}.filter-status{font:12px var(--mono);color:var(--muted);margin-top:20px}.bento-grid.is-filtered{grid-template-columns:repeat(2,minmax(0,1fr))}.bento-grid.is-filtered .project-card{grid-column:span 1;grid-row:auto}.bento-grid.is-filtered .research-visual{min-height:280px}
/* Energy practice */
.vetra-section{background:var(--dark);color:#edf0f2;padding:70px 0;position:relative;overflow:hidden}.vetra-layout{display:grid;grid-template-columns:1fr 1fr;gap:95px}.vetra-intro .eyebrow{color:#b5c0c9;font-size:12px}.vetra-intro h2{font-size:42px;font-weight:500;line-height:1.2;letter-spacing:-1.5px}.vetra-intro>p:not(.eyebrow){font-size:12px;line-height:1.9;color:#aab7c1;margin:20px 0 25px;max-width:340px}.service-regions{font-size:12px;letter-spacing:1.3px;color:#a6b2bc;margin-top:30px}.service-list{display:flex;flex-direction:column;justify-content:center}.service-list>div{display:flex;align-items:start;gap:20px;padding:22px 0;border-bottom:1px solid #39444d}.service-list>div:first-child{border-top:1px solid #39444d}.service-list>div>span:first-child{font:12px var(--mono);color:#dcb567;padding-top:5px}.service-list>div>span:last-child{margin-left:auto;color:#7f919f}.service-list h3{font-size:15px;font-weight:500;letter-spacing:-.2px;margin-bottom:9px}.service-list p{font-size:12px;color:#aab7c1;line-height:1.7}
/* Stack */
.stack-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.stack-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:26px}.stack-heading{display:flex;align-items:center;gap:13px;padding-bottom:24px}.stack-icon{font-size:23px;color:#9d7a36}.stack-heading h3{font-size:15px;font-weight:550;letter-spacing:-.3px}.stack-heading>.mono{margin-left:auto;font-size:12px;color:#74818b}.stack-item{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid #e9ecef;align-items:center}.stack-item:last-child{padding-bottom:3px}.stack-item strong{font:12px var(--mono);font-weight:500}.stack-item>span{font-size:12px;color:var(--muted);text-align:right}
/* Contact and footer */
.contact-section{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.05fr;gap:85px}.contact-copy h2{font-size:44px;font-weight:550;letter-spacing:-1.7px;line-height:1.2}.contact-copy>p:not(.eyebrow){font-size:12px;line-height:1.9;color:var(--muted);max-width:340px;margin-top:22px}.linkedin-link{display:flex;align-items:center;gap:14px;margin-top:33px;font-size:12px;width:fit-content}.linkedin-link:hover{color:#a66d05}.linkedin-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d6dce2;border-radius:6px;font-size:16px;font-weight:700}.linkedin-link small{display:block;font:12px var(--mono);color:var(--muted);margin-top:5px}.linkedin-link>span:last-child{font-size:19px;margin-left:17px}.contact-copy .contact-location{font:12px var(--mono);margin-top:25px}.contact-location span{margin-right:7px}.contact-form{padding:29px;border:1px solid var(--line);background:#fff;border-radius:var(--radius)}.form-header{display:flex;justify-content:space-between;margin-bottom:26px;font-size:18px}.form-header .mono{font-size:12px;letter-spacing:.5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.contact-form label{display:block;font-size:12px;font-weight:500;line-height:1.5;margin-bottom:18px}.optional{font-size:12px;color:var(--muted);font-weight:400}input,select,textarea{display:block;width:100%;background:#f8f9fa;border:1px solid #e0e4e8;padding:12px;color:var(--ink);border-radius:5px;font-size:12px;margin-top:8px;line-height:1.5}input::placeholder,textarea::placeholder{color:#7c858f}textarea{resize:vertical;min-height:110px;max-height:500px}.contact-form>.button{width:100%}.form-note{font-size:12px;color:var(--muted);line-height:1.8;margin-top:14px}.message-actions{display:flex;align-items:center;gap:20px;margin-top:15px}.text-link{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:4px}#message-result{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}#message-result>label{margin-bottom:0}#copy-status{font-size:12px;line-height:1.7;margin-top:12px;color:#536d5d}.site-footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:30px;padding-top:28px;padding-bottom:35px}.site-footer .wordmark{font-size:12px}.site-footer .monogram{font-size:30px}.site-footer small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.footer-copyright{margin-left:auto;font:12px var(--mono);color:var(--muted)}.back-top{font-size:12px}.skip-link{position:fixed;top:-80px;left:20px;z-index:20;background:var(--ink);color:white;padding:15px}.skip-link:focus{top:10px}dialog{width:min(640px,calc(100% - 32px));max-height:85vh;border:1px solid var(--line);padding:48px;border-radius:16px;color:var(--ink);background:var(--bg)}dialog::backdrop{background:#13212ca8;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:15px;background:transparent;padding:8px;font-size:18px}dialog h2{font-size:33px;line-height:1.2;letter-spacing:-1px;margin-bottom:25px}dialog p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:18px}dialog .eyebrow{font-size:12px;color:#9a701c}dialog .button{margin-top:12px}body:has(dialog[open]){overflow:hidden}@keyframes energy-flow{to{stroke-dashoffset:-292}}
/* Responsive */
@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:85px}}@media(max-width:1100px){.container{width:calc(100% - 64px)}.hero{gap:35px}.hero h1{font-size:70px}.hero h2{font-size:19px}.title-arrow{font-size:48px}.nav-row nav{gap:20px}.wordmark-role{font-size:12px}.about-section{gap:60px}.contact-section,.vetra-layout{gap:45px}.system-node{padding:12px;font-size:12px}.node-icon{font-size:23px}.project-compact{grid-template-columns:85px 1fr}.toolbar-note{display:none}.project-featured .tags{max-width:220px}.card-topline{padding-inline:18px}.contact-form{padding:23px}.form-row{grid-template-columns:1fr;gap:0}.contact-copy h2{font-size:40px}.discipline-strip span{font-size:12px}}
@media(max-width:800px){.container{width:calc(100% - 40px)}.nav-row{height:74px}.wordmark-role{font-size:12px;letter-spacing:.5px}.nav-row nav{gap:18px;font-size:12px}.nav-contact{padding:9px}.nav-contact span{margin-left:9px}.hero{grid-template-columns:1fr;gap:42px;padding-top:45px;padding-bottom:45px}.hero h1{font-size:78px}.hero h2{font-size:23px}.hero-description{max-width:510px}.hero-copy{max-width:580px}.system-panel{width:100%;max-width:560px;justify-self:center;transform:none}.system-node{font-size:12px;padding:15px}.node-icon{font-size:29px}.hero-affiliations{margin-top:28px}.discipline-strip>.container{flex-wrap:wrap;gap:17px;justify-content:flex-start;padding-block:21px}.discipline-strip span:first-child{width:100%}.discipline-strip span{font-size:12px}.discipline-strip b{margin-right:5px}.section{padding-block:65px}.about-section{gap:35px;grid-template-columns:1fr 1.1fr}.about-copy .lead{font-size:17px}.about-copy>p{font-size:12px}.section-title{font-size:32px}.bento-grid{gap:15px}.card-topline{flex-wrap:wrap;gap:8px}.card-topline>.mono{font-size:12px}.card-content{padding:20px}.project-featured .card-content{padding:23px}.project-featured .card-content>p:not(.card-kicker){font-size:13px}.digital-visual{gap:10px;margin-inline:17px}.digital-arrow{display:none}.digital-visual strong{font-size:13px}.digital-symbol{grid-template-columns:repeat(2,14px)}.digital-symbol>span{height:14px}.card-content h3{font-size:23px}.research-orbit{width:265px;height:200px}.tag-pv{left:5%}.tag-bms{right:5%}.project-compact{display:flex;align-items:stretch}.compact-icon{margin:20px 0 0 20px;width:47px;height:47px;border-radius:9px;font-size:19px}.project-compact .card-content{padding:20px}.project-compact h3{font-size:21px}.robot-icon{font-size:28px}.vetra-layout{gap:35px}.vetra-intro h2{font-size:33px}.vetra-intro .eyebrow{font-size:12px}.service-list>div{gap:12px}.service-list h3{font-size:13px}.stack-card{padding:22px}.stack-heading h3{font-size:13px}.stack-item strong{font-size:12px}.stack-item>span{font-size:12px}.contact-section{gap:30px}.contact-copy h2{font-size:35px}.message-actions{gap:12px;flex-wrap:wrap}}
@media(max-width:580px){html{scroll-padding-top:85px}.wordmark{font-size:12px;gap:12px}.wordmark-role{font-size:12px}.monogram{font-size:34px}.menu-toggle{display:block;background:transparent;font-size:22px;padding:8px;border:1px solid var(--line);border-radius:5px}.nav-row nav{display:none;position:absolute;top:73px;left:0;right:0;padding:20px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 12px 20px #20252c0d}.nav-row nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0}.nav-row nav>a{padding:15px;font-size:13px}.nav-contact{margin-top:10px;display:flex;justify-content:space-between}.hero .eyebrow{font-size:12px;gap:7px;letter-spacing:.7px}.hero h1{font-size:clamp(59px,14vw,78px);letter-spacing:-3.8px;margin-top:24px}.title-arrow{font-size:43px;vertical-align:7px}.hero h2{font-size:20px;letter-spacing:-.5px}.hero-description{font-size:12px}.hero-actions{gap:10px}.hero-actions .button{padding:12px 15px;gap:15px;font-size:12px}.hero-affiliations>span{font-size:12px}.hero-affiliations small{font-size:12px}.architecture-stage{height:290px}.system-node{top:38px;font-size:12px;padding:12px 9px;gap:8px}.system-node small{font-size:12px}.node-icon{font-size:24px}.edge-core{top:139px;width:135px;height:87px}.endpoint{font-size:12px;padding:8px;bottom:12px}.endpoint-left{left:4%}.endpoint-right{right:4%}.panel-heading{margin-inline:18px;font-size:12px}.architecture-tabs{margin-inline:18px}.panel-description{padding-inline:18px}.panel-footer{padding-inline:18px;font-size:12px}.discipline-strip>.container{column-gap:14px;row-gap:15px}.discipline-strip span{font-size:12px}.discipline-strip b{font-size:12px}.about-section{grid-template-columns:1fr;gap:28px}.about-section .section-title{font-size:37px}.eyebrow{font-size:12px;margin-bottom:18px}.about-copy .lead{font-size:19px}.about-copy>p{font-size:13px}.section-heading{display:block;margin-bottom:25px}.section-heading>p{margin-top:15px;font-size:12px}.section-heading>p br{display:none}.section-title{font-size:33px;letter-spacing:-1.2px}.filters{gap:2px}.filters button{font-size:12px;padding:9px 11px}.bento-grid,.bento-grid.is-filtered{grid-template-columns:1fr}.project-card,.project-featured,.project-digital,.project-field,.project-compact,.bento-grid.is-filtered .project-card{grid-column:1;grid-row:auto}.card-topline{flex-wrap:nowrap;padding:20px 22px 0}.card-topline>.mono{font-size:12px}.research-visual{min-height:300px}.research-orbit{width:300px}.project-featured .card-content{padding:25px}.project-featured .card-content>p:not(.card-kicker){font-size:13px}.card-content{padding:24px}.card-content h3{font-size:26px}.digital-visual{height:150px;margin-inline:22px;gap:20px}.digital-visual strong{font-size:18px}.digital-symbol{grid-template-columns:repeat(2,20px)}.digital-symbol>span{height:20px}.solar-visual{height:160px}.pv-array{grid-template-columns:repeat(3,85px);bottom:25px}.solar-sun{right:50px;top:22px}.project-compact{display:grid;grid-template-columns:90px 1fr;min-height:190px}.compact-icon{margin:0;align-self:center}.project-compact .card-content{padding:23px 23px 23px 0}.project-compact h3{font-size:21px}.vetra-section{padding:55px 0}.vetra-layout{grid-template-columns:1fr;gap:40px}.vetra-intro h2{font-size:39px}.vetra-intro>p:not(.eyebrow){font-size:13px}.vetra-intro .eyebrow{font-size:12px}.service-list h3{font-size:15px}.service-list p{font-size:12px}.stack-grid{grid-template-columns:1fr;gap:16px}.stack-heading h3{font-size:15px}.stack-item strong{font-size:12px}.stack-item>span{font-size:12px}.contact-section{grid-template-columns:1fr;gap:32px}.contact-copy h2{font-size:42px}.contact-copy>p:not(.eyebrow){font-size:13px}.contact-form{padding:22px}.contact-form label{font-size:12px}input,select,textarea{font-size:16px}.form-note{font-size:12px}.form-header .mono{font-size:12px}.site-footer{flex-wrap:wrap;gap:22px;padding-block:28px}.footer-copyright{font-size:12px}.back-top{width:100%;border-top:1px solid var(--line);padding-top:15px;text-align:right}dialog{padding:48px 25px 30px}dialog h2{font-size:29px}dialog .button{gap:15px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.system-panel{transform:none}}

/* Readability: body 16px, controls 14px, secondary labels at least 12px. */
:root { --muted: #596571; }
body { font-size: 16px; }
.hero-description,
.about-copy > p,
.card-content > p:not(.card-kicker),
.project-featured .card-content > p:not(.card-kicker),
.vetra-intro > p:not(.eyebrow),
.contact-copy > p:not(.eyebrow),
dialog p {
  font-size: 16px;
  line-height: 1.8;
}
.hero-description { max-width: 480px; }
.about-copy .lead { font-size: 22px; line-height: 1.6; }
.about-note p { font-size: 15px; }
.section-heading > p { font-size: 15px; }
.button,
.hero-actions .button,
dialog .button,
.nav-row nav,
.filters button,
.linkedin-link,
.text-link,
.back-top { font-size: 14px; line-height: 1.5; }
.button { min-height: 48px; }
.nav-row nav { gap: 24px; }
.wordmark { font-size: 16px; }
.wordmark-role { font-size: 12px; letter-spacing: .3px; line-height: 1.5; }
.hero .eyebrow,
.eyebrow,
.vetra-intro .eyebrow,
dialog .eyebrow { font-size: 12px; letter-spacing: .7px; flex-wrap: wrap; }
.hero-affiliations { flex-wrap: wrap; row-gap: 18px; }
.hero-affiliations > span { font-size: 14px; }
.hero-affiliations small { font-size: 12px; line-height: 1.6; letter-spacing: .3px; }
/* More room for technical labels in the glass panel. */
.panel-heading { font-size: 12px; line-height: 1.6; gap: 10px; flex-wrap: wrap; letter-spacing: .3px; }
.architecture-tabs { flex-wrap: wrap; }
.architecture-tabs button { font-size: 13px; line-height: 1.5; min-height: 46px; }
.panel-description > span { font-size: 12px; letter-spacing: .6px; }
.panel-description p { font-size: 15px; line-height: 1.75; color: #c5d0da; }
.panel-footer { font-size: 12px; line-height: 1.5; flex-wrap: wrap; letter-spacing: 0; color: #b3c1ce; }
/* Cards can wrap their labels instead of compressing the type. */
.card-topline { flex-wrap: wrap; align-items: flex-start; row-gap: 12px; }
.card-topline > .mono,
.badge,
.card-kicker,
.tags > span,
.domain-label,
.filter-status,
.toolbar-note { font-size: 12px; line-height: 1.6; }
.card-topline > .mono { color: #5b6a76; }
.project-featured .card-topline > .mono { color: #bdc9d3; }
.badge { letter-spacing: .3px; }
.card-kicker { letter-spacing: .6px; }
.card-bottom { flex-wrap: wrap; row-gap: 14px; }
.card-bottom .round-link { margin-left: auto; width: 44px; height: 44px; }
.project-featured .tags { max-width: none; }
.filters { gap: 8px; }
.filters button { min-height: 44px; padding: 10px 15px; }
.filters span { font-size: 12px; }
.research-chip > small { width: 120px; text-align: center; font-size: 12px; line-height: 1.2; letter-spacing: 0; bottom: 13px; }
.research-annotation { font-size: 12px; line-height: 1.6; letter-spacing: .4px; }
.orbit-tag { font-size: 12px; }
.solar-caption { font-size: 12px; line-height: 1.5; letter-spacing: .3px; padding: 3px 6px; background: #edf1f2e6; border-radius: 3px; }
.discipline-strip > .container { flex-wrap: wrap; padding-block: 22px; gap: 18px 28px; }
.discipline-strip span,
.discipline-strip span:first-child { font-size: 14px; white-space: normal; line-height: 1.6; }
.discipline-strip b { font-size: 12px; }
.service-list h3 { font-size: 18px; line-height: 1.5; }
.service-list p { font-size: 14px; line-height: 1.75; }
.service-list > div > span:first-child { font-size: 13px; }
.service-regions { font-size: 12px; line-height: 1.8; letter-spacing: .5px; }
.stack-heading h3 { font-size: 17px; line-height: 1.5; }
.stack-item strong { font-size: 14px; line-height: 1.6; }
.stack-item > span { font-size: 14px; line-height: 1.6; }
.stack-item { gap: 16px; align-items: baseline; }
.contact-form label { font-size: 14px; line-height: 1.6; }
input, select, textarea { font-size: 16px; }
.optional { font-size: 12px; }
.form-header .mono { font-size: 13px; line-height: 1.6; }
.form-note, #copy-status { font-size: 13px; line-height: 1.75; }
.linkedin-link small { font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.contact-copy .contact-location { font-size: 13px; line-height: 1.6; }
.site-footer .wordmark { font-size: 14px; }
.site-footer small, .footer-copyright { font-size: 12px; line-height: 1.6; }
/* Switch navigation before enlarged labels run out of horizontal space. */
@media (max-width: 1050px) {
  .nav-row { height: 88px; }
  .menu-toggle { display: block; padding: 10px; font-size: 22px; border: 1px solid #ffffff25; background: transparent; border-radius: 6px; }
  .nav-row nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 20px; background: #101a26; border-bottom: 1px solid #ffffff20; }
  .nav-row nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .nav-row nav > a { font-size: 16px; padding: 14px; }
  .nav-contact { display: flex; justify-content: space-between; margin-top: 10px; }
  .about-section, .vetra-layout, .contact-section { gap: 36px; }
}
@media (max-width: 800px) {
  .about-section, .vetra-layout, .contact-section { grid-template-columns: 1fr; }
  .about-copy, .contact-copy > p:not(.eyebrow) { max-width: 65ch; }
  .stack-item { flex-direction: column; gap: 4px; }
  .stack-item > span { text-align: left; }
  .toolbar-note { display: none; }
}
@media (max-width: 580px) {
  html { scroll-padding-top: 105px; }
  .nav-row { gap: 14px; }
  .wordmark { white-space: normal; min-width: 0; gap: 12px; }
  .wordmark-role { max-width: 23ch; font-size: 12px; letter-spacing: 0; line-height: 1.35; }
  .monogram, .menu-toggle { flex-shrink: 0; }
  .hero .eyebrow { font-size: 12px; gap: 8px; }
  .hero-actions { flex-wrap: wrap; }
  .hero-actions .button { font-size: 14px; padding: 12px 16px; }
  .hero-affiliations { gap: 16px; }
  .hero-affiliations > span { max-width: 210px; }
  .hero-affiliations i { display: none; }
  .panel-heading, .panel-footer { margin-inline: 0; padding-inline: 18px; }
  .panel-heading > span:first-child { flex-wrap: wrap; }
  .card-topline { flex-wrap: wrap; }
  .card-topline > .mono { font-size: 12px; }
  .card-content, .project-featured .card-content { padding: 22px; }
  .filters button { font-size: 14px; }
  .section-heading > p { font-size: 15px; }
  .stack-heading { gap: 10px; }
  .stack-heading h3 { font-size: 17px; }
  .stack-item { flex-direction: row; flex-wrap: wrap; gap: 4px 14px; }
  .contact-form { padding: 20px; }
  .site-footer { flex-wrap: wrap; }
  .footer-copyright { margin-left: 0; }
  .solar-caption { max-width: calc(100% - 24px); }
}


/* Original light hero and animated energy architecture. */
.hero { align-items: center; }
.system-panel { transform: none; }
.system-panel:hover { transform: none; }
.architecture-stage { display: block; height: 360px; margin-top: 20px; }
.system-node {
  top: 32px;
  width: 43%;
  min-height: 76px;
  padding: 12px;
  gap: 10px;
  font-size: 14px;
  line-height: 1.45;
}
.solar-node { left: 4%; }
.storage-node { right: 4%; }
.system-node small { font-size: 12px; letter-spacing: .3px; line-height: 1.5; }
.node-icon { flex-shrink: 0; font-size: 28px; }
.edge-core { top: 155px; width: 190px; height: 100px; animation: core-energy 5s ease-in-out infinite; }
.edge-core strong { font-size: 22px; }
.edge-core small { font-size: 12px; letter-spacing: .1px; }
.core-mark { top: 9px; left: 12px; font-size: 14px; }
.endpoint { bottom: 20px; font-size: 12px; line-height: 1.4; min-height: 44px; padding: 8px; gap: 6px; }
.endpoint-left { left: 4%; }
.endpoint-right { right: 4%; }
.connections path.flow {
  stroke: #f0c576;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 9 75;
  animation: diagram-energy 4s linear infinite;
}
.connections path.flow-output {
  stroke: #9bcabf;
  animation-duration: 3.5s;
  animation-delay: -1.2s;
}
.system-panel[data-active-layer=energy] .system-node { border-color: #c8a366; }
.system-panel[data-active-layer=software] .endpoint { border-color: #9bcabf; }
.diagram-toggle {
  display: block;
  margin: 0 24px 18px auto;
  padding: 9px 12px;
  min-height: 40px;
  border: 1px solid #657482;
  border-radius: 5px;
  background: transparent;
  color: #d7e2ec;
  font-size: 12px;
}
.diagram-toggle:hover { border-color: #e5bb6c; color: #f1cd8b; }
.system-panel.is-motion-paused .flow,
.system-panel.is-motion-paused .edge-core { animation-play-state: paused; }
@keyframes diagram-energy { to { stroke-dashoffset: -168; } }
@keyframes core-energy {
  0%, 100% { box-shadow: 0 0 18px #d7b86712, inset 0 0 20px #d8b36e09; }
  50% { box-shadow: 0 0 32px #d7b8672d, inset 0 0 22px #d8b36e14; }
}
@media (max-width: 1050px) {
  .nav-row nav { background: var(--bg); border-bottom-color: var(--line); }
  .menu-toggle { border-color: #cfd5da; }
}
@media (max-width: 580px) {
  .architecture-stage { height: 350px; }
  .system-node { width: 44%; padding: 10px 8px; gap: 7px; font-size: 13px; }
  .system-node small { letter-spacing: 0; }
  .node-icon { font-size: 23px; }
  .solar-node { left: 3%; }
  .storage-node { right: 3%; }
  .edge-core { top: 150px; }
  .endpoint { max-width: 47%; gap: 5px; padding: 7px; }
  .endpoint-left { left: 3%; }
  .endpoint-right { right: 3%; }
  .endpoint span { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .connections path.flow, .edge-core { animation: none; }
  .diagram-toggle { display: none; }
}

/* Dark opening palette, with the restored animated system diagram. */
.site-header {
  background: #0c131df5;
  color: #eef2f7;
  border-bottom-color: #ffffff18;
}
.site-header .wordmark-role { color: #b0bdcc; }
.site-header .nav-contact, .site-header .menu-toggle { border-color: #ffffff30; }
.site-header .nav-row nav > a:hover { color: #efbf72; }
.hero-backdrop { background: radial-gradient(ellipse at 76% 28%, #19212a, #0c131d 65%); }
.hero {
  position: relative;
  isolation: isolate;
  color: #f2f5f9;
}

.hero h1 .amber, .hero .title-arrow { color: #f1bd64; }
.hero h2 { color: #d7e0e9; }
.hero .hero-description { color: #c0cbd7; }
.hero .eyebrow { color: #bdc8d4; }
.hero .eyebrow-divider { color: #7b8b9d; }
.hero .hero-affiliations { color: #cbd5df; }
.hero .hero-affiliations small { color: #b0bdcc; }
.hero .hero-affiliations i { background: #ffffff25; }
.hero .button-dark { color: #17202b; background: #efbd6b; border-color: #f2ca88; }
.hero .button-dark:hover { background: #ffd793; }
.hero .button-outline { color: #e2e9f0; border-color: #ffffff35; background: #ffffff04; }
.hero .button-outline:hover { background: #ffffff0c; }
@media (max-width: 1050px) {
  .site-header .nav-row nav { background: #101a26; border-bottom-color: #ffffff20; }
}


.hero-affiliations > .vetra-affiliation {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 1.5;
}
.hero-affiliations > .vetra-affiliation:hover { color: #f1bd64; }

/* Original Digital Solar Desk logo, supplied by the site owner. */
.digital-visual.digital-logo {
  background: #061f46;
  border-color: #15365d;
  padding: 12px;
}
.digital-logo img {
  display: block;
  width: 104px;
  max-width: 100%;
  height: 100%;
  max-height: 126px;
  object-fit: contain;
}
