/* Design tokens, reset, typography primitives, and shared controls. */
:root {
  --yellow: #f6c928;
  --yellow-soft: #ffe781;
  --ink: #171714;
  --paper: #f5f0e6;
  --paper-deep: #eae3d6;
  --red: #ee5548;
  --blue: #65a8d7;
  --green: #4fac6d;
  --muted: #746f65;
  --line: rgba(23, 23, 20, .14);
  --shadow: 0 18px 52px rgba(34, 27, 12, .13);
  --content: 1500px;
  --ease: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { max-width: 100%; scroll-behavior: smooth; overflow-x: clip; }
body {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow-x: clip;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
[hidden] { display: none !important; }
img, svg { max-width: 100%; }
button, input, select { max-width: 100%; font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:is(button, a, input, select, [role="button"]):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }

.speed-lines { position: fixed; inset: 0; z-index: -2; pointer-events: none; }

.primary-button, .finish-button { min-height: 48px; padding: 14px 20px; border: 2px solid var(--ink); color: var(--ink); background: var(--yellow); box-shadow: 5px 5px 0 var(--ink); font-weight: 900; letter-spacing: .05em; text-transform: uppercase; white-space: normal; transition: transform .16s ease, box-shadow .16s ease; }
.primary-button:hover, .finish-button:not(:disabled):hover { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--ink); }
.primary-button span { margin-left: 12px; }
.primary-button.full { width: 100%; margin-top: 11px; }
.primary-button.is-loading { cursor: wait; opacity: .68; box-shadow: none; transform: translate(3px, 3px); }
.text-button { min-height: 44px; padding: 5px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.5); color: #fff; background: none; font-weight: 700; }
.outline-button { min-height: 44px; padding: 10px 16px; border: 2px solid var(--ink); background: transparent; box-shadow: 3px 3px 0 var(--ink); font-size: 11px; font-weight: 800; white-space: normal; }
