:root{
  --bg:#07060c; --text:#ecebf5; --muted:#a3a1ba; --cyan:#6fd8e8; --mag:#ff4fd8; --lime:#a6f04a; --amber:#f5a54a;
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pad:clamp(1.25rem,4vw,2.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;isolation:isolate}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p,h1{margin:0}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:8px}

/* background: grid, glow, sweep line, drifting squares */
.bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  background:
   radial-gradient(55% 55% at 72% 48%,rgba(255,79,216,.14),transparent 70%),
   radial-gradient(45% 45% at 12% 75%,rgba(111,216,232,.10),transparent 70%),
   linear-gradient(transparent 0 calc(100% - 1px),rgba(255,255,255,.035) 0) 0 0/100% 48px,
   linear-gradient(90deg,transparent 0 calc(100% - 1px),rgba(255,255,255,.035) 0) 0 0/48px 100%}
.sweep{position:absolute;top:0;bottom:0;left:-10%;width:2px;background:rgba(255,255,255,.7);box-shadow:0 0 18px 4px rgba(255,255,255,.3),-40px 0 80px 20px rgba(255,255,255,.04);animation:sweep 7.8s linear infinite}
@keyframes sweep{to{left:110%}}
.p{position:absolute;width:18px;height:18px;border:2px solid rgba(255,79,216,.28);border-radius:4px;animation:drift 18s linear infinite}
.p1{left:8%;top:20%}.p2{left:30%;top:84%;animation-delay:-4s;border-color:rgba(166,240,74,.25)}.p3{left:55%;top:10%;animation-delay:-9s;width:12px;height:12px}
.p4{left:90%;top:68%;animation-delay:-2s;border-color:rgba(111,216,232,.3)}.p5{left:70%;top:90%;animation-delay:-12s;width:24px;height:24px}.p6{left:18%;top:52%;animation-delay:-7s;width:10px;height:10px;border-color:rgba(245,165,74,.3)}
@keyframes drift{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-40px) rotate(90deg)}100%{transform:translateY(0) rotate(180deg)}}

/* hero */
.hero{flex:1;display:grid;gap:1.9rem;align-items:center;justify-items:center;text-align:center;max-width:1180px;width:100%;margin:0 auto;padding:2.25rem var(--pad) 1.25rem}
.copy{display:flex;flex-direction:column;align-items:center;gap:1.25rem}
.wordmark{font-size:clamp(4.5rem,22vw,11.5rem);font-weight:800;letter-spacing:-.065em;line-height:.9;padding-right:.06em;
  background:linear-gradient(100deg,#fff 0%,#fff 40%,#ffd2f4 60%,#d9ffb0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 34px rgba(255,79,216,.28))}
.badge{display:inline-flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:999px;border:1px dashed rgba(255,255,255,.3);background:rgba(255,255,255,.03);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--cyan);animation:pulse .87s ease-out infinite} /* ~138 BPM */
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(111,216,232,.65)}100%{box-shadow:0 0 0 10px rgba(111,216,232,0)}}

/* phone + crossfade */
.phone-wrap{display:flex;justify-content:center}
.phone{position:relative;width:min(290px,72vw);width:max(210px,min(290px,72vw,calc((100svh - 320px) * 603 / 1311)));aspect-ratio:603/1311;border-radius:44px;padding:10px;background:linear-gradient(160deg,#2a2833,#0f0e15 40%,#1c1b24);box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 40px 80px -20px rgba(0,0,0,.8),0 0 120px -10px rgba(255,79,216,.25)}
.phone::before{content:"";position:absolute;top:18px;left:50%;transform:translateX(-50%);width:28%;height:20px;border-radius:20px;background:#000;z-index:3}
.screen{position:relative;width:100%;height:100%;border-radius:34px;overflow:hidden;background:#000}
.slide{position:absolute;inset:0;opacity:0;animation:fade 16s infinite}
.slide img{width:100%;height:100%;object-fit:cover}
.slide:nth-child(1){animation-delay:-.8s}.slide:nth-child(2){animation-delay:3.2s}.slide:nth-child(3){animation-delay:7.2s}.slide:nth-child(4){animation-delay:11.2s}
@keyframes fade{0%{opacity:0}5%{opacity:1}25%{opacity:1}30%{opacity:0}100%{opacity:0}}

/* footer */
.foot{display:flex;flex-wrap:wrap;gap:.9rem 1.5rem;align-items:center;justify-content:center;max-width:1180px;width:100%;margin:0 auto;padding:.75rem var(--pad) 1.5rem;color:var(--muted);font-size:.85rem}
.mail{display:inline-flex;align-items:center;gap:.55rem;padding:.65rem 1.15rem;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);color:var(--text);font-weight:600;font-size:.95rem;text-decoration:none;transition:background .2s,border-color .2s,box-shadow .2s}
.mail:hover{background:rgba(255,255,255,.09);border-color:var(--cyan);box-shadow:0 0 30px -6px rgba(111,216,232,.55)}
.mail svg{color:var(--cyan);flex:none}

/* desktop: two columns, phone sized to the viewport height so it all fits on one screen */
@media (min-width:900px){
  .hero{grid-template-columns:1.1fr .9fr;justify-items:start;text-align:left;padding-top:1.5rem;padding-bottom:.5rem}
  .copy{align-items:flex-start;padding-left:2vw}
  .phone-wrap{justify-self:center}
  .phone{width:min(340px,calc((100vh - 150px) * 603 / 1311));width:min(340px,calc((100svh - 150px) * 603 / 1311));min-width:220px}
  .foot{justify-content:space-between}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .sweep{left:62%}
  .slide:first-child{opacity:1}
}
