:root {
  color-scheme: light;
  --background: #fafafa;
  --foreground: #181a1e;
  --secondary: #666b73;
  --muted: #717780;
  --avatar: #f0f1f3;
  --avatar-border: #dfe2e6;
  --avatar-ring: #f5f6f7;
  --line: #dadde2;
  --accent: #1684c8;
  --spinner-track: #e1eaf0;
  --control-background: #f0f1f3;
  --control-selected: #ffffff;
  --control-border: #e6e8eb;
  --control-shadow: 0 1px 3px #10182012;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --background: #090a0c;
    --foreground: #f1f2f3;
    --secondary: #9399a3;
    --muted: #858d98;
    --avatar: #14171c;
    --avatar-border: #2a2e35;
    --avatar-ring: #0e1013;
    --line: #30353e;
    --accent: #4aaff0;
    --spinner-track: #1a2a35;
    --control-background: #13161a;
    --control-selected: #282d35;
    --control-border: #23272e;
    --control-shadow: 0 1px 3px #00000026;
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --background: #090a0c;
  --foreground: #f1f2f3;
  --secondary: #9399a3;
  --muted: #858d98;
  --avatar: #14171c;
  --avatar-border: #2a2e35;
  --avatar-ring: #0e1013;
  --line: #30353e;
  --accent: #4aaff0;
  --spinner-track: #1a2a35;
  --control-background: #13161a;
  --control-selected: #282d35;
  --control-border: #23272e;
  --control-shadow: 0 1px 3px #00000026;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
}

[hidden] { display: none !important; }

.page {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 96px 24px;
}

.invitation {
  width: min(100%, 440px);
  text-align: center;
}

.connection {
  width: 252px;
  max-width: 100%;
  display: grid;
  grid-template-columns: 88px minmax(24px, 1fr) 88px;
  align-items: start;
  margin: 0 auto 38px;
}

.account {
  display: grid;
  justify-items: center;
  gap: 14px;
  min-width: 0;
}

.avatar,
.x-mark {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
}

.avatar {
  border: 1px solid var(--avatar-border);
  border-radius: 50%;
  background: var(--avatar);
  box-shadow: 0 0 0 3px var(--background), 0 0 0 4px var(--avatar-ring);
}

.profile-icon {
  width: 31px;
  height: 31px;
  color: var(--secondary);
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
}

.profile-initials {
  font-size: 23px;
  font-weight: 500;
  letter-spacing: -.8px;
  color: var(--secondary);
}

.x-mark svg {
  width: 39px;
  height: 39px;
}

.account-label {
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 12px;
  line-height: 18px;
}

.connection-line {
  position: relative;
  height: 1px;
  margin: 38px 5px 0;
  background: linear-gradient(90deg, transparent, var(--line) 25%, var(--line) 75%, transparent);
  overflow: hidden;
}

.connection-line span {
  position: absolute;
  inset: 0;
  width: 35%;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  animation: connect 2.8s ease-in-out infinite;
}

.greeting {
  margin: 0 0 12px;
  color: var(--secondary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  overflow-wrap: anywhere;
  unicode-bidi: plaintext;
}

h1 {
  margin: 0;
  font-size: clamp(24px, 4.5vw, 28px);
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -1px;
  text-wrap: balance;
}

.description {
  margin: 13px 0 0;
  color: var(--secondary);
  font-size: 14px;
  line-height: 1.6;
}

.loading-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 32px;
  color: var(--muted);
  font-size: 12px;
  line-height: 20px;
}

.spinner {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 1.75px solid var(--spinner-track);
  border-top-color: var(--accent);
  border-right-color: var(--accent);
  border-radius: 50%;
  animation: spin .85s linear infinite;
}

.appearance {
  position: fixed;
  top: max(24px, env(safe-area-inset-top));
  right: max(24px, env(safe-area-inset-right));
  display: flex;
  gap: 3px;
  padding: 4px;
  border: 1px solid var(--control-border);
  border-radius: 99px;
  background: var(--control-background);
}

.appearance button {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.appearance button:hover { color: var(--foreground); }

.appearance button[aria-pressed="true"] {
  color: var(--foreground);
  background: var(--control-selected);
  box-shadow: var(--control-shadow);
}

.appearance button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.appearance svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes spin { to { transform: rotate(360deg); } }

@keyframes connect {
  0% { transform: translateX(-110%); opacity: 0; }
  25%, 65% { opacity: .8; }
  100% { transform: translateX(390%); opacity: 0; }
}

@media (max-width: 480px) {
  .appearance {
    top: max(16px, env(safe-area-inset-top));
    right: max(16px, env(safe-area-inset-right));
  }

  .connection { margin-bottom: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; }
  .connection-line span { display: none; }
}
