/* Consistent keyboard access and small-screen usability across every page. */
[hidden]{display:none!important}
.skip-link{position:fixed;top:8px;left:8px;z-index:20000;padding:12px 18px;background:#c7ff4f;color:#101715;transform:translateY(-160%);border-radius:8px;font:600 1rem/1.4 system-ui}
.skip-link:focus{transform:none}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid #c7ff4f;outline-offset:4px}
.team-scene-toggle{position:relative;z-index:2;margin:18px 0 0;padding:10px 18px;min-height:44px;border:1px solid #bac6b4;border-radius:24px;background:#17231ddd;color:#fff;font:inherit;cursor:pointer}
.uh-consent{max-height:calc(100dvh - 32px);overflow-y:auto}
@media(max-width:650px){.field input,.field select,.field textarea,.uh-guide input{font-size:16px!important}.contact-send-actions{flex-wrap:wrap}.contact-send-actions .button{min-height:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.team-scene-media video{display:none}.reveal-pending{opacity:1!important;translate:none!important}}
/* Preserve the brand headline while making the service the semantic heading. */
.hero-brand-title{color:#f7f7f4;max-width:720px;font-weight:850;font-size:clamp(46px,5.7vw,82px);line-height:1.02;letter-spacing:-.045em;margin:24px 0}
.hero-brand-title span{display:block;color:var(--lime,#b5f000)}
.hero h1.hero-service-title{font-size:clamp(19px,2vw,26px)!important;line-height:1.3;letter-spacing:-.015em;margin:16px 0;max-width:620px}
.media-motion-toggle{display:block;position:relative;z-index:2;margin:18px auto;padding:10px 18px;min-height:44px;border:1px solid #bac6b4;border-radius:24px;background:#17231d;color:#fff;font:inherit;cursor:pointer}
.media-motion-toggle:disabled{cursor:default;opacity:.7}
@media(max-width:650px){.hero-brand-title{font-size:clamp(38px,10.5vw,54px)}.hero-grid{padding-block:38px!important}.hero h1.hero-service-title{font-size:20px!important}.uh-icon-proof{margin-top:24px!important}}

/* Mobile project photographs: keep intrinsic proportions and the whole frame.
   Explicit height:auto also overrides the HTML height presentation attribute. */
@media (max-width:760px){
  .project-cover img,.photo-grid img{
    display:block;width:100%!important;height:auto!important;max-width:100%;
    max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;
    animation:none!important;transform:none!important;scale:1!important;translate:none!important;
  }
  .photo-grid{grid-template-columns:minmax(0,1fr)}
  .photo-grid figure{min-width:0;align-self:start}
  .project-video video,.photo-grid video{
    width:100%!important;height:auto!important;max-height:75svh;object-fit:contain!important;
  }
  .home-gallery,.gallery{grid-template-columns:minmax(0,1fr)!important}
  .home-gallery .work-card,.gallery .work-card,.live-works-grid .live-work-card{
    display:block!important;min-width:0;min-height:0!important;height:auto!important;
    grid-column:auto!important;align-self:start;
  }
  .home-gallery .work-card>img,.gallery .work-card>img,.live-work-card>img,
  .home-gallery .work-card>video,.gallery .work-card>video,.live-work-card>video{
    display:block;position:relative!important;inset:auto!important;
    width:100%!important;height:auto!important;max-height:none!important;
    aspect-ratio:auto!important;object-fit:contain!important;
    animation:none!important;transform:none!important;scale:1!important;translate:none!important;
  }
  .home-gallery .work-card::after,.gallery .work-card::after,.live-work-card::after{display:none!important}
  .home-gallery .work-card figcaption,.gallery .work-card figcaption,.live-work-card>div{
    position:relative!important;inset:auto!important;margin:0!important;padding:18px!important;
    background:#171b18;color:#fff;translate:none!important;
  }
  .project-index-grid .project-index-media{
    height:auto!important;aspect-ratio:auto!important;
  }
  .project-index-grid .project-index-media img,.project-index-grid .project-index-media video{
    width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;
    animation:none!important;transform:none!important;scale:1!important;translate:none!important;
  }
  .project-case-media,.project-case-media.four{min-height:0!important;grid-template-rows:none!important;grid-auto-rows:auto}
  .project-case-media .photo-frame{height:auto!important;min-height:0!important;aspect-ratio:auto!important}
  .project-case-media img{height:auto!important;object-fit:contain!important;transform:none!important;scale:1!important}
}
