

@font-face {
  font-family: "Geist Mono";
  src: url("/-/mono.5ba8b95fe852.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}

:root {
  
  --g-ground: #111317;
  --g-panel: #171a1f;
  --g-ink: #e6e8eb;
  --g-dim: #7d848e;
  --g-faint: #3a3f47;
  --g-on: #0d0f12;
  --g-shade: rgb(0 0 0 / 60%);

  
  --g-good: #3fbf7f;
  --g-fair: #e8b93c;
  --g-bad: #e5534b;
  --g-none: #1c1f24;
  
  --g-lift: #2a2f37;

  
  --g-amount-lo: #2b3a55;
  --g-amount-hi: #4a7bd1;

  
  --g-ai: #56b6f7;
  --g-human: #5fd08f;
  --g-system: #b48cf2;
  --g-ax: var(--g-ai);
  --g-bot: var(--g-ai);
  --g-caller: #f2e2b3;

  
  --g-kind-actor: #e9a27c;
  --g-kind-place: #74a7e0;
  --g-kind-thing: #a7b0bc;
  --g-kind-event: #c5a0ee;
  --g-kind-rule: #6cc5b4;

  --g-font: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --g-size: 13px;
  --g-line: 20px;
  --g-input: 16px;

  
  --g-gap: 2px;
  --g-tab-h: 32px;
  --g-slot: calc(18ch + var(--g-pad));
  --g-pad: max(2ch, env(safe-area-inset-left));
  --g-width: 88ch;

  color-scheme: dark;
  background: var(--g-ground);
}

@media (max-width: 720px) {
  :root {
    --g-tab-h: 44px;
    --g-slot: calc(44px + var(--g-pad));
    --g-pad: max(8px, env(safe-area-inset-left));
  }
}



html,
body {
  margin: 0;
  min-height: 100%;
  background: var(--g-ground);
}

body {
  color: var(--g-ink);
  font: 400 var(--g-size) / var(--g-line) var(--g-font);
  font-variant-numeric: tabular-nums;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.g-hold {
  box-sizing: border-box;
  display: grid;
  align-content: center;
  gap: 12px;
  width: min(100%, calc(44ch + 2 * var(--g-pad)));
  min-height: 100dvh;
  margin: 0 auto;
  padding: 0 var(--g-pad);
}

.g-hold p,
.g-hold h1 {
  margin: 0;
  font: inherit;
}

.g-hold-mark {
  display: flex;
  align-items: center;
  gap: var(--g-gap);
  margin-bottom: 12px;
}

.g-hold-cell {
  display: grid;
  place-items: center;
  width: 6ch;
  height: 28px;
  border-radius: 2px;
  background: var(--g-none);
  color: var(--g-ink);
  font-weight: 600;
}

.g-hold-caret {
  width: 1ch;
  height: 16px;
  margin-left: 6px;
  background: var(--g-human);
  animation: g-hold-blink 1.2s steps(1) infinite;
}

.g-hold-note {
  color: var(--g-dim);
}

.g-hold-note a {
  color: inherit;
  text-underline-offset: 3px;
}

.g-hold-note a:focus-visible {
  outline: none;
  background-color: var(--g-lift);
  color: var(--g-ink);
}

@keyframes g-hold-blink {
  50% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .g-hold-caret {
    animation: none;
  }
}
