/* IDEALEE PHP deployment additions: visual language follows the original build. */
.reveal{opacity:0;pointer-events:none;transform:translateY(24px) scale(.99);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.is-visible{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.site-alert{position:fixed;z-index:50;top:98px;left:50%;transform:translateX(-50%);padding:14px 22px;border:1px solid #12382a;background:#f5f3ec;box-shadow:0 12px 30px #12382a22;font-size:13px;letter-spacing:.03em}
.site-alert-success{color:#006c3e}.site-alert-error{color:#ee1730}
.cases-track.is-dragging{cursor:grabbing;scroll-behavior:auto}
.footer-admin-link{color:inherit;text-decoration:none;letter-spacing:.12em;font-family:IBM Plex Mono,monospace;font-size:10px;opacity:.65}
.footer-admin-link:hover{opacity:1;color:#ee1730}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.cases-track{scroll-behavior:auto!important}}

/* Cases: three cards are visible by default; additional cards remain horizontally scrollable. */
.cases-track{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;padding:0 0 18px;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.case-slide{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start}
.case-card{height:100%}
.cases-track::-webkit-scrollbar{height:5px}.cases-track::-webkit-scrollbar-thumb{background:#006c3e;border-radius:99px}.cases-track::-webkit-scrollbar-track{background:#d9ded5}
.insight-image-wrap{aspect-ratio:16/9;margin-bottom:22px;overflow:hidden;background:#dfe4db}.insight-image{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}.article-card:hover .insight-image{transform:scale(1.035)}.insight-excerpt{margin:14px 0 0;max-width:48ch;color:var(--muted);line-height:1.8;font-size:14px}.insight-link{margin-top:22px}
@media (max-width:900px){.case-slide{flex-basis:calc((100% - 24px)/2)}}
@media (max-width:640px){.case-slide{flex-basis:100%}.cases-track{gap:18px}.insight-image-wrap{margin-bottom:18px}}

.intro-image-wrap{width:min(100%,360px);margin-top:30px;overflow:hidden;background:#dfe4db}.intro-about-image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s var(--ease-out)}.intro-image-wrap:hover .intro-about-image{transform:scale(1.035)}

/* Accessible fixed back-to-top control. */
.to-top{position:fixed;right:24px;bottom:24px;z-index:40;width:58px;height:58px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#006c3e;color:#f7f4eb;box-shadow:0 10px 28px rgba(19,46,35,.2);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease}.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.to-top:hover{background:#123d2d;transform:translateY(-3px)}.to-top:focus-visible{outline:3px solid #f2b632;outline-offset:4px}.to-top-arrow{font-size:20px;line-height:18px;font-weight:400}.to-top-label{font-size:8px;line-height:10px;letter-spacing:.12em;font-weight:700}@media (max-width:640px){.to-top{right:16px;bottom:16px;width:50px;height:50px}.to-top-arrow{font-size:18px}.to-top-label{font-size:7px}}@media (prefers-reduced-motion:reduce){.to-top{transition:none}.to-top:hover{transform:none}}
