/* Shared public-site interaction system; no layout or content changes. */
:root{--motion-fast:220ms;--motion-normal:420ms;--motion-slow:600ms;--ease-standard:cubic-bezier(.25,.1,.25,1);--ease-emphasized:cubic-bezier(.25,.1,.25,1);--dur-fast:var(--motion-fast);--dur-med:var(--motion-normal);--dur-slow:var(--motion-slow);--ease-out:var(--ease-emphasized)}
html{scrollbar-color:#659b30 #edf2f5;scrollbar-width:auto}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#edf2f5}
::-webkit-scrollbar-thumb{background:#659b30;border:3px solid #edf2f5;border-radius:12px}
::-webkit-scrollbar-thumb:hover{background:#0f3e75}
@media(forced-colors:active){html{scrollbar-color:auto}}
::selection{background:#82ba40;color:#081d31;text-shadow:none}
.spark-gallery-frame{position:relative;min-width:0;overflow:hidden;border-radius:14px;isolation:isolate}
.media-album-grid .spark-gallery-frame>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0;transition:transform var(--motion-slow) var(--ease-standard)}
#home-facilities .media-album-grid .spark-gallery-frame>img{aspect-ratio:4/3}
.spark-gallery-border{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);overflow:visible;z-index:2;pointer-events:none}
.spark-gallery-border rect{fill:none;stroke:#82ba40;stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;opacity:0;transition:stroke-dashoffset var(--motion-slow) var(--ease-standard),opacity var(--motion-normal) var(--ease-standard)}
@media(hover:hover) and (pointer:fine){.spark-gallery-frame:hover .spark-gallery-border rect{stroke-dashoffset:0;opacity:1}.media-album-grid .spark-gallery-frame:hover>img{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.media-album-grid .spark-gallery-frame:hover>img{transform:none!important}.spark-gallery-border rect{transition:none}}
:is(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid #82ba40;outline-offset:4px;box-shadow:0 0 0 6px #081d31}
.btn{transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-normal) var(--ease-standard),box-shadow var(--motion-normal) var(--ease-standard)}
.btn:active:not(:disabled){transform:translateY(0) scale(.985)}
.btn:disabled,button:disabled{cursor:not-allowed}
:is(.text-link,.channel-card a,.site-footer li a){text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size var(--motion-normal) var(--ease-standard),color var(--motion-fast) var(--ease-standard);padding-block-end:3px}
[dir=rtl] :is(.text-link,.channel-card a,.site-footer li a){background-position:100% 100%}
:is(.text-link,.channel-card a,.site-footer li a):focus-visible{background-size:100% 1px}
:is(.facility-tabs-nav button,.master-plan-tab,.filter-chip,.spark-journey-tab,.social-row a){transition:background-color var(--motion-normal) var(--ease-standard),color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}
.inquiry-form :is(input:not([type=radio]):not([type=checkbox]),textarea,select){transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}
.inquiry-form :is(input,textarea,select):focus{border-color:#568724;box-shadow:0 0 0 3px #82ba4033}
.inquiry-form :is(input,textarea,select):user-invalid{border-color:#af3030;box-shadow:0 0 0 2px #af30301a}
:is(.media-album,.solution-choice,.team-card--portrait:not(.team-card--empty)){position:relative;overflow:hidden}
:is(.media-album,.solution-choice,.team-card--portrait:not(.team-card--empty))::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;border:2px solid #82ba40;clip-path:polygon(0 0,0 0,0 0,0 0,0 0,0 0);opacity:0;transition:clip-path var(--motion-slow) linear,opacity var(--motion-fast) var(--ease-standard)}
/* Continuous reversible perimeter sweep: no restarting keyframes on re-entry. */
@property --border-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
:is(.media-album,.solution-choice,.team-card--portrait:not(.team-card--empty))::before{--border-angle:0deg;border:0;padding:2px;clip-path:none;background:conic-gradient(from 0deg,#82ba40 0deg var(--border-angle),transparent var(--border-angle) 360deg);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;transition:--border-angle var(--motion-slow) var(--ease-standard),opacity var(--motion-normal) var(--ease-standard)}
:is(.media-album,.solution-choice):focus-visible::before{--border-angle:360deg;opacity:1;clip-path:none}
.solution-choice>img,.media-album img,.team-card--portrait .team-avatar{transition:transform var(--motion-slow) var(--ease-emphasized)}
.team-card--portrait>div>:is(h3,p){transition:transform var(--motion-normal) var(--ease-emphasized)}
.spark-reveal-pending{opacity:0;transform:translateY(12px)}
.spark-reveal-ready{transition:opacity var(--motion-slow) var(--ease-emphasized),transform var(--motion-slow) var(--ease-emphasized);transition-delay:var(--reveal-delay,0ms)}
.spark-reveal-ready:not(.spark-reveal-pending){opacity:1}
@media(hover:hover) and (pointer:fine){
 .btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 14px #081d311a}
 .btn:active:not(:disabled){transform:translateY(0) scale(.985)}
 :is(.text-link,.channel-card a,.site-footer li a):hover{background-size:100% 1px}
 :is(.media-album,.solution-choice,.team-card--portrait:not(.team-card--empty)):hover::before{--border-angle:360deg;opacity:1}
 .solution-choice:hover>img{transform:scale(1.03)}
 .inquiry-form :is(input,textarea,select):hover{border-color:#73985a}
 .social-row a:hover{color:#82ba40}
}
.team-section .team-card--portrait .team-avatar{transition:transform var(--motion-slow) var(--ease-standard)}
.team-section .team-card--portrait>div>:is(h3,p){transition:transform var(--motion-slow) var(--ease-standard)}
@media(hover:hover) and (pointer:fine){.team-section .team-card--portrait:hover .team-avatar{transform:scale(1.03)}.team-section .team-card--portrait:not(.team-card--empty):hover>div>:is(h3,p){transform:translateY(-4px)}}
@media(hover:none),(pointer:coarse){.team-section .team-card--portrait:hover .team-avatar,.media-album:hover img,.solution-choice:hover>img{transform:none}.btn:hover{transform:none}.feature-card:hover,.mini-cell:hover{translate:none;transform:none}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
 .spark-reveal-pending{opacity:1!important;transform:none!important}
 :is(.btn,.feature-card,.mini-cell,.media-album img,.solution-choice>img,.team-card--portrait .team-avatar,.team-card--portrait>div>h3,.team-card--portrait>div>p,.spark-ceo-portrait){transform:none!important;translate:none!important}
}
