* {
  box-sizing:border-box;
}

html,body {
  background:var(--bg);
}

body {
  margin:0;
  font-family:var(--font);
  font-size:14px;
  color:var(--ink);
}

button,input,textarea,select {
  font:inherit;
}

button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent;
}

button,a {
  touch-action:manipulation;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  cursor:pointer;
  color:inherit;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:8px;
  padding:9px 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

button:hover,a.button:hover {
  background:var(--soft);
}

button:disabled {
  opacity:.45;
  cursor:not-allowed;
}

button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--cyan);
  outline-offset:3px;
}

input,textarea,select {
  color:var(--ink);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:8px;
  padding:12px;
  width:100%;
  min-width:0;
}

textarea {
  resize:vertical;
  line-height:1.6;
}

label {
  display:block;
  font-weight:600;
  font-size:13px;
}

label input,label textarea,label select {
  margin-top:8px;
}

h1,h2,h3,h4,p {
  margin:0;
}

h1 {
  font-size:29px;
  letter-spacing:-1px;
  font-weight:700;
  line-height:1.25;
}

h2 {
  font-size:22px;
  letter-spacing:-.5px;
  line-height:1.35;
}

h3 {
  font-size:15px;
}

h4 {
  font-size:14px;
}

p {
  line-height:1.7;
}

small {
  font-size:13px;
  color:var(--muted);
}
