/* Generated from website/index.html by tools/build_hf_space.py. */
:root {
  /* color */
  --bg: #F4F4F4;
  --surface: #FFFFFF;
  --surface-2: #F9F9F9;
  --ink: #111111;
  --ink-2: #464646;
  --ink-3: #666666;
  --rule: #D9D9D9;
  --grid: #E6E6E6;
  --select: #D6D6D6;
  --teal: #00B796;
  --coral: #FF7276;
  --coral-ink: #B5363F;
  --lav: #997ADB;
  --warm: #9E978E;
  --orange: #FFAA4D;
  --green: #8FE07A;
  --green-ink: #2C8F1F;
  --tint-teal: #8EDDCB;
  --tint-coral: #FFB4B6;
  --track: #EDEDED;
  /* value marks: 3:1 or more against the sheet */
  --teal-mark: #00957A;
  --coral-mark: #E04F55;
  --warm-mark: #857E75;
  --orange-mark: #B35F00;
  /* type */
  --font-display: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "DM Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --fs-control: 0.9rem;
  --fs-control-sm: 0.84rem;
  --fs-meta: 0.8rem;
  --fs-label: 0.75rem;
  --fs-code: 0.82rem;
  --fs-caption: 0.84rem;
  --fs-small: 0.9rem;
  --fs-title: 1.02rem;
  --fs-body: 1.05rem;
  --ls-control: -0.006em;
  /* layout */
  --col: 42rem;
  --wide: 76rem;
  --bar-h: 52px;   /* without the hairline; 44px sideways (below) */
  --s-1: 6px;    /* spacing: the gaps between parts */
  --s-2: 10px;
  --s-3: 14px;
  --s-4: 22px;
  --s-5: 28px;
  --s-6: 46px;
  --s-7: 64px;
  --gutter: clamp(16px, 3.2vw - 8px, 32px);
  /* radius: corners nest (inner = outer less the padding) */
  --r-xs: 6px;
  --r-sm: 10px;
  --r-md: 13px;
  --r-lg: 16px;
  --r-xl: 20px;
  --sheet-r: clamp(22px, 3.4vw, 48px);
  /* fills: ink at low strength, for any surface and theme */
  --wash-1: color-mix(in oklab, var(--ink) 4.5%, transparent);
  --wash-2: color-mix(in oklab, var(--ink) 7%, transparent);
  --wash-3: color-mix(in oklab, var(--ink) 10%, transparent);
  --wash-4: color-mix(in oklab, var(--ink) 14%, transparent);
  /* elevation */
  --sheet-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 12px 32px -20px rgba(0, 0, 0, 0.2);
  --lift: #FFFFFF;
  --lift-shadow: 0 1px 2px rgba(0, 0, 0, 0.09), 0 0 0 0.5px rgba(0, 0, 0, 0.1);
  --pop: #FFFFFF;
  --pop-rule: rgba(0, 0, 0, 0.09);
  --pop-shadow: 0 22px 48px -18px rgba(0, 0, 0, 0.26), 0 4px 14px -6px rgba(0, 0, 0, 0.11);
  /* motion */
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --t-1: 0.15s;
  --t-2: 0.25s;
  --t-3: 0.4s;
  /* figures: ink on the light page, light on the dark one */
  --halo: rgba(244, 244, 244, 0.92);   /* behind words that lie over a figure */
  --ink-dark: #111111;                 /* words on a light mark, in either theme */
  --spark-a: #00957A;                  /* the predictions a repack changes: PACK3D's */
  --spark-b: #E04F55;                  /* and packed RoPE's */
  /* memory order: the opening, the repack window's strips, the end. Pale to deep on the light page */
  --mem-0: #C9BAF3;
  --mem-1: #9C84E6;
  --mem-2: #7356D6;
  --mem-3: #4B3AB0;
  --mem-4: #271D69;
  --tip-shadow: 0 8px 20px -10px rgba(0, 0, 0, 0.45);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0E0E0E;
    --surface: #171717;
    --surface-2: #1B1B1B;
    --ink: #EDEDED;
    --ink-2: #BDBDBD;
    --ink-3: #9A9A9A;
    --rule: #2E2E2E;
    --grid: #242424;
    --select: #3B3B3B;
    --teal: #19AC8B;
    --coral: #C9474F;
    --coral-ink: #FF8F94;
    --lav: #9479D8;
    --warm: #A39C93;
    --orange: #FFB15E;
    --green: #7BD866;
    --green-ink: #8FE07A;
    --tint-teal: #1F5F51;
    --tint-coral: #6B2F33;
    --track: #202020;
    --teal-mark: #19AC8B;
    --coral-mark: #C9474F;
    --warm-mark: #A39C93;
    --orange-mark: #FFB15E;
    --sheet-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 18px 40px -24px rgba(0, 0, 0, 0.8);
    --lift: rgba(255, 255, 255, 0.13);
    --lift-shadow: none;
    --pop: #1B1B1B;
    --pop-rule: rgba(255, 255, 255, 0.09);
    --pop-shadow: 0 24px 52px -16px rgba(0, 0, 0, 0.75), 0 4px 14px -6px rgba(0, 0, 0, 0.5);
    --halo: rgba(14, 14, 14, 0.9);
    --spark-a: #5FE0C3;
    --spark-b: #FF7276;
    --mem-0: #4B3AB0;
    --mem-1: #7356D6;
    --mem-2: #9A7DE6;
    --mem-3: #C9B6F4;
    --mem-4: #F7F3FE;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0E0E0E;
  --surface: #171717;
  --surface-2: #1B1B1B;
  --ink: #EDEDED;
  --ink-2: #BDBDBD;
  --ink-3: #9A9A9A;
  --rule: #2E2E2E;
  --grid: #242424;
  --select: #3B3B3B;
  --teal: #19AC8B;
  --coral: #C9474F;
  --coral-ink: #FF8F94;
  --lav: #9479D8;
  --warm: #A39C93;
  --orange: #FFB15E;
  --green: #7BD866;
  --green-ink: #8FE07A;
  --tint-teal: #1F5F51;
  --tint-coral: #6B2F33;
  --track: #202020;
  --teal-mark: #19AC8B;
  --coral-mark: #C9474F;
  --warm-mark: #A39C93;
  --orange-mark: #FFB15E;
  --sheet-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 18px 40px -24px rgba(0, 0, 0, 0.8);
  --lift: rgba(255, 255, 255, 0.13);
  --lift-shadow: none;
  --pop: #1B1B1B;
  --pop-rule: rgba(255, 255, 255, 0.09);
  --pop-shadow: 0 24px 52px -16px rgba(0, 0, 0, 0.75), 0 4px 14px -6px rgba(0, 0, 0, 0.5);
  --halo: rgba(14, 14, 14, 0.9);
  --spark-a: #5FE0C3;
  --spark-b: #FF7276;
  --mem-0: #4B3AB0;
  --mem-1: #7356D6;
  --mem-2: #9A7DE6;
  --mem-3: #C9B6F4;
  --mem-4: #F7F3FE;
  color-scheme: dark;
}


.stage-window {
  position: relative; display: flex; overflow: hidden; color: var(--ink);
  margin: 36px calc(-1 * max(var(--gutter), env(safe-area-inset-right, 0px))) 0 calc(-1 * max(var(--gutter), env(safe-area-inset-left, 0px)));
  border-radius: var(--sheet-r);
  min-height: min(calc(100svh - var(--bar-h) - 1px - env(safe-area-inset-top, 0px)), 1040px);
  background: var(--surface); box-shadow: var(--sheet-shadow);
}
.sw-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: pan-y pinch-zoom; cursor: grab; pointer-events: auto; }
.sw-canvas.grabbing { cursor: grabbing; }
.sw-canvas:focus-visible { border-radius: var(--r-sm); }
.sw-in {
  position: relative; z-index: 1; flex: 1; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto auto; gap: clamp(14px, 2.4vh, 26px);
  width: 100%; min-width: 0; max-width: calc(var(--wide) + max(var(--gutter), env(safe-area-inset-left, 0px)) + max(var(--gutter), env(safe-area-inset-right, 0px)));
  margin-inline: auto; pointer-events: none;
  padding: clamp(28px, 5vh, 64px) max(var(--gutter), env(safe-area-inset-right, 0px)) clamp(28px, 5vh, 64px) max(var(--gutter), env(safe-area-inset-left, 0px));
}
.sw-in .sw-head > *, .sw-in .sw-under > *, .sw-in .sw-foot > * { pointer-events: auto; }
.sw-head { display: grid; gap: var(--s-3); }
.sw-title { font-family: var(--font-display); font-weight: 340; font-size: clamp(1.6rem, 3.2vw, 2.8rem); line-height: 1.08; letter-spacing: -0.028em; text-wrap: balance; }
.sw-cells { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(8px, 3vw, 40px); min-height: min(40svh, 560px); }
/* shared rows, so strips and counts line up */
.sw-under { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 clamp(12px, 3vw, 40px); }
.sw-col { min-width: 0; display: grid; grid-row: span 3; grid-template-rows: subgrid; align-content: start; }
.sw-who { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 4px 9px; font-weight: 600; font-size: var(--fs-title); }
.sw-who small { font-weight: 500; font-size: var(--fs-meta); color: var(--ink-3); }
.sw-strip { position: relative; height: 10px; margin-top: var(--s-2); border-radius: var(--r-xs); overflow: hidden; background: var(--wash-1); }
.sw-strip canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.sw-n { margin-top: var(--s-2); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.sw-big { font-family: var(--font-display); font-weight: 360; font-size: clamp(1.7rem, 3.4vw, 2.6rem); letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
/* as wide as its final value (app.js sets data-max) */
.sw-big::after { content: attr(data-max); display: block; height: 0; overflow: hidden; visibility: hidden; }
.sw-teal { color: var(--teal-mark); }
.sw-coral { color: var(--coral-ink); }
.sw-lab { font-family: var(--font-mono); font-size: var(--fs-label); color: var(--ink-3); overflow-wrap: anywhere; }
.sw-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); container-type: inline-size; }
.sw-act { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
@media (any-pointer: coarse) { .sw-act { row-gap: 12px; } }
/* the longer label's width, within the foot */
#swGo { min-width: min(14.6em, 100cqw); }
.sw-state { display: flex; align-items: flex-start; gap: 10px; font-size: var(--fs-small); color: var(--ink-2); }
/* half the line height, less half the dot */
.sw-state i { flex: none; width: 8px; height: 8px; margin-top: calc(0.81em - 4px); border-radius: 50%; background: var(--ink-3); transition: background-color var(--t-2) var(--ease), box-shadow var(--t-2) var(--ease); }
.sw-state.hot i { background: var(--ink); }
/* the two longest states, unseen: one height through the repack */
.sw-state-t { display: grid; }
.sw-state-t > * { grid-area: 1 / 1; }
.sw-hold { visibility: hidden; }
.sw-fallback { display: none; grid-column: 1 / -1; align-self: center; margin: 0 auto; max-width: 40ch; padding: 24px; color: var(--ink-2); text-align: center; }
.stage-window.no-canvas .sw-canvas, .stage-window.no-canvas #swA, .stage-window.no-canvas #swB { display: none; }
.stage-window.no-canvas .sw-fallback { display: block; }
.stage-window.no-canvas + .sw-foot-note :is(.sw-cell-note, .hint) { display: none; }   /* no cell to describe or turn */
.prose:has(+ .stage-window.no-canvas) .sw-cell-note { display: none; }
.sw-foot-note { max-width: min(var(--col), 66ch); margin-left: max(0px, (100% - var(--col)) / 2); margin-right: auto; }
@media (min-width: 641px) and (max-aspect-ratio: 1/1) {
  .stage-window { min-height: 0; }
  .sw-cells { min-height: 0; aspect-ratio: 2 / 1.15; }
}
@media (max-width: 640px) {
  .stage-window { min-height: 0; }
  .sw-in { padding-block: 20px; gap: var(--s-2); }
  .sw-cells { min-height: 0; aspect-ratio: 2 / 1; gap: var(--s-1); }
  .sw-who { font-size: var(--fs-small); }
  .sw-who small { flex-basis: 100%; }
}
/* a short phone (an iPhone SE, Safari's bars): the button reaches the screen */
@media (orientation: portrait) and (max-width: 640px) and (max-height: 640px) {
  .sw-in { padding-block: var(--s-3); gap: var(--s-2); }
  .sw-head { gap: var(--s-1); }
  .sw-title { font-size: 1.35rem; }
  .sw-cells { aspect-ratio: 2 / 0.7; }
  .sw-strip, .sw-n { margin-top: var(--s-1); }
}
@media (orientation: portrait) and (max-width: 360px) and (max-height: 600px) {
  .sw-in { padding-block: var(--s-2); gap: var(--s-1); }
  .sw-cells { aspect-ratio: 2 / 0.6; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .stage-window { min-height: calc(100svh - var(--bar-h) - 1px); }
  .sw-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; gap: var(--s-2) clamp(16px, 3vw, 32px); padding-block: 16px; }
  .sw-head { grid-column: 1; grid-row: 1; gap: var(--s-1); }
  .sw-title { font-size: clamp(1.25rem, 2.6vw, 1.6rem); }
  .sw-under { grid-column: 1; grid-row: 2 / -1; align-self: start; }
  .sw-who small { flex-basis: 100%; }
  .sw-big { font-size: 1.6rem; }
  .sw-cells { grid-column: 2; grid-row: 1 / 3; min-height: 0; aspect-ratio: auto; gap: var(--s-1); }
  .sw-foot { grid-column: 2; grid-row: 3; }
}
/* Safari's bars showing (874 x 292) */
@media (orientation: landscape) and (max-height: 340px) {
  .sw-in { padding-block: var(--s-2); row-gap: var(--s-1); }
  .sw-title { font-size: var(--fs-body); }   /* one line inside Safari's 62px insets */
  .sw-strip, .sw-n { margin-top: var(--s-1); }
}

