/* Original perspective gallery, inspired by HorizonX's public Tunnel Fold demo. */
.energy-section{height:auto;min-height:0;background:#0d263b;overflow:hidden}
.energy-top h2{font-size:clamp(36px,4.3vw,64px)}
.energy-gallery{margin:40px calc(var(--pad) * -1) 0}
.tunnel-stage{height:520px;position:relative;perspective:1100px;touch-action:pan-y;cursor:grab;outline-offset:-8px;overflow:hidden}
.tunnel-stage:active{cursor:grabbing}
.tunnel-track{display:flex;gap:24px;overflow-x:auto;padding:30px var(--pad);scroll-snap-type:x mandatory}
.tunnel-card{flex:0 0 300px;height:420px;overflow:hidden;background:#071727;scroll-snap-align:center}
.tunnel-card img{width:100%;height:100%;object-fit:cover;user-select:none}
.tunnel-card figcaption{position:absolute;bottom:0;left:0;right:0;padding:60px 22px 22px;background:linear-gradient(transparent,rgba(4,16,27,.94));font-size:13px;color:#fff}
.has-tunnel .tunnel-track{display:block;padding:0;overflow:visible;transform-style:preserve-3d;height:100%}
.has-tunnel .tunnel-card{position:absolute;left:50%;top:50%;width:300px;margin:0;height:420px;box-shadow:0 25px 40px rgba(1,10,18,.34);backface-visibility:hidden;will-change:transform}
.tunnel-orbit{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:rgba(18,203,223,.2);stroke-width:1;z-index:-1}
.orbit-pulse{stroke:#12cbdf;stroke-dasharray:130 1500;animation:energy-orbit 9s linear infinite}
.energy-gallery:not(.is-running) .orbit-pulse{animation-play-state:paused}
@keyframes energy-orbit{to{stroke-dashoffset:-1630}}
.tunnel-toolbar{margin:0 var(--pad);padding:22px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;font-size:12px}
.tunnel-toolbar>p{margin-right:auto;font-size:12px}
.tunnel-counter{color:var(--cyan);font-variant-numeric:tabular-nums;white-space:nowrap}
.tunnel-controls{display:flex;gap:8px}
.tunnel-controls button{background:transparent;color:var(--text);border:1px solid #5a7689;min-width:46px;min-height:46px;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.tunnel-controls button:hover{background:#173b52;border-color:var(--cyan)}
.tunnel-controls button:active{background:#245069}
.tunnel-controls .tunnel-pause{padding:0 15px;font-size:12px;min-width:159px}
.journey-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6vw;margin-top:52px}
.journey-steps article>span{font-size:11px;color:var(--cyan)}
.journey-steps h3{font-size:clamp(22px,2.3vw,32px);margin:14px 0;max-width:330px}
.journey-steps p{font-size:13px;max-width:340px}
.team-story{display:grid;grid-template-columns:1fr 1fr;gap:7vw;max-width:1200px;margin:0 auto}
.team-field{position:relative;align-self:start}
.team-field>img{width:100%;height:auto;aspect-ratio:3/4}
.team-story figcaption{font-size:12px;color:var(--muted);padding-top:16px}
.team-detail>p{font-size:clamp(30px,3.8vw,56px);line-height:1.12;letter-spacing:-.035em;color:var(--text);margin:30px 0 60px}
.team-detail figure{max-width:330px;margin-left:auto}
.team-detail img{width:100%;height:auto;aspect-ratio:3/4}
.project-solar .project-image img,.project-rural .project-image img{object-position:center 52%}
.project-main .project-image img{object-position:center}
.project-caption{gap:12px}
.project-rural .project-image img{object-position:center top}
.project-open span{opacity:0}
.project:hover .project-open span,.project:focus-visible .project-open span{opacity:1}
.skip:not(:focus){clip-path:inset(50%)}
.tunnel-controls button:disabled{color:var(--muted);border-color:var(--line);cursor:default;background:transparent}
@media(min-width:761px) and (max-width:1100px){
 .solutions-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:36px}
 .solution-visual{min-height:0;width:100%;height:480px;aspect-ratio:auto}
 .solution summary{gap:12px}.solution>div{padding-left:0}
}
@media(min-width:1700px){.has-tunnel .tunnel-card{width:340px;height:450px}.tunnel-stage{height:560px}}
@media(max-width:760px){
 .energy-gallery{margin-top:20px}
 .energy-top{display:block}.energy-top p{margin-top:24px;font-size:13px}
 .tunnel-stage{height:390px;perspective:800px}
 .has-tunnel .tunnel-card{width:230px;height:310px}
 .tunnel-toolbar{flex-wrap:wrap;gap:12px;padding:12px 0 24px}
 .tunnel-toolbar>p{flex-basis:70%;font-size:11px}
 .tunnel-controls{width:100%;justify-content:space-between}
 .tunnel-controls .tunnel-pause{flex:1}
 .journey-steps{display:block;margin-top:34px}
 .journey-steps article+article{margin-top:32px}
 .journey-steps h3{font-size:25px;max-width:100%;margin:10px 0}
 .journey-steps p{max-width:100%}
 .team-story{gap:26px;grid-template-columns:1fr}
 .team-detail{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
 .team-detail>p{font-size:clamp(23px,5.8vw,38px);margin:0}
 .team-detail figure{margin:0}.team-story figcaption{font-size:11px}
 .project-open span{opacity:1}
}
@media(prefers-reduced-motion:reduce){.orbit-pulse{animation:none}.has-tunnel .tunnel-card{will-change:auto}}
