:root {
    color-scheme: light dark;

    /* Generated from tokens/*.tokens.json — do not edit. `mise run tokens:build` */

    --nord0: #2e3440;
    --nord1: #3b4252;
    --nord2: #434c5e;
    --nord3: #4c566a;
    --nord4: #d8dee9;
    --nord5: #e5e9f0;
    --nord6: #eceff4;
    --nord7: #8fbcbb;
    --nord8: #88c0d0;
    --nord9: #81a1c1;
    --nord10: #5e81ac;
    --nord11: #bf616a;
    --nord12: #d08770;
    --nord13: #ebcb8b;
    --nord14: #a3be8c;
    --nord15: #b48ead;
    --ext-frost-deep: #47698f;
    --ext-slate-mid: #5d6a80;
    --ext-slate-soft: #a9b2c2;
    --ext-frost-teal-deep: #447170;
    --ext-frost-blue-soft: #9bb4ce;
    --ext-aurora-green-deep: #577140;
    --ext-aurora-purple-deep: #895b80;
    --ext-aurora-purple-soft: #c6a9c0;
    --ext-aurora-red-deep: #b04752;
    --ext-aurora-red-soft: #daa4a9;

    --color-surface: light-dark(var(--nord6), var(--nord0));
    --color-surface-raised: light-dark(#ffffff, var(--nord1));
    --color-text: light-dark(var(--nord3), var(--nord6));
    --color-text-muted: light-dark(var(--ext-slate-mid), var(--nord9));
    --color-rule: light-dark(var(--nord4), var(--nord2));
    --color-accent: light-dark(var(--ext-frost-deep), var(--nord8));
    --color-accent-wash: light-dark(#dfe4ec, #3b4854);
    --color-syntax-comment: light-dark(var(--ext-slate-mid), var(--ext-slate-soft));
    --color-syntax-keyword: light-dark(var(--ext-frost-deep), var(--ext-frost-blue-soft));
    --color-syntax-entity: light-dark(var(--ext-frost-teal-deep), var(--nord7));
    --color-syntax-string: light-dark(var(--ext-aurora-green-deep), var(--nord14));
    --color-syntax-number: light-dark(var(--ext-aurora-purple-deep), var(--ext-aurora-purple-soft));
    --color-syntax-added: light-dark(var(--ext-aurora-green-deep), var(--nord14));
    --color-syntax-deleted: light-dark(var(--ext-aurora-red-deep), var(--ext-aurora-red-soft));

    --font-family-sans: "Rubik", "Noto Sans JP", sans-serif;
    --font-family-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;

    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;

    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-base: 16px;
    --font-size-lg: 20px;
    --font-size-xl: 26px;
    --font-size-2xl: 34px;

    --font-line-height-tight: 1.25;
    --font-line-height-body: 1.7;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;

    --radius-none: 0px;
    --radius-sm: 2px;
    --radius-md: 4px;

    --border-hairline: 1px;

}

/* Moving to another page of the site keeps the old one on screen until the
   new one can paint, instead of flashing a blank ground in between. */
@media (prefers-reduced-motion: no-preference) {
    @view-transition {
        navigation: auto;
    }
}

/* html tag */
body {
    margin: 0;
    background-color: var(--color-surface);
    color: var(--color-text);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-base);
    line-height: var(--font-line-height-body);
}

/* The page shell is its own element rather than a flex body, so fragments
   rendered outside it (Storybook stories) keep normal flow. */
div.shell {
    display: flex;
    align-items: stretch;
    min-height: 100vh;
}

a {
    color: var(--color-accent);
    text-decoration: none;

    &:hover {
        text-decoration: underline;
    }
}

/* Inside prose, colour alone does not separate a link from the text around it:
   the accent and the body colour sit at 1.29:1, well under the 3:1 that would
   make the hue difference dispensable. Underline them. */
div.scrap .content a,
div.about .content a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

hr {
    border: none;
    border-bottom: var(--border-hairline) solid var(--color-rule);
    margin: var(--space-6) 0;
}

code {
    font-family: var(--font-family-mono);
    font-size: 0.92em;
}

/* Code blocks take the raised surface, like every other panel. Nord's
   highlight.js theme painted them nord0 — the dark page ground itself — so the
   block had no edge at all; npm no longer ships that stylesheet either, which
   is why the token classes below live here now. */
pre:not(:has(code.mermaid)) {
    margin: var(--space-4) 0;
    padding: var(--space-3) var(--space-4);
    background-color: var(--color-surface-raised);
    border: var(--border-hairline) solid var(--color-rule);
    border-radius: var(--radius-md);
    overflow-x: auto;
}

p code {
    background-color: var(--color-surface-raised);
    border: var(--border-hairline) solid var(--color-rule);
    border-radius: var(--radius-sm);
    padding: 1px 4px;
}

.hljs-comment,
.hljs-quote {
    color: var(--color-syntax-comment);
}

.hljs-keyword,
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-tag,
.hljs-name,
.hljs-builtin-name,
.hljs-selector-tag,
.hljs-meta,
.hljs-meta-keyword,
.hljs-template-tag {
    color: var(--color-syntax-keyword);
}

.hljs-title,
.hljs-section,
.hljs-built_in,
.hljs-type,
.hljs-class,
.hljs-function,
.hljs-attr,
.hljs-doctag,
.hljs-formula,
.hljs-code,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
    color: var(--color-syntax-entity);
}

.hljs-string,
.hljs-meta-string,
.hljs-regexp {
    color: var(--color-syntax-string);
}

.hljs-number {
    color: var(--color-syntax-number);
}

.hljs-addition {
    color: var(--color-syntax-added);
}

.hljs-deletion {
    color: var(--color-syntax-deleted);
}

.hljs-emphasis {
    font-style: italic;
}

.hljs-strong {
    font-weight: var(--font-weight-bold);
}

blockquote {
    margin: var(--space-4) 0;
    padding-left: var(--space-4);
    border-left: 2px solid var(--color-rule);
    color: var(--color-text-muted);
}

table {
    border-collapse: collapse;

    th,
    td {
        border: var(--border-hairline) solid var(--color-rule);
        padding: var(--space-2) var(--space-3);
        text-align: left;
    }

    th {
        font-weight: var(--font-weight-medium);
    }
}

/* The shell: a persistent sidebar beside a status-bar-footed content column.
   No file tree and no graph pane in the sidebar — views and tags only. */
aside.sidebar {
    box-sizing: border-box;
    width: 264px;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-5) var(--space-4);
    background-color: var(--color-surface-raised);
    border-right: var(--border-hairline) solid var(--color-rule);

    div.brand-block {
        display: flex;
        flex-direction: column;
        gap: var(--space-1);
        padding: 0 var(--space-2);

        a.brand {
            display: flex;
            align-items: center;
            gap: var(--space-2);
            color: var(--color-text);

            &:hover {
                text-decoration: none;
            }

            span.mark {
                font-family: var(--font-family-mono);
                font-weight: var(--font-weight-medium);
                color: var(--color-accent);
            }

            span.name {
                font-size: var(--font-size-sm);
                font-weight: var(--font-weight-bold);
                line-height: var(--font-line-height-tight);
            }
        }

        .about {
            align-self: flex-start;
            font-family: var(--font-family-mono);
            font-size: var(--font-size-xs);
            color: var(--color-text-muted);
        }

        span.about.active {
            color: var(--color-text);
        }
    }

    div.search {
        position: relative;

        input {
            box-sizing: border-box;
            width: 100%;
            color: var(--color-text);
            background-color: var(--color-surface);
            border: var(--border-hairline) solid var(--color-rule);
            border-radius: var(--radius-md);
            padding: var(--space-2) var(--space-3);
            font-family: var(--font-family-mono);
            font-size: var(--font-size-xs);

            &:focus {
                outline: none;
                border-color: var(--color-accent);
            }
        }

        ul#search-results {
            position: absolute;
            top: calc(100% + var(--space-1));
            left: 0;
            right: 0;
            z-index: 10;
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            flex-direction: column;

            li {
                overflow: hidden;
                background-color: var(--color-surface);
                border: var(--border-hairline) solid var(--color-rule);
                border-radius: var(--radius-sm);
                white-space: nowrap;
                text-overflow: ellipsis;

                &:hover {
                    border-color: var(--color-accent);
                }

                a {
                    display: block;
                    box-sizing: border-box;
                    width: 100%;
                    padding: var(--space-1) var(--space-3);
                    color: var(--color-text);
                    font-size: var(--font-size-sm);

                    &:hover {
                        text-decoration: none;
                    }
                }
            }
        }
    }

    /* Every scope a list can show: the whole wiki, then each tag as a
       tree. On a list page the script recounts them for the chosen type. */
    nav.scopes {
        display: flex;
        flex-direction: column;
        gap: 2px;

        p.nav-label {
            margin: var(--space-3) 0 var(--space-1);
            padding: 0 var(--space-2);
            font-family: var(--font-family-mono);
            font-size: var(--font-size-xs);
            letter-spacing: 0.08em;
            color: var(--color-text-muted);
        }

        .item {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: var(--space-2);
            padding: var(--space-1) var(--space-2);
            padding-left: calc(var(--space-2) + var(--depth, 0) * var(--space-3));
            border-radius: var(--radius-md);
            font-size: var(--font-size-sm);
            color: var(--color-text);

            &:hover {
                text-decoration: none;
                background-color: var(--color-accent-wash);
            }
        }

        .item[aria-current] {
            background-color: var(--color-accent-wash);
            font-weight: var(--font-weight-medium);
        }

        .item.zero {
            color: var(--color-text-muted);
            opacity: 0.6;

            &:hover {
                background-color: transparent;
            }
        }

        span.tag-name {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-family: var(--font-family-mono);
            font-size: var(--font-size-xs);
            color: var(--color-accent);
        }

        span.syntax {
            color: var(--color-text-muted);
        }

        span.count {
            flex-shrink: 0;
            font-family: var(--font-family-mono);
            font-size: var(--font-size-xs);
            font-weight: var(--font-weight-regular);
            color: var(--color-text-muted);
        }
    }

    p.version {
        margin: auto 0 0;
        padding: 0 var(--space-2);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }
}

/* main column */
div.main-wrap {
    flex-grow: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex-grow: 1;
    box-sizing: border-box;
    width: 100%;
    max-width: 1080px;
    padding: var(--space-6) var(--space-7) 0;
}

footer.status-bar {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-7);
    padding: var(--space-2) var(--space-7);
    border-top: var(--border-hairline) solid var(--color-rule);
    font-family: var(--font-family-mono);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

/* scrap */
div.scrap {
    /* Prose reads at a measure, not at the full content width. */
    max-width: 760px;

    p.tags {
        display: flex;
        flex-wrap: wrap;
        gap: var(--space-2) var(--space-4);
        margin: 0 0 var(--space-2);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-sm);

        a.tag {
            color: var(--color-accent);

            span.syntax {
                color: var(--color-text-muted);
            }
        }
    }

    .context {
        margin: 0 0 var(--space-2);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        font-weight: var(--font-weight-regular);
        color: var(--color-text-muted);
    }

    h1.title {
        margin: 0;
        font-size: var(--font-size-2xl);
        line-height: var(--font-line-height-tight);
    }

    .commited-date {
        margin: var(--space-3) 0 0;
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }

    .content {
        margin: var(--space-5) 0 0;
        padding-top: var(--space-5);
        border-top: var(--border-hairline) solid var(--color-rule);
        word-break: break-word;

    }

    img {
        max-width: 100%;
    }
}

/* Autolink card, shared by scrap content and the about page. Underlines from
   the prose-link rule stay off it: the card is its own affordance. */
.content a.link-card {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    background-color: var(--color-surface-raised);
    border: var(--border-hairline) solid var(--color-rule);
    border-radius: var(--radius-md);
    margin: var(--space-4) 0;
    padding: var(--space-3) var(--space-4);
    text-decoration: none;

    &:hover {
        text-decoration: none;

        .host {
            text-decoration: underline;
        }
    }

    svg.icon {
        flex-shrink: 0;
        color: var(--color-text-muted);
    }

    .body {
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
    }

    .host {
        font-weight: var(--font-weight-medium);
        color: var(--color-text);
    }

    .url {
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* about — the README's own page */
div.about {
    max-width: 760px;

    .content {
        word-break: break-word;
    }
}

/* index — one list per scope; the page sorts and narrows its own rows */
div.index {
    p.list-head {
        display: flex;
        justify-content: space-between;
        gap: var(--space-4);
        margin: 0 0 var(--space-2);
        padding-bottom: var(--space-2);
        border-bottom: var(--border-hairline) solid var(--color-rule);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);

        span.view-name {
            color: var(--color-text);
        }

        span.syntax {
            color: var(--color-text-muted);
        }
    }

    p.jump-bar {
        display: flex;
        flex-wrap: wrap;
        gap: var(--space-1) var(--space-3);
        margin: 0 0 var(--space-3);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-sm);
    }

    /* A list opened with a query waits for the script to arrange it. */
    &[data-arranging] ul.scrap-rows {
        visibility: hidden;
    }

    /* Group headings and the jump bar belong to the title order only. */
    &:not([data-sort="title"]) {
        p.jump-bar,
        li.group-head {
            display: none;
        }
    }

    li.group-head {
        padding: var(--space-5) 0 var(--space-2);
        border-bottom: var(--border-hairline) solid var(--color-rule);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-medium);
        color: var(--color-accent);
    }

    p.empty {
        margin: var(--space-5) 0;
        font-size: var(--font-size-sm);
        color: var(--color-text-muted);
    }

    button.more {
        display: block;
        margin: var(--space-5) auto 0;
        padding: var(--space-2) var(--space-5);
        border: var(--border-hairline) solid var(--color-rule);
        border-radius: var(--radius-md);
        background: none;
        font-family: var(--font-family-mono);
        font-size: var(--font-size-sm);
        color: var(--color-accent);
        cursor: pointer;

        &:hover {
            border-color: var(--color-accent);
        }

        &[hidden] {
            display: none;
        }
    }
}

/* Sort and type narrow the list the way a label narrows an issue list:
   one option of each is always current. */
div.facets {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin: 0 0 var(--space-3);

    p.facet {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: var(--space-1) var(--space-2);
        margin: 0;
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }

    span.label {
        min-width: 3em;
    }

    .option {
        display: inline-flex;
        align-items: baseline;
        gap: var(--space-2);
        padding: var(--space-1) var(--space-2);
        border-radius: var(--radius-md);
        color: var(--color-text);

        &:hover {
            text-decoration: none;
            background-color: var(--color-accent-wash);
        }
    }

    .option[aria-current] {
        background-color: var(--color-accent-wash);
        font-weight: var(--font-weight-medium);
    }

    .option.zero {
        color: var(--color-text-muted);
        opacity: 0.6;

        &:hover {
            background-color: transparent;
        }
    }

    span.count {
        font-weight: var(--font-weight-regular);
        color: var(--color-text-muted);
    }
}

/* scrap rows — the index listing */
ul.scrap-rows {
    margin: 0;
    padding: 0;
    list-style: none;

    li.item {
        border-bottom: var(--border-hairline) solid var(--color-rule);
    }

    a.row {
        display: flex;
        align-items: baseline;
        gap: var(--space-5);
        padding: var(--space-3) 0;

        &:hover {
            text-decoration: none;

            .title {
                text-decoration: underline;
            }
        }
    }

    img.thumbnail {
        align-self: center;
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        object-fit: cover;
        border-radius: var(--radius-sm);
    }

    span.body {
        display: flex;
        flex-direction: column;
        gap: var(--space-1);
        flex-grow: 1;
        min-width: 0;
    }

    span.head {
        display: flex;
        align-items: baseline;
        gap: var(--space-2);
    }

    span.title {
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-medium);
        line-height: var(--font-line-height-tight);
        color: var(--color-accent);
    }

    span.ctx {
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }

    span.type {
        flex-shrink: 0;
        padding: 0 var(--space-1);
        border: var(--border-hairline) solid var(--color-rule);
        border-radius: var(--radius-sm);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }

    span.summary {
        font-size: var(--font-size-sm);
        line-height: 1.45;
        color: var(--color-text-muted);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    span.graph {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: var(--space-1);
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        line-height: 1.3;
        color: var(--color-text-muted);
    }
}

/* scrap links — compact list on scrap and tag pages */
section.connections {
    max-width: 760px;
    margin-top: var(--space-6);

    p.section-head {
        margin: 0 0 var(--space-2);
        padding-bottom: var(--space-2);
        border-bottom: var(--border-hairline) solid var(--color-rule);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }
}

ul.scrap-links {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0 var(--space-6);
    margin: var(--space-5) 0 0;
    padding: 0;
    list-style: none;

    li.item {
        border-bottom: var(--border-hairline) solid var(--color-rule);
    }

    a.link {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: var(--space-3);
        padding: var(--space-2) 0;

        &:hover {
            text-decoration: none;

            .title {
                text-decoration: underline;
            }
        }
    }

    span.title {
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-medium);
        color: var(--color-accent);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    span.ctx {
        flex-shrink: 0;
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }
}

ul.source-list {
    margin: var(--space-3) 0 0;
    padding: 0;
    list-style: none;

    li.item {
        padding: var(--space-2) 0;
        border-bottom: var(--border-hairline) solid var(--color-rule);
        font-size: var(--font-size-sm);
        overflow-wrap: anywhere;
    }

    span.resource {
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        color: var(--color-text-muted);
    }
}

/* neighbourhood graph — direction is carried by which side a scrap sits on
   (backlinks left, links right, mutual vertical) and by the arrowheads, so
   the drawing needs no colour of its own to be read. */
svg.scrap-graph {
    display: block;
    max-width: 100%;
    height: auto;
    margin: var(--space-5) auto 0;

    /* One ink for the whole wiring: an arrowhead brighter than the line it
       ends reads as a mark of its own rather than as that line's direction.
       Rule is the hairline-divider tone and fades out over a span this long
       (1.2:1 on the light ground), so both take the muted text tone. */
    line.edge {
        stroke: var(--color-text-muted);
        stroke-width: 1.2;
        fill: none;
    }

    path.head {
        fill: var(--color-text-muted);
    }

    /* Muted and accent are one Nord step apart — 1.35:1 dark, 1.04:1 light —
       so a filled neighbour and the accent centre land on the same tone.
       Form carries the difference instead: neighbours ring, the centre is the
       only solid dot, and hovering one fills it. */
    circle.dot {
        fill: var(--color-surface);
        stroke: var(--color-text-muted);
        stroke-width: 1.5;
    }

    circle.dot.center {
        fill: var(--color-accent);
        stroke: var(--color-surface);
        stroke-width: 2;
    }

    text.label {
        font-size: var(--font-size-xs);
        fill: var(--color-text);
    }

    text.label.center {
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-medium);
    }

    text.more {
        font-family: var(--font-family-mono);
        font-size: var(--font-size-xs);
        fill: var(--color-text-muted);
    }

    a.scrap:hover {
        circle.dot {
            fill: var(--color-accent);
            stroke: var(--color-accent);
        }

        text.label {
            fill: var(--color-accent);
            text-decoration: underline;
        }
    }
}

/* tag links */
ul.tag-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;

    a.link {
        display: inline-flex;
        align-items: baseline;
        gap: var(--space-2);
        font-family: var(--font-family-mono);
        font-size: var(--font-size-sm);
    }

    span.count {
        color: var(--color-text-muted);
        font-size: var(--font-size-xs);
    }
}

/* types — a type says what a scrap is, a tag what it is about. A type takes
   no wiki-link syntax marks, so the two never read alike. */
div.scrap p.type {
    display: inline-block;
    margin: var(--space-3) var(--space-4) 0 0;
    font-family: var(--font-family-mono);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);

    /* The committed date shares the type's line instead of stacking under it. */
    & + p.commited-date {
        display: inline-block;
    }
}

/* resource — what the scrap stands for, under its title. A long URL breaks
   anywhere rather than widening the page. */
div.scrap p.resource {
    margin: var(--space-2) 0 0;
    font-family: var(--font-family-mono);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    overflow-wrap: anywhere;
}

/* The sidebar collapses to a top block on narrow screens: no drawer, no JS,
   the nav simply stacks above the content. */
@media (max-width: 768px) {
    div.shell {
        display: block;
    }

    aside.sidebar {
        position: static;
        width: auto;
        height: auto;
        overflow-y: visible;
        border-right: none;
        border-bottom: var(--border-hairline) solid var(--color-rule);
    }

    div.main-wrap {
        min-height: 0;
    }

    main {
        padding: var(--space-5) var(--space-4) 0;
    }

    footer.status-bar {
        padding: var(--space-2) var(--space-4);
    }

    ul.scrap-rows {
        a.row {
            gap: var(--space-3);
        }

        span.graph {
            display: none;
        }
    }
}
