:root {
  --paper: #f5f6f2; --ink: #16202a; --muted: #5d6872;
  --line: #d9ddd6; --signal: #e2432b; --card: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root { --paper: #10161c; --ink: #eef1ec; --muted: #94a0a9; --line: #2a343d; --card: #172029; --signal: #ff6a4f; }
}
* { box-sizing: border-box; }
html { background: var(--paper); }
body { margin: 0; color: var(--ink); font: 400 1rem/1.5 "Instrument Sans", system-ui, sans-serif; }
main { max-width: 30rem; margin: 0 auto; padding: 3rem 1.25rem 2rem; }
h1 {
  font: 800 clamp(2rem, 8vw, 2.75rem)/1.05 "Bricolage Grotesque", system-ui, sans-serif;
  letter-spacing: -0.02em; text-align: center; margin: 0 0 .5rem;
}
.sub { text-align: center; color: var(--muted); margin: 0 0 2rem; }

.counter {
  position: relative; overflow: hidden; text-align: center;
  background: var(--card); border: 2px solid var(--ink); border-radius: 1.25rem;
  padding: 1.75rem 1.25rem 1.5rem;
}
.orbit { position: absolute; top: -10px; right: -10px; width: 7rem; opacity: .16; fill: none; stroke: var(--ink); stroke-width: 1.5; }
.orbit circle { fill: var(--ink); stroke: none; }
.orbit .strike { stroke: var(--signal); stroke-width: 4; stroke-linecap: round; }
.num { font: 800 4.5rem/1 "Bricolage Grotesque", system-ui, sans-serif; color: var(--signal); font-variant-numeric: tabular-nums; }
.label { color: var(--muted); margin-top: .5rem; font-size: .95rem; }
.bar { height: .6rem; background: var(--line); border-radius: 99px; margin-top: 1.1rem; overflow: hidden; }
.bar span { display: block; height: 100%; width: 0; background: var(--signal); border-radius: 99px; transition: width .8s cubic-bezier(.2,.8,.2,1); }

form { margin-top: 2rem; display: grid; gap: .45rem; }
label { font-weight: 600; margin-top: .8rem; }
.check { display: flex; align-items: center; gap: .75rem; margin: 0 0 .4rem; cursor: pointer; }
.check input { width: 1.6rem; height: 1.6rem; accent-color: var(--signal); margin: 0; }
input:not([type=checkbox]) {
  width: 100%; font: inherit; color: inherit; background: var(--card);
  border: 1.5px solid var(--line); border-radius: .75rem; padding: .85rem 1rem;
}
input:focus-visible, button:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; }
.hp { position: absolute; left: -9999px; }
.error { color: var(--signal); min-height: 1.4em; margin: .4rem 0 0; font-size: .95rem; }
button {
  font: 600 1.05rem "Instrument Sans", system-ui, sans-serif; color: #fff; background: var(--signal);
  border: 0; border-radius: .75rem; padding: 1rem; cursor: pointer; transition: transform .1s, opacity .2s;
}
button:active { transform: scale(.985); }
button:disabled { opacity: .6; cursor: wait; }

.thanks { text-align: center; font-weight: 600; margin-top: 1.5rem; }
.recent { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .35rem; color: var(--muted); font-size: .92rem; text-align: center; }
footer { margin-top: 2.5rem; text-align: center; color: var(--muted); font-size: .85rem; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
