/* zusammy.com – paper & ink, like the app (src/mockups/shared/tokens.css). */

@font-face { font-family: "Instrument Serif"; src: url("/fonts/InstrumentSerif-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url("/fonts/InstrumentSerif-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("/fonts/DMSans-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("/fonts/DMSans-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

:root {
  --paper: #F6F1E8;
  --paper-2: #EFE7DA;
  --card: #FFFDF9;
  --ink: #1F1A16;
  --ink-2: #5B524A;
  --ink-3: #8E847A;
  --line: #E6DCCD;
  --tomato: #E5573F;
  --tomato-dark: #C4432D;
  --tomato-tint: #FBE2DA;
  --blush: #F2CBBE;
  --butter: #F4DC93;
  --serif: "Instrument Serif", "Times New Roman", serif;
  --sans: "DM Sans", "Segoe UI", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--paper) linear-gradient(180deg, #FBEDE6 0, var(--paper) 22rem) no-repeat;
  color: var(--ink);
  font: 400 1.0625rem/1.55 var(--sans);
  -webkit-font-smoothing: antialiased;
}

main {
  max-width: 30rem;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 3rem;
}

.brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.05em;
  color: var(--ink);
  text-decoration: none;
  font: 400 1.75rem/1 var(--serif);
}
.brand .dot { color: var(--tomato); }

.eyebrow {
  margin: 2.5rem 0 0.5rem;
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

h1 {
  margin: 0 0 1rem;
  font: 400 clamp(2.5rem, 11vw, 3.25rem)/1.02 var(--serif);
  letter-spacing: -0.01em;
}
h1 em, h2 em { color: var(--tomato); font-style: italic; }

h2 {
  margin: 0 0 0.5rem;
  font: 400 1.75rem/1.1 var(--serif);
}

p { margin: 0 0 1rem; }
.lead { color: var(--ink-2); }
.small { color: var(--ink-3); font-size: 0.875rem; }

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.25rem;
  padding: 0.75rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 1rem;
  background: var(--ink);
  color: var(--paper);
  font: 600 1.0625rem/1.2 var(--sans);
  text-decoration: none;
  cursor: pointer;
}
.button:active { transform: translateY(1px); }
.button.secondary {
  background: var(--card);
  border-color: var(--line);
  color: var(--ink);
}
.button + .button { margin-top: 0.75rem; }
.card p:last-of-type { margin-bottom: 0; }
.card .button { margin-top: 1rem; }

.card {
  margin-top: 1.5rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  background: var(--card);
}

ol.steps {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
ol.steps li {
  position: relative;
  padding-left: 2.25rem;
  margin-bottom: 0.875rem;
  counter-increment: step;
}
ol.steps li:last-child { margin-bottom: 0; }
ol.steps li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0.05rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--tomato-tint);
  color: var(--tomato-dark);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.5rem;
  text-align: center;
}

.code {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.75rem 0 0;
  padding: 0.75rem 0.75rem 0.75rem 1rem;
  border-radius: 0.875rem;
  background: var(--paper-2);
}
.code strong {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  font-variant-numeric: tabular-nums;
}
.chip {
  flex: none;
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--card);
  color: var(--ink);
  font: 600 0.875rem/1 var(--sans);
  cursor: pointer;
}

.note {
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  border-radius: 0.875rem;
  background: #FCF3D6;
  color: var(--ink-2);
  font-size: 0.9375rem;
}

.hint { margin-top: 0.5rem; }
.spaced { margin-top: 1rem; }

[hidden] { display: none !important; }

footer {
  margin-top: 2.5rem;
  color: var(--ink-3);
  font-size: 0.8125rem;
}
footer a { color: inherit; }

a { color: var(--tomato-dark); }
:focus-visible { outline: 3px solid var(--tomato); outline-offset: 2px; }
