:root{--floating-home-z:50;--floating-home-gap:clamp(12px,2vw,20px);--floating-home-safe:max(env(safe-area-inset-right,0px),env(safe-area-inset-bottom,0px));--floating-home-size:clamp(48px,3.6vw,54px)}

.floating-home-btn{--floating-home-inset:calc(var(--floating-home-gap) + var(--floating-home-safe));position:fixed !important;right:calc(var(--floating-home-inset) * 3) !important;bottom:var(--floating-home-inset) !important;left:auto !important;top:auto !important;margin:0 !important;z-index:var(--floating-home-z) !important}

.floating-home-btn.btn{
  --cta-shine-width:58%;
  --cta-shine-from:24%;
  --cta-shine-to:76%;
  --cta-shine-start:-28%;
  --cta-shine-end:184%;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:var(--floating-home-size);
  height:var(--floating-home-size);
  padding:0;
  border-radius:999px;
  border:2px solid color-mix(in srgb,var(--overlay-top) 46%,white 54%);
  background:linear-gradient(90deg,var(--overlay-top),var(--overlay-bottom));
  background-size:170% 170%;
  background-position:0% 50%;
  color:var(--hero-h1-color);
  text-decoration:none;
  line-height:1;
  font-size:1.35rem;
  box-shadow:0 14px 30px rgba(11,42,92,.34),0 6px 14px rgba(20,140,205,.22),inset 0 1px 0 rgba(255,255,255,.56),inset 0 -2px 0 rgba(7,38,86,.42),0 0 0 1px rgba(140,205,255,.34);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform .2s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease,color .25s ease,filter .25s ease;
  animation:moreBtnOutlinePulse 1.6s ease-in-out infinite,ctaBtnGradientDrift 10.67s ease-in-out infinite alternate;
}

.floating-home-btn.btn::before{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  top:2px;
  height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,color-mix(in srgb,white 64%,transparent),color-mix(in srgb,white 0%,transparent));
  opacity:.46;
  pointer-events:none;
  z-index:0;
}

.floating-home-btn.btn::after{
  content:"";
  position:absolute;
  left:0;
  width:var(--cta-shine-width,58%);
  top:0;
  bottom:0;
  border-radius:inherit;
  clip-path:inset(0 round 999px);
  background:linear-gradient(118deg,transparent var(--cta-shine-from,24%),color-mix(in srgb,white 70%,transparent) 50%,transparent var(--cta-shine-to,76%));
  transform:translateX(var(--cta-shine-start,-28%));
  opacity:0;
  pointer-events:none;
  transition:transform .9s cubic-bezier(.22,.9,.32,1),opacity .3s ease;
  z-index:1;
}

.floating-home-btn.btn:is(:hover,:focus-visible){
  transform:translateY(-3px);
  filter:saturate(1.05);
  background:linear-gradient(90deg,color-mix(in srgb,var(--overlay-top) 88%,white 12%),color-mix(in srgb,var(--overlay-bottom) 94%,black 6%));
  border-color:color-mix(in srgb,var(--overlay-top) 56%,white 44%);
  box-shadow:0 24px 50px color-mix(in srgb,var(--overlay-bottom) 34%,transparent),0 10px 24px color-mix(in srgb,var(--overlay-bottom) 18%,transparent),inset 0 1px 0 color-mix(in srgb,white 72%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--overlay-bottom) 20%,transparent);
  outline:0;
}

.floating-home-btn.btn:is(:hover,:focus-visible)::after{
  animation:ctaHoverShineSweep 760ms cubic-bezier(.22,.9,.32,1) 1 both;
  will-change:transform,opacity;
}

.floating-home-btn.btn:active{
  transform:translateY(-1px);
  box-shadow:0 10px 22px color-mix(in srgb,var(--overlay-bottom) 26%,transparent),inset 0 2px 4px color-mix(in srgb,var(--overlay-bottom) 24%,transparent),inset 0 1px 0 color-mix(in srgb,white 60%,transparent);
}

.floating-home-btn.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--overlay-top) 56%,white 44%);outline-offset:3px}

@media (max-width:620px){
  .floating-home-btn.btn{width:48px;height:48px}
}

@media (prefers-reduced-motion:reduce){
  .floating-home-btn.btn,.floating-home-btn.btn::before{transition:none}
}
