
/* /memory — the mission console. This page pins its own dark phosphor instrument
   palette (ratified visual target 2026-08-06) regardless of the site theme toggle,
   the same way /game carries its own identity. Motion tokens per animate-it. */
body.memory-body{--bg:#030504;--sf:#060a08;--sf2:#040705;--ink:#d8ecdf;--mut:#8fa396;
  --ln:#16261e;--ac:#35e08c;--hot:#ffb62e;--live:#35e08c;--idle:#ffd23f;--stalled:#ff4a4a;
  --ended:#8fa396;--open:#7fd6a8;
  --mem-grid:#0c1a12;--mem-phos:#35e08c;--mem-dim:#1a3a2a;
  --mem-teal:#2fe8b0;--mem-steel:#8fa396;--mem-codex:#7fd6a8;--mem-sage:#4a9d78;--mem-hot2:#ff9d00;
  --mem-slab-hi:#101613;--mem-slab-mid:#0a0f0c;--mem-slab-lo:#060a08;--mem-slab-edge:#2e4a3a;
  --mem-slab-rivet:#3c5546;--mem-slab-title:#dff2e6;--mem-slab-cap:#8fa396;
  --mem-orb-ink:#eafff3;--mem-hover-ink:#ffffff;
  --dur-micro:180ms;--dur-hero:700ms;--ease-glide:cubic-bezier(.33,.01,.18,1);
  --ease-spring:cubic-bezier(.34,1.45,.5,1);
  --mem-pill-w:262px;
  background:var(--bg);padding:10px 10px 40px}
body.memory-body .masthead{border-bottom-color:var(--ln);margin-bottom:0;padding-bottom:8px}
/* the shared refresh pill docks bottom-LEFT on this page so it can never occlude the
   aggregate TOTAL callout at any value. It is viewport-FIXED, so the one in-flow row that
   shares that bottom-left column — the timeline head — reserves its footprint as a hard
   gutter (--mem-pill-w) instead of letting the label slide under it at some scroll offset.
   The pill's own max width is pinned to the same token, so the reserve cannot go stale. */
body.memory-body .obs-refresh{right:auto;left:14px;max-width:calc(var(--mem-pill-w) - 24px);overflow:hidden}
.memory-main{max-width:1560px;margin:0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
/* console header: ONE ~56px strip — heavy condensed masthead left, controls + readout right */
.mem-console-head{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;min-height:56px;
  margin:8px 0 10px;padding:0 14px;border:1px solid var(--ln);border-radius:2px;background:var(--sf);
  box-shadow:none;overflow:hidden;white-space:nowrap}
.mem-wordmark{margin:0;font:900 38px/1 'Arial Narrow','Helvetica Neue Condensed','Helvetica Neue',Arial,sans-serif;
  letter-spacing:-0.01em;color:var(--ink);white-space:nowrap;flex:none}
.mem-wordmark::before{content:"▮▮ ";color:var(--mem-phos);font-size:15px;vertical-align:6px}
.mem-subtitle{color:var(--mut);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  overflow:hidden;text-overflow:ellipsis}
.mem-status{margin-left:auto;color:var(--mem-phos);font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums;flex:none}
/* console body: stage + aggregate rail */
.mem-console{display:flex;gap:10px;align-items:stretch}
.memory-stagewrap{position:relative;flex:1;min-width:0;border:1px solid var(--ln);border-radius:2px;
  background:var(--bg);overflow:hidden;box-shadow:none}
#mem-canvas{display:none;width:100%;height:760px;touch-action:pan-y;cursor:crosshair}
/* CONSOLE vs REPORT: the server-rendered strata report is BOTH the no-JS fallback (no js-on:
   report shows, canvas/transport/rail stay hidden) AND a first-class view the header switch
   toggles instantly — same data, same server renderer, no refresh in either direction. */
.js-on[data-view=console] #mem-canvas{display:block}
.js-on[data-view=console] .memory-ssr{display:none}  /* canvas takes over; its role=img aria-label narrates the stage */
.js-on[data-view=report] #mem-canvas{display:none}
.js-on[data-view=report] .memory-tip{display:none}
.mem-view-switch{display:none;align-items:center;gap:0;margin-left:6px}
.js-on .mem-view-switch{display:inline-flex}
.mem-view-switch button{appearance:none;padding:6px 11px;border:1px solid var(--mem-dim);background:var(--sf2);
  color:var(--mut);cursor:pointer;font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.mem-view-switch button:first-child{border-radius:3px 0 0 3px}
.mem-view-switch button:last-child{border-radius:0 3px 3px 0;border-left:none}
.mem-view-switch button:hover,.mem-view-switch button:focus-visible{color:var(--mem-phos);outline:none}
.mem-view-switch button[aria-pressed="true"]{border-color:var(--mem-phos);color:var(--mem-phos);
  background:color-mix(in srgb,var(--mem-phos) 12%,var(--sf2))}
.mem-rail{display:none;flex-direction:column;width:168px;flex:none;border:1px solid var(--ln);
  border-radius:2px;background:var(--sf);padding:10px;box-shadow:none}
.js-on[data-view=console] .mem-rail{display:flex}
.mem-rail h3{margin:0 0 8px;font:800 12px ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.2em;color:var(--ink)}
#mem-agg-canvas{width:100%;flex:1;min-height:0}
/* the TOTAL callout wears the same corner-bracket frame as the panel labels, ~2x scale */
.mem-agg-read{position:relative;margin-top:10px;border:none;border-radius:0;padding:12px 12px 11px;
  background:transparent}
.mem-agg-read::before,.mem-agg-read::after{content:"";position:absolute;width:9px;height:9px;
  border:1.5px solid var(--mem-phos)}
.mem-agg-read::before{top:0;left:0;border-right:none;border-bottom:none}
.mem-agg-read::after{bottom:0;right:0;border-left:none;border-top:none}
.mem-agg-read b{display:block;color:var(--mem-phos);font-size:33px;line-height:1;
  font-variant-numeric:tabular-nums}
.mem-agg-read span{display:block;margin-top:4px;color:var(--mut);font-size:9px;letter-spacing:.14em}
.mem-agg-read.agg-warn b{color:var(--idle)}
.mem-agg-read.agg-panic b{color:var(--stalled)}
/* SSR strata (no-JS fallback + tour surface) — same console skin */
.memory-ssr{padding:14px;background:var(--bg,#030504)}
.memory-strata{background:#030504;color:#d8ecdf;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.memory-strata-stamp{margin-bottom:10px;color:#8fa396;font-size:10px;letter-spacing:.08em}
.memory-band{border:1px solid #16261e;border-radius:2px;background:#060a08;margin-bottom:9px;overflow:hidden}
.memory-band-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:8px 12px;
  border-bottom:1px dashed #16261e}
.memory-band-head b{font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:#35e08c}
.memory-band-head span{color:#8fa396;font-size:10.5px}
.band-gpu{background:#04100c}.band-gpu .memory-band-head b{color:#2fe8b0}
.band-pressure{background:#0c0802}.band-pressure .memory-band-head b{color:#ffb62e}
.band-evicted{opacity:.8}
.memory-chips{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px}
.memory-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid #16261e;
  border-left:3px solid var(--kindc,#4a9d78);border-radius:2px;background:#060a08;font-size:11px;color:#8fa396}
.memory-chip-id{color:#d8ecdf;font-weight:700}
.memory-chip-mb{color:#d8ecdf;font-variant-numeric:tabular-nums}
.memory-chip-note{font-size:10px}
.memory-chip-meter{position:relative;width:44px;height:5px;border-radius:999px;background:#040705;overflow:hidden}
.memory-chip-meter b{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--kindc,#4a9d78)}
.kind-claude{--kindc:#35e08c}.kind-codex{--kindc:#7fd6a8}
.kind-ollama,.kind-llama-server{--kindc:#2fe8b0}
.kind-chrome,.kind-vm{--kindc:#4a9d78;border-style:dashed}
.kind-observify,.kind-observer-watch{--kindc:#4a9d78}
.memory-chip.is-warn{border-color:#ffd23f;box-shadow:0 0 0 1px #ffd23f}
.memory-chip.is-panic{border-color:#ff4a4a;box-shadow:0 0 0 2px #ff4a4a}
a.memory-chip{text-decoration:none;cursor:pointer}
a.memory-chip:hover,a.memory-chip:focus-visible{border-color:var(--kindc,#35f19c);
  box-shadow:0 0 0 1px var(--kindc,#35f19c)}
.memory-ghost{display:inline-flex;padding:3px 9px;border:1px dashed #1a3a2a;border-radius:999px;
  color:#8fa396;font-size:10.5px;opacity:.75}
.memory-band-empty,.memory-empty{color:#8fa396;font-size:11px;padding:2px}
/* transport / timeline */
.memory-transport{display:none;position:relative;margin-top:10px;padding:10px 14px 8px;border:1px solid var(--ln);
  border-radius:2px;background:var(--sf);box-shadow:none}
.js-on[data-view=console] .memory-transport{display:block}
.mem-timeline-head{display:flex;align-items:baseline;gap:14px;flex-wrap:nowrap;min-width:0;
  padding-left:calc(var(--mem-pill-w) - 24px)}   /* 24px = body + transport padding already left of the row */
#mem-tl-label{color:var(--mut);font-size:10px;letter-spacing:.16em;
  flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mem-clock{margin-left:auto;flex:none;color:var(--mut);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.mem-clock b{color:var(--mem-phos)}
.mem-scrub{position:relative;height:54px;margin-top:8px}
#mem-ticks{position:absolute;inset:20px 0 14px;pointer-events:none;border-top:1px solid var(--mem-dim)}
#mem-ticks i{position:absolute;top:0;width:1px;height:10px;background:var(--mem-dim)}
#mem-ticks i.ev-start{background:var(--mem-phos);height:14px}
#mem-ticks i.ev-warn{background:var(--idle);height:16px;width:2px}
#mem-ticks i.ev-panic{background:var(--stalled);height:20px;width:2px}
#mem-ticks i.ev-gone{height:14px;background:transparent;border-left:1px dotted var(--mut)}
#mem-hours{position:absolute;inset:auto 0 0;height:13px;pointer-events:none}
#mem-hours span{position:absolute;transform:translateX(-50%);color:var(--mut);font-size:9.5px}
#mem-scrubber{position:absolute;inset:0;width:100%;margin:0;appearance:none;background:transparent;cursor:pointer;z-index:2}
#mem-scrubber::-webkit-slider-runnable-track{height:2px;margin-top:19px;background:var(--mem-dim)}
#mem-scrubber::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-7px;border-radius:50%;
  border:2px solid var(--mem-phos);background:var(--bg);box-shadow:0 0 8px color-mix(in srgb,var(--mem-phos) 60%,transparent)}
#mem-scrubber:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px color-mix(in srgb,var(--mem-phos) 30%,transparent)}
.mem-chip{position:absolute;top:-8px;transform:translateX(-50%);padding:2px 8px;border:1px solid var(--mem-phos);
  border-radius:3px;background:var(--bg);color:var(--mem-phos);font:700 10.5px ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;z-index:3}
.mem-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px}
.mem-btn{appearance:none;min-width:42px;padding:9px 13px;border:1px solid var(--mem-dim);border-radius:2px;
  background:var(--sf2);color:var(--ink);cursor:pointer;box-shadow:none;
  font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace;
  transition:border-color var(--dur-micro),color var(--dur-micro),transform var(--dur-micro) var(--ease-spring)}
.mem-btn:hover,.mem-btn:focus-visible{border-color:var(--mem-phos);color:var(--mem-phos);outline:none}
.mem-btn:active{transform:scale(.94)}
.mem-btn[aria-pressed="true"]{border-color:var(--mem-phos);color:var(--mem-phos);
  background:color-mix(in srgb,var(--mem-phos) 10%,var(--sf2))}
#mem-live{padding:9px 16px;letter-spacing:.06em}
#mem-live[aria-pressed="true"]{border-color:var(--mem-phos);color:var(--mem-phos);
  background:color-mix(in srgb,var(--mem-phos) 16%,var(--sf2));
  box-shadow:0 0 12px color-mix(in srgb,var(--mem-phos) 35%,transparent)}
#mem-live[aria-pressed="true"] .mem-live-dot{animation:mem-blink 1.4s steps(2,start) infinite}
.mem-live-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:currentColor}
@keyframes mem-blink{50%{opacity:.25}}
#mem-speed,#mem-zoom,#mem-snap{appearance:none;padding:8px 10px;border:1px solid var(--mem-dim);border-radius:2px;
  background:var(--sf2);color:var(--ink);font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace}
.mem-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-left:auto;color:var(--mut);font-size:9.5px;letter-spacing:.08em}
.mem-legend i{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:5px;background:var(--mem-phos)}
.mem-legend .lg-warn i{background:var(--idle)}
.mem-legend .lg-panic i{background:var(--stalled)}
.mem-legend .lg-gone i{background:none;border-top:2px dotted var(--mut);height:0}
/* alarms */
.memory-alarms{position:relative;margin-top:10px;padding:12px 14px;border:1px solid var(--ln);border-radius:2px;background:var(--sf);box-shadow:none}
.memory-alarms h3{margin:0 0 3px;font-size:12.5px;letter-spacing:.14em;color:var(--ink)}
.memory-alarms .memory-alarms-sub{color:var(--mut);font-size:10.5px;margin:0 0 10px}
.memory-alarm-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:5px 8px;
  border-left:3px solid var(--idle);margin-bottom:5px;background:var(--sf2);font-size:11px}
.memory-alarm-row b{font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--idle)}
.memory-alarm-row.level-panic{border-left-color:var(--stalled)}
.memory-alarm-row.level-panic b{color:var(--stalled)}
.memory-alarm-when{color:var(--mut);font-size:10px}
.memory-alarm-what{color:var(--ink)}
.memory-alarm-cmd{color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}
.memory-alarm-empty{color:var(--mut);font-size:11.5px;margin:0}
.memory-alarms.alarm-live{animation:mem-alarm-edge 1.1s var(--ease-glide) infinite}
@keyframes mem-alarm-edge{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--stalled) 55%,transparent)}
  50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--stalled) 0%,transparent)}}
/* hover detail */
.memory-tip{position:absolute;z-index:30;max-width:330px;padding:11px 13px;border:1px solid var(--mem-dim);
  border-radius:3px;background:var(--sf);box-shadow:0 14px 38px rgba(0,0,0,.55);pointer-events:none;
  font-size:11px;color:var(--mut)}
.memory-tip.pinned{pointer-events:auto}
.memory-tip h4{margin:0 0 2px;font:800 12.5px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
.memory-tip .tip-cmd{display:block;margin:2px 0 7px;font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.memory-tip .tip-stats{display:grid;grid-template-columns:auto auto;gap:2px 14px;font-variant-numeric:tabular-nums}
.memory-tip .tip-stats b{color:var(--ink);font-weight:700}
.memory-tip canvas{display:block;margin-top:8px;border-top:1px dashed var(--mem-dim);padding-top:6px}
.memory-tip .tip-state{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:2px;
  font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace}
.memory-tip .tip-state.warn{color:var(--idle);background:color-mix(in srgb,var(--idle) 15%,transparent)}
.memory-tip .tip-state.panic{color:var(--stalled);background:color-mix(in srgb,var(--stalled) 18%,transparent)}
.memory-tip .tip-session{display:block;margin-top:7px;padding-top:6px;border-top:1px dashed var(--mem-dim);
  font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ac)}
.memory-tip .tip-session.tip-gone{color:var(--mut);font-weight:400}
@media(max-width:1150px){.mem-console{flex-direction:column}.mem-rail{width:auto;flex-direction:row;align-items:center}
  #mem-agg-canvas{height:70px}.mem-rail h3{margin:0 10px 0 0}}
@media(max-width:820px){#mem-canvas{height:620px}.memory-alarm-cmd{max-width:100%}.mem-status{margin-left:0}}
/* under 560px the shared pill drops its "next Xm Ys" half, so the reserved gutter shrinks
   with it and the head is allowed to wrap the clock onto its own line — the label still
   starts to the RIGHT of the pill at every width, and ellipsises rather than emit a tail */
@media(max-width:560px){body.memory-body{--mem-pill-w:176px}
  .mem-timeline-head{flex-wrap:wrap}.mem-clock{margin-left:0}}
/* ── page tour: docked walkthrough (right rail desktop, bottom sheet mobile).
   Space is reserved ONLY while the tour is open (body.mem-touring). ───────── */
body.mem-touring{padding-right:392px}
.mem-tour-panel{position:fixed;inset:0 0 0 auto;z-index:2147482000;width:368px;display:flex;
  flex-direction:column;padding:20px;border-left:1px solid var(--ln);background:var(--sf);
  box-shadow:-16px 0 42px rgba(0,0,0,.5);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.mem-tour-panel[hidden]{display:none}
.mem-tour-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:12px;border-bottom:1px solid var(--ln)}
.mem-tour-close{appearance:none;border:1px solid var(--mem-dim);border-radius:999px;background:var(--sf2);
  color:var(--mut);cursor:pointer;width:30px;height:30px;font-size:17px;flex:none}
.mem-tour-close:hover,.mem-tour-close:focus-visible{color:var(--ink);border-color:var(--mem-phos);outline:none}
.mem-tour-counter{margin:14px 0 4px;color:var(--mem-phos);
  font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}
.mem-tour-panel h2{margin:0 0 10px;font:800 20px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
.mem-tour-copy{overflow:auto;padding-right:3px;color:var(--mut);font-size:12.5px;line-height:1.62}
.mem-tour-copy p{margin:0 0 10px}.mem-tour-copy b{color:var(--ink)}
.mem-tour-copy code{padding:1px 5px;border:1px solid var(--ln);border-radius:4px;background:var(--sf2);color:var(--ink);font-size:11px}
.mem-tour-controls{display:grid;grid-template-columns:auto 1fr 1fr;gap:8px;margin-top:auto;
  padding-top:14px;border-top:1px solid var(--ln)}
.mem-tour-controls button{appearance:none;padding:9px 11px;border:1px solid var(--mem-dim);border-radius:3px;
  background:var(--sf2);color:var(--ink);cursor:pointer;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace}
.mem-tour-controls button:hover,.mem-tour-controls button:focus-visible{border-color:var(--mem-phos);color:var(--mem-phos);outline:none}
.mem-tour-controls button:disabled{opacity:.4;cursor:not-allowed}
.mem-tour-controls .mem-tour-next{border-color:var(--mem-phos);background:var(--mem-phos);color:#04211a}
.mem-tour-controls .mem-tour-next:hover,.mem-tour-controls .mem-tour-next:focus-visible{color:#04211a;filter:brightness(1.1)}
.mem-tour-keys{margin:10px 0 0;color:var(--mut);font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}
/* DEMO markers: hidden in live operation, shown on every seeded surface while touring */
.mem-demo-chip{display:none;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--hot);
  border-radius:999px;background:color-mix(in srgb,var(--hot) 14%,var(--sf));color:var(--hot);
  font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em;text-transform:uppercase}
body.mem-touring .mem-demo-chip,.mem-tour-panel .mem-demo-chip{display:inline-flex}
.mem-demo-abs{position:absolute;top:8px;right:10px;z-index:6}
/* the moving spotlight over the canvas strata + focus ring on DOM targets */
.mem-tour-spot{position:absolute;left:6px;right:6px;z-index:5;pointer-events:none;
  border:2px solid var(--mem-phos);border-radius:4px;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--mem-phos) 22%,transparent),
             0 0 34px color-mix(in srgb,var(--mem-phos) 30%,transparent);
  transition:top .45s var(--ease-glide),height .45s var(--ease-glide)}
.mem-tour-spot[hidden]{display:none}
.mem-tour-focus{outline:2px solid var(--mem-phos);outline-offset:3px;
  box-shadow:0 0 0 7px color-mix(in srgb,var(--mem-phos) 16%,transparent)}
@media(max-width:900px){body.mem-touring{padding-right:0;padding-bottom:calc(44vh + 20px)}
  .mem-tour-panel{inset:auto 0 0;width:auto;height:44vh;padding:14px 16px;border-left:0;
    border-top:1px solid var(--ln);box-shadow:0 -15px 36px rgba(0,0,0,.4)}
  .mem-tour-panel h2{font-size:16px;margin-bottom:6px}.mem-tour-counter{margin-top:8px}
  .mem-tour-keys{display:none}}
/* ── LIGHT: re-derived ink-on-paper (NOT an inversion). Same semantic hues — amber
   pressure, yellow WARN, red PANIC — re-tuned for paper contrast. Dark stays this
   console's default; the house crescent (obs-theme) switches, page default dark. ── */
html[data-theme=light] body.memory-body{--bg:#f2efe6;--sf:#ffffff;--sf2:#f4f1e7;--ink:#1a241f;
  --mut:#5a5f58;--ln:#c9c4b2;--ac:#1d4d36;--hot:#b06d00;--live:#1d4d36;--idle:#8a6a00;
  --stalled:#c22f2f;--ended:#6f766c;--open:#2e6b4c;
  --mem-grid:#ddd8c6;--mem-phos:#1d4d36;--mem-dim:#b9c4ae;
  --mem-teal:#0c6e5e;--mem-steel:#6f766c;--mem-codex:#3d7a5c;--mem-sage:#55806a;--mem-hot2:#8a5500;
  --mem-slab-hi:#ffffff;--mem-slab-mid:#ffffff;--mem-slab-lo:#f6f4ec;--mem-slab-edge:#1a241f;
  --mem-slab-rivet:#8a917f;--mem-slab-title:#1a241f;--mem-slab-cap:#5a5f58;
  --mem-orb-ink:#0e2018;--mem-hover-ink:#1a241f}
html[data-theme=light] body.memory-body .mem-console-head,
html[data-theme=light] body.memory-body .memory-stagewrap,
html[data-theme=light] body.memory-body .mem-rail,
html[data-theme=light] body.memory-body .memory-transport,
html[data-theme=light] body.memory-body .memory-alarms{box-shadow:0 1px 4px rgba(60,54,32,.10)}
html[data-theme=light] .mem-tour-panel{box-shadow:-16px 0 42px rgba(60,54,32,.22)}
html[data-theme=light] .memory-tip{box-shadow:0 14px 38px rgba(60,54,32,.28)}
html[data-theme=light] .mem-tour-controls .mem-tour-next{color:#f6f4e8}
html[data-theme=light] .mem-tour-controls .mem-tour-next:hover,
html[data-theme=light] .mem-tour-controls .mem-tour-next:focus-visible{color:#f6f4e8}
/* the strata report re-derived on paper (its dark values are hardcoded above by design) */
html[data-theme=light] .memory-strata{background:var(--bg);color:var(--ink)}
html[data-theme=light] .memory-strata-stamp{color:var(--mut)}
html[data-theme=light] .memory-band{border-color:var(--ln);background:var(--sf)}
html[data-theme=light] .memory-band-head{border-bottom-color:var(--ln)}
html[data-theme=light] .memory-band-head b{color:var(--ac)}
html[data-theme=light] .memory-band-head span{color:var(--mut)}
html[data-theme=light] .band-gpu{background:#edf2e4}
html[data-theme=light] .band-gpu .memory-band-head b{color:#0c6e5e}
html[data-theme=light] .band-pressure{background:#f4ecd6}
html[data-theme=light] .band-pressure .memory-band-head b{color:#b06d00}
html[data-theme=light] .memory-chip{border-color:var(--ln);background:var(--sf2);color:var(--mut)}
html[data-theme=light] .memory-chip-id,html[data-theme=light] .memory-chip-mb{color:var(--ink)}
html[data-theme=light] .memory-chip-meter{background:#d6d2be}
html[data-theme=light] .kind-claude{--kindc:#1d4d36}
html[data-theme=light] .kind-codex{--kindc:#3d7a5c}
html[data-theme=light] .kind-ollama,html[data-theme=light] .kind-llama-server{--kindc:#0c6e5e}
html[data-theme=light] .kind-chrome,html[data-theme=light] .kind-vm{--kindc:#55806a}
html[data-theme=light] .kind-observify,html[data-theme=light] .kind-observer-watch{--kindc:#55806a}
html[data-theme=light] .memory-chip.is-warn{border-color:#8a6a00;box-shadow:0 0 0 1px #8a6a00}
html[data-theme=light] .memory-chip.is-panic{border-color:#c22f2f;box-shadow:0 0 0 2px #c22f2f}
html[data-theme=light] .memory-ghost{border-color:#b3bda6;color:#5d6e63}
html[data-theme=light] .memory-band-empty,html[data-theme=light] .memory-empty{color:var(--mut)}
@media(prefers-reduced-motion:reduce){
  .memory-main *,.memory-main *::before,.memory-main *::after{animation:none!important}
  .mem-tour-panel,.mem-tour-panel *,.mem-tour-spot{animation:none!important;transition:none!important}}
