/* launch.vrinda.dev · LEDGER
   Paper, ink, one rubric red. Radius 0. Every value from the token set. */

@font-face {
  font-family: "Display";
  src: url("/f/display.woff2") format("woff2");
  font-weight: 300 800;
  font-display: swap;
}
@font-face {
  font-family: "Text";
  src: url("/f/text.woff2") format("woff2");
  font-weight: 300 800;
  font-display: swap;
}
@font-face {
  font-family: "DisplayFB";
  src: local("Arial"), local("Helvetica"), local("Roboto");
  size-adjust: 96%;
  ascent-override: 100%;
  descent-override: 25%;
  line-gap-override: 0%;
}

:root {
  --paper: #F4F1EA;
  --ink: #141310;
  --rubric: #A43C14;
  --ember: #E4572E;
  --ash: #6B655A;
  --paper-hi: #FBF9F4;
  --rule-paper: rgba(20, 19, 16, 0.14);
  --rule-ink: rgba(244, 241, 234, 0.16);
  --line-input: rgba(20, 19, 16, 0.38);
  --err: #8E1E14;

  --t1: clamp(0.72rem, 2.2vw, 0.8rem);
  --t2: clamp(0.95rem, 3.7vw, 1.0625rem);
  --t3: clamp(1.15rem, 4.4vw, 1.3rem);
  --t4: clamp(1.5rem, 5.6vw, 2rem);
  --t6: clamp(2.6rem, 12vw, 4rem);
  --t7: clamp(4.5rem, 24vw, 8rem);

  --g1: clamp(0.4rem, 1.6vw, 0.6rem);
  --g2: clamp(0.8rem, 3vw, 1.2rem);
  --g3: clamp(1.4rem, 5vw, 2rem);
  --g4: clamp(2.4rem, 8vw, 3.5rem);
  --g5: clamp(3.5rem, 12vw, 6rem);

  --grain: url("data:image/png;base64,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");
}

* { box-sizing: border-box; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
blockquote { margin: 0; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Text", "DisplayFB", Arial, sans-serif;
  font-size: var(--t2);
  line-height: 1.55;
  letter-spacing: -0.011em;
  -webkit-font-smoothing: antialiased;
}

/* ---------- shell + editorial grid ---------- */
.shell { max-width: 1120px; margin: 0 auto; padding-inline: var(--g3); }
.sec { position: relative; border-top: 1px solid var(--rule-paper); }
.sec::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--grain);
  background-size: 128px 128px;
  opacity: 0.05;
  pointer-events: none;
}
.sec > .shell { position: relative; z-index: 1; padding-block: var(--g5) var(--g4); }
.num {
  font-family: "Text";
  font-size: var(--t1);
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--rubric);
  font-variant-numeric: tabular-nums;
  margin: 0 0 var(--g2);
}
@media (min-width: 900px) {
  .sec > .shell {
    display: grid;
    grid-template-columns: 8rem minmax(0, 40rem);
    column-gap: var(--g3);
  }
  .num { grid-column: 1; margin: 0; }
  .sec-body { grid-column: 2; }
}

/* ---------- type roles ---------- */
h1, h2 { margin: 0; font-family: "Display", "DisplayFB", Arial, sans-serif; }
h1 {
  font-size: var(--t6);
  font-weight: 420;
  letter-spacing: -0.032em;
  line-height: 0.94;
  text-wrap: balance;
}
@supports (text-box: trim-both cap alphabetic) {
  h1 { text-box: trim-both cap alphabetic; }
}
h2 {
  font-size: var(--t4);
  font-weight: 470;
  letter-spacing: -0.022em;
  line-height: 1.15;
  margin-bottom: var(--g3);
  text-wrap: balance;
}
p { margin: 0 0 var(--g2); }
.t3 { font-size: var(--t3); font-weight: 440; letter-spacing: -0.014em; line-height: 1.45; }
.micro {
  font-family: "Text";
  font-size: var(--t1);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ash);
}
.num, .micro, .slotnum, .of26 { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- topbar ---------- */
.topbar {
  position: relative;
  border-bottom: 1px solid var(--rule-paper);
}
.topbar .shell {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-block: var(--g2);
}
.wordmark {
  font-family: "Display";
  font-weight: 470;
  font-size: var(--t2);
  color: var(--ink);
  text-decoration: none;
}
.progress {
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 1px;
  width: 100%;
  background: var(--rubric);
  transform-origin: 0 50%;
  transform: scaleX(0);
}
@supports (animation-timeline: scroll(root)) {
  @keyframes grow { to { transform: scaleX(1); } }
  .progress { animation: grow linear both; animation-timeline: scroll(root); }
}

/* ---------- hero ---------- */
.s1 { border-top: 0; }
.h1-lines .line {
  display: block;
}
html.js .h1-lines .line {
  opacity: 0;
  filter: blur(10px);
  transform: translateY(20%);
}
html.js.go .h1-lines .line {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
  transition: opacity 500ms cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 500ms cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 500ms cubic-bezier(0.2, 0.7, 0.2, 1);
}
html.js.go .h1-lines .line:nth-child(2) { transition-delay: 80ms; }
html.js .hero-rest { opacity: 0; }
html.js.go .hero-rest {
  opacity: 1;
  transition: opacity 400ms ease 240ms;
}
.offer { margin-top: var(--g3); max-width: 26em; }
.cta {
  display: inline-block;
  background: var(--ink);
  color: var(--paper);
  font-family: "Text";
  font-weight: 500;
  font-size: var(--t2);
  text-decoration: none;
  padding: 0.85rem 1.7rem;
  min-height: 48px;
  margin-block: var(--g2) var(--g2);
  transition: background 160ms ease;
}
.cta:hover { background: var(--rubric); }
.cta:active { transform: translateY(1px); }

/* ---------- tally rail: 26 ticks, inked from the live counter ---------- */
.tally {
  display: flex;
  gap: 4px;
  margin-top: var(--g3);
  height: 14px;
}
.tally span {
  width: 2px;
  height: 100%;
  background: var(--rule-paper);
}
.tally span.taken { background: var(--ink); }
#confirm .tally { margin-top: 0; margin-bottom: var(--g3); }
#confirm .tally span { background: var(--rule-ink); }
#confirm .tally span.taken { background: rgba(244, 241, 234, 0.55); }
#confirm .tally span.you { background: var(--ember); width: 3px; }

/* ---------- pain ---------- */
html.js .s2 .rise {
  opacity: 0;
  transform: translateY(12px);
}
html.js .s2.in-view .rise {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 450ms cubic-bezier(0.2, 0.7, 0.2, 1),
    transform 450ms cubic-bezier(0.2, 0.7, 0.2, 1);
}
html.js .s2.in-view .rise:nth-of-type(2) { transition-delay: 70ms; }
html.js .s2.in-view blockquote.rise { transition-delay: 140ms; }
.pain-line { margin-bottom: var(--g2); }
.pivot {
  font-family: "Display", "DisplayFB", Arial, sans-serif;
  font-size: var(--t4);
  font-weight: 470;
  letter-spacing: -0.022em;
  line-height: 1.15;
  margin-block: var(--g3) var(--g1);
  text-wrap: balance;
}
.attrib {
  font-family: "Text";
  font-size: var(--t1);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--rubric);
  margin: 0;
}

/* ---------- what you get: ledger rows ---------- */
.ledger { list-style: none; margin: 0 0 var(--g3); padding: 0; }
.ledger li {
  padding-block: var(--g2);
  border-bottom: 1px solid var(--rule-paper);
}
.ledger li:first-child { border-top: 1px solid var(--rule-paper); }
.runin { font-weight: 500; }
.pathb { max-width: 34em; }

/* ---------- form ---------- */
form { max-width: 26rem; }
fieldset { border: 0; margin: 0 0 var(--g3); padding: 0; }
legend { font-weight: 500; padding: 0; margin-bottom: var(--g2); }
.seg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--g1);
}
.seg input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.seg > label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.55rem 0.8rem;
  border: 1px solid var(--line-input);
  background: var(--paper-hi);
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}
.seg input[type="radio"]:checked + label {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.seg input[type="radio"]:focus-visible + label {
  outline: 2px solid var(--rubric);
  outline-offset: 2px;
}
.field-a, .field-b { display: none; grid-column: 1 / -1; margin-top: var(--g2); }
#path-channel:checked ~ .field-a { display: block; }
#path-none:checked ~ .field-b { display: block; }
.field { margin-bottom: var(--g3); }
label { display: block; font-weight: 500; margin-bottom: var(--g1); }
.hint { font-weight: 400; color: var(--ash); font-size: var(--t2); }
input[type="text"], input[type="email"], input[type="url"] {
  width: 100%;
  min-height: 48px;
  padding: 0.6rem 0.8rem;
  font: inherit;
  color: var(--ink);
  border: 1px solid var(--line-input);
  background: var(--paper-hi);
  border-radius: 0;
}
input:focus-visible, button:focus-visible, a:focus-visible {
  outline: 2px solid var(--rubric);
  outline-offset: 2px;
}
.check {
  display: flex;
  gap: var(--g2);
  align-items: flex-start;
  font-weight: 400;
  margin-bottom: var(--g3);
}
.check input {
  width: 20px;
  height: 20px;
  margin-top: 0.25rem;
  flex: none;
  accent-color: var(--rubric);
}
button[type="submit"] {
  display: inline-block;
  background: var(--ink);
  color: var(--paper);
  font: inherit;
  font-weight: 500;
  border: 0;
  border-radius: 0;
  padding: 0.85rem 1.7rem;
  min-height: 52px;
  cursor: pointer;
  transition: background 160ms ease;
}
button[type="submit"]:hover { background: var(--rubric); }
button[type="submit"]:active { transform: translateY(1px); }
button[type="submit"]:disabled { opacity: 0.55; cursor: default; }
.field-error {
  color: var(--err);
  font-size: var(--t2);
  font-weight: 500;
  margin: var(--g1) 0 0;
}
#form-status { margin-top: var(--g2); font-weight: 500; }
#form-status .error { color: var(--err); }
#form-status a { color: var(--rubric); }

.retired { display: none; }
.hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ---------- the stamp ---------- */
#confirm { display: none; }
#confirm.shown {
  display: block;
  position: relative;
  background: var(--ink);
  color: var(--paper);
  margin-inline: calc(-1 * var(--g3));
  padding: var(--g5) var(--g3);
}
@media (min-width: 900px) {
  /* bleed across the rail to the shell edges; re-align text to the content column */
  #confirm.shown {
    margin-left: calc(-8rem - 2 * var(--g3));
    margin-right: calc(-1 * var(--g3));
    padding-left: calc(8rem + 2 * var(--g3));
    padding-right: var(--g3);
  }
}
#confirm.shown::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--grain);
  background-size: 128px 128px;
  opacity: 0.07;
  pointer-events: none;
}
#confirm > * { position: relative; z-index: 1; }
html.js #confirm.shown { opacity: 0; }
html.js #confirm.shown.stamped {
  opacity: 1;
  transition: opacity 150ms ease;
}
.slot-label {
  font-family: "Text";
  font-size: var(--t1);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(244, 241, 234, 0.6);
  margin: 0 0 var(--g2);
}
.slot-row {
  display: flex;
  align-items: baseline;
  gap: var(--g2);
  margin: 0 0 var(--g3);
}
.slotnum {
  font-family: "Display", "DisplayFB", Arial, sans-serif;
  font-size: var(--t7);
  font-weight: 380;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--ember);
  margin: 0;
}
html.js #confirm.shown .slotnum {
  opacity: 0;
  filter: blur(12px);
}
html.js #confirm.shown.stamped .slotnum {
  opacity: 1;
  filter: blur(0);
  transition: opacity 600ms cubic-bezier(0.2, 0.7, 0.2, 1) 120ms,
    filter 600ms cubic-bezier(0.2, 0.7, 0.2, 1) 120ms;
}
.of26 {
  font-family: "Text";
  font-size: var(--t1);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--paper);
  margin: 0;
}
#confirm-word { color: var(--paper); max-width: 30em; }
html.js #confirm.shown .late { opacity: 0; }
html.js #confirm.shown.stamped .late {
  opacity: 1;
  transition: opacity 300ms ease 350ms;
}
.confirm-rule { border: 0; border-top: 1px solid var(--rule-ink); margin-block: var(--g3); }
#interest-block { display: none; }
#interest-block.shown { display: block; }
#interest-block .check { color: rgba(244, 241, 234, 0.85); margin-bottom: var(--g1); }
#interest-block .check input { accent-color: var(--ember); }
#interest-note { color: rgba(244, 241, 234, 0.85); font-size: var(--t2); }
#confirm :focus-visible { outline-color: var(--ember); }

/* ---------- privacy note + footer ---------- */
.privacy-note {
  margin-top: var(--g4);
  color: var(--ash);
  max-width: 34em;
}
.privacy-note p { margin-bottom: var(--g1); }
.privacy-note a, footer a, .prose a {
  color: var(--rubric);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding-block: 0.5em;
  margin-block: -0.5em;
}
footer {
  border-top: 1px solid var(--rule-paper);
  color: var(--ash);
}
footer .shell { padding-block: var(--g3); }
footer p { margin: 0; }

/* ---------- privacy page ---------- */
.prose { padding-block: var(--g4) var(--g5); max-width: 40rem; }
.prose h1 {
  font-size: var(--t4);
  font-weight: 470;
  letter-spacing: -0.022em;
  margin-bottom: var(--g3);
}
.prose p { margin-bottom: var(--g2); }

/* ---------- no-JS: nothing hidden, ever ---------- */
html:not(.js) .h1-lines .line,
html:not(.js) .hero-rest,
html:not(.js) .s2 .rise { opacity: 1; transform: none; filter: none; }

/* ---------- reduced motion: instant, everything reachable ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  html.js .h1-lines .line, html.js .hero-rest, html.js .s2 .rise,
  html.js #confirm.shown, html.js #confirm.shown .slotnum, html.js #confirm.shown .late {
    opacity: 1;
    transform: none;
    filter: none;
  }
  .progress { transform: scaleX(1); }
}
