:root {
  --gof-404-cyan: #3abff0;
  --gof-404-blue: #457fc1;
  --gof-404-purple: #51398e;
  --gof-404-bg: #06111f;
}

html { scroll-behavior: smooth; }
body.gof-404-active { margin: 0; overflow-x: hidden; background: var(--gof-404-bg); }
body.gof-404-active .elementor { overflow: clip; }
.gof-404-stage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 35%,rgba(58,191,240,.15),transparent 23%),
    radial-gradient(circle at 76% 42%,rgba(81,57,142,.22),transparent 38%),
    linear-gradient(180deg,#06111f,#071421) !important;
}
.gof-404-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.023) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.023) 1px,transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(circle at 75% 35%,black,transparent 53%);
  mask-image: radial-gradient(circle at 75% 35%,black,transparent 53%);
}
.gof-404-header { position: relative; z-index: 5; }
.gof-404-logo { flex: 0 0 190px !important; width: 190px !important; max-width: 190px !important; }
.gof-404-logo img { display: block; width: 100%; height: auto; aspect-ratio: 493 / 101; object-fit: contain; }
.gof-404-eyebrow .elementor-heading-title { letter-spacing: .13em; }
.gof-404-title .elementor-heading-title { letter-spacing: -.045em; text-wrap: balance; }
.gof-404-lead { max-width: 670px; }
.gof-404-lead p,
.gof-404-visual-copy p,
.gof-404-card p,
.gof-404-footer p { margin: 0; }
.gof-404-btn { width: auto !important; }
.gof-404-btn .elementor-button {
  min-height: 50px;
  transition: transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.gof-404-btn .elementor-button:hover { transform: translateY(-2px); }
.gof-404-primary .elementor-button {
  background: linear-gradient(90deg,var(--gof-404-cyan),var(--gof-404-blue) 56%,var(--gof-404-purple));
  box-shadow: 0 15px 38px rgba(58,191,240,.18);
}
.gof-404-outline .elementor-button { background: rgba(255,255,255,.025); }
.gof-404-visual { position: relative; isolation: isolate; }
.gof-404-visual::before,
.gof-404-visual::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
  border-radius: 50%;
  transform: translate(-50%,-50%);
}
.gof-404-visual::before {
  width: min(92%,420px);
  aspect-ratio: 1;
  border: 1px solid rgba(58,191,240,.3);
  box-shadow: 0 0 0 58px rgba(58,191,240,.035),0 0 0 116px rgba(81,57,142,.025),0 0 75px rgba(58,191,240,.16);
}
.gof-404-visual::after {
  width: min(74%,340px);
  aspect-ratio: 1;
  border: 1px solid rgba(111,80,241,.42);
  transform: translate(-50%,-50%) rotate(45deg);
  border-radius: 32%;
}
.gof-404-number { position: relative; z-index: 2; }
.gof-404-number .elementor-heading-title {
  color: transparent !important;
  background: linear-gradient(135deg,#fff 2%,#9de8ff 35%,#4da5f1 64%,#7251f4 95%);
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 16px 36px rgba(58,191,240,.18));
}
.gof-404-visual-copy { position: relative; z-index: 2; max-width: 320px; }
.gof-404-card { position: relative; overflow: hidden; transition: transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.gof-404-card::after {
  content: "↗";
  position: absolute;
  right: 18px;
  top: 18px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  color: #bdc9d6;
}
.gof-404-card:hover { transform: translateY(-4px); border-color: rgba(58,191,240,.36); box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.gof-404-card-label .elementor-heading-title { letter-spacing: .12em; }
.gof-404-card-link .elementor-button { padding: 8px 0 !important; border: 0 !important; background: transparent !important; }
.gof-404-footer-link a { color: inherit; }
.gof-404-footer-link a:hover { color: var(--gof-404-cyan); }
body.gof-404-active a:focus-visible,
body.gof-404-active button:focus-visible { outline: 3px solid var(--gof-404-cyan); outline-offset: 3px; }

@media (max-width: 1024px) {
  .gof-404-hero { padding-top: 34px !important; }
  .gof-404-copy { align-items: center !important; text-align: center; }
  .gof-404-copy .elementor-widget { max-width: 760px; }
  .gof-404-actions { justify-content: center !important; }
  .gof-404-visual { min-height: 350px !important; }
}

@media (max-width: 767px) {
  .gof-404-header-cta { display: none; }
  .gof-404-logo { flex-basis: 165px !important; width: 165px !important; max-width: 165px !important; }
  .gof-404-hero { padding-top: 28px !important; padding-bottom: 46px !important; }
  .gof-404-actions,
  .gof-404-actions .elementor-widget-button,
  .gof-404-actions .elementor-button { width: 100% !important; }
  .gof-404-visual { min-height: 290px !important; }
  .gof-404-visual::before { width: min(88vw,320px); }
  .gof-404-routes { gap: 13px !important; }
  .gof-404-card { min-height: 0 !important; }
  .gof-404-footer { align-items: flex-start !important; }
  .gof-404-footer-link { text-align: left !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition-duration: .01ms !important; }
}
