/* Closing CTA only. Real Three.js scene, with an inline-safe static SVG fallback. */
#contact .energy-contact{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.3fr);align-items:center;gap:0;min-height:780px;padding:65px clamp(24px,6.5vw,150px);text-align:left;background:radial-gradient(ellipse 52% 50% at 74% 47%,#443f8b20,transparent 100%);overflow:hidden;overflow:clip}
.energy-contact .energy-copy{position:relative;z-index:2;min-width:0;padding-block:55px;max-width:650px}
.energy-contact .energy-copy>.eyebrow{color:#a5c8e1;font-size:10px;letter-spacing:2.6px;margin-bottom:32px}
.energy-contact .eyebrow:before,.energy-contact .eyebrow:after{display:none}
.energy-contact .energy-copy>h2{font-family:var(--display-font);font-size:clamp(40px,4.4vw,78px);line-height:1.08;letter-spacing:-.04em;margin:0 0 27px;color:#fff;text-shadow:none}
.energy-contact .energy-copy>p:not(.eyebrow){max-width:440px;margin:0 0 34px;color:#acbfd3;font-size:16px;line-height:1.75;text-shadow:none}
.energy-contact .enquiry-panel{margin:0;max-width:600px}
.energy-contact .contact-enquiry{min-width:0;max-width:100%;padding:18px 29px;font-size:20px;border:1px solid #c7e9ff80;background:linear-gradient(110deg,#c3e9ff,#96d9ff);box-shadow:0 0 25px #96d9ff10;transition:box-shadow .9s,border-color .9s,transform .4s}
.energy-contact .contact-enquiry:after{content:'';position:absolute;inset:-9px;border:1px solid #96d9ff60;border-radius:inherit;opacity:0;pointer-events:none}
.energy-contact.energy-charged .contact-enquiry{box-shadow:0 0 40px #96d9ff44;border-color:#e5f6ff}
.energy-contact.energy-charged .contact-enquiry:after{animation:sphere-button-pulse 1.8s ease-out 1}
.energy-contact .enquiry-form{margin-top:26px;backdrop-filter:none;background:#0a1c2ef5}
.energy-contact .energy-visual{grid-column:2;grid-row:1;position:relative;min-width:0;width:125%;margin-left:-12%;aspect-ratio:1.12;z-index:1;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 69% 65% at 50% 50%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 69% 65% at 50% 50%,#000 45%,transparent 100%)}
.energy-contact .energy-copy{grid-column:1;grid-row:1}
.energy-contact .energy-canvas,.energy-contact .energy-fallback{position:absolute;inset:0;width:100%;height:100%;display:block}
.energy-contact .energy-fallback{object-fit:contain;opacity:.95;transition:opacity .6s}
.energy-contact .energy-canvas{opacity:0;transition:opacity .8s}
.energy-contact .energy-canvas canvas{display:block;width:100%;height:100%;pointer-events:none}
.energy-contact.energy-webgl .energy-canvas{opacity:1}
.energy-contact.energy-webgl .energy-fallback{opacity:0}
.energy-contact.energy-prepared .energy-copy>.eyebrow,.energy-contact.energy-prepared .energy-copy>h2,.energy-contact.energy-prepared .energy-copy>p,.energy-contact.energy-prepared .energy-copy>.enquiry-panel{transition:opacity 1s,transform 1.1s cubic-bezier(.16,1,.3,1)}
.energy-contact.energy-prepared .energy-visual{transition:opacity 1.6s,transform 1.6s cubic-bezier(.16,1,.3,1)}
.energy-contact.energy-prepared .energy-copy>h2{transition-delay:.15s}
.energy-contact.energy-prepared .energy-copy>p:not(.eyebrow){transition-delay:.3s}
.energy-contact.energy-prepared .energy-copy>.enquiry-panel{transition-delay:.45s}
.energy-contact.energy-prepared:not(.energy-entered) .energy-copy>.eyebrow,.energy-contact.energy-prepared:not(.energy-entered) .energy-copy>h2,.energy-contact.energy-prepared:not(.energy-entered) .energy-copy>p,.energy-contact.energy-prepared:not(.energy-entered) .energy-copy>.enquiry-panel{opacity:0;transform:translateY(16px)}
.energy-contact.energy-prepared:not(.energy-entered) .energy-visual{opacity:0;transform:scale(.96)}
@keyframes sphere-button-pulse{0%{opacity:0;transform:scale(.96)}35%{opacity:.3}100%{opacity:0;transform:scale(1.1)}}
@media(min-width:1900px){#contact .energy-contact{min-height:920px}}
@media(max-width:1000px){#contact .energy-contact{min-height:700px;padding:50px 5vw;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.energy-contact .energy-copy>h2{font-size:clamp(38px,5vw,55px)}.energy-contact .energy-copy>p:not(.eyebrow){font-size:15px}.energy-contact .contact-enquiry{font-size:18px;padding:17px 23px}.energy-contact .form-pair{grid-template-columns:1fr;gap:0}}
@media(max-width:640px){#contact .energy-contact{display:flex;flex-direction:column;min-height:0;padding:65px 22px 45px;text-align:center}.energy-contact .energy-copy{order:1;max-width:100%;padding:0}.energy-contact .energy-copy>h2{font-size:clamp(36px,9vw,48px);max-width:440px;margin-inline:auto}.energy-contact .energy-copy>p:not(.eyebrow){margin-inline:auto}.energy-contact .energy-copy>.eyebrow{font-size:9px;letter-spacing:2px}.energy-contact .energy-visual{order:2;width:120%;max-width:560px;margin:12px -10% -5%;aspect-ratio:1.12}.energy-contact .contact-enquiry{white-space:normal;font-size:18px;padding:17px 24px}.energy-contact .enquiry-panel{margin-inline:auto}}
@media(prefers-reduced-motion:reduce){.energy-contact *,.energy-contact *:before,.energy-contact *:after{transition:none!important;animation:none!important}.energy-contact.energy-prepared .energy-visual,.energy-contact.energy-prepared .energy-copy>*{opacity:1!important;transform:none!important}.energy-contact .contact-enquiry:after{display:none}}
@media(forced-colors:active){.energy-contact .energy-visual{display:none}.energy-contact .contact-enquiry{border:1px solid ButtonText;box-shadow:none}}
/* Fade filament ends before they reach the copy or the scene boundary. */
.energy-contact .energy-visual{-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 17%,#000 85%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 12%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0%,#000 17%,#000 85%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 12%,#000 88%,transparent 100%);mask-composite:intersect}
/* Lighting and spacing refined against the generated art direction. */
#contact .energy-contact{background:radial-gradient(ellipse 50% 46% at 85% 22%,#6580d41c,transparent 100%),radial-gradient(ellipse 50% 44% at 70% 62%,#695ba81c,transparent 100%)}
.energy-contact .energy-copy>h2{letter-spacing:-.035em}
.energy-contact .contact-enquiry{box-shadow:0 0 28px #96d9ff20,inset 0 1px 0 #f5fcff80}
/* Feather the atmospheric light independently so section boundaries stay seamless. */
#contact .energy-contact{background:transparent}
.energy-contact:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 46% at 85% 22%,#6580d41c,transparent 100%),radial-gradient(ellipse 50% 44% at 70% 62%,#695ba81c,transparent 100%);-webkit-mask-image:linear-gradient(transparent 0%,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(transparent 0%,#000 16%,#000 84%,transparent 100%)}
/* Match the approved 16:9 composition rather than stacking padding around the scene. */
#contact{padding-block:0}
#contact .energy-contact{height:clamp(760px,56.25vw,1100px);min-height:0;padding-block:0;grid-template-columns:minmax(0,.92fr) minmax(0,1.3fr)}
.energy-contact .energy-visual{height:100%;align-self:stretch;width:145%;margin-left:-24%;aspect-ratio:auto}
.energy-contact .energy-copy{padding-block:60px;max-width:650px}
.energy-contact .energy-copy>h2{font-size:clamp(42px,4.4vw,78px)}
@media(max-width:1000px){#contact .energy-contact{height:auto;min-height:700px;padding-block:35px}.energy-contact .energy-visual{height:650px;align-self:center}.energy-contact .energy-copy>h2{font-size:clamp(38px,5vw,55px)}}
@media(max-width:640px){#contact .energy-contact{height:auto;min-height:0;padding-block:65px 35px}.energy-contact .energy-visual{width:120%;margin:15px -10% -5%;height:auto;aspect-ratio:1.12}.energy-contact .energy-copy{padding:0}.energy-contact .energy-copy>h2{font-size:clamp(36px,9vw,48px)}}
/* Render the desktop stage across the section, as in the approved composition. */
@media(min-width:1001px){.energy-contact .energy-visual{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#0002 26%,#000 48%,#000 90%,transparent 100%),linear-gradient(transparent 0%,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#0002 26%,#000 48%,#000 90%,transparent 100%),linear-gradient(transparent 0%,#000 8%,#000 92%,transparent 100%)}.energy-contact .energy-copy{z-index:2}}
@media(min-width:1001px){.energy-contact .energy-visual{grid-column:auto;grid-row:auto}}
