/* ============================================================
   MemeRadar — coming soon
   Brand: logo green #22A03C + logo yellow #FFF200
   ============================================================ */

:root{
  --green:      #22A03C;
  --green-lit:  #34D058;
  --green-deep: #145E24;
  --yellow:     #FFF200;

  --bg:    #04120A;
  --bg-2:  #071b0f;
  --panel: rgba(10, 38, 22, .55);
  --line:  rgba(52, 208, 88, .22);

  --text:  #EAF7EE;
  --muted: #93B7A1;

  --glow: 0 0 40px rgba(52, 208, 88, .35);
  --maxw: 1120px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:
    radial-gradient(1200px 700px at 50% -10%, #0d3a1e 0%, transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 55%, var(--bg) 100%);
  background-color:var(--bg);
  color:var(--text);
  font-family:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight:500;
  line-height:1.6;
  /* `clip`, not `hidden`: overflow-x:hidden would force overflow-y to `auto`,
     turning <body> into a scroll container and breaking the fixed backdrop. */
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}

img,svg,video{ max-width:100%; display:block; }
a{ color:inherit; }

/* must beat the display:block above, or [hidden] elements still render */
[hidden]{ display:none !important; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ============================================================
   Radar backdrop
   ============================================================ */

.radar-bg{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  display:grid; place-items:center;
  overflow:hidden;
  -webkit-mask-image:radial-gradient(circle at 50% 34%, #000 0%, #000 42%, transparent 76%);
          mask-image:radial-gradient(circle at 50% 34%, #000 0%, #000 42%, transparent 76%);
}

.radar-rings,
.radar-grid,
.radar-sweep{
  position:absolute;
  top:34%; left:50%;
  width:min(150vmax, 1500px);
  aspect-ratio:1;
  translate:-50% -50%;
  border-radius:50%;
}

/* concentric rings */
.radar-rings{
  background:
    repeating-radial-gradient(circle at center,
      transparent 0 88px,
      rgba(52,208,88,.13) 88px 89px);
}

/* crosshair spokes */
.radar-grid{
  background:
    linear-gradient(0deg,   transparent calc(50% - .5px), rgba(52,208,88,.10) 50%, transparent calc(50% + .5px)),
    linear-gradient(90deg,  transparent calc(50% - .5px), rgba(52,208,88,.10) 50%, transparent calc(50% + .5px)),
    linear-gradient(45deg,  transparent calc(50% - .5px), rgba(52,208,88,.06) 50%, transparent calc(50% + .5px)),
    linear-gradient(-45deg, transparent calc(50% - .5px), rgba(52,208,88,.06) 50%, transparent calc(50% + .5px));
}

/* rotating beam */
.radar-sweep{
  background:conic-gradient(from 0deg,
    rgba(52,208,88,.20) 0deg,
    rgba(52,208,88,.12) 14deg,
    rgba(52,208,88,.05) 34deg,
    rgba(52,208,88,.015) 58deg,
    transparent 84deg,
    transparent 360deg);
  animation:sweep 7s linear infinite;
  will-change:transform;
}

@keyframes sweep{ to{ rotate:360deg; } }

/* pinging contacts */
.blip{
  position:absolute;
  left:var(--x); top:var(--y);
  width:9px; height:9px; border-radius:50%;
  background:var(--yellow);
  box-shadow:0 0 12px 2px rgba(255,242,0,.7);
  animation:ping 7s ease-out infinite;
  animation-delay:var(--d);
  opacity:0;
}

@keyframes ping{
  0%   { opacity:0;   scale:.4; }
  4%   { opacity:1;   scale:1.15; }
  22%  { opacity:.75; scale:1; }
  55%  { opacity:0;   scale:.9; }
  100% { opacity:0;   scale:.4; }
}

.vignette{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(2,9,5,.75) 100%);
}

main{ position:relative; z-index:2; }

/* ============================================================
   Hero
   ============================================================ */

.hero{
  max-width:var(--maxw);
  margin-inline:auto;
  padding:clamp(2rem, 6vw, 4.5rem) 1.25rem clamp(3rem, 8vw, 5.5rem);
  text-align:center;
}

/* --- logo --- */
/* display:flex (not inline-flex) so the eyebrow below starts its own line */
.logo{
  display:flex; align-items:center; justify-content:center; gap:.7em;
  text-decoration:none;
  font-size:clamp(1.6rem, 5.2vw, 2.9rem);
  margin-bottom:clamp(2rem, 6vw, 3.5rem);
}

.logo__mark{
  width:1.55em; height:1.55em;
  color:var(--green-lit);
  filter:drop-shadow(0 0 14px rgba(52,208,88,.55));
  animation:markSpin 7s linear infinite;
}

@keyframes markSpin{ to{ rotate:360deg; } }

.logo__text{
  font-weight:900;
  letter-spacing:-.01em;
  line-height:1;
  white-space:nowrap;
}

.logo__meme{ color:var(--green-lit); }

.logo__radar{
  color:var(--green-deep);
  background:var(--yellow);
  border-radius:.28em;
  padding:.1em .2em .14em;
  margin-left:.16em;
  box-shadow:0 0 26px rgba(255,242,0,.28);
}

/* --- eyebrow --- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  margin:0 0 1.25rem;
  padding:.42rem 1rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel);
  backdrop-filter:blur(6px);
  font-size:.72rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted);
}

.eyebrow__dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--yellow);
  box-shadow:0 0 0 0 rgba(255,242,0,.7);
  animation:pulse 2s ease-out infinite;
}

@keyframes pulse{
  0%   { box-shadow:0 0 0 0 rgba(255,242,0,.65); }
  70%  { box-shadow:0 0 0 11px rgba(255,242,0,0); }
  100% { box-shadow:0 0 0 0 rgba(255,242,0,0); }
}

/* --- headline --- */
.headline{
  margin:0 0 1.25rem;
  font-size:clamp(2.1rem, 7.2vw, 4.6rem);
  font-weight:900;
  line-height:1.04;
  letter-spacing:-.025em;
  text-wrap:balance;
}

.headline em{
  font-style:normal;
  color:var(--yellow);
  text-shadow:0 0 34px rgba(255,242,0,.4);
}

.subhead{
  max-width:44ch;
  margin:0 auto clamp(2rem, 5vw, 3rem);
  color:var(--muted);
  font-size:clamp(.98rem, 2.1vw, 1.14rem);
  text-wrap:pretty;
}

.subhead strong{ color:var(--text); font-weight:700; }

/* ============================================================
   Deployment notice
   Replaced the launch countdown. Borrows the countdown panel's
   surface treatment so the hero keeps the same visual weight.
   ============================================================ */

.notice{
  max-width:44rem;
  margin:0 auto clamp(2rem, 5vw, 2.8rem);
  padding:clamp(1.4rem, 4vw, 2.2rem) clamp(1.2rem, 4vw, 2.4rem);
  border:1px solid var(--line);
  border-radius:clamp(14px, 2vw, 22px);
  background:
    linear-gradient(180deg, rgba(52,208,88,.10), rgba(4,18,10,.5));
  backdrop-filter:blur(8px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 18px 40px -22px rgba(0,0,0,.9);
  text-align:center;
}

.notice__title{
  margin:0 0 .9rem;
  font-size:clamp(1.25rem, 4vw, 1.9rem);
  font-weight:900;
  line-height:1.15;
  letter-spacing:-.02em;
  color:var(--yellow);
  text-shadow:0 0 30px rgba(255,242,0,.3);
}

.notice p{
  margin:0 auto;
  max-width:34em;
  color:var(--muted);
  font-size:clamp(.95rem, 2.2vw, 1.05rem);
}

.notice p + p{ margin-top:.9rem; }

.notice strong{ color:var(--green-lit); font-weight:700; }

.notice__thanks{ color:var(--text); font-weight:700; }

/* ============================================================
   Buttons
   ============================================================ */

.cta-row{
  display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.95rem 2rem;
  border:1px solid transparent;
  border-radius:999px;
  font-family:inherit;
  font-size:.94rem; font-weight:800;
  letter-spacing:.02em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease),
             background-color .25s var(--ease), color .25s var(--ease);
}

.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn--primary{
  background:var(--yellow);
  color:#123B1C;
  box-shadow:0 10px 34px -12px rgba(255,242,0,.75);
}

.btn--primary:hover{ box-shadow:0 16px 42px -12px rgba(255,242,0,.95); }

.btn--ghost{
  background:var(--panel);
  border-color:var(--line);
  color:var(--text);
  backdrop-filter:blur(6px);
}

.btn--ghost:hover{
  border-color:var(--green-lit);
  box-shadow:var(--glow);
}

:where(a,button,input):focus-visible{
  outline:2px solid var(--yellow);
  outline-offset:3px;
}

/* ============================================================
   Sections
   ============================================================ */

.section{
  max-width:var(--maxw);
  margin-inline:auto;
  padding:clamp(2.5rem, 7vw, 5rem) 1.25rem;
  text-align:center;
}

.section__title{
  margin:0 0 clamp(1.75rem, 4vw, 2.75rem);
  font-size:clamp(1.5rem, 4.4vw, 2.6rem);
  font-weight:900;
  line-height:1.15;
  letter-spacing:-.02em;
  text-wrap:balance;
}

.section__title em{
  font-style:normal;
  color:var(--yellow);
}

/* ============================================================
   Video
   ============================================================ */

.video-shell{
  position:relative;
  border:1px solid var(--line);
  border-radius:clamp(14px, 2.4vw, 24px);
  overflow:hidden;
  background:#020a05;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.95), var(--glow);
  aspect-ratio:16/9;
}

.video{
  width:100%; height:100%;
  object-fit:cover;
  background:#020a05;
}

.video__play{
  position:absolute; inset:0; margin:auto;
  width:clamp(64px, 12vw, 96px);
  height:clamp(64px, 12vw, 96px);
  display:grid; place-items:center;
  border:0; border-radius:50%;
  background:var(--yellow);
  color:#123B1C;
  cursor:pointer;
  box-shadow:0 0 0 0 rgba(255,242,0,.55), 0 14px 40px -10px rgba(255,242,0,.6);
  animation:pulseBig 2.6s ease-out infinite;
  transition:transform .25s var(--ease);
}

.video__play svg{ width:52%; height:52%; margin-left:6%; }
.video__play:hover{ transform:scale(1.07); }
.video__play[hidden]{ display:none; }

@keyframes pulseBig{
  0%   { box-shadow:0 0 0 0 rgba(255,242,0,.5),  0 14px 40px -10px rgba(255,242,0,.6); }
  70%  { box-shadow:0 0 0 26px rgba(255,242,0,0), 0 14px 40px -10px rgba(255,242,0,.6); }
  100% { box-shadow:0 0 0 0 rgba(255,242,0,0),   0 14px 40px -10px rgba(255,242,0,.6); }
}

.video__fallback{
  position:absolute; inset:0;
  display:grid; place-content:center; gap:.35rem;
  padding:1.5rem;
  background:linear-gradient(180deg, rgba(10,38,22,.9), rgba(2,10,5,.95));
  color:var(--muted);
  font-size:.9rem;
}

.video__fallback strong{
  display:block;
  color:var(--yellow);
  font-size:1.15rem;
}

.video__fallback code{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:.82em;
  color:var(--green-lit);
}

.video__fallback[hidden]{ display:none; }

/* ============================================================
   Feature cards
   ============================================================ */

.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap:clamp(.9rem, 2.2vw, 1.4rem);
  text-align:left;
}

.card{
  padding:clamp(1.35rem, 3vw, 1.9rem);
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(52,208,88,.07), rgba(4,18,10,.45));
  backdrop-filter:blur(8px);
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}

.card:hover{
  transform:translateY(-5px);
  border-color:rgba(52,208,88,.5);
  box-shadow:0 26px 60px -34px rgba(0,0,0,.95), var(--glow);
}

.card__icon{
  width:46px; height:46px;
  display:grid; place-items:center;
  margin-bottom:1rem;
  border-radius:13px;
  background:var(--yellow);
  color:var(--green-deep);
}

.card__icon svg{ width:26px; height:26px; }

.card h3{
  margin:0 0 .5rem;
  font-size:1.12rem; font-weight:800;
  letter-spacing:-.01em;
}

.card p{
  margin:0;
  color:var(--muted);
  font-size:.93rem;
  text-wrap:pretty;
}

/* ============================================================
   Notify / signup
   ============================================================ */

.notify__lead{
  max-width:46ch;
  margin:-1rem auto 2rem;
  color:var(--muted);
  text-wrap:pretty;
}

.signup{
  display:grid; gap:.85rem;
  max-width:460px; margin-inline:auto;
  text-align:left;
}

.signup__field{ display:grid; gap:.4rem; }

.signup__label{
  padding-left:.35rem;
  color:var(--muted);
  font-size:.78rem; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase;
}

.signup__req{ color:var(--yellow); }

.signup__opt{
  color:#5f7d6b;
  font-weight:600; text-transform:none; letter-spacing:0;
}

.signup__submit{ margin-top:.35rem; width:100%; }

.signup__input{
  width:100%;
  min-width:0;
  padding:.95rem 1.35rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(4,18,10,.6);
  color:var(--text);
  font-family:inherit;
  font-size:.95rem; font-weight:600;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}

.signup__input::placeholder{ color:#5f7d6b; }

.signup__input:focus{
  border-color:var(--green-lit);
  box-shadow:var(--glow);
  outline:none;
}

.signup__input[aria-invalid="true"]{ border-color:#ff6b6b; }

/* ---- country combobox ---- */

.combo{ position:relative; }

.combo__input{ padding-right:2.9rem; }

/* A chosen country reads as a value, not a half-typed search string. */
.combo.is-picked .combo__input{
  border-color:rgba(52,208,88,.5);
  font-weight:700;
}

.combo__clear{
  position:absolute; top:50%; right:.55rem;
  transform:translateY(-50%);
  width:28px; height:28px;
  display:grid; place-items:center;
  padding:0;
  border:0; border-radius:50%;
  background:transparent;
  color:var(--muted);
  font-family:inherit; font-size:1.15rem; line-height:1;
  cursor:pointer;
  transition:color .2s var(--ease), background-color .2s var(--ease);
}

.combo__clear:hover{ color:var(--text); background:rgba(52,208,88,.14); }

.combo__list{
  position:absolute; z-index:20;
  top:calc(100% + .4rem); left:0; right:0;
  max-height:16rem;
  margin:0; padding:.35rem;
  overflow-y:auto;
  overscroll-behavior:contain;
  list-style:none;
  border:1px solid var(--line);
  border-radius:18px;
  background:#08210f;
  box-shadow:0 26px 60px -22px rgba(0,0,0,.9);
}

.combo__option{
  display:flex; align-items:center; gap:.6rem;
  padding:.6rem .85rem;
  border-radius:12px;
  color:var(--text);
  font-size:.9rem; font-weight:600;
  cursor:pointer;
}

.combo__option[aria-selected="true"]{ color:var(--green-lit); }

/* Keyboard highlight and hover share one look so the list never shows two. */
.combo__option.is-active{ background:rgba(52,208,88,.16); }

.combo__code{
  flex:none;
  min-width:2.1rem;
  color:#5f7d6b;
  font-size:.72rem; font-weight:800; letter-spacing:.06em;
}

.combo__empty{
  padding:.7rem .85rem;
  color:var(--muted);
  font-size:.88rem; font-weight:600;
}

.signup__msg{
  min-height:1.4rem;
  margin:.9rem 0 0;
  font-size:.88rem; font-weight:600;
}

.signup__msg.is-ok{ color:var(--green-lit); }
.signup__msg.is-err{ color:#ff8f8f; }

/* ============================================================
   Socials + footer
   ============================================================ */

.socials{
  display:flex; gap:.7rem; justify-content:center;
  margin-top:clamp(2rem, 5vw, 3rem);
}

.social{
  width:46px; height:46px;
  display:grid; place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--panel);
  color:var(--muted);
  transition:transform .25s var(--ease), color .25s var(--ease),
             border-color .25s var(--ease), box-shadow .25s var(--ease);
}

.social svg{ width:20px; height:20px; }

.social:hover{
  transform:translateY(-3px);
  color:var(--yellow);
  border-color:var(--yellow);
  box-shadow:0 0 26px -6px rgba(255,242,0,.6);
}

.footer{
  position:relative; z-index:2;
  padding:2.5rem 1.25rem 3rem;
  border-top:1px solid var(--line);
  text-align:center;
  color:var(--muted);
  font-size:.82rem;
}

.footer p{ margin:0 0 .5rem; }
.footer a{ color:var(--green-lit); text-decoration:none; }
.footer a:hover{ text-decoration:underline; }

/* `.footer p` sets a margin shorthand, so match its specificity to keep this centred */
.footer p.footer__fine{
  font-size:.74rem;
  opacity:.65;
  max-width:52ch;
  margin:0 auto;
}

/* ============================================================
   Small screens
   ============================================================ */

@media (max-width:480px){
  .btn{ width:100%; }
  .cta-row{ flex-direction:column; }
}

/* ============================================================
   Reduced motion
   ============================================================ */

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .radar-sweep,
  .logo__mark,
  .blip,
  .eyebrow__dot,
  .video__play{
    animation:none;
  }
  .blip{ opacity:.8; }
  .btn:hover,
  .card:hover,
  .social:hover,
  .video__play:hover{ transform:none; }
}
