 :root { color-scheme: light dark; --paper: #FAF7F1; --paper-2: #F2EEE4; --paper-raised: #FFFDF8; --ink-1: #181C24; --ink-2: #262C38; --ink-3: #3C4451; --ink-4: #5C6470; --ink-5: #767D88; --rule: #DFD9CC; --rule-strong: #C7BFAF; --seal: #9B2C22; --seal-field: #9B2C22; --seal-field-ink: #FDF8F2; --seal-press: #7C2119; --indigo: #1C3C6E; --indigo-bright: #005ADF; --ochre: #7E5220; --aside-field: #E7E3D7; --warn-field: #F2E2C0; --ink-wash: rgba(60, 68, 81, .075); --edge-shadow: rgba(24, 28, 36, .18); --logo-edge: transparent; --face-text: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "Hoefler Text", "URW Palladio L", P052, Georgia, "Liberation Serif", "DejaVu Serif", serif; --face-chrome: ui-sans-serif, system-ui, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "DejaVu Sans", sans-serif; --face-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace; --s1: .5rem; --s2: .875rem; --s3: 1.4rem; --s4: 2.2rem; --s5: 3.6rem; --maxw: 72rem; --measure: 38rem; --pad: clamp(1.15rem, 5vw, 3rem); --gutter: clamp(.85rem, 3vw, 2.6rem); --jump: 5rem; --dur: 150ms; --ease: cubic-bezier(.2, .6, .3, 1); } @media (prefers-color-scheme: dark) { :root { --paper: #14161A; --paper-2: #1A1D23; --paper-raised: #1E2229; --ink-1: #F2EFE7; --ink-2: #E1DED5; --ink-3: #C6C3BB; --ink-4: #9AA0A8; --ink-5: #6B7280; --rule: #2C3139; --rule-strong: #3D434D; --seal: #E06A5C; --seal-field: #B23A2E; --seal-field-ink: #FFF4F0; --seal-press: #A8352A; --indigo: #7FB0F5; --indigo-bright: #A8CBFF; --ochre: #CE9C5C; --aside-field: #1A2230; --warn-field: #2A2118; --ink-wash: rgba(198, 195, 187, .09); --edge-shadow: rgba(0, 0, 0, .55); --logo-edge: #545B66; } } *, *::before, *::after { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; background: var(--paper); color: var(--ink-3); font-family: var(--face-text); font-size: 1.0625rem; line-height: 1.75; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } @media (min-width: 48em) { body { font-size: 1.125rem; } } h1, h2, h3, h4, h5, h6 { font-family: var(--face-text); font-weight: 600; color: var(--ink-1); line-height: 1.22; text-wrap: balance; overflow-wrap: break-word; margin: 0; } h2, h3, h4 { color: var(--ink-2); } p { margin: 0 0 var(--s3); } a { color: var(--indigo); text-decoration: none; } a:hover { color: var(--indigo-bright); } :focus-visible { outline: 2px solid var(--seal); outline-offset: 3px; border-radius: 1px; } ::selection { background: var(--seal-field); color: var(--seal-field-ink); } img, svg { max-width: 100%; } img { height: auto; } .sheet { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad); } .kicker { font-family: var(--face-chrome); font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-4); margin: 0 0 var(--s2); } .skip { position: absolute; left: -9999px; top: 0; z-index: 99; background: var(--seal-field); color: var(--seal-field-ink); font-family: var(--face-chrome); font-size: .9rem; padding: .6rem 1rem; } .skip:focus { left: .5rem; top: .5rem; } .stroke { border: 0; height: 1px; margin: 0; background: linear-gradient(90deg, var(--rule-strong) 0, var(--rule) 34%, transparent 92%); } .rail__nav a[aria-current] { color: var(--ink-1); } .rail__nav a[aria-current]::after { content: ""; position: absolute; left: 50%; bottom: -.34rem; width: .42rem; height: .42rem; background: var(--seal); transform: translateX(-50%); } .rail { position: sticky; top: 0; z-index: 40; background: var(--paper-raised); border-bottom: 1px solid var(--rule); } .rail__in { max-width: var(--maxw); margin-inline: auto; padding: .55rem var(--pad); display: flex; align-items: center; gap: var(--s3); } .mark { position: relative; display: inline-flex; align-items: center; gap: .55rem; color: var(--ink-1); font-family: var(--face-chrome); font-weight: 600; font-size: 1rem; letter-spacing: .01em; white-space: nowrap; } .mark:hover { color: var(--ink-1); } .mark svg { height: 1.95rem; width: auto; flex: none; } .mark svg { view-transition-name: mark-208; } .rail__nav { margin-left: auto; } .rail__nav > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--s2); } .rail__nav a { position: relative; display: inline-block; font-family: var(--face-chrome); font-size: .88rem; font-weight: 500; letter-spacing: .01em; color: var(--ink-4); padding: .35rem .1rem .3rem; transition: color var(--dur) var(--ease); } .rail__nav a:hover { color: var(--ink-1); } .lang ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; } .lang a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; min-height: 2.25rem; font-family: var(--face-chrome); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-4); transition: color var(--dur) var(--ease); } .lang a:hover { color: var(--ink-1); } .lang a[aria-current] { color: var(--ink-1); } .search { display: inline-flex; align-items: center; } .seek, pagefind-modal-trigger button { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; background: none; border: 0; cursor: pointer; color: var(--ink-4); transition: color var(--dur) var(--ease); } .seek:hover, pagefind-modal-trigger button:hover { color: var(--ink-1); } .seek svg { width: 1.05rem; height: 1.05rem; } @media (max-width: 46em) { :root { --jump: 8.5rem; } .rail__in { flex-wrap: wrap; row-gap: 0; column-gap: var(--s2); padding-block: .35rem .2rem; } .rail__in::after { content: ""; flex-basis: 100%; height: 0; order: 1; } .mark { font-size: .95rem; } .mark svg { height: 1.6rem; } .search { margin-left: auto; } .rail__nav { order: 2; flex: 1 1 auto; min-width: 0; margin-left: 0; } .rail__nav > ul { flex-wrap: wrap; gap: .1rem .95rem; } .rail__nav a { font-size: .82rem; padding: .2rem .1rem .15rem; } .lang { order: 3; flex: none; margin-left: auto; } .lang ul { margin-right: -.35rem; } } .frontis { position: relative; overflow: hidden; } .frontis::before { content: ""; position: absolute; inset: 6% 8% 24% 46%; pointer-events: none; background: radial-gradient(closest-side, rgba(26, 43, 76, .075), rgba(26, 43, 76, 0)); } @media (prefers-color-scheme: dark) { .frontis::before { background: radial-gradient(closest-side, rgba(154, 160, 168, .05), rgba(154, 160, 168, 0)); } } .frontis__in { position: relative; padding-block: var(--s5) var(--s4); } .frontis__block { position: relative; max-width: 42rem; padding-left: var(--gutter); } .frontis__block::before { content: ""; position: absolute; left: 0; top: .2rem; bottom: 0; width: 1px; background: linear-gradient(180deg, var(--rule-strong) 0, var(--rule) 52%, transparent 100%); } .frontis h1 { font-size: clamp(2rem, 1.2rem + 3.1vw, 3.1rem); font-weight: 500; letter-spacing: -.005em; margin: 0 0 var(--s3); max-width: 16ch; } .frontis .lead { font-size: 1.1em; color: var(--ink-3); max-width: 34ch; } .frontis .lead p { margin: 0; } .frontis .lead strong { font-weight: 600; color: var(--ink-1); } @media (max-width: 46em) { .frontis__in { padding-block: var(--s4) var(--s3); } .frontis__block { padding-left: .8rem; max-width: none; } .frontis h1 { max-width: none; } .frontis::before { display: none; } } .latest { padding-block: var(--s4) var(--s5); } .latest__in { display: grid; gap: var(--s4); grid-template-columns: minmax(0, 1fr); } @media (min-width: 58em) { .latest__in { grid-template-columns: minmax(0, 1fr) minmax(0, 17rem); gap: var(--s5); } } .teaser .date { display: block; margin-bottom: var(--s1); } .latest__title { font-size: clamp(1.5rem, 1.1rem + 1.7vw, 2.2rem); font-weight: 500; margin: 0 0 var(--s2); max-width: 22ch; } .latest__title a { color: inherit; } .latest__title a:hover { color: var(--ink-2); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; text-decoration-color: var(--rule-strong); } .latest__deck { font-style: italic; font-size: 1.08em; color: var(--ink-4); max-width: 44ch; margin: 0 0 var(--s3); } .latest__excerpt { max-width: var(--measure); margin-bottom: var(--s3); } .latest__excerpt p { margin-bottom: var(--s2); } .teaser__more { margin-bottom: 0; } .more { font-family: var(--face-chrome); font-size: .85rem; font-weight: 600; letter-spacing: .04em; display: inline-flex; align-items: baseline; gap: .5rem; } .more::after { content: "\2192"; display: inline-block; transition: transform var(--dur) var(--ease); } .more:hover::after { transform: translateX(.28rem); } .latest__more { margin-top: var(--s5); } .box { list-style: none; margin: 0; padding: 0; max-width: var(--measure); display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: .9rem; } .box li, .box a { grid-column: 1 / -1; grid-template-columns: subgrid; } .box li { display: grid; border-top: 1px solid var(--rule); } .box li:last-child { border-bottom: 1px solid var(--rule); } .box a { display: grid; row-gap: .2rem; align-items: baseline; padding: var(--s2) 0; color: var(--ink-2); } .box a:hover { color: var(--indigo-bright); } .box__name { font-size: 1rem; font-weight: 600; line-height: 1.35; overflow-wrap: break-word; } @media (max-width: 34em) { .box { grid-template-columns: minmax(0, 1fr); } .box a { row-gap: .1rem; } } .pager ol { list-style: none; margin: var(--s2) 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .1rem; } .pager a, .pager__here, .pager__gap { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; min-height: 2.25rem; font-family: var(--face-chrome); font-size: .74rem; font-weight: 600; letter-spacing: .08em; font-variant-numeric: tabular-nums; } .pager a { color: var(--ink-4); transition: color var(--dur) var(--ease); } .pager a:hover { color: var(--ink-1); } .pager__here { color: var(--ink-1); } .pager__gap { color: var(--ink-5); min-width: 1.2rem; font-weight: 400; } .date { font-family: var(--face-chrome); font-size: .72rem; font-weight: 600; letter-spacing: .08em; color: var(--ink-4); font-variant-numeric: tabular-nums; } .svcs { font-family: var(--face-chrome); } @media (min-width: 58em) { .latest__in > * + .svcs { border-left: 1px solid var(--rule); padding-left: var(--gutter); } } .svcfoot { padding-block: var(--s4) var(--s5); } .svc { list-style: none; margin: 0; padding: 0; max-width: var(--measure); } .svc li { border-top: 1px solid var(--rule); } .svc a { display: block; padding: var(--s2) 0; color: var(--ink-2); } .svc a:hover { color: var(--indigo-bright); } .svc__name { display: block; font-size: .95rem; font-weight: 600; line-height: 1.35; overflow-wrap: break-word; } .svc__name::after { content: "\00a0\2192"; padding-left: .25rem; position: relative; left: 0; transition: left var(--dur) var(--ease); } .svc a:hover .svc__name::after { left: .28rem; } .svc__desc { display: block; font-family: var(--face-text); font-size: .92rem; line-height: 1.55; color: var(--ink-4); margin-top: .35rem; } .column { padding-block: var(--s4) var(--s5); } .prose { max-width: var(--measure); overflow-wrap: anywhere; counter-reset: sec; } .prose--h2, .prose--h3 { border-left: 1px solid var(--rule); padding-left: var(--gutter); } .prose--h2 > h2, .prose--h3 > h3 { position: relative; counter-increment: sec; font-size: clamp(1.28rem, 1.1rem + .8vw, 1.6rem); font-weight: 600; margin: var(--s5) 0 var(--s3); scroll-margin-top: var(--jump); } .prose > h2:first-child, .prose > h3:first-child, .prose > h4:first-child { margin-top: 0; } .prose--h2 > h2::before, .prose--h3 > h3::before { content: counter(sec, decimal-leading-zero); position: absolute; left: calc(-1 * var(--gutter)); top: .35em; transform: translateX(-50%); font-family: var(--face-chrome); font-size: .68rem; font-weight: 600; letter-spacing: .04em; color: var(--ink-4); background: var(--paper); padding: .3rem .28rem; line-height: 1; } .prose h2, .prose h3, .prose h4 { scroll-margin-top: var(--jump); } .prose h3, .prose--h3 > h4 { font-size: 1.12rem; font-weight: 600; margin: var(--s4) 0 var(--s2); } .prose--h3 > h3 { font-size: clamp(1.28rem, 1.1rem + .8vw, 1.6rem); margin: var(--s5) 0 var(--s3); } .prose h2 { margin: var(--s5) 0 var(--s3); } .prose ul, .prose ol { padding-left: 1.15rem; margin: 0 0 var(--s3); } .prose li { margin: .3rem 0; } .prose strong { font-weight: 600; color: var(--ink-1); } .prose a { text-decoration: underline; text-underline-offset: .16em; text-decoration-thickness: 1px; text-decoration-color: var(--rule-strong); transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease); } .prose a:hover { text-decoration-color: var(--indigo-bright); } .prose hr { border: 0; height: 1px; margin: var(--s4) 0; background: linear-gradient(90deg, var(--rule-strong) 0, var(--rule) 34%, transparent 92%); } .prose figure { margin: var(--s4) 0; } .prose figcaption { font-family: var(--face-chrome); font-size: .8rem; color: var(--ink-4); margin-top: .5rem; } .prose dl { margin: 0 0 var(--s3); } .prose dt { font-family: var(--face-chrome); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-4); margin-top: var(--s3); padding-top: var(--s2); border-top: 1px solid var(--rule); } .prose dl > dt:first-child { margin-top: 0; padding-top: 0; border-top: 0; } .prose dd { margin: .2rem 0 0; color: var(--ink-2); } @media (max-width: 34em) { .prose { padding-left: .8rem; } .prose--h2 > h2::before, .prose--h3 > h3::before { position: static; display: block; transform: none; background: none; padding: 0 0 .35rem; } } .prose.index { line-height: 1.66; } .prose.index > h2, .prose.index > h3 { font-family: var(--face-chrome); font-size: 1rem; font-weight: 600; letter-spacing: .015em; color: var(--ink-2); margin: var(--s5) 0 var(--s3); padding-top: var(--s3); position: relative; } .prose.index > h2::before, .prose.index > h3::before { content: ""; position: absolute; left: 0; right: 0; top: 0; width: auto; height: 1px; padding: 0; transform: none; background: linear-gradient(90deg, var(--rule-strong) 0, var(--rule) 40%, transparent 94%); } .prose.index > :is(h2, h3):first-child { padding-top: 0; } .prose.index > :is(h2, h3):first-child::before { content: none; } .prose.index p, .prose.index li { font-size: .97em; } .prose.index > *:last-child { margin-bottom: 0; } code, kbd, samp { font-family: var(--face-mono); font-size: .86em; background: var(--ink-wash); padding: .08em .3em; } pre { margin: 0 0 var(--s3); border-left: 2px solid var(--rule-strong); padding: var(--s3); overflow-x: auto; overscroll-behavior-x: contain; font-size: .85rem; line-height: 1.7; tab-size: 2; scrollbar-width: thin; scrollbar-color: var(--rule-strong) var(--paper-2); background: linear-gradient(var(--paper-2), var(--paper-2)) 0 0 / 2.4rem 100% no-repeat local, linear-gradient(var(--paper-2), var(--paper-2)) 100% 0 / 2.4rem 100% no-repeat local, radial-gradient(farthest-side at 0 50%, var(--edge-shadow), transparent) 0 0 / .8rem 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, var(--edge-shadow), transparent) 100% 0 / .8rem 100% no-repeat scroll, var(--paper-2); } .highlight { margin: 0 0 var(--s3); } .highlight pre { margin: 0; } pre code { display: block; padding: 0; border: 0; background: none; font-size: 1em; white-space: pre; } .chroma .c, .chroma .c1, .chroma .cm { color: var(--ink-4); font-style: italic; } .chroma .k, .chroma .kd, .chroma .nt { color: var(--indigo); font-weight: 600; } .chroma .s, .chroma .s1, .chroma .s2 { color: var(--ochre); } .chroma .nv, .chroma .na { color: var(--ink-2); } .tablewrap { overflow-x: auto; overscroll-behavior-x: contain; margin: 0 0 var(--s3); scrollbar-width: thin; scrollbar-color: var(--rule-strong) var(--paper); background: linear-gradient(var(--paper), var(--paper)) 0 0 / 2.4rem 100% no-repeat local, linear-gradient(var(--paper), var(--paper)) 100% 0 / 2.4rem 100% no-repeat local, radial-gradient(farthest-side at 0 50%, var(--edge-shadow), transparent) 0 0 / .8rem 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, var(--edge-shadow), transparent) 100% 0 / .8rem 100% no-repeat scroll; } table { border-collapse: collapse; width: 100%; font-size: .94rem; } caption { text-align: left; font-family: var(--face-chrome); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-4); padding-bottom: .6rem; } th { text-align: left; font-family: var(--face-chrome); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-4); padding: .4rem 1rem .5rem 0; border-bottom: 1px solid var(--rule-strong); white-space: nowrap; } td { padding: .55rem 1rem .55rem 0; border-bottom: 1px solid var(--rule); vertical-align: top; } tr > *:last-child { padding-right: 0; } th.ta-left, td.ta-left { text-align: left; } th.ta-center, td.ta-center { text-align: center; } th.ta-right, td.ta-right { text-align: right; } blockquote { margin: 0 0 var(--s3); padding-left: var(--s3); border-left: 2px solid var(--rule-strong); font-style: italic; color: var(--ink-3); } blockquote p:last-child { margin-bottom: 0; } blockquote.alert { --alert-ink: var(--ink-2); --alert-tint: var(--aside-field); font-style: normal; background: var(--alert-tint); border-left: 2px solid var(--alert-ink); padding: var(--s3); margin-block: var(--s4); } blockquote.alert-tip, blockquote.alert-important { --alert-ink: var(--indigo); } blockquote.alert-caution, blockquote.alert-warning { --alert-ink: var(--ochre); --alert-tint: var(--warn-field); } .alert-heading { display: flex; align-items: center; gap: .55rem; font-family: var(--face-chrome); font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--alert-ink); margin: 0 0 var(--s2); } .alert-heading::before { content: ""; flex: none; width: .44rem; height: .44rem; background: currentColor; } .prose p > a[href^="mailto:"]:only-child, .column p > a[href^="mailto:"]:only-child { display: inline-block; background: var(--seal-field); color: var(--seal-field-ink); font-family: var(--face-chrome); font-size: .9rem; font-weight: 600; letter-spacing: .06em; padding: .78rem 1.5rem; text-decoration: none; transition: background var(--dur) var(--ease), transform var(--dur) var(--ease); } .prose p > a[href^="mailto:"]:only-child:hover, .column p > a[href^="mailto:"]:only-child:hover { background: var(--seal-press); color: var(--seal-field-ink); text-decoration: none; transform: translateY(1px); } .prose dd a[href^="mailto:"] { display: inline; background: none; color: var(--indigo); padding: 0; font: inherit; letter-spacing: normal; text-decoration: underline; text-underline-offset: .16em; text-decoration-thickness: 1px; text-decoration-color: var(--rule-strong); } .prose dd a[href^="mailto:"]:hover { background: none; color: var(--indigo-bright); transform: none; } .prose .license { margin-top: var(--s4); } .prose .license a { display: inline-block; text-decoration: none; } .prose .license img { display: block; } .crumb { padding-top: var(--s3); font-family: var(--face-chrome); font-size: .78rem; color: var(--ink-4); } .crumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; } .crumb li + li::before { content: "/"; color: var(--ink-5); margin-right: .45rem; } .crumb a { color: var(--ink-4); } .crumb a:hover { color: var(--ink-1); } .crumb [aria-current] { color: var(--ink-2); } .piece__head { padding-block: var(--s4); } .piece__head h1 { max-width: 22ch; font-size: clamp(1.85rem, 1.15rem + 2.7vw, 2.85rem); font-weight: 500; letter-spacing: -.005em; margin: 0 0 var(--s3); } .piece__head h1:last-child { margin-bottom: 0; } .piece__head .deck { font-style: italic; font-size: 1.12em; color: var(--ink-4); max-width: 46ch; margin: 0; } .errmark { font-family: var(--face-chrome); font-size: clamp(3rem, 2rem + 6vw, 6rem); font-weight: 700; letter-spacing: .06em; line-height: 1; color: var(--ink-5); margin: 0 0 var(--s3); } .piece__grid { display: grid; gap: var(--s4); grid-template-columns: minmax(0, 1fr); padding-block: var(--s4) var(--s5); } @media (min-width: 64em) { .piece__grid { grid-template-columns: minmax(0, var(--measure)) minmax(0, 14rem); gap: var(--s5); justify-content: start; } } .marg { order: -1; font-family: var(--face-chrome); font-size: .82rem; line-height: 1.5; border-bottom: 1px solid var(--rule); padding-block: var(--s2); } .marg .kicker { margin-bottom: var(--s1); } @media (min-width: 64em) { .marg { order: 0; position: sticky; top: 5.5rem; align-self: start; max-height: calc(100vh - 7rem); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent; border-top: 0; border-bottom: 0; padding-block: 0; border-left: 1px solid var(--rule); padding-left: var(--gutter); } } .marg ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; display: grid; gap: .35rem .9rem; grid-template-columns: minmax(0, 1fr); } @media (min-width: 32em) and (max-width: 63.99em) { .marg ol { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 63.99em) { .marg--few ol { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; } } @media (min-width: 64em) { .marg ol { gap: .7rem; } } .marg li { counter-increment: toc; margin: 0; display: flex; gap: .6rem; } .marg li::before { content: counter(toc, decimal-leading-zero); flex: none; font-size: .68rem; font-weight: 600; letter-spacing: .04em; color: var(--ink-4); padding-top: .18em; } .marg a { color: var(--ink-4); } .marg a:hover { color: var(--ink-1); } .marg a[aria-current] { color: var(--ink-1); font-weight: 600; } .pieces { list-style: none; margin: 0; padding: 0; max-width: var(--measure); } .pieces li { border-top: 1px solid var(--rule); } .pieces li:last-child { border-bottom: 1px solid var(--rule); } .pieces a { display: block; padding: var(--s3) 0; color: var(--ink-2); } .pieces a:hover { color: var(--indigo-bright); } .pieces__name { display: block; font-size: 1.12rem; font-weight: 600; line-height: 1.3; letter-spacing: -.003em; overflow-wrap: break-word; } .pieces__desc { display: block; font-size: .95rem; font-style: italic; line-height: 1.55; color: var(--ink-4); margin-top: .35rem; max-width: 52ch; } .listing { padding-bottom: var(--s5); } .listing .kicker { margin-top: var(--s5); } .seealso { padding-block: var(--s4) var(--s5); font-family: var(--face-chrome); } .seealso ul { list-style: none; margin: 0; padding: 0; max-width: var(--measure); } .seealso li { border-top: 1px solid var(--rule); } .seealso a { display: block; padding: var(--s2) 0; color: var(--ink-2); font-size: 1rem; font-weight: 600; line-height: 1.35; overflow-wrap: break-word; } .seealso a:hover { color: var(--indigo-bright); } .colophon { background: var(--paper-2); border-top: 1px solid var(--rule); font-family: var(--face-chrome); font-size: .88rem; color: var(--ink-4); } .colophon__in { display: grid; gap: var(--s3) var(--s4); grid-template-columns: minmax(0, 1fr); padding-block: var(--s4); } @media (min-width: 46em) { .colophon__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .colophon__in > :first-child { grid-column: 1 / -1; } } @media (min-width: 62em) { .colophon__in { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); } .colophon__in > :first-child { grid-column: auto; } } .colophon h2 { font-family: var(--face-chrome); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-4); margin: 0 0 var(--s2); } .colophon ul { list-style: none; margin: 0; padding: 0; } .colophon li { margin: .3rem 0; } .colophon a { color: var(--ink-2); } .colophon a:hover { color: var(--indigo-bright); } .colophon a[aria-current] { color: var(--ink-1); font-weight: 600; } .colophon__mark { display: flex; align-items: center; gap: .6rem; margin-bottom: var(--s2); } .colophon__mark span { font-weight: 600; color: var(--ink-2); font-size: 1rem; } .colophon__legal { color: var(--ink-4); margin: 0; max-width: 34ch; font-size: .84rem; line-height: 1.6; } svg.σηʹ rect { stroke: var(--logo-edge); stroke-width: .25; } svg.σηʹ text { font-family: var(--face-chrome); } q:lang(en) { quotes: "\201C" "\201D" "\2018" "\2019"; } q:lang(fi), q:lang(sv) { quotes: "\00BB" "\00BB" "\203A" "\203A"; } q:lang(de) { quotes: "\201E" "\201C" "\201A" "\2018"; } @view-transition { navigation: auto; } ::view-transition-group(mark-208) { animation-duration: .28s; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; transition-duration: 1ms !important; scroll-behavior: auto !important; } ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation-duration: 1ms !important; } } @media print { .rail, .search, .colophon, .svcs, .svcfoot, .skip, .crumb, .marg { display: none !important; } body { background: #fff; color: #000; font-size: 11pt; line-height: 1.5; } h1, h2, h3, h4 { color: #000; } .frontis::before, .frontis__block::before { display: none; } .frontis__in { padding-block: 0 1rem; } .frontis__block { max-width: none; padding-left: 0; } .piece__grid { grid-template-columns: 1fr; gap: 0; padding-block: 0; } .piece__head { padding-block: 0 1rem; } .piece__head h1 { max-width: none; } .prose, .latest__excerpt, .pieces, .box { max-width: none; } .prose { border-left: 0; padding-left: 0; } .prose--h2 > h2::before, .prose--h3 > h3::before, .prose.index > h2::before, .prose.index > h3::before { display: none; } .prose.index > h2, .prose.index > h3 { border-top: 1px solid #000; padding-top: .4rem; } a { color: #000; text-decoration: underline; } .prose a[href^="http"]::after { content: " <" attr(href) ">"; font-size: .85em; word-break: break-all; } .prose p > a[href^="mailto:"]:only-child, .column p > a[href^="mailto:"]:only-child { display: inline; background: none; color: #000; padding: 0; font: inherit; letter-spacing: normal; text-decoration: underline; } pre, .tablewrap { background-image: none; background-color: #fff; overflow: visible; } pre, pre code { white-space: pre-wrap; overflow-wrap: anywhere; } pre { border-left: 1px solid #000; } th { white-space: normal; overflow-wrap: normal; } blockquote, pre, table, .highlight { break-inside: avoid; } h1, h2, h3 { break-after: avoid; } }