* { box-sizing: border-box; font: inherit; line-height: inherit; + hr:last-child { margin-top: calc(var(--hr-thickness) / -2); } + h2 { margin-top: var(--line-height); margin-bottom: 0; padding-top: calc(var(--line-height) * 0.5); padding-bottom: calc(var(--line-height) * 0.5); } + img { margin-top: calc(var(--baseline) * -1); } @media (prefers-reduced-motion: reduce) { transition: none; } } a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, grid, h1, h2, h3, h4, h5, h6, header, hgroup, hr, html, i, iframe, img, ins, kbd, label, legend, li, main, mark, menu, nav, noscript, object, ol, output, p, pre, q, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video { margin: 0; padding: 0; border: 0; vertical-align: baseline; } address, article, aside, blockquote, dd, dl, dt, fieldset, figure, form, h1, h2, h3, h4, h5, h6, li, nav, ol, p, pre, r-grid, table, tfoot, ul, video { margin-top: var(--block-spacing-top); margin-bottom: var(--block-spacing-bottom); } a { color: inherit; cursor: pointer; text-decoration: underline oklch(var(--uchu-yin-raw) / 30%); transition: all 0.2s; white-space: nowrap; -webkit-text-decoration: underline oklch(var(--uchu-yin-raw) / 30%); /// safari needs a hand &:hover { color: var(--uchu-blue-4); } } b, strong { font-weight: 600; code, pre, tt { font-weight: inherit; } } blockquote, q { quotes: none; &::after, &::before { content: none; } } button { margin: 0; padding: 0; appearance: none; background-color: transparent; border: none; } html { background-color: var(--background-color); color: var(--foreground-color); font-family: var(--font-sans), -system-ui, system-ui, sans-serif; font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "cv10" 1; font-size: var(--font-size); font-variant-ligatures: contextual common-ligatures; letter-spacing: -0.01rem; line-height: var(--line-height); } body { overflow-x: hidden; padding: calc(var(--line-height) * 2); padding-bottom: calc(var(--line-height) * 3); scroll-behavior: smooth; @media only screen and (max-width: 600px) { padding: var(--line-height); padding-bottom: calc(var(--line-height) * 2); } } :first-child { margin-top: unset; } :last-child { margin-bottom: unset; } hr { background-color: var(--foreground-color); border: none; height: var(--hr-thickness); margin-top: calc(var(--line-height) - var(--hr-thickness) / 2); margin-bottom: calc(var(--line-height) - var(--hr-thickness) / 2); opacity: 0.05; &:not(:first-child) { margin-top: var(--line-height); margin-bottom: calc(var(--line-height) - var(--hr-thickness)); } &:last-child, &:only-child { margin-top: calc(var(--line-height) - var(--hr-thickness) / 2); } &:first-child { margin-top: calc(var(--hr-thickness) / -2); margin-bottom: calc(var(--line-height) - var(--hr-thickness) / 2); } &:last-child { margin-bottom: calc(var(--hr-thickness) / -2); } &:only-child { margin-bottom: calc(var(--line-height) - var(--hr-thickness) / 2); } } em, i { font-style: italic; } code, pre, tt { font-family: var(--mono-font), Inconsolata, Menlo, monospace; font-variant-numeric: slashed-zero; /// best zero font-weight: 430; white-space: pre-wrap; word-wrap: break-word; b, strong { font-weight: 580; } } pre { display: block; overflow-x: auto; white-space: pre; word-wrap: normal; code, tt { white-space: pre; word-wrap: normal; } } h1 { font-size: var(--h1-size); font-weight: 720; letter-spacing: -0.05rem; line-height: calc(var(--line-height) * 2); margin-top: calc(var(--line-height) * 2); margin-bottom: var(--line-height); margin-left: calc(var(--h1-size) / -22); word-break: break-word; &.single-line { margin-top: var(--line-height); padding-top: calc(var(--line-height) * 0.5); padding-bottom: calc(var(--line-height) * 0.5); &:first-child { margin-top: 0; padding-bottom: calc(var(--line-height) * 0.5); } } &.large { --h1-size: 4rem; font-weight: 730; line-height: calc(var(--line-height) * 3); } &.xlarge { --h1-size: 5.5rem; font-weight: 740; line-height: calc(var(--line-height) * 4); } &.xxlarge { --h1-size: 7.5rem; font-weight: 750; line-height: calc(var(--line-height) * 5); } &.xxxlarge { --h1-size: 10.5rem; font-weight: 760; line-height: calc(var(--line-height) * 7); } } h2 { font-size: var(--h2-size); font-weight: 700; letter-spacing: -0.03rem; line-height: calc(var(--line-height) * 2); margin-bottom: var(--line-height); margin-left: calc(var(--h2-size) / -26); &.single-line { margin-top: var(--line-height); margin-bottom: 0; padding-top: calc(var(--line-height) * 0.5); padding-bottom: calc(var(--line-height) * 0.5); &:first-child { margin-top: unset; } } } h3, h4 { font-size: var(--h3-size); font-weight: 700; letter-spacing: -0.02rem; line-height: calc(var(--line-height) * 1.15); margin-bottom: var(--baseline); padding-top: calc(var(--baseline) * 0.75); padding-bottom: calc(var(--baseline) * 0.25); &.single-line { margin-bottom: 0; padding-bottom: calc(var(--baseline) * 1.25); } + h1, + h1.single-line { margin-top: calc(var(--baseline) * 3); } &.single-line + h1, &.single-line + h1.single-line, &.single-line + h2, &.single-line + h2.single-line { margin-top: var(--line-height); } + h2, + h2.single-line { margin-top: var(--baseline); } } h4 { font-size: var(--h4-size); font-weight: 700; letter-spacing: -0.012rem; } h5, h6 { font-weight: 670; letter-spacing: -0.015rem; margin-bottom: 0; } h1 > a, h2 > a, h3 > a, h4 > a, h5 > a, h6 > a { text-decoration: none; &:hover { color: inherit; text-decoration: underline oklch(var(--uchu-yin-raw) / 30%); } } img { display: block; margin-top: var(--baseline); margin-bottom: var(--baseline); &:first-child, &:last-child { display: block; margin-top: var(--baseline); margin-bottom: var(--baseline); } &:only-child { margin: 0; } &.cover, &.fill { object-fit: cover; } &.bottom, &.center, &.top { align-self: center; } &.bottom { object-position: center bottom; } &.center { object-position: center center; } &.top { object-position: center top; } &.left.bottom, &.left.center, &.left.top { align-self: flex-start; } &.left.bottom { object-position: left bottom; } &.left.center { object-position: left center; } &.left.top { object-position: left top; } &.right.bottom, &.right.center, &.right.top { align-self: flex-end; } &.right.bottom { object-position: right bottom; } &.right.center { object-position: right center; } &.right.top { object-position: right top; } } input, select { appearance: none; border: none; letter-spacing: -0.01rem; /// to match html rule -moz-appearance: none; -webkit-appearance: none; &:focus-visible { outline: 2px solid var(--uchu-blue-4); } } ol, ul { list-style-position: outside; --list-indentation: 2rem; &.compact > li { margin-bottom: 0; } } ol { &:not([start]) { counter-reset: ol-counter; list-style: none; padding-left: var(--list-indentation); > li { counter-increment: ol-counter; position: relative; &::before { --space: 0.5rem; --width: calc(var(--list-indentation) - var(--space)); width: var(--width); height: var(--line-height); content: counter(ol-counter) ". "; font-variant-numeric: tabular-nums; font-weight: 500; left: calc(-1 * (var(--width) + var(--space))); position: absolute; text-align: left; } } } &[start] { padding-inline-start: var(--list-indentation); } } ul { padding-left: 1.3rem; } li { margin-bottom: var(--baseline); margin-left: 0.2rem; > p + ol, > p + ul { margin-top: calc(var(--baseline) * -1); } &.task-list-item { list-style-type: none; > input[type=checkbox] { width: 1.5rem; height: var(--baseline); appearance: none; background: none; border: none; display: inline-block; list-style: none; margin-right: 0.5rem; margin-left: -1.4rem; opacity: 1; position: relative; --check-svg-url: url('data:image/svg+xml;utf8,'); --outline-svg-url: url('data:image/svg+xml;utf8,'); &::after, &::before { top: -0.25rem; bottom: -0.25rem; left: 0; background-position: 50%; background-repeat: no-repeat; background-size: contain; color: transparent; content: "×"; display: block; position: absolute; width: 1.1rem; @supports ((mask-image: linear-gradient(var(--uchu-yin), red))) { mask-position: center center; mask-repeat: no-repeat; mask-size: contain; } } &::after { background-image: var(--outline-svg-url); @supports ((mask-image: linear-gradient(var(--uchu-yin), red))) { background-color: var(--foreground-color); mask-image: var(--outline-svg-url); } } &[checked]::before { background-image: var(--check-svg-url); @supports ((mask-image: linear-gradient(var(--uchu-yin), red))) { background-color: var(--foreground-color); mask-image: var(--check-svg-url); } } } } } table { --border-opacity: 0.15; --border-color: rgba(var(--foreground-color-rgb), calc(var(--foreground-color-a) * var(--border-opacity))); --border-width: 1px; border-collapse: collapse; border-right: var(--border-width) solid var(--border-color); border-spacing: 0; border-top: var(--border-width) solid var(--border-color); overflow: auto; position: relative; margin-top: calc(var(--line-height) * 1 + var(--border-width) * -1); margin-bottom: calc(var(--line-height) * 1.5); * { box-sizing: border-box; } &:first-child { margin-top: calc(var(--line-height) * 0.5 + var(--border-width) * -1); margin-bottom: calc(var(--line-height) * 0.5); } td, th { background-image: linear-gradient(90deg, var(--border-color), var(--border-color) 1px, transparent 0, transparent calc(var(--baseline) / 2)); background-position: 0 -1px; background-repeat: no-repeat; background-size: 100% 100%; padding: var(--baseline) 1rem; position: relative; &::after { right: 0; bottom: 0; left: 0; background-color: var(--border-color); color: transparent; content: "A"; height: var(--border-width); pointer-events: none; position: absolute; z-index: 1; } } th { font-weight: 600; text-align: left; &[align=center] { text-align: center; } &[align=right] { text-align: right; } } } p + table { margin-top: calc(var(--line-height) * 1.5 + var(--border-width) * -1); } @media only screen and (max-width: 600px) { .only-large-window { display: none; } } @media only screen and (min-width: 601px) { .only-small-window { display: none; } } .compact { > li > p + ol, > li > p + ul { margin-top: calc(var(--block-spacing-bottom) * -1); } } .small { font-size: 0.85rem; line-height: var(--line-height); } .xsmall { font-size: 0.8rem; line-height: calc(var(--line-height) * 0.75); padding-top: calc(var(--line-height) * 0.25); } .xxsmall { font-size: 0.65rem; line-height: calc(var(--line-height) * 0.7); padding-top: calc(var(--line-height) * 0.3); } .xxxsmall { font-size: 0.5rem; line-height: calc(var(--line-height) * 0.5); padding-bottom: calc(var(--line-height) * 0.25); } .show-base-grid { background-image: repeating-linear-gradient( 0deg, var(--base-grid-color2), var(--base-grid-color2) 1px, transparent 0, transparent calc(var(--baseline) / 2), var(--base-grid-color1) calc(var(--baseline) / 2), var(--base-grid-color1) calc(var(--baseline) / 2 + 1px), transparent calc(var(--baseline) / 2 + 1px), transparent var(--baseline) ); background-position: 0 0.5px; background-repeat: repeat-y; background-size: 100% var(--baseline); } .single-line { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .block { display: block; } .inline { display: inline-block; } .flex-h, .flex-v { display: flex; } .flex-h { flex-direction: row; .bottom { align-self: flex-end; } } .flex-v { flex-direction: column; &.center { align-self: center; } } .center { text-align: center; } .left { text-align: left; } .right { text-align: right; } .margin0 { margin: 0; } .margin1 { margin: calc(var(--line-height) * 1); } .margin2 { margin: calc(var(--line-height) * 2); } .margin3 { margin: calc(var(--line-height) * 3); } .margin4 { margin: calc(var(--line-height) * 4); } .margin5 { margin: calc(var(--line-height) * 8); } .padding0 { padding: 0; } .padding1 { padding: calc(var(--line-height) * 1); } .padding2 { padding: calc(var(--line-height) * 2); } .padding3 { padding: calc(var(--line-height) * 3); } .padding4 { padding: calc(var(--line-height) * 4); } .padding5 { padding: calc(var(--line-height) * 8); } .w-1 { width: calc(var(--line-height) * 1); } .w-2 { width: calc(var(--line-height) * 2); } .w-3 { width: calc(var(--line-height) * 3); } .w-4 { width: calc(var(--line-height) * 4); } .w-5 { width: calc(var(--line-height) * 5); } .w-6 { width: calc(var(--line-height) * 6); } .w-7 { width: calc(var(--line-height) * 7); } .w-8 { width: calc(var(--line-height) * 8); } .w-9 { width: calc(var(--line-height) * 9); } .w-10 { width: calc(var(--line-height) * 10); } .w-11 { width: calc(var(--line-height) * 11); } .w-12 { width: calc(var(--line-height) * 12); } .w-13 { width: calc(var(--line-height) * 13); } .w-14 { width: calc(var(--line-height) * 14); } .w-15 { width: calc(var(--line-height) * 15); } .w-16 { width: calc(var(--line-height) * 16); } .w-17 { width: calc(var(--line-height) * 17); } .w-18 { width: calc(var(--line-height) * 18); } .w-19 { width: calc(var(--line-height) * 19); } .w-20 { width: calc(var(--line-height) * 20); } .w-21 { width: calc(var(--line-height) * 21); } .w-22 { width: calc(var(--line-height) * 22); } .w-23 { width: calc(var(--line-height) * 23); } .w-24 { width: calc(var(--line-height) * 24); } .w-25 { width: calc(var(--line-height) * 25); } .w-26 { width: calc(var(--line-height) * 26); } .w-27 { width: calc(var(--line-height) * 27); } .w-28 { width: calc(var(--line-height) * 28); } .w-29 { width: calc(var(--line-height) * 29); } .w-30 { width: calc(var(--line-height) * 30); } .w-31 { width: calc(var(--line-height) * 31); } .w-32 { width: calc(var(--line-height) * 32); } .w-33 { width: calc(var(--line-height) * 33); } .w-34 { width: calc(var(--line-height) * 34); } .w-35 { width: calc(var(--line-height) * 35); } .w-36 { width: calc(var(--line-height) * 36); } .w-37 { width: calc(var(--line-height) * 37); } .w-38 { width: calc(var(--line-height) * 38); } .w-39 { width: calc(var(--line-height) * 39); } .w-40 { width: calc(var(--line-height) * 40); } .w-full { width: 100%; } .h-1 { height: calc(var(--line-height) * 1); } .h-2 { height: calc(var(--line-height) * 2); } .h-3 { height: calc(var(--line-height) * 3); } .h-4 { height: calc(var(--line-height) * 4); } .h-5 { height: calc(var(--line-height) * 5); } .h-6 { height: calc(var(--line-height) * 6); } .h-7 { height: calc(var(--line-height) * 7); } .h-8 { height: calc(var(--line-height) * 8); } .h-9 { height: calc(var(--line-height) * 9); } .h-10 { height: calc(var(--line-height) * 10); } .h-11 { height: calc(var(--line-height) * 11); } .h-12 { height: calc(var(--line-height) * 12); } .h-13 { height: calc(var(--line-height) * 13); } .h-14 { height: calc(var(--line-height) * 14); } .h-15 { height: calc(var(--line-height) * 15); } .h-16 { height: calc(var(--line-height) * 16); } .h-17 { height: calc(var(--line-height) * 17); } .h-18 { height: calc(var(--line-height) * 18); } .h-19 { height: calc(var(--line-height) * 19); } .h-20 { height: calc(var(--line-height) * 20); } .h-21 { height: calc(var(--line-height) * 21); } .h-22 { height: calc(var(--line-height) * 22); } .h-23 { height: calc(var(--line-height) * 23); } .h-24 { height: calc(var(--line-height) * 24); } .h-25 { height: calc(var(--line-height) * 25); } .h-26 { height: calc(var(--line-height) * 26); } .h-27 { height: calc(var(--line-height) * 27); } .h-28 { height: calc(var(--line-height) * 28); } .h-29 { height: calc(var(--line-height) * 29); } .h-30 { height: calc(var(--line-height) * 30); } .h-31 { height: calc(var(--line-height) * 31); } .h-32 { height: calc(var(--line-height) * 32); } .h-33 { height: calc(var(--line-height) * 33); } .h-34 { height: calc(var(--line-height) * 34); } .h-35 { height: calc(var(--line-height) * 35); } .h-36 { height: calc(var(--line-height) * 36); } .h-37 { height: calc(var(--line-height) * 37); } .h-38 { height: calc(var(--line-height) * 38); } .h-39 { height: calc(var(--line-height) * 39); } .h-40 { height: calc(var(--line-height) * 40); } .opacity0 { opacity: 0; } .opacity1 { opacity: 0.1; } .opacity2 { opacity: 0.2; } .opacity3 { opacity: 0.3; } .opacity4 { opacity: 0.4; } .opacity5 { opacity: 0.5; } .opacity6 { opacity: 0.6; } .opacity7 { opacity: 0.7; } .opacity8 { opacity: 0.8; } .opacity9 { opacity: 0.9; } .opacity10 { opacity: 1; }