Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| /* Visual language: nico-martin LFM2.5 WebGPU Space (editorial lab: paper + grid, | |
| hairlines, numbered smallcaps sections) × summary_audit.html (dark mode, viewer). */ | |
| :root { | |
| --paper: #faf9f6; | |
| --ink: #1a1a18; | |
| --muted: #8a8781; | |
| --hair: #e3e1db; | |
| --card: #ffffff; | |
| --soft: #f3f1ec; | |
| --accent: #b45309; | |
| --ok-bg: #e5f0e3; --ok-ink: #2f5e2f; | |
| --warn-bg: #f7ecd4; --warn-ink: #8a5a10; | |
| --fail-bg: #f8e2e0; --fail-ink: #a13030; | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| :root { | |
| --paper: #161614; --ink: #e6e4df; --muted: #8f8c85; --hair: #2e2d2a; | |
| --card: #1d1d1a; --soft: #232320; --accent: #d98a3d; | |
| --ok-bg: #223a22; --ok-ink: #a8d4a4; | |
| --warn-bg: #3d2f12; --warn-ink: #ecd39a; | |
| --fail-bg: #401f1d; --fail-ink: #e8a9a2; | |
| } | |
| } | |
| * { box-sizing: border-box; } | |
| body { | |
| font: 15px/1.5 -apple-system, "Helvetica Neue", sans-serif; | |
| color: var(--ink); | |
| background: | |
| linear-gradient(var(--hair) 1px, transparent 1px) 0 0 / 100% 56px, | |
| linear-gradient(90deg, var(--hair) 1px, transparent 1px) 0 0 / 56px 100%, | |
| var(--paper); | |
| background-blend-mode: soft-light, soft-light, normal; | |
| max-width: 960px; margin: 0 auto; padding: 0 1.2rem 4rem; | |
| } | |
| .eyebrow { font-size: 0.72em; letter-spacing: 0.18em; text-transform: uppercase; | |
| color: var(--muted); } | |
| header.masthead { padding: 2.2rem 0 1.2rem; border-bottom: 1px solid var(--ink); } | |
| header.masthead h1 { font-size: 2.6em; line-height: 1.05; margin: 0.25em 0 0.15em; | |
| letter-spacing: -0.02em; } | |
| header.masthead .sub { font-family: Georgia, serif; font-style: italic; color: var(--muted); | |
| max-width: 40rem; } | |
| .masthead-row { display: flex; align-items: flex-end; gap: 1.5rem; justify-content: space-between; | |
| position: relative; } | |
| .bubble { position: absolute; right: 128px; top: -2px; max-width: 240px; | |
| background: var(--card); border: 1px solid var(--ink); border-radius: 8px; | |
| padding: 7px 12px; font-size: 0.82em; line-height: 1.35; z-index: 3; | |
| transform-origin: bottom right; animation: bubblepop 0.25s ease-out; } | |
| .bubble::after { content: ""; position: absolute; right: -7px; bottom: 10px; | |
| width: 10px; height: 10px; background: var(--card); | |
| border-right: 1px solid var(--ink); border-top: 1px solid var(--ink); | |
| transform: rotate(45deg); } | |
| @keyframes bubblepop { from { transform: scale(0.7); opacity: 0; } to { transform: scale(1); opacity: 1; } } | |
| .botcorner.wave .arm { animation: wave 0.7s ease-in-out 3; } | |
| @keyframes wave { 0%, 100% { transform: rotate(0deg); } 40% { transform: rotate(-26deg); } | |
| 70% { transform: rotate(12deg); } } | |
| @media (max-width: 640px) { .bubble { display: none; } } | |
| /* busy = an episode is running: the librarian reads along, fast */ | |
| .botcorner.busy .pupils { animation-duration: 0.9s; } | |
| .botcorner.busy .page, | |
| .botcorner.busy .arm { animation-duration: 2.1s; } | |
| /* consult = a tool call just fired: reach for the stack, magnifier out */ | |
| .botcorner.consult .arm { animation: consult 1s ease-in-out; } | |
| @keyframes consult { | |
| 0%, 100% { transform: rotate(0deg); } | |
| 35% { transform: rotate(-34deg); } | |
| 75% { transform: rotate(-30deg); } | |
| } | |
| .botcorner .stackbook { transform-box: fill-box; transform-origin: center; } | |
| .botcorner.consult .stackbook { animation: booklift 1s ease-in-out; } | |
| @keyframes booklift { | |
| 0%, 100% { transform: translate(0, 0) rotate(0deg); } | |
| 40% { transform: translate(1px, -5px) rotate(-6deg); } | |
| 70% { transform: translate(1px, -4px) rotate(-4deg); } | |
| } | |
| .botcorner .magnifier { opacity: 0; transform-box: fill-box; transform-origin: center; } | |
| .botcorner.consult .magnifier { animation: magsweep 1s ease-in-out; } | |
| @keyframes magsweep { | |
| 0%, 100% { opacity: 0; transform: translate(6px, 6px) scale(0.7); } | |
| 25% { opacity: 1; transform: translate(0, 0) scale(1); } | |
| 45% { opacity: 1; transform: translate(-3px, 1px) scale(1); } | |
| 65% { opacity: 1; transform: translate(2px, -1px) scale(1); } | |
| 85% { opacity: 1; transform: translate(0, 0) scale(1); } | |
| } | |
| /* thought bubble: shown while a model turn is in flight (it really is thinking) */ | |
| .thought[hidden] { display: none; } | |
| .thought { position: absolute; right: 108px; top: 6px; background: var(--card); | |
| border: 1px solid var(--muted); border-radius: 50%; padding: 8px 12px; z-index: 2; | |
| display: flex; gap: 4px; align-items: center; } | |
| .thought::before, .thought::after { content: ""; position: absolute; background: var(--card); | |
| border: 1px solid var(--muted); border-radius: 50%; } | |
| .thought::before { width: 8px; height: 8px; right: -10px; bottom: -6px; } | |
| .thought::after { width: 4px; height: 4px; right: -17px; bottom: -13px; } | |
| .thought span { width: 5px; height: 5px; border-radius: 50%; background: var(--muted); | |
| animation: thinkdots 1.2s infinite; } | |
| .thought span:nth-child(2) { animation-delay: 0.2s; } | |
| .thought span:nth-child(3) { animation-delay: 0.4s; } | |
| @keyframes thinkdots { 0%, 100% { opacity: 0.25; } 40% { opacity: 1; } } | |
| @media (max-width: 640px) { .thought { display: none; } } | |
| @media (prefers-reduced-motion: reduce) { .thought span { animation: none; } } | |
| .masthead-text { min-width: 0; } | |
| .botcorner { width: 120px; flex: 0 0 auto; color: var(--ink); opacity: 0.85; } | |
| .botcorner .pupils { animation: scanline 3.2s infinite; } | |
| @keyframes scanline { /* read left-to-right, snap back like a carriage return */ | |
| 0% { transform: translateX(-1.6px); } | |
| 78% { transform: translateX(1.8px); } | |
| 84% { transform: translateX(-1.6px); } | |
| 100% { transform: translateX(-1.6px); } | |
| } | |
| .botcorner .page { transform-origin: 58px 90px; animation: pageflip 6.4s infinite; } | |
| @keyframes pageflip { | |
| 0%, 55% { transform: rotate(0deg); opacity: 1; } | |
| 70% { transform: rotate(-38deg); opacity: 1; } | |
| 78% { transform: rotate(-64deg); opacity: 0; } | |
| 79%, 100%{ transform: rotate(0deg); opacity: 0; } | |
| 54.9% { opacity: 1; } | |
| } | |
| .botcorner .arm { transform-origin: 58px 68px; animation: scribble 6.4s infinite; } | |
| @keyframes scribble { | |
| 0%, 55%, 100% { transform: rotate(0deg); } | |
| 62% { transform: rotate(9deg); } | |
| 70% { transform: rotate(-4deg); } | |
| 76% { transform: rotate(6deg); } | |
| } | |
| @media (max-width: 640px) { .botcorner { display: none; } } | |
| @media (prefers-reduced-motion: reduce) { | |
| .botcorner .pupils, .botcorner .page, .botcorner .arm { animation: none; } | |
| } | |
| section.block { border: 1px solid var(--hair); background: var(--card); | |
| border-radius: 4px; margin: 1.4rem 0; } | |
| section.block > .block-head { display: flex; align-items: center; gap: 10px; | |
| padding: 10px 16px; border-bottom: 1px solid var(--hair); } | |
| .block-num { border: 1px solid var(--hair); border-radius: 50%; width: 26px; height: 26px; | |
| display: inline-flex; align-items: center; justify-content: center; | |
| font-size: 0.7em; color: var(--muted); } | |
| .block-body { padding: 14px 16px; } | |
| button { padding: 7px 16px; cursor: pointer; border: 1px solid var(--ink); | |
| border-radius: 3px; background: transparent; color: var(--ink); font: inherit; | |
| font-size: 0.85em; letter-spacing: 0.06em; text-transform: uppercase; } | |
| button:hover { background: var(--soft); } | |
| button:disabled { opacity: 0.45; cursor: default; } | |
| select, input[type=text] { padding: 7px 10px; font: inherit; border: 1px solid var(--hair); | |
| border-radius: 3px; min-width: 230px; background: var(--card); color: inherit; } | |
| .meta { color: var(--muted); font-size: 0.85em; } | |
| .reject { color: var(--fail-ink); font-size: 0.9em; } | |
| .caps { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); | |
| border: 1px solid var(--hair); border-radius: 3px; margin: 6px 0 10px; } | |
| .caps > div { padding: 5px 10px; border-right: 1px solid var(--hair); font-size: 0.78em; } | |
| .caps > div:last-child { border-right: none; } | |
| .caps b { display: block; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.85em; | |
| color: var(--muted); font-weight: 500; } | |
| .caps.spec { margin: 1rem 0 0.2rem; background: var(--card); } | |
| .caps.spec a { color: inherit; } | |
| footer.gate { margin-top: 2.2rem; border-top: 1px solid var(--hair); padding-top: 0.9rem; | |
| display: grid; gap: 5px; max-width: 34rem; } | |
| footer.gate a { color: inherit; } | |
| .gatebar { height: 5px; border: 1px solid var(--hair); border-radius: 3px; | |
| background: var(--card); overflow: hidden; } | |
| .gatebar-fill { height: 100%; width: 0%; background: var(--ink); | |
| transition: width 0.8s ease-out; } | |
| .health { font-size: 0.9em; } | |
| .health.ok { color: var(--ok-ink); } | |
| .health.warm { color: var(--warn-ink); } | |
| .health.bad { color: var(--fail-ink); } | |
| .gen { border: 1px solid var(--hair); border-radius: 4px; padding: 12px 14px; | |
| margin: 12px 0; background: var(--card); } | |
| .gen h3 { margin: 0 0 8px; font-size: 0.78em; letter-spacing: 0.16em; | |
| text-transform: uppercase; color: var(--muted); font-weight: 600; } | |
| details.tool { margin: 6px 0; border-left: 2px solid var(--hair); padding-left: 10px; } | |
| details.tool summary { cursor: pointer; font-family: ui-monospace, monospace; | |
| font-size: 0.83em; color: var(--muted); } | |
| .actor { font-family: -apple-system, sans-serif; font-size: 0.85em; letter-spacing: 0.1em; | |
| text-transform: uppercase; color: var(--accent); } | |
| .obs-label { font-size: 0.72em; letter-spacing: 0.1em; text-transform: uppercase; | |
| color: var(--muted); margin: 6px 0 0; } | |
| details.tool[open] summary { color: var(--ink); } | |
| details.tool pre { margin: 6px 0 2px; padding: 8px 10px; background: var(--soft); | |
| border-radius: 3px; font-size: 0.78em; overflow: auto; white-space: pre-wrap; | |
| word-break: break-word; max-height: 260px; } | |
| .assistant { color: var(--muted); font-size: 0.85em; font-style: italic; margin: 4px 0; } | |
| details.think { margin: 5px 0; border-left: 2px dotted var(--hair); padding-left: 10px; } | |
| details.think summary { cursor: pointer; font-size: 0.78em; letter-spacing: 0.08em; | |
| text-transform: uppercase; color: var(--muted); } | |
| details.think pre { margin: 6px 0 2px; padding: 8px 10px; background: var(--soft); | |
| border-radius: 3px; font-size: 0.78em; color: var(--muted); white-space: pre-wrap; | |
| word-break: break-word; max-height: 220px; overflow-y: auto; font-style: italic; } | |
| .nudge { color: var(--accent); font-size: 0.78em; letter-spacing: 0.08em; | |
| text-transform: uppercase; } | |
| .coverage { display: inline-block; background: var(--warn-bg); color: var(--warn-ink); | |
| border-radius: 3px; padding: 0 6px; font-size: 0.75em; margin-left: 6px; } | |
| .spin { display: inline-block; animation: pulse 1.2s infinite; color: var(--muted); } | |
| @keyframes pulse { 50% { opacity: 0.25; } } | |
| .tldr { margin: 10px 0 6px; padding: 12px 14px; background: var(--soft); | |
| border-radius: 3px; border-left: 3px solid var(--ink); | |
| font-family: Georgia, serif; font-size: 1.05em; position: relative; } | |
| .tldr.stamped { padding-right: 132px; } /* text never runs under the stamp */ | |
| .stamp { position: absolute; top: 8px; right: 14px; transform: rotate(-8deg); | |
| color: #a33327; border: 2px solid #a33327; border-radius: 4px; | |
| box-shadow: inset 0 0 0 1px var(--soft), inset 0 0 0 2px #a33327; | |
| padding: 3px 10px; font: 600 0.62em/1.3 -apple-system, sans-serif; | |
| letter-spacing: 0.18em; text-transform: uppercase; text-align: center; | |
| opacity: 0.82; pointer-events: none; mix-blend-mode: multiply; | |
| animation: stampin 0.45s cubic-bezier(0.2, 2.2, 0.4, 1); } | |
| @media (prefers-color-scheme: dark) { | |
| .stamp { color: #e07a6d; border-color: #e07a6d; | |
| box-shadow: inset 0 0 0 1px var(--soft), inset 0 0 0 2px #e07a6d; | |
| mix-blend-mode: normal; } | |
| } | |
| @keyframes stampin { | |
| 0% { transform: rotate(-20deg) scale(2.4); opacity: 0; } | |
| 60% { transform: rotate(-8deg) scale(0.96); opacity: 0.9; } | |
| 100% { transform: rotate(-8deg) scale(1); opacity: 0.82; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { .stamp { animation: none; } } | |
| .tldr.refusal { color: var(--muted); font-style: italic; background: transparent; | |
| border: 1px dashed var(--hair); border-left-style: dashed; } | |
| .badges { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 2px; } | |
| .chip { border-radius: 3px; padding: 1px 8px; font-size: 0.78em; | |
| font-family: ui-monospace, monospace; } | |
| .chip.ok { background: var(--ok-bg); color: var(--ok-ink); } | |
| .chip.warn { background: var(--warn-bg); color: var(--warn-ink); } | |
| .chip.fail { background: var(--fail-bg); color: var(--fail-ink); } | |
| .chip.muted{ background: var(--soft); color: var(--muted); } | |
| .rate { display: flex; gap: 10px; margin: 12px 0; align-items: center; } | |
| .rate button.picked { background: var(--ink); color: var(--paper); } | |
| .viewer { margin-top: 10px; } | |
| .viewer summary { cursor: pointer; font-size: 0.8em; letter-spacing: 0.12em; | |
| text-transform: uppercase; color: var(--muted); } | |
| .viewer iframe { width: 100%; height: 420px; border: 1px solid var(--hair); | |
| border-radius: 4px; margin-top: 8px; } | |