/* ─── Coming Soon Page ───────────────────────────────────────── */

.page-coming-soon {
  position: relative;
  background: #090a0d;
  overflow: hidden;
  height: 100vh;
}

/* ─── Header text ──────────────────────────────────────────────── */
.cs-header {
  position: absolute;
  left: 152px;
  top: 90px;
  z-index: 4;
}

.cs-commit {
  font-weight: 300;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  color: var(--text-accent);
  margin: 0;
}

/* Blinking cursor during and after typing */
.cs-commit.is-typing::after,
.cs-commit.is-typed::after {
  content: '_';
  color: var(--text-accent);
  animation: cs-blink 0.7s step-end infinite;
}

@keyframes cs-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

.cs-title {
  font-weight: 400;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  color: var(--text-strong);
  margin: 0;
}

.cs-bracket { color: var(--text-sub); }

.cs-sub {
  font-weight: 300;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  color: var(--text-sub);
  margin: 0;
}

/* ACCESS GRANTED message — appended via JS */
.cs-access-msg {
  font-weight: 400;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  color: #00e887;
  margin: 0;
}

/* ─── Spacer — not needed without scroll ─────────────────────── */
.cs-spacer { height: 0; }

/* ─── Subscribe form ─────────────────────────────────────────── */
.cs-form {
  position: absolute;
  left: 70%;
  top: 60%;
  transform: translate(-50%, -50%);
  width: 560px;
  z-index: 4;
  opacity: 0;
  translate: 0 24px;
  transition: opacity 1s cubic-bezier(0.76, 0, 0.24, 1),
              translate 1s cubic-bezier(0.76, 0, 0.24, 1);
}
.cs-form.is-visible {
  opacity: 1;
  translate: 0 0;
}

.cs-form-title {
  font-family: 'Archivo Black', sans-serif;
  font-size: 32px;
  line-height: 32px;
  letter-spacing: -0.64px;
  color: var(--text-strong);
  margin: 0 0 20px 16px;
}

@keyframes cs-shake {
  0%        { translate: 0 0; }
  15%       { translate: -6px 0; }
  30%       { translate: 5px 0; }
  45%       { translate: -4px 0; }
  60%       { translate: 3px 0; }
  75%       { translate: -2px 0; }
  100%      { translate: 0 0; }
}

.cs-form-field.is-shaking {
  animation: cs-shake 0.35s ease;
}

.cs-form-field {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 80px;
  padding: 20px 30px;
  background: rgba(9, 10, 13, 0.5);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(71, 43, 239, 0.8);
  border-radius: 24px;
  margin-bottom: 16px;
  transition: border-color 0.7s ease, box-shadow 0.7s ease;
}

.cs-form-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 600;
  font-size: 18px;
  line-height: 26px;
  color: var(--text-weak);
}

.cs-form-input::placeholder { color: var(--text-weak); }

.cs-form-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-weak);
  display: flex;
  align-items: center;
  padding: 0;
  transition: color 0.15s;
}

.cs-form-btn:hover { color: var(--text-strong); }

.cs-form-sub {
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 300;
  font-size: 14px;
  line-height: 14px;
  letter-spacing: -0.28px;
  color: var(--text-strong);
  margin: 0;
}

/* ─── Text lines hidden until sequenced ─────────────────────── */
.cs-title,
.cs-sub {
  opacity: 0;
  transition: opacity 0.6s cubic-bezier(0.76, 0, 0.24, 1);
}
.cs-title.is-visible,
.cs-sub.is-visible { opacity: 1; }

/* ─── Parallax elements — hidden until text is done ─────────── */
.cs-letters,
.cs-monkey,
.cs-atari,
.cs-claude {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.9s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}
.cs-letters.is-visible,
.cs-monkey.is-visible,
.cs-atari.is-visible,
.cs-claude.is-visible { opacity: 1; }

.cs-letters {
  display: none;
  top: 60vh;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 2;
}

/* ── Glitch animation ──────────────────────────────────────────── */
@keyframes cs-glitch {
  0%    { transform: none; filter: none; }
  4.9%  { transform: none; filter: none; }
  5%    { transform: translateX(9px);  filter: hue-rotate(90deg) saturate(2); }
  9.9%  { transform: translateX(9px);  filter: hue-rotate(90deg) saturate(2); }
  10%   { transform: none; filter: none; }
  14.9% { transform: none; filter: none; }
  15%   { transform: translateX(-7px); filter: brightness(1.9) hue-rotate(-60deg); }
  19.9% { transform: translateX(-7px); filter: brightness(1.9) hue-rotate(-60deg); }
  20%   { transform: none; filter: none; }
  29.9% { transform: none; filter: none; }
  30%   { transform: translateX(5px);  filter: hue-rotate(180deg) saturate(3); }
  34.9% { transform: translateX(5px);  filter: hue-rotate(180deg) saturate(3); }
  35%   { transform: none; filter: none; }
  39.9% { transform: none; filter: none; }
  40%   { transform: translateX(-4px); filter: brightness(1.4) hue-rotate(45deg); }
  44.9% { transform: translateX(-4px); filter: brightness(1.4) hue-rotate(45deg); }
  45%   { transform: none; filter: none; }
  100%  { transform: none; filter: none; }
}

.cs-letters.is-glitching {
  animation: cs-glitch 0.45s linear;
}

.cs-monkey {
  top: 260px;
  left: -120px;
  width: 378px;
  height: 559px;
  object-fit: contain;
  z-index: 3;
}

.cs-atari {
  top: 552px;
  left: 1220px;
  width: 323px;
  height: 270px;
  object-fit: contain;
  z-index: 3;
}

/* Claude follows cursor via JS — position: fixed */
.cs-claude {
  position: fixed;
  width: 105px;
  height: 69px;
  z-index: 100;
  cursor: pointer;
  pointer-events: all;
  transition: opacity 0.2s ease;
}

@keyframes cs-float {
  0%, 100% { transform: translateY(0);     }
  50%       { transform: translateY(-12px); }
}

/* ── Pixel bullet — space invader style, fires downward ──────── */
.cs-bullet {
  position: fixed;
  width: 11px;
  height: 11px;
  background: #ff6a00;
  box-shadow: 0 0 8px #ff6a00;
  image-rendering: pixelated;
  border-radius: 0;
  z-index: 200;
  pointer-events: none;
}

/* ─── Footer overrides ─────────────────────────────────────────── */
.page-coming-soon .footer-space {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 761px;
  z-index: 1;
}

.page-coming-soon .bar-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 5;
}

.bar-footer .cs-date { color: var(--text-link); }

/* Social icons — 24px with btn-press bounce on hover */
.page-coming-soon .bar-footer .social-icon img {
  width: 24px;
  height: 24px;
}
.page-coming-soon .bar-footer .social-icon:hover {
  opacity: 1;
  animation: btn-press 0.35s ease forwards;
}

/* Broadcasting text — replaces access button in footer */
.cs-broadcast {
  font-weight: 400;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: 0;
  color: var(--text-strong);
  margin: 0;
}
