:root {
    --slv-ground: #ffffff;
    --slv-ground-alt: #eef4f0;
    --slv-ink: #17201b;
    --slv-ink-soft: #34403a;
    --slv-mute: #4f5b55;
    --slv-rule: #c9d4cd;
    --slv-rule-firm: #7d8a83;
    --slv-accent: #0b6e3f;
    --slv-accent-deep: #07512e;
    --slv-band: #0b5a34;
    --slv-band-ink: #ffffff;
    --slv-band-mute: #d3e8dc;
    --slv-signal: #b3261e;
    --slv-signal-ground: #fdf0ee;
    --slv-foot: #16241d;
    --slv-foot-ink: #eef4f0;
    --slv-foot-mute: #b9c9bf;
    --slv-foot-rule: #4d6356;
    --slv-foot-signal: #ffb4a6;
    --slv-focus: #b54708;
    --slv-focus-dark: #ffd166;
    --slv-font-sign: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'DejaVu Sans', 'Noto Sans', sans-serif;
    --slv-font-read: Georgia, 'Noto Serif', 'DejaVu Serif', 'Times New Roman', serif;
    --slv-font-mono: 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', monospace;
    --slv-step-0: 18px;
    --slv-step-1: 21.6px;
    --slv-step-2: 25.9px;
    --slv-step-3: 31.1px;
    --slv-step-4: 37.3px;
    --slv-step-5: 44.8px;
    --slv-page: 1088px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--slv-ground);
    color: var(--slv-ink);
    font: 18px/1.6 var(--slv-font-read);
    overflow-wrap: break-word;
}
a { color: var(--slv-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--slv-accent-deep); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--slv-focus); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--slv-font-sign); font-weight: 700; line-height: 1.2; margin: 0; }
p, ul, ol, dl, dd, blockquote, figure { margin: 0; }
em { font-style: normal; }
b, strong { font-weight: 700; }

.slv-skip {
    position: absolute; left: 12px; top: -80px; z-index: 20;
    padding: 10px 16px; background: var(--slv-ground); color: var(--slv-accent-deep);
    border: 2px solid var(--slv-accent-deep); font: 700 16px/1.4 var(--slv-font-sign); text-decoration: none;
}
.slv-skip:focus { top: 12px; }

.slv-band { background: var(--slv-band); color: var(--slv-band-ink); }
.slv-band__inner {
    max-width: var(--slv-page); margin: 0 auto; padding: 18px 16px 16px;
    display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 20px; row-gap: 4px;
}
.slv-band__inner :focus-visible { outline-color: var(--slv-focus-dark); }
.slv-mark { font: 700 var(--slv-step-3)/1.1 var(--slv-font-sign); letter-spacing: -.01em; margin: 0; }
.slv-mark__link { color: var(--slv-band-ink); text-decoration: none; display: inline-flex; align-items: center; gap: .32em; padding: 2px 0; }
.slv-mark__link::before {
    content: ""; flex: none; width: .78em; height: .78em;
    background:
        linear-gradient(currentColor, currentColor) center / 100% 34% no-repeat,
        linear-gradient(currentColor, currentColor) center / 34% 100% no-repeat;
}
.slv-mark__link:hover { color: var(--slv-band-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.slv-motto { font: 400 16px/1.4 var(--slv-font-sign); color: var(--slv-band-mute); }

.slv-plates {
    background: var(--slv-ground-alt); border-bottom: 1px solid var(--slv-rule);
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
    padding: 10px max(16px, calc((100% - var(--slv-page)) / 2 + 16px));
}
.slv-plate {
    position: relative; display: flex; flex-direction: column; justify-content: center;
    min-height: 52px; padding: 7px 32px 7px 12px;
    background: var(--slv-ground); color: var(--slv-ink); text-decoration: none;
    border: 2px solid var(--slv-band); border-radius: 3px;
}
.slv-plate::after {
    content: "\2192"; position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
    font: 700 18px/1 var(--slv-font-sign); color: var(--slv-band);
}
.slv-plate:hover { background: var(--slv-band); color: var(--slv-band-ink); }
.slv-plate:hover::after, .slv-plate_here::after { color: var(--slv-band-ink); }
.slv-plate:hover .slv-plate__count, .slv-plate_here .slv-plate__count { color: var(--slv-band-mute); }
.slv-plate_here { background: var(--slv-band); color: var(--slv-band-ink); }
.slv-plate_within { border-left-width: 8px; padding-left: 8px; }
.slv-plate__name { font: 700 16px/1.25 var(--slv-font-sign); }
.slv-plate__count { font: 400 13px/1.4 var(--slv-font-sign); color: var(--slv-mute); margin-top: 2px; }

.slv-main { max-width: var(--slv-page); margin: 0 auto; padding: 24px 16px 40px; }
.slv-heading {
    font-size: var(--slv-step-2); color: var(--slv-ink);
    border-bottom: 3px solid var(--slv-band); padding-bottom: 6px; margin: 0 0 14px;
}
.slv-heading__note { margin: -4px 0 14px; font-size: 16px; line-height: 1.5; color: var(--slv-mute); }
.slv-added, .slv-useful, .slv-about, .slv-boards, .slv-lost { margin: 0 0 40px; }

.slv-protocol {
    background: var(--slv-ground-alt); border: 3px solid var(--slv-band); border-radius: 4px;
    padding: 18px 16px 16px; margin: 0 0 36px;
}
.slv-protocol__title { font-size: var(--slv-step-2); color: var(--slv-accent-deep); margin: 0 0 6px; }
.slv-protocol__intro { font-size: 17px; line-height: 1.5; color: var(--slv-ink-soft); max-width: 46em; }
.slv-steps { list-style: none; padding: 0; margin: 16px 0 0; counter-reset: step; display: grid; gap: 14px; }
.slv-step { counter-increment: step; position: relative; padding-left: 52px; min-height: 40px; font-size: 17px; line-height: 1.5; }
.slv-step::before {
    content: counter(step); position: absolute; left: 0; top: 0;
    width: 38px; height: 38px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--slv-band); color: var(--slv-band-ink); font: 700 20px/1 var(--slv-font-sign);
}
.slv-step__verb {
    display: block; font: 700 16px/1.4 var(--slv-font-sign); letter-spacing: .06em;
    text-transform: uppercase; color: var(--slv-accent-deep);
}
.slv-step__text { display: block; color: var(--slv-ink); }
.slv-call {
    margin: 18px 0 0; background: var(--slv-ground); padding: 12px 16px;
    border: 2px solid var(--slv-signal); border-left-width: 10px; border-radius: 3px;
}
.slv-call__head { margin: 0; font-family: var(--slv-font-sign); }
.slv-call__label {
    display: block; font: 700 14px/1.3 var(--slv-font-sign); letter-spacing: .08em;
    text-transform: uppercase; color: var(--slv-signal);
}
.slv-call__number { display: block; font: 700 52px/1 var(--slv-font-sign); color: var(--slv-signal); letter-spacing: .02em; }
.slv-call__text { margin: 8px 0 0; font-size: 17px; line-height: 1.5; color: var(--slv-ink); }
.slv-protocol__more { margin: 14px 0 0; font: 700 16px/1.4 var(--slv-font-sign); }
.slv-protocol__more a { color: var(--slv-accent-deep); display: inline-block; padding: 3px 0; }

.slv-pinned { border-top: 6px solid var(--slv-accent); padding: 16px 0 0; margin: 0 0 40px; }
.slv-pinned__label {
    display: inline-block; margin: 0 0 10px; padding: 3px 8px;
    background: var(--slv-accent-deep); color: var(--slv-band-ink);
    font: 700 13px/1.4 var(--slv-font-sign); letter-spacing: .08em; text-transform: uppercase;
}
.slv-pinned__title { font-size: var(--slv-step-3); line-height: 1.15; margin: 0 0 12px; }
.slv-pinned__title a { color: var(--slv-ink); text-decoration: none; }
.slv-pinned__title a:hover { color: var(--slv-accent-deep); text-decoration: underline; text-decoration-thickness: 2px; }
.slv-pinned__text { max-width: 42em; }
.slv-pinned__text p { margin: 0 0 .8em; }
.slv-pinned__meta { margin: 4px 0 0; font: 400 15px/1.5 var(--slv-font-sign); color: var(--slv-mute); }
.slv-pinned__meta a { color: var(--slv-accent-deep); display: inline-block; padding: 3px 0; }

.slv-guides { list-style: none; padding: 0; margin: 0; counter-reset: guide; }
.slv-guide { counter-increment: guide; border-bottom: 1px solid var(--slv-rule); }
.slv-guide__link {
    display: grid; grid-template-columns: 2.4rem minmax(0, 1fr); column-gap: 6px;
    padding: 12px 0; min-height: 48px; color: var(--slv-ink); text-decoration: none;
}
.slv-guide__link::before {
    content: counter(guide); grid-row: 1 / span 2;
    font: 700 22px/1.2 var(--slv-font-sign); color: var(--slv-accent);
}
.slv-guide__title { font: 700 18px/1.35 var(--slv-font-sign); color: var(--slv-accent-deep); }
.slv-guide__link:hover .slv-guide__title { text-decoration: underline; text-decoration-thickness: 2px; }
.slv-guide__section { font: 400 14px/1.4 var(--slv-font-sign); color: var(--slv-mute); margin-top: 3px; }

.slv-prose_about { max-width: 42em; }

.slv-boards__grid { display: grid; gap: 16px; }
.slv-board { border: 1px solid var(--slv-rule-firm); border-top: 8px solid var(--slv-band); padding: 14px 16px 16px; }
.slv-board__title { font-size: var(--slv-step-1); }
.slv-board__title a { color: var(--slv-ink); text-decoration: none; display: inline-block; padding: 2px 0; }
.slv-board__title a:hover { color: var(--slv-accent-deep); text-decoration: underline; text-decoration-thickness: 2px; }
.slv-board__tally { margin: 6px 0 10px; font: 400 15px/1.4 var(--slv-font-sign); color: var(--slv-mute); }
.slv-board__list { list-style: none; padding: 0; margin: 0; }
.slv-board__list li { border-top: 1px solid var(--slv-rule); }
.slv-board__list a { display: block; padding: 8px 0; font-size: 17px; line-height: 1.4; text-decoration: none; color: var(--slv-accent-deep); }
.slv-board__list a:hover { text-decoration: underline; }
.slv-board__more { margin: 10px 0 0; font: 700 15px/1.4 var(--slv-font-sign); }
.slv-board__more a { color: var(--slv-accent-deep); display: inline-block; padding: 3px 0; }

.slv-entries { list-style: none; padding: 0; margin: 0; }
.slv-entry { display: grid; gap: 3px; padding: 12px 0; border-bottom: 1px solid var(--slv-rule); }
.slv-entry__title { font: 700 19px/1.3 var(--slv-font-sign); color: var(--slv-accent-deep); text-decoration: none; }
.slv-entry__title:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.slv-entry__title_here { color: var(--slv-ink); }
.slv-entry__lead { font-size: 16px; line-height: 1.5; color: var(--slv-ink-soft); }
.slv-entry__meta { font: 400 14px/1.4 var(--slv-font-sign); color: var(--slv-mute); }

.slv-piece__head { margin: 0 0 20px; }
.slv-piece__section { margin: 0 0 6px; font: 700 14px/1.4 var(--slv-font-sign); letter-spacing: .07em; text-transform: uppercase; }
.slv-piece__section a { color: var(--slv-accent-deep); text-decoration: none; display: inline-block; padding: 3px 0; }
.slv-piece__section a:hover { text-decoration: underline; }
.slv-piece__title { font-size: var(--slv-step-3); line-height: 1.15; margin: 0 0 12px; }
.slv-piece__lead { font-size: 20px; line-height: 1.45; color: var(--slv-ink-soft); margin: 0 0 10px; max-width: 38em; }
.slv-piece__date { font: 400 15px/1.5 var(--slv-font-sign); color: var(--slv-mute); }

.slv-ficha {
    background: var(--slv-ground-alt); border-left: 6px solid var(--slv-band);
    padding: 12px 14px; margin: 0 0 26px; font-size: 15px; line-height: 1.45;
}
.slv-ficha__head {
    margin: 0 0 4px; font: 700 13px/1.4 var(--slv-font-sign); letter-spacing: .08em;
    text-transform: uppercase; color: var(--slv-accent-deep);
}
.slv-jumps { padding-left: 1.4em; margin: 0 0 12px; font-family: var(--slv-font-sign); }
.slv-jumps a { color: var(--slv-accent-deep); display: block; padding: 3px 0; }
.slv-ficha__call { margin: 0; color: var(--slv-ink); }
.slv-ficha__number { font: 700 24px/1 var(--slv-font-sign); color: var(--slv-signal); margin-right: 4px; }

.slv-prose { max-width: 44rem; font-size: 18px; line-height: 1.7; }
.slv-prose p { margin: 0 0 1.1em; }
.slv-prose h2 { font-size: var(--slv-step-2); margin: 1.5em 0 .5em; scroll-margin-top: 12px; }
.slv-prose h3 { font-size: var(--slv-step-1); margin: 1.3em 0 .4em; }
.slv-prose h2:first-child, .slv-prose h3:first-child { margin-top: 0; }
.slv-prose ul { padding-left: 1.3em; margin: 0 0 1.1em; }
.slv-prose li { margin: 0 0 .4em; }
.slv-prose ol { list-style: none; padding: 0; margin: 0 0 1.2em; counter-reset: point; }
.slv-prose ol > li { counter-increment: point; position: relative; padding-left: 46px; min-height: 34px; margin: 0 0 .7em; }
.slv-prose ol > li::before {
    content: counter(point); position: absolute; left: 0; top: .1em;
    width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
    background: var(--slv-band); color: var(--slv-band-ink); font: 700 17px/1 var(--slv-font-sign);
}
.slv-prose blockquote {
    margin: 1.4em 0; padding: 14px 16px; background: var(--slv-ground-alt);
    border-left: 6px solid var(--slv-accent); font-size: 18px; line-height: 1.6;
}
.slv-prose blockquote p:last-child { margin-bottom: 0; }
.slv-callout { border: 2px solid var(--slv-signal); border-left-width: 10px; background: var(--slv-signal-ground); }
.slv-prose hr { border: 0; border-top: 2px solid var(--slv-rule); margin: 2em 0; }
.slv-prose code { font: .9em/1.4 var(--slv-font-mono); background: var(--slv-ground-alt); padding: 1px 4px; }
.slv-table__wrap { overflow-x: auto; margin: 0 0 1.3em; }
.slv-prose table { border-collapse: collapse; width: 100%; font: 400 16px/1.45 var(--slv-font-sign); font-variant-numeric: tabular-nums; }
.slv-prose th, .slv-prose td { text-align: left; vertical-align: top; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--slv-rule); }
.slv-prose th { border-bottom: 2px solid var(--slv-ink); font-weight: 700; }

.slv-onward { border-top: 3px solid var(--slv-band); padding-top: 18px; margin-top: 36px; max-width: 44rem; }
.slv-onward__part { margin: 0 0 28px; }
.slv-onward__title { font-size: var(--slv-step-1); margin: 0 0 6px; }
.slv-promote {
    background: var(--slv-ground-alt); border: 2px solid var(--slv-accent); border-radius: 3px;
    padding: 14px 16px; margin: 0 0 28px;
}
.slv-promote__label {
    margin: 0 0 4px; font: 700 13px/1.4 var(--slv-font-sign); letter-spacing: .08em;
    text-transform: uppercase; color: var(--slv-accent-deep);
}
.slv-promote__title { font: 700 20px/1.3 var(--slv-font-sign); margin: 0 0 6px; }
.slv-promote__title a { color: var(--slv-accent-deep); }
.slv-promote__note { font-size: 16px; line-height: 1.5; color: var(--slv-ink-soft); }

.slv-shelf { border-bottom: 3px solid var(--slv-band); padding-bottom: 14px; margin: 0 0 24px; }
.slv-shelf__kicker { margin: 0 0 6px; font: 700 14px/1.4 var(--slv-font-sign); letter-spacing: .07em; text-transform: uppercase; color: var(--slv-accent-deep); }
.slv-shelf__title { font-size: var(--slv-step-3); line-height: 1.15; margin: 0 0 10px; }
.slv-shelf__tally { font: 400 15px/1.5 var(--slv-font-sign); color: var(--slv-mute); }
.slv-prose_intro { margin: 0 0 32px; }
.slv-year { margin: 0 0 32px; max-width: 48rem; }
.slv-year__head { font-size: var(--slv-step-2); margin: 0 0 4px; }
.slv-year__head small { font: 400 15px/1 var(--slv-font-sign); color: var(--slv-mute); margin-left: 6px; }
.slv-piece_plain { max-width: 44rem; }

.slv-foot {
    background: var(--slv-foot); color: var(--slv-foot-ink); margin-top: 24px;
    padding: 24px max(16px, calc((100% - var(--slv-page)) / 2 + 16px)) 28px;
    display: grid; gap: 18px; font-family: var(--slv-font-sign);
}
.slv-foot :focus-visible { outline-color: var(--slv-focus-dark); }
.slv-foot__call { display: flex; align-items: center; gap: 14px; border: 2px solid var(--slv-foot-rule); border-radius: 3px; padding: 10px 14px; }
.slv-foot__number { font: 700 40px/1 var(--slv-font-sign); color: var(--slv-foot-signal); flex: none; }
.slv-foot__call-text { font-size: 16px; line-height: 1.45; color: var(--slv-foot-ink); }
.slv-foot__mark { display: block; font-size: 20px; line-height: 1.3; }
.slv-foot__note { margin: 4px 0 0; font-size: 15px; line-height: 1.5; color: var(--slv-foot-mute); max-width: 40em; }
.slv-foot__links { display: flex; flex-wrap: wrap; gap: 2px 20px; font-size: 15px; line-height: 1.4; }
.slv-foot__link { color: var(--slv-foot-ink); display: inline-block; padding: 4px 0; }
.slv-foot__link:hover { color: var(--slv-foot-ink); text-decoration-thickness: 2px; }
.slv-foot__span { display: block; font-size: 14px; line-height: 1.4; color: var(--slv-foot-mute); }

@media (max-width: 379px) {
    .slv-plate { padding-right: 10px; }
    .slv-plate::after { content: none; }
}

@media (min-width: 820px) {
    .slv-mark { font-size: var(--slv-step-4); }
    .slv-plates { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .slv-main { padding: 32px 24px 48px; }
    .slv-protocol { padding: 22px 24px 20px; }
    .slv-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .slv-call { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 22px; align-items: center; }
    .slv-call__text { margin: 0; }
    .slv-guides { columns: 2; column-gap: 32px; }
    .slv-guide { break-inside: avoid; }
    .slv-boards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .slv-piece { display: grid; grid-template-columns: 14rem minmax(0, 44rem); column-gap: 40px; grid-template-areas: "ficha head" "ficha text"; }
    .slv-piece__head { grid-area: head; }
    .slv-ficha { grid-area: ficha; align-self: start; position: sticky; top: 16px; margin: 6px 0 0; }
    .slv-piece > .slv-prose { grid-area: text; }
    .slv-piece_plain { display: block; }
    .slv-piece__title, .slv-shelf__title { font-size: var(--slv-step-4); }
    .slv-onward { margin-left: calc(14rem + 40px); }
    .slv-foot { grid-template-columns: minmax(0, 24rem) minmax(0, 1fr); column-gap: 40px; }
    .slv-foot__links, .slv-foot__span { grid-column: 1 / -1; }
}
