/* Progressive enhancement: content stays usable without JavaScript. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}
body{overflow-x:clip}
header nav a{position:relative;transition:background .25s,color .25s,box-shadow .25s}
header nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
header nav a:hover{text-decoration:none}header nav a:hover::after,header nav a:focus-visible::after{transform:scaleX(1)}
.nav-contact:hover{background:var(--green);color:var(--paper);box-shadow:0 6px 18px #1c392c16}
.button{position:relative;overflow:hidden;transition:transform .3s var(--ease-out),background .25s,box-shadow .3s}
.button span{display:inline-block;transition:transform .3s var(--ease-out)}
.button:hover{box-shadow:0 10px 24px #1c392c24;transform:translateY(-3px)}
.button:hover span{transform:translate(3px,-3px)}
.button:active{transform:translateY(0);box-shadow:none}
.hero{position:relative;isolation:isolate}.hero::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:75%;height:80%;right:-5%;top:3%;background:radial-gradient(ellipse,#d5f47740,transparent 65%)}
.hero h1 em{background:linear-gradient(115deg,#1c392c 15%,#527b29 65%,#1c392c);background-clip:text;-webkit-background-clip:text;color:transparent}
.photo{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .65s var(--ease-out),box-shadow .65s;box-shadow:0 18px 45px #1c392c14}
.photo img{transform:scale(1.07) translateY(var(--photo-shift,0px));transition:filter .4s;object-position:center}
.photo figcaption{box-shadow:0 6px 24px #0002;transition:transform .4s var(--ease-out)}
.photo:hover{box-shadow:0 26px 60px #1c392c29}.photo:hover figcaption{transform:translateY(-5px)}
.feature{position:relative;border-radius:0 0 12px 12px;padding:20px 18px 22px;transition:transform .35s var(--ease-out),background .35s,box-shadow .35s}
.feature::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:3px;background:#7ca72c;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
.feature:hover{transform:translateY(-6px);background:#fff;box-shadow:0 14px 35px #1c392c0d}.feature:hover::before{transform:scaleX(1)}
.feature .number{transition:color .3s}.feature:hover .number{color:#53771e}
.contact{position:relative;isolation:isolate;overflow:hidden}.contact::before{content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 0% 0%,#d5f4771c,transparent 55%)}
.contact input,.contact textarea,.contact select{transition:box-shadow .2s,border-color .2s,background .2s}.contact input:focus,.contact textarea:focus,.contact select:focus{box-shadow:0 0 0 6px #d5f47715;background:#fdfff6}
.legal-links a{transition:color .2s}.legal-links a:hover{color:#527b29}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;pointer-events:none;background:#7ca72c;transform:scaleX(0);transform-origin:left}
@media(prefers-reduced-motion:no-preference){
.hero>div>*{animation:arrive .8s var(--ease-out) both}.hero>div>:nth-child(2){animation-delay:.07s}.hero>div>:nth-child(3){animation-delay:.14s}.hero>div>:nth-child(4){animation-delay:.21s}.hero>div>:nth-child(5){animation-delay:.28s}
.reveal-pending{opacity:0;transform:translateY(24px)}.reveal-ready{opacity:1;transform:translateY(0);transition:opacity .75s var(--ease-out),transform .75s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
}
@media(hover:none){.photo:hover figcaption{transform:none}.feature:hover{transform:none;background:transparent;box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.photo,.photo img,.photo figcaption,.feature,.button,.button span{transform:none!important}.reveal-pending{opacity:1;transform:none}.scroll-progress{display:none}}
@media(forced-colors:active){.hero h1 em{background:none;color:CanvasText}}
