/* Shared production fixes loaded after page-level styles. */
:root{
  --contact-z:90;
}

body{
  padding-bottom:84px;
}

.hero-wrap .hero{
  padding-top:clamp(1rem,3vw,2rem) !important;
}

.hero-wrap > .meshtop{
  position:absolute !important;
  inset:-10% -10% auto -10% !important;
}

.hero-shot{
  margin-top:clamp(1.2rem,3vw,1.8rem) !important;
}

.site-contact{
  position:fixed;
  right:clamp(14px,3vw,24px);
  bottom:clamp(14px,3vw,24px);
  z-index:var(--contact-z);
  font-family:var(--sans,system-ui,-apple-system,Segoe UI,sans-serif);
}

.site-contact *{
  box-sizing:border-box;
}

.site-contact-toggle{
  position:relative;
  isolation:isolate;
  overflow:visible;
  display:flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.18);
  background:#0b0b0d;
  color:#f5f5f5;
  border-radius:999px;
  padding:.78rem 1rem;
  box-shadow:0 16px 38px rgba(0,0,0,.22);
  cursor:pointer;
  font:600 13px/1 var(--mono,ui-monospace,monospace);
  letter-spacing:.01em;
}

.site-contact-toggle > span:not(.site-contact-border){
  position:relative;
  z-index:1;
}

.site-contact-border{
  position:absolute;
  inset:-2px;
  z-index:0;
  pointer-events:none;
  border:2px solid transparent;
  border-radius:inherit;
  -webkit-mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);
  mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);
  -webkit-mask-clip:padding-box,border-box;
  mask-clip:padding-box,border-box;
  -webkit-mask-composite:xor;
  mask-composite:exclude;
}

.site-contact-runner{
  position:absolute;
  top:0;
  left:0;
  width:24px;
  aspect-ratio:1;
  border-radius:999px;
  background:linear-gradient(90deg,transparent 0%,rgba(57,211,83,.18) 28%,rgba(57,211,83,1) 64%,rgba(184,255,208,.95) 100%);
  filter:drop-shadow(0 0 4px rgba(57,211,83,.95)) drop-shadow(0 0 10px rgba(57,211,83,.7));
  offset-path:rect(0 auto auto 0 round 22px);
  offset-distance:0%;
  animation:site-contact-ring 2.8s linear infinite;
}

.site-contact-toggle:hover,
.site-contact-toggle:focus-visible{
  border-color:rgba(255,255,255,.24);
}

.site-contact-panel{
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  width:min(280px,calc(100vw - 28px));
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:14px;
  background:#111114;
  color:#f5f5f5;
  box-shadow:0 18px 42px rgba(0,0,0,.32);
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}

.site-contact.is-open .site-contact-panel{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

.site-contact-panel a,
.site-contact-panel button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.72rem .78rem;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:#17171b;
  color:#f2f2f2;
  text-decoration:none;
  cursor:pointer;
  font:500 13px/1.25 var(--mono,ui-monospace,monospace);
}

.site-contact-panel a:hover,
.site-contact-panel button:hover,
.site-contact-panel a:focus-visible,
.site-contact-panel button:focus-visible{
  border-color:#39d353;
  color:#39d353;
  outline:none;
}

.site-contact-panel small{
  color:#8b8b96;
  font:500 11px/1.4 var(--mono,ui-monospace,monospace);
  padding:.2rem .25rem .1rem;
}

@media(max-width:560px){
  body{padding-bottom:76px}
  .site-contact-toggle{padding:.7rem .85rem}
}

@keyframes site-contact-ring{
  to{offset-distance:100%}
}

@media(prefers-reduced-motion:reduce){
  .site-contact-runner{
    animation:none;
  }
}
