:root {
  --ink: #0f1014;
  --paper: #f7f4ed;
  --muted: rgba(247, 244, 237, .72);
  --line: rgba(255, 255, 255, .18);
  --violet: #8f7cff;
  --acid: #d9ff43;
  --green: #00df42;
  --font-sans: "Segoe UI", Arial, sans-serif;
  --font-serif: Georgia, "Times New Roman", serif;
  --font-mono: Consolas, "Courier New", monospace;
}

* { box-sizing: border-box; }

html,
body {
  width: 100%;
  min-height: 100%;
}

body {
  margin: 0;
  overflow: hidden;
  color: var(--paper);
  background:
    linear-gradient(135deg, rgba(7, 8, 12, .68), rgba(7, 8, 12, .42)),
    url("/assets/login-poster.svg") center / cover no-repeat,
    #07080c;
  font-family: var(--font-sans);
}

button,
input {
  font: inherit;
}

button {
  color: inherit;
}

.hero-video,
.hero-scrim,
.hero-noise {
  position: fixed;
  inset: 0;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background:
    radial-gradient(circle at 50% 42%, rgba(143, 124, 255, .36), transparent 20rem),
    linear-gradient(135deg, #181b28, #090a10 58%, #11191c);
  transform: scale(1.01);
}

.video-unavailable .hero-video {
  opacity: 0;
}

.hero-scrim {
  pointer-events: none;
  background:
    radial-gradient(circle at 53% 46%, rgba(255, 255, 255, .10), transparent 11rem),
    linear-gradient(90deg, rgba(2, 3, 5, .66), rgba(2, 3, 5, .20) 50%, rgba(2, 3, 5, .66)),
    linear-gradient(180deg, rgba(0, 0, 0, .30), rgba(0, 0, 0, .08) 38%, rgba(0, 0, 0, .72));
}

.hero-noise {
  pointer-events: none;
  opacity: .16;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");
}

.hero-frame-stack {
  position: fixed;
  right: clamp(42px, 8vw, 128px);
  bottom: clamp(38px, 9vh, 96px);
  width: min(34vw, 430px);
  aspect-ratio: 16 / 11;
  pointer-events: none;
  z-index: 1;
}

.hero-frame-stack span {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .02)),
    radial-gradient(circle at 68% 32%, rgba(217, 255, 67, .32), transparent 8rem),
    radial-gradient(circle at 32% 76%, rgba(143, 124, 255, .46), transparent 10rem),
    rgba(9, 10, 14, .46);
  box-shadow: 0 26px 80px rgba(0, 0, 0, .32);
}

.hero-frame-stack span:nth-child(1) {
  transform: translate(-38px, 28px) rotate(-8deg);
  opacity: .34;
}

.hero-frame-stack span:nth-child(2) {
  transform: translate(18px, -10px) rotate(5deg);
  opacity: .46;
}

.hero-frame-stack span:nth-child(3) {
  transform: translate(-8px, 8px);
}

.login-header {
  position: relative;
  z-index: 3;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(24px, 6vw, 112px);
  color: #121318;
  background: rgba(247, 244, 237, .94);
  border-bottom: 1px solid rgba(255, 255, 255, .32);
  box-shadow: 0 1px 22px rgba(0, 0, 0, .18);
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -.03em;
}

.brand-mark {
  display: flex;
  align-items: end;
  gap: 3px;
  width: 24px;
  height: 22px;
  color: #4b16ff;
}

.brand-mark i {
  width: 6px;
  display: block;
  border-radius: 5px;
  background: currentColor;
  transform: skewY(-28deg);
}

.brand-mark i:nth-child(1) { height: 12px; }
.brand-mark i:nth-child(2) { height: 20px; }
.brand-mark i:nth-child(3) { height: 16px; }

.login-nav {
  display: flex;
  align-items: center;
  gap: 18px;
}

.nav-link,
.nav-pill,
.hero-cta,
.submit-login,
.mute-toggle,
.close-button,
.dialog-backdrop {
  border: 0;
  cursor: pointer;
}

.nav-link {
  padding: 0;
  background: transparent;
  color: #2b2c32;
  font-weight: 700;
}

.nav-pill {
  min-height: 36px;
  padding: 0 18px;
  border-radius: 999px;
  background: #0c0d10;
  color: #fff;
  font-weight: 800;
}

.landing {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - 72px);
  display: grid;
  place-items: center;
  padding: clamp(36px, 5vw, 80px) 24px 88px;
  text-align: center;
}

.hero-copy {
  width: min(1120px, 94vw);
  transform: translateY(2vh);
}

.eyebrow {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, .78);
  font: 700 11px/1.2 var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
}

h1 {
  margin: 0;
  color: #fff;
  text-shadow: 0 18px 55px rgba(0, 0, 0, .48);
  font: 800 clamp(66px, 8vw, 134px)/.86 var(--font-sans);
  letter-spacing: -.075em;
}

h1 em {
  color: transparent;
  font-style: normal;
  background: linear-gradient(90deg, #fff4ba 0%, #ffcd67 32%, #ff6bbd 68%, #9f89ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.subcopy {
  width: min(760px, 90vw);
  margin: 22px auto 0;
  color: var(--muted);
  font-size: clamp(18px, 2.1vw, 28px);
  line-height: 1.35;
  text-shadow: 0 12px 32px rgba(0, 0, 0, .5);
}

.hero-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 38px;
}

.hero-cta {
  min-width: 190px;
  min-height: 58px;
  padding: 0 34px;
  border: 1px solid rgba(255, 255, 255, .48);
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, .16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 18px 44px rgba(0, 0, 0, .28);
  font-size: 20px;
  font-weight: 800;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.hero-cta.secondary {
  border-color: rgba(217, 255, 67, .5);
  color: #efffba;
  background: rgba(10, 12, 16, .48);
}

.hero-cta:hover,
.hero-cta:focus-visible {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, .24);
  border-color: rgba(255, 255, 255, .72);
}

.mute-toggle {
  position: fixed;
  z-index: 4;
  right: 22px;
  top: 94px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: rgba(8, 9, 12, .72);
  box-shadow: 0 14px 35px rgba(0, 0, 0, .28);
  font-size: 20px;
}

.login-dialog {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: auto;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.login-dialog.is-open {
  opacity: 1;
  pointer-events: auto;
}

.dialog-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .54);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  backdrop-filter: blur(18px) saturate(120%);
}

.login-card {
  position: relative;
  width: min(430px, 100%);
  overflow: hidden;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 28px;
  color: #fff;
  background:
    linear-gradient(145deg, rgba(30, 32, 39, .92), rgba(9, 10, 14, .88)),
    rgba(14, 15, 20, .88);
  box-shadow: 0 30px 100px rgba(0, 0, 0, .5);
  -webkit-backdrop-filter: blur(24px) saturate(135%);
  backdrop-filter: blur(24px) saturate(135%);
}

.card-orb {
  position: absolute;
  right: -54px;
  top: -56px;
  width: 168px;
  height: 168px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 28%, #fff, var(--acid) 18%, var(--violet) 48%, transparent 68%);
  opacity: .36;
  filter: blur(3px);
}

.close-button {
  position: absolute;
  right: 18px;
  top: 18px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  font-size: 24px;
  line-height: 1;
}

.login-card .eyebrow {
  margin-bottom: 12px;
  color: #bfc1ca;
}

.login-card h2 {
  position: relative;
  margin: 0 0 24px;
  font: 500 34px/1.05 var(--font-serif);
  letter-spacing: -.02em;
}

.login-card label {
  position: relative;
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.login-card label span {
  color: #c9cbd3;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.login-card input {
  width: 100%;
  height: 52px;
  padding: 0 15px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 13px;
  outline: 0;
  color: #fff;
  background: rgba(255, 255, 255, .07);
}

.login-card input:focus {
  border-color: rgba(217, 255, 67, .6);
  box-shadow: 0 0 0 4px rgba(217, 255, 67, .10);
}

.login-error {
  min-height: 18px;
  margin: 14px 0 0;
  color: #ff9b8c;
  font-size: 12px;
}

.login-error[data-kind="success"] {
  color: var(--acid);
}

.submit-login {
  width: 100%;
  height: 54px;
  margin-top: 8px;
  border-radius: 14px;
  background: linear-gradient(90deg, var(--green), #53ff11);
  color: #020402;
  font-size: 18px;
  font-weight: 900;
}

.submit-login:disabled {
  cursor: wait;
  opacity: .65;
}

.auth-switch {
  margin: 16px 0 0;
  color: #aeb1bb;
  font-size: 12px;
  text-align: center;
}

.auth-switch button {
  padding: 0;
  border: 0;
  color: var(--acid);
  background: transparent;
  cursor: pointer;
  font-weight: 800;
}

[hidden] {
  display: none !important;
}

.login-hint {
  margin: 16px 0 0;
  color: #9ea1ad;
  font-size: 12px;
  text-align: center;
}

.login-hint strong {
  color: #f6f2ea;
  font-family: var(--font-mono);
}

@media (max-width: 720px) {
  body {
    overflow: auto;
  }

  .login-header {
    height: 66px;
    padding: 0 18px;
  }

  .brand {
    font-size: 19px;
  }

  .nav-link {
    display: none;
  }

  h1 {
    font-size: clamp(52px, 17vw, 84px);
  }

  .subcopy {
    font-size: 17px;
  }

  .hero-actions {
    align-items: center;
    flex-direction: column;
  }

  .landing {
    min-height: calc(100vh - 66px);
  }

  .hero-frame-stack {
    display: none;
  }
}
