html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
.concept-mobile-panel { transition: opacity .32s ease, visibility .32s; }
.concept-mobile-panel.is-open { visibility: visible; opacity: 1; }
.concept-mobile-bar { transition: transform .28s ease; }
.concept-mobile-toggle[aria-expanded="true"] .concept-mobile-bar:first-child { transform: translateY(4.5px) rotate(45deg); }
.concept-mobile-toggle[aria-expanded="true"] .concept-mobile-bar:last-child { transform: translateY(-4.5px) rotate(-45deg); }
.g-head-shadow { transition: opacity .25s; }
.g-head.is-scrolled .g-head-shadow { opacity: 1; }
.g-work-reveal { transition: transform .32s ease; }
.g-work:hover .g-work-reveal, .g-work:focus-visible .g-work-reveal { transform: translateY(0); }
.g-navline { transition: transform .25s ease; transform-origin: left; }
.g-navlink:hover .g-navline, .g-navlink[aria-current="page"] .g-navline { transform: scaleX(1); }
.g-navlink[aria-current="page"] { color: var(--green); }
:focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
.g-hero-zoom { animation: hero-settle 1.2s ease-out both; }
@keyframes hero-settle { from { transform: scale(1.035); } to { transform: scale(1); } }
@media (max-width: 767px) { .g-work-reveal { display: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
