/* Quiet geometric light around the existing content. */
.ambient-host{position:relative;isolation:isolate}
.ambient-field{--wire:rgba(189,215,149,.12);--light:rgba(183,220,121,.07);--light-cool:rgba(164,194,202,.055);position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;user-select:none;contain:paint}
.ambient-glow{position:absolute;width:660px;height:660px;max-width:75vw;max-height:75vw;border-radius:50%;background:radial-gradient(ellipse at center,var(--light),transparent 68%);left:-200px;top:10%;animation:ambient-drift 29s ease-in-out infinite alternate;animation-play-state:paused}
.ambient-glow.secondary{width:520px;height:520px;left:auto;right:-170px;top:auto;bottom:-170px;background:radial-gradient(ellipse at center,var(--light-cool),transparent 69%);animation-duration:37s;animation-delay:-18s;animation-direction:alternate-reverse}
.ambient-wire{position:absolute;inset:-5%;width:110%;height:110%;fill:none;stroke:var(--wire);stroke-width:.9;animation:ambient-wire-drift 48s ease-in-out infinite alternate;animation-play-state:paused}
.ambient-wire path,.ambient-wire circle,.ambient-wire rect,.ambient-wire polygon,.ambient-wire ellipse{vector-effect:non-scaling-stroke}
.ambient-trace{stroke-dasharray:3 15;animation:ambient-trace 70s linear infinite;animation-play-state:paused}
.ambient-point{fill:var(--wire);stroke:none;opacity:.4;animation:ambient-breathe 11s ease-in-out infinite alternate;animation-play-state:paused}
.ambient-active .ambient-glow,.ambient-active .ambient-wire,.ambient-active .ambient-trace,.ambient-active .ambient-point{animation-play-state:running}
.hero .ambient-field{--wire:rgba(189,215,149,.075);--light:rgba(183,220,121,.085)}
.hero .ambient-glow{left:auto;right:-100px;top:-130px}
.hero .ambient-glow.secondary{left:-140px;right:auto;bottom:-180px}
.work .ambient-glow{top:20%;left:-300px;width:800px;height:800px}
.work .ambient-wire{animation-delay:-12s}
.statement .ambient-field{--wire:rgba(43,61,32,.11);--light:rgba(90,119,61,.07);--light-cool:rgba(255,255,255,.32)}
.statement .ambient-glow{left:-180px;top:-160px}
.statement .ambient-wire{animation-duration:58s;animation-delay:-18s}
.services .ambient-glow{left:auto;right:-250px;top:8%}
.services .ambient-glow.secondary{right:auto;left:-200px;bottom:0}
.services .ambient-wire{animation-delay:-25s}
.contact .ambient-field{--wire:rgba(32,48,18,.075);--light:rgba(255,255,236,.15);--light-cool:rgba(75,102,40,.06)}
.contact .ambient-glow{left:auto;right:-170px;top:-200px}
.contact .ambient-wire{animation-duration:55s;animation-delay:-10s}
footer .ambient-field{--wire:rgba(189,215,149,.08);--light:rgba(183,220,121,.045)}
footer .ambient-glow{width:550px;height:550px;left:35%;top:15%}
footer .ambient-wire{animation-delay:-30s}
/* The service illustrations float directly on the page, without card backplates. */
#services .service-visual{background:transparent;border:0;box-shadow:none;overflow:visible}
#services .ai-visual,#services .edit-visual,#services .screens-visual{background:transparent}
.ambient-sleep .ambient-field *{animation-play-state:paused!important}
.motion-off .ambient-field *{animation-play-state:paused!important}
@keyframes ambient-drift{from{transform:translate3d(-12px,5px,0) scale(.96);opacity:.65}to{transform:translate3d(25px,-22px,0) scale(1.06);opacity:1}}
@keyframes ambient-wire-drift{from{transform:translate3d(-5px,10px,0) rotate(-1deg)}to{transform:translate3d(12px,-15px,0) rotate(1.3deg)}}
@keyframes ambient-trace{to{stroke-dashoffset:-180}}
@keyframes ambient-breathe{to{opacity:1}}
@media(max-width:700px){.ambient-field{--wire:rgba(189,215,149,.085)}.ambient-wire{width:140%;left:-20%;opacity:.75}.ambient-glow{max-width:110vw;max-height:110vw;width:440px;height:440px;left:-170px}.ambient-glow.secondary{width:350px;height:350px;right:-150px}.work .ambient-glow{left:-200px}.services .ambient-glow{right:-230px}.statement .ambient-field{--wire:rgba(43,61,32,.085)}.contact .ambient-field{--wire:rgba(32,48,18,.065)}}
@media(prefers-reduced-motion:reduce){body:not(.motion-override) .ambient-field *{animation:none!important}}

/* Keep the atmosphere above section fills and behind all readable content. */
.ambient-host>.ambient-field{z-index:0;--wire:rgba(189,215,149,.16);--light:rgba(183,220,121,.115);--light-cool:rgba(164,194,202,.08)}
.ambient-host>:not(.ambient-field){position:relative;z-index:1}
.hero.ambient-host>.ambient-field{--wire:rgba(189,215,149,.15);--light:rgba(183,220,121,.13)}
.contact.ambient-host>.ambient-field{--wire:rgba(32,48,18,.1);--light:rgba(255,255,236,.18);--light-cool:rgba(75,102,40,.08)}
.ambient-glow{animation-duration:19s}.ambient-glow.secondary{animation-duration:25s}.ambient-wire{animation-duration:32s}
@media(max-width:700px){.ambient-host>.ambient-field{--wire:rgba(189,215,149,.13)}.ambient-wire{opacity:.9}.contact.ambient-host>.ambient-field{--wire:rgba(32,48,18,.09)}}

/* Broad olive light and long orbital lines from the supplied reference. */
.ambient-host>.ambient-field{--wire:rgba(174,199,100,.12);--light:rgba(170,195,91,.105);--light-cool:rgba(133,160,74,.075);background:radial-gradient(ellipse at 86% 18%,rgba(142,166,65,.065),transparent 65%),radial-gradient(ellipse at 28% 95%,rgba(126,150,61,.045),transparent 58%)}
.hero.ambient-host>.ambient-field{--wire:rgba(174,199,100,.14);--light:rgba(170,195,91,.12)}
.ambient-wire{stroke-width:.8;inset:0;width:100%;height:100%;animation-duration:36s}
.ambient-diagonal{stroke:rgba(180,208,104,.22)}
.ambient-point{fill:#b7d471;opacity:.65}
.ambient-glow{width:1100px;height:1000px;max-width:110vw;max-height:110vw}
.ambient-glow.secondary{width:900px;height:800px;max-width:100vw;max-height:100vw}
.hero .ambient-glow{right:-120px;top:-160px}.hero .ambient-glow.secondary{left:-160px;bottom:-260px}
.services .ambient-glow{width:1200px;height:1200px;right:-220px;top:-160px}
.contact.ambient-host>.ambient-field{--wire:rgba(32,48,18,.1);--light:rgba(255,255,236,.15);background:none}
.contact .ambient-diagonal{stroke:rgba(32,48,18,.16)}
@media(max-width:700px){.ambient-wire{left:0;width:100%;opacity:1}.ambient-glow{max-width:150vw;max-height:150vw}.ambient-glow.secondary{max-width:140vw;max-height:140vw}}
/* Keep background linework secondary to the content and illustrations. */
.ambient-host>.ambient-field .ambient-wire{opacity:.24}
@media(max-width:700px){.ambient-host>.ambient-field .ambient-wire{opacity:.18}}
/* Restore enough contrast in the final enquiry section to see the linework. */
.contact.ambient-host>.ambient-field .ambient-wire{opacity:.72;stroke-width:1}
.contact.ambient-host>.ambient-field{--wire:rgba(32,48,18,.15)}
.contact .ambient-diagonal{stroke:rgba(32,48,18,.19)}
@media(max-width:700px){.contact.ambient-host>.ambient-field .ambient-wire{opacity:.62}}
/* No decorative background lines in the final enquiry section. */
#contact .ambient-wire{display:none}
