/* Tenun app layout on top of Tenun UI tokens + components. */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=IBM+Plex+Mono:wght@400&family=IBM+Plex+Sans:wght@400;500;600&display=swap");

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: var(--bg);
  color: var(--ink);
  font: 400 .94rem/1.55 var(--font-ui);
}
h1, h2, h3, p { margin: 0; }
button, input, textarea { font: inherit; color: inherit; }
a { color: var(--primary); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 6px; }
[hidden] { display: none !important; }
code {
  font-family: var(--font-mono);
  font-size: .85em;
  background: var(--surface-2);
  padding: .1rem .4rem;
  border-radius: 6px;
}

.tn-brand-mark {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: var(--ink);
  text-decoration: none;
  font: 700 1.25rem/1 var(--font-head);
  margin-bottom: 1rem;
}
.tn-brand-mark svg,
.tn-brand svg,
.tn-logo { width: 1.85rem; height: 1.85rem; flex: none; }
.tn-kicker {
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 600;
  color: var(--gold);
  margin: 0 0 .6rem;
}

.tn-gate {
  max-width: 56rem;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 2.5rem;
  align-items: center;
  min-height: 100vh;
}
.tn-gate .tn-card { padding: 1.4rem 1.4rem 1.25rem; }
.tn-gate .tn-card h2 { font: 600 1.15rem/1.3 var(--font-head); margin-bottom: 1rem; }
.tn-gate form { display: flex; flex-direction: column; gap: .9rem; }
.tn-gate .tn-check { margin: .1rem 0 .15rem; }
.tn-gate .tn-btn.primary { width: 100%; }
.tn-gate-theme { position: fixed; top: 1rem; right: 1rem; z-index: 40; }
.tn-gate-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }

.tn-legal {
  max-width: 42rem;
  margin: 0 auto;
  padding: 4rem 1.5rem 5rem;
}
.tn-legal .tn-brand-mark { margin-bottom: .85rem; }
.tn-legal article,
.tn-legal {
  color: var(--ink);
}
.tn-legal h2 {
  font: 600 1.05rem/1.35 var(--font-head);
  margin: 1.6rem 0 .5rem;
}
.tn-legal p,
.tn-legal li {
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.6;
  margin: 0 0 .75rem;
}

@media (max-width: 50rem) {
  .tn-gate {
    grid-template-columns: 1fr;
    padding: 4.5rem 1rem 2.5rem;
    min-height: auto;
  }
}
