/* Final visual refinements: keeps longer product names comfortably inside their nodes. */
.brand img{width:190px;height:56px;object-fit:contain;object-position:left center}
.node{width:104px;min-height:58px;padding:10px 11px;gap:8px;overflow:hidden}
.node.study{width:126px;left:1%}
.node.nexus{left:-4%}
.node span{position:relative;color:#ecfaff;font-size:11px;font-weight:850;letter-spacing:.015em;text-shadow:0 0 12px rgba(119,223,255,.46);transition:color .25s,text-shadow .25s}
.node:after{position:absolute;right:10px;bottom:8px;width:4px;height:4px;content:"";border-radius:50%;background:#69dcff;box-shadow:0 0 8px rgba(105,220,255,.85);opacity:.72}
.node:hover span{color:#fff;text-shadow:0 0 17px rgba(138,230,255,.82)}
@media(max-width:800px){.brand img{width:172px;height:52px}.node{width:84px;min-height:52px;padding:8px}.node.study{width:108px;left:0}.node.nexus{left:-2%}.node span{font-size:10px}.node:after{right:8px;bottom:7px}}
@media(max-width:580px){.brand img{width:145px;height:46px}.node{width:66px;padding:6px}.node.study{width:92px;left:0}.node span{font-size:9px}.node:after{display:none}}

/* Portfolio page refinement: stable content, calmer cards and clearer maturity cues. */
.reveal{opacity:1;transform:none;transition:none}
.section{border-color:rgba(159,214,244,.13)}
#portfolio{background:linear-gradient(180deg,rgba(8,30,56,.5),rgba(3,13,29,.16))}
.hero{min-height:clamp(560px,68vh,720px);padding-block:clamp(5rem,9vw,8.5rem)}
.hero h1{max-width:720px;font-size:clamp(3rem,5.7vw,5rem);letter-spacing:-.06em}
.hero .intro{max-width:660px;font-size:clamp(1rem,1.25vw,1.125rem)}
.button,.explore,.back{transition:transform .2s ease,color .2s ease,background-color .2s ease,border-color .2s ease}
.button:focus-visible,.explore:focus-visible,.back:focus-visible{outline:3px solid #a8ecff;outline-offset:4px}
.portfolio{gap:20px}
.solution-card,.solution-card:first-child{grid-column:auto;min-height:320px;padding:30px;border-color:rgba(164,214,244,.18);background:linear-gradient(155deg,rgba(12,43,76,.78),rgba(4,18,38,.84));box-shadow:none}
.solution-card:before{width:180px;top:-120px;right:-80px;opacity:.1;box-shadow:none}
.solution-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 68%,#e9f8ff);box-shadow:0 15px 34px rgba(0,0,0,.16)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.solution-status{flex:0 0 auto;padding:3px 8px;border:1px solid rgba(187,226,246,.27);border-radius:999px;color:#d7effb;background:rgba(190,229,247,.07);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.solution-card h3{margin:20px 0 10px;font-size:clamp(1.45rem,2vw,1.75rem);letter-spacing:-.04em}
.solution-card p{max-width:500px;font-size:15px;line-height:1.65}
.keywords{margin:22px 0 18px}
.keywords span{border-color:rgba(180,220,243,.18);background:rgba(192,231,248,.04);color:#d8ebf7}
.explore{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:auto;color:#a6e9ff;font-weight:800;text-decoration:none}
.explore:hover{color:#fff;transform:translateX(3px)}
.principles{gap:18px}.principle{padding:23px 0 0;border-color:rgba(139,213,249,.28)}
.capability{padding-block:12px}.tags span{border-color:rgba(128,211,255,.24);background:rgba(10,42,74,.42)}
@media(max-width:800px){.hero{min-height:0;padding-block:4.5rem}.portfolio{gap:16px}.solution-card,.solution-card:first-child{min-height:300px}.ecosystem{max-width:540px;width:100%;margin-inline:auto}}
@media(max-width:580px){.nav{gap:12px}.back{white-space:nowrap}.hero{padding-block:3.5rem}.hero h1{font-size:clamp(2.55rem,12vw,3.35rem)}.actions{gap:12px}.button{min-height:48px;padding-inline:17px}.solution-card,.solution-card:first-child{min-height:0;padding:24px}.card-top{align-items:flex-start}.solution-status{margin-top:1px}.solution-card h3{margin-top:18px}.ecosystem{min-height:290px}.section{padding-block:4.25rem}}

/* Keep the animated solution network coherent on tablets and phones. */
@media(max-width:800px){
  .ecosystem{min-height:340px;overflow:visible}
  .connections{display:block;width:94%;height:94%;opacity:.72}
  .connections path{stroke-width:.48;stroke-dasharray:1.1 3.6}
  .connections circle{r:1.3}
  .orbit{width:min(72vw,300px)}
  .core{width:112px}
  .node{will-change:transform}
}
@media(max-width:580px){
  .ecosystem{width:min(100%,340px);min-height:312px;margin-inline:auto}
  .connections{width:92%;height:92%;opacity:.62}
  .connections path{stroke-width:.55;stroke-dasharray:1 3.4}
  .connections circle{r:1.15}
  .orbit{width:min(72vw,260px)}
  .core{width:100px}
  .node{width:68px;min-height:46px;padding:6px 7px}
  .node.study{width:96px}
  .node.reos{top:4%;left:9%}
  .node.finco{top:13%;right:2%}
  .node.nexus{top:46%;left:1%}
  .node.study{bottom:4%;left:3%}
  .node.heaco{right:2%;bottom:4%}
}
@media(max-width:380px){
  .ecosystem{min-height:300px}
  .node{width:64px;font-size:9px}
  .node.study{width:90px}
  .core{width:94px}
}
