/* A living photograph, with the reading surface held steady. */
.hero-stage{--scene-x:0px;--scene-y:0px;--scene-light-x:66%;--scene-light-y:42%;--scene-play-state:paused;position:relative;min-height:680px;overflow:hidden;border-radius:var(--radius);background:#0c172d}
.hero-stage.is-scene-active{--scene-play-state:running}
.intro-pending .hero-stage{--scene-play-state:paused!important}
.hero-depth{position:absolute;inset:-3%;transform:translate3d(var(--scene-x),var(--scene-y),0);transition:transform 1s cubic-bezier(.16,1,.3,1);pointer-events:none}
.hero-camera{position:absolute;inset:0;transform-origin:64% 64%;animation:club-camera 18s ease-in-out infinite alternate;animation-delay:-4s;animation-play-state:var(--scene-play-state)}
.hero-scene-image{object-position:64% 62%;width:100%;height:100%}
.hero-light{position:absolute;inset:-25% -50%;background:linear-gradient(112deg,transparent 36%,rgba(75,156,255,.12) 46%,rgba(180,112,255,.19) 51%,transparent 63%);mix-blend-mode:screen;pointer-events:none;animation:club-light-pass 14s ease-in-out infinite alternate;animation-delay:-3s;animation-play-state:var(--scene-play-state)}
.hero-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at var(--scene-light-x) var(--scene-light-y),rgba(108,120,248,.12),transparent 62%);pointer-events:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,34,.94),rgba(10,17,35,.88) 38%,rgba(13,21,43,.58) 59%,rgba(13,21,43,.08) 83%),linear-gradient(0deg,rgba(11,18,36,.64),transparent 58%);pointer-events:none}
.hero .hero-copy{position:relative;z-index:3;width:70%;min-height:680px;padding:clamp(32px,4.7vw,64px);border-radius:0;background:none;overflow:visible;pointer-events:none}
.hero .hero-copy h1{font-size:clamp(4.2rem,7.1vw,7rem);max-width:11ch;line-height:.91}
.hero .hero-copy p{max-width:36ch;color:#e0e5f5;text-wrap:pretty}
.hero .hero-copy .kicker{color:#a5dfff;max-width:38ch}
.hero .hero-copy .small-caps{margin-top:44px;color:#ced9f3}
.hero-footer{margin-top:32px}
.hero-working{display:grid;gap:5px;border-left:2px solid var(--blue);padding-left:16px;max-width:34rem}
.hero-working span{font-size:.9rem;color:#a5dfff}
.hero-working strong{font-size:clamp(1.12rem,1.7vw,1.35rem);font-weight:700;line-height:1.4;color:#f2f3ff;text-wrap:pretty}
.hero .hero-copy .hero-footer .small-caps{margin-top:22px}
@keyframes club-camera{from{transform:translate3d(-.6%,.3%,0) scale(1.055)}to{transform:translate3d(.7%,-.4%,0) scale(1.12)}}
@keyframes club-light-pass{0%{transform:translateX(-22%) rotate(-3deg);opacity:.5}50%{opacity:.95}100%{transform:translateX(22%) rotate(3deg);opacity:.65}}
@media(max-width:900px){.hero-stage{min-height:650px}.hero .hero-copy{width:80%;min-height:650px;padding:40px}.hero .hero-copy h1{font-size:clamp(4rem,8.6vw,6.2rem)}.hero-shade{background:linear-gradient(90deg,rgba(9,16,34,.94),rgba(10,17,35,.85) 48%,rgba(13,21,43,.35) 88%),linear-gradient(0deg,rgba(11,18,36,.6),transparent 62%)}}
@media(max-width:600px){.hero-stage{min-height:690px;border-radius:22px}.hero .hero-copy{width:100%;min-height:690px;padding:68px 24px 40px}.hero .hero-copy h1{font-size:clamp(3.3rem,13.6vw,4.6rem);max-width:11ch}.hero .hero-copy p{margin-top:28px;font-size:1rem}.hero .hero-copy .small-caps{margin-top:30px;font-size:.72rem}.hero-scene-image{object-position:67% 64%}.hero-shade{background:linear-gradient(90deg,rgba(9,16,34,.93),rgba(10,17,35,.75) 70%,rgba(13,21,43,.5)),linear-gradient(0deg,rgba(11,18,36,.2),transparent 62%)}}
@media(prefers-reduced-motion:reduce){.hero-camera,.hero-light{animation:none!important}.hero-depth{transform:none!important;transition:none}.hero-light{display:none}}
@media(forced-colors:active){.hero-light,.hero-atmosphere{display:none}.hero .hero-copy{background:Canvas;color:CanvasText}.hero .hero-copy p,.hero .hero-copy .kicker,.hero .hero-copy .small-caps{color:CanvasText}}
@media(forced-colors:active){.hero-working{border-color:CanvasText}.hero-working span,.hero-working strong{color:CanvasText}}

/* Four services connected around the club, with content available without JS. */
.service-ecosystem{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
.service-ecosystem.is-enhanced{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.ecosystem-map{display:none;position:relative;min-height:510px;isolation:isolate;border-radius:28px;background:radial-gradient(ellipse at 50% 49%,rgba(86,107,226,.13),transparent 66%)}
.is-enhanced .ecosystem-map{display:block}
.eco-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.eco-track,.eco-signal{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;transition:stroke .3s ease,opacity .3s ease,filter .3s ease}
.eco-track{stroke:#52658f;stroke-width:1.4;opacity:.48}
.eco-signal{stroke:url(#serviceLight);stroke-width:2;stroke-dasharray:8 17;opacity:0}
.eco-links :is(.is-selected,.is-emphasized) .eco-track{stroke:#9bb6ff;opacity:.85;filter:drop-shadow(0 0 5px rgba(99,159,255,.55))}
.eco-links :is(.is-selected,.is-emphasized) .eco-signal{opacity:.95;filter:drop-shadow(0 0 5px rgba(172,142,255,.8))}
.is-map-visible .eco-links :is(.is-selected,.is-emphasized) .eco-signal{animation:service-flow 3.6s linear 1}
.eco-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:126px;aspect-ratio:1;border:1px solid rgba(162,184,255,.65);border-radius:50%;background:radial-gradient(circle at 32% 24%,#354d79,#282848 70%);box-shadow:inset 0 0 24px rgba(123,165,255,.14),0 0 0 9px rgba(129,144,224,.04),0 0 42px rgba(123,120,255,.17);font-size:1.1rem;font-weight:800;letter-spacing:-.035em;z-index:1}
.eco-hub::after{content:"";position:absolute;inset:8px;border:1px solid rgba(192,203,255,.12);border-radius:inherit;pointer-events:none}
.eco-node{position:absolute;z-index:2;left:25%;top:20%;transform:translate(-50%,-50%);width:clamp(130px,31%,178px);min-height:84px;padding:14px 12px;display:flex;flex-direction:column;gap:5px;border:1px solid #687ba5;border-radius:18px;background:#1b2844;color:var(--ink);font-weight:700}
.eco-node[data-service="technology"]{left:75%}.eco-node[data-service="operations"]{top:80%}.eco-node[data-service="projects"]{left:75%;top:80%}
.eco-node:hover{background:#293657}
.eco-node[aria-selected="true"]{border-color:#b6caff;background:linear-gradient(125deg,#263d65,#3c305b);box-shadow:0 0 0 1px rgba(174,190,255,.18),0 0 30px rgba(119,132,255,.2)}
.eco-node:not(:disabled):active{transform:translate(-50%,-50%) scale(.965)}
.eco-node-number{font-size:.8rem;font-weight:600;letter-spacing:.12em;color:#b1c9ee}
.eco-node-title{font-size:1rem;white-space:nowrap}
.eco-map-note{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:.85rem;color:var(--muted);margin:0}
.ecosystem-details{display:grid;gap:18px;min-width:0}
.eco-panel{padding:32px;border:1px solid #4f6089;border-radius:26px;background:linear-gradient(145deg,#182640,#222441);scroll-margin-top:100px}
.eco-panel>p{color:#ced8ef;font-size:1rem;line-height:1.65;margin:0 0 22px}.eco-panel>p:last-child{margin-bottom:0}.eco-panel>ul{padding:0;margin:0 0 24px;list-style:none;color:#ced8ef}.eco-panel>ul li{padding:13px 0;border-top:1px solid rgba(150,173,220,.24);line-height:1.6;font-size:.96rem}
.eco-panel[hidden]{display:none!important}
.is-enhanced .eco-panel{min-height:550px}
.eco-panel:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.eco-eyebrow{color:#add7ff;font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800;margin-bottom:18px}
.eco-panel h3{font-size:clamp(1.9rem,2.5vw,2.55rem);line-height:1.08;letter-spacing:-.045em;max-width:20ch;margin:0 0 18px;text-wrap:balance}
.eco-intro{color:#ced8ef;font-size:1rem;line-height:1.6;margin:0 0 24px;max-width:54ch}
.eco-examples{list-style:none;margin:0;padding:0;display:grid;gap:0}
.eco-examples li{padding:15px 0;border-top:1px solid rgba(150,173,220,.24)}
.eco-examples li:last-child{padding-bottom:0}
.eco-examples h4{font-size:.98rem;line-height:1.4;letter-spacing:-.015em;margin:0 0 6px;color:#f0f1ff;font-weight:750}
.eco-examples p{font-size:.92rem;line-height:1.55;color:#bcc9e5;margin:0}
.unusual-note{margin-top:34px;padding:26px 0 0;border-top:1px solid var(--line)}
.unusual-note h3{font-size:1.5rem;letter-spacing:-.035em;margin:0}
.unusual-note p{font-size:.96rem;color:var(--muted);line-height:1.65;margin:0;max-width:57ch}
@keyframes service-flow{to{stroke-dashoffset:-100}}
@media(max-width:1000px){.service-ecosystem.is-enhanced{grid-template-columns:1fr}.ecosystem-map{width:min(100%,650px);min-height:440px;margin-inline:auto}.is-enhanced .eco-panel{min-height:0}.unusual-note{grid-template-columns:1fr;gap:12px}.eco-node{width:clamp(132px,30%,180px)}}
@media(max-width:600px){.service-ecosystem{gap:24px}.ecosystem-map{min-height:390px}.eco-hub{width:108px;font-size:1rem}.eco-node{width:130px;min-height:76px;border-radius:16px;padding:12px 8px}.eco-node-title{font-size:.92rem}.eco-panel{padding:25px 21px;border-radius:22px}.eco-panel h3{font-size:2rem}.eco-examples p{font-size:.92rem}.eco-map-note{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.eco-track,.eco-signal{transition:none}.eco-signal{animation:none!important;stroke-dasharray:none}.eco-node:not(:disabled):active{transform:translate(-50%,-50%)}}
@media(forced-colors:active){.eco-hub,.eco-node,.eco-panel{background:Canvas;color:CanvasText;border-color:CanvasText}.eco-node[aria-selected="true"]{outline:2px solid Highlight}.eco-track{stroke:CanvasText}.eco-signal{stroke:Highlight}.eco-eyebrow,.eco-node-number,.eco-intro,.eco-examples h4,.eco-examples p,.eco-panel>p,.eco-panel>ul{color:CanvasText}.eco-hub{box-shadow:none}}
