/* Each lower-home interaction has its own motion vocabulary. No dependencies. */
.home-atmosphere{--home-interactions-css:ready}
.home-atmosphere .steps li.continuity-seen,.home-atmosphere .plan.continuity-seen{animation:none}
.home-atmosphere .steps{--process-ink:var(--green)}
.home-atmosphere .steps::before{left:27px;top:52px;bottom:64px;opacity:.28}
.home-atmosphere .steps li{grid-template-columns:56px minmax(0,1fr);gap:25px;padding:28px 0;isolation:isolate;transition:background .25s ease-out,border-color .25s ease-out}
.home-atmosphere .steps li::after{content:"";position:absolute;bottom:-1px;left:81px;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.22,1,.36,1);pointer-events:none}
.home-atmosphere .process-point{width:56px;height:56px;position:relative;align-self:start;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);border-radius:50%;padding:0;color:var(--green);isolation:isolate;transition:background .25s ease-out,border-color .25s ease-out,box-shadow .25s ease-out}
.home-atmosphere .process-index{font:.67rem var(--mono);position:relative;z-index:1;transition:opacity .2s ease-out,transform .3s ease-out}
.home-atmosphere .process-instrument{width:64px;height:64px;position:absolute;left:-5px;top:-5px;stroke:currentColor;stroke-width:1;opacity:.3;overflow:visible;pointer-events:none;transition:opacity .3s ease-out}
.home-atmosphere .process-instrument .process-target{fill:var(--accent);stroke:none;opacity:0}
.home-atmosphere .process-sweep{transform-origin:32px 32px;opacity:0}
.home-atmosphere .process-orbit{transform-origin:32px 32px}
.home-atmosphere .process-trace,.home-atmosphere .process-check{stroke-dasharray:100;stroke-dashoffset:100;stroke-width:1.8}
.home-atmosphere .steps li.is-selected::after,.home-atmosphere .steps li:focus-within::after{transform:scaleX(1)}
.home-atmosphere .steps li.is-selected .process-point,.home-atmosphere .process-point:focus-visible{background:#23301f;border-color:var(--accent);box-shadow:0 0 0 6px #a7c89a09}
.home-atmosphere .steps li.is-selected .process-instrument,.home-atmosphere .steps li:focus-within .process-instrument{opacity:1}
.home-atmosphere .steps li.is-selected .process-index,.home-atmosphere .steps li:focus-within .process-index{opacity:0;transform:translateY(4px)}
.home-atmosphere .steps li.is-selected .process-sweep,.home-atmosphere .steps li:focus-within .process-sweep{opacity:.8;animation:process-radar 2.2s linear 1 both}
.home-atmosphere .steps li.is-selected .process-target,.home-atmosphere .steps li:focus-within .process-target{opacity:1;animation:process-detect 2.2s ease-out 1 both}
.home-atmosphere .steps li.is-selected .process-trace,.home-atmosphere .steps li:focus-within .process-trace{animation:process-trace 1.7s ease-out 1 both}
.home-atmosphere .steps li.is-selected .process-check,.home-atmosphere .steps li:focus-within .process-check{animation:process-trace 1.6s ease-out 1 both}
.home-atmosphere .steps li.is-selected .process-delivery,.home-atmosphere .steps li:focus-within .process-delivery{animation:process-deliver 1.6s ease-out 1 both}
@media(hover:hover) and (pointer:fine){
.home-atmosphere .steps li:hover::after{transform:scaleX(1)}
.home-atmosphere .steps li:hover .process-point{background:#23301f;border-color:var(--accent);box-shadow:0 0 0 6px #a7c89a09}
.home-atmosphere .steps li:hover .process-instrument{opacity:1}.home-atmosphere .steps li:hover .process-index{opacity:0;transform:translateY(4px)}
.home-atmosphere .steps li:hover .process-sweep{opacity:.8;animation:process-radar 2.2s linear 1 both}.home-atmosphere .steps li:hover .process-target{opacity:1;animation:process-detect 2.2s ease-out 1 both}.home-atmosphere .steps li:hover .process-trace{animation:process-trace 1.7s ease-out 1 both}.home-atmosphere .steps li:hover .process-check{animation:process-trace 1.6s ease-out 1 both}.home-atmosphere .steps li:hover .process-delivery{animation:process-deliver 1.6s ease-out 1 both}
}
@keyframes process-radar{to{transform:rotate(360deg)}}
@keyframes process-detect{0%{opacity:.1}30%,100%{opacity:1}}
@keyframes process-trace{0%,12%{stroke-dashoffset:100}62%,100%{stroke-dashoffset:0}}
@keyframes process-deliver{0%{transform:translateX(-2px);opacity:.4}100%{transform:translateX(0);opacity:1}}
/* Plans: physical response and perimeter routing, not a generic glow sweep. */
.home-atmosphere .plan{--plan-ink:var(--accent);transform-origin:50% 60%;transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .25s ease-out,box-shadow .4s ease-out}
.home-atmosphere .plan.marked{--plan-ink:#193314}
.home-atmosphere .plan::after{display:none}
.home-atmosphere .plan::before{transition:background .25s ease-out,color .25s ease-out,border-color .25s ease-out}
.home-atmosphere .plan-art{position:absolute;inset:0;pointer-events:none;user-select:none;color:var(--plan-ink)}
.home-atmosphere .plan-perimeter{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);stroke:currentColor;stroke-width:1.4;opacity:0;transition:opacity .25s ease-out}
.home-atmosphere .plan-perimeter rect{vector-effect:non-scaling-stroke;stroke-dasharray:13 87;animation:plan-circuit 2.8s linear 1 both;animation-play-state:paused}
.home-atmosphere .plan-glyph{position:absolute;top:24px;right:23px;width:88px;height:60px;stroke:currentColor;stroke-width:1.15;opacity:.48;transition:opacity .25s ease-out}
.home-atmosphere .plan .text-link span{transition:transform .3s cubic-bezier(.22,1,.36,1)}
.home-atmosphere .plan:focus-within{border-color:var(--plan-ink);box-shadow:0 20px 36px #0004}
.home-atmosphere .plan:focus-within .plan-perimeter,.home-atmosphere .plan:focus-within .plan-glyph{opacity:1}
.home-atmosphere .plan:focus-within .text-link span{transform:translate(3px,-3px)}
@media(hover:hover) and (pointer:fine){
.home-atmosphere .plan:hover{transform:perspective(1000px) translateY(-5px) rotateX(var(--plan-rx,0deg)) rotateY(var(--plan-ry,0deg));border-color:var(--plan-ink);box-shadow:0 22px 45px #0005}
.home-atmosphere .plan:hover .plan-perimeter,.home-atmosphere .plan:hover .plan-glyph{opacity:1}
.home-atmosphere .plan:hover::before{background:var(--plan-ink);color:var(--panel);border-color:var(--plan-ink)}
.home-atmosphere .plan.marked:hover::before{color:var(--green)}
.home-atmosphere .plan:hover .text-link span{transform:translate(3px,-3px)}
.home-atmosphere .plan:hover .glyph-shutter{animation:plan-shutter 1.8s ease-out 1 both;transform-origin:16px 30px}
.home-atmosphere .plan:hover .glyph-cycle{animation:plan-orbit 3.6s linear 1 both;transform-origin:42px 29px}
.home-atmosphere .plan:hover .glyph-heart{animation:plan-heart 1.8s ease-out 1 both;transform-origin:42px 29px}
.home-atmosphere .plan:hover .glyph-branch{stroke-dasharray:100;animation:process-trace 1.8s ease-out 1 both}
.home-atmosphere .plan:hover .glyph-signal{animation:plan-heart 1.8s ease-out 1 both;transform-origin:44px 30px}
.home-atmosphere .plan.continuity-inview:hover .plan-perimeter rect{animation-play-state:running}
}
.home-atmosphere .plan.continuity-inview:focus-within .plan-perimeter rect{animation-play-state:running}
@keyframes plan-circuit{to{stroke-dashoffset:-100}}
@keyframes plan-shutter{0%{transform:scaleX(.55);opacity:.3}100%{transform:scaleX(1);opacity:1}}
@keyframes plan-orbit{to{transform:rotate(360deg)}}
@keyframes plan-heart{0%{opacity:.35;transform:scale(.92)}60%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}
/* Measured native details. Body is readable natively if JS does not load. */
.home-atmosphere .faq details{overflow:visible;border-left-color:#536b48;transition:border-color .25s ease-out,background .25s ease-out}
.home-atmosphere .faq details[open]{border-top-color:#7d9e6b;background:linear-gradient(90deg,#a7c89a06,transparent 80%)}
.home-atmosphere .faq summary{padding-right:55px;min-height:68px}
.home-atmosphere .faq summary::after{content:'+';display:grid;place-items:center;right:14px;top:23px;width:24px;height:24px;line-height:1;border:1px solid var(--line);border-radius:50%;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .25s ease-out;background:var(--bg)}
.home-atmosphere .faq details[open] summary::after{content:'+';transform:rotate(45deg);border-color:var(--green)}
.home-atmosphere .faq-answer{display:flow-root}
.home-atmosphere .faq-answer p{padding-right:45px;max-width:800px;font-size:.92rem;line-height:1.85}
.home-atmosphere .faq-spark{position:absolute;left:-22px;top:13px;width:16px;height:76px;pointer-events:none;opacity:0}
.home-atmosphere .faq-lightning{display:block;width:100%;height:100%;stroke:var(--accent);stroke-width:1.5;filter:drop-shadow(0 0 3px #c9f7a155)}
.home-atmosphere details[data-faq-state="opening"] .faq-spark{animation:faq-charge .42s ease-out both}
.home-atmosphere details[data-faq-state="opening"] .faq-lightning path{stroke-dasharray:100;animation:faq-trace .42s ease-out both}
@keyframes faq-charge{0%{opacity:0;transform:translateY(-8px)}25%,65%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
@keyframes faq-trace{from{stroke-dashoffset:100}to{stroke-dashoffset:-100}}
/* Freeze decorative CSS in hidden/out-of-view sections. Shared pause also stops WAAPI via JS. */
.home-atmosphere .steps li:not(.continuity-inview) .process-instrument *,
.home-atmosphere .plan:not(.continuity-inview) .plan-art *,
.home-atmosphere[data-atmosphere-hidden="true"] .process-instrument *,
.home-atmosphere[data-atmosphere-hidden="true"] .plan-art *{animation-play-state:paused!important}
@media(max-width:780px){.home-atmosphere .steps li{grid-template-columns:50px minmax(0,1fr);gap:20px;padding-block:26px}.home-atmosphere .steps::before{left:24px}.home-atmosphere .process-point{width:50px;height:50px}.home-atmosphere .process-instrument{width:58px;height:58px}.home-atmosphere .steps li::after{left:70px}.home-atmosphere .plan-glyph{right:20px;top:20px;width:80px}.home-atmosphere .faq summary{padding-right:45px}.home-atmosphere .faq-answer p{font-size:.86rem;padding-right:20px}.home-atmosphere .faq summary::after{right:7px}}
@media(prefers-reduced-motion:reduce){.home-atmosphere .process-instrument *,.home-atmosphere .plan-art *,.home-atmosphere .faq-spark{animation:none!important}.home-atmosphere .steps li *,.home-atmosphere .plan *,.home-atmosphere .faq *{transition:none!important}.home-atmosphere .plan:hover{transform:none}.home-atmosphere .process-trace,.home-atmosphere .process-check{stroke-dashoffset:0}.home-atmosphere .process-sweep{transform:none}}
/* A hover is one short gesture, not a second ambient animation layer. */
.home-atmosphere .process-sweep,.home-atmosphere .process-target{animation-duration:.8s!important}
.home-atmosphere .process-trace,.home-atmosphere .process-check,.home-atmosphere .process-delivery{animation-duration:.65s!important}
.home-atmosphere .plan-perimeter{display:none}
.home-atmosphere .plan-perimeter rect{animation:none!important}
.home-atmosphere .plan-glyph *{animation-duration:.75s!important}
.home-atmosphere .plan-glyph .glyph-cycle{animation-duration:1s!important}
html.motion-paused .home-atmosphere .plan:hover{transform:none}
html.motion-paused .home-atmosphere .process-trace,html.motion-paused .home-atmosphere .process-check,html.motion-paused .home-atmosphere .glyph-branch{stroke-dashoffset:0!important}
