* { /* It's aggressive, but we like it aggressive */ box-sizing: border-box; border-color: var(--border-color); } body { background-color: var(--c2); color: var(--color); font-family: "Inter", sans-serif; min-height: 100vh; box-sizing: border-box; line-height: 1.2; } a, .link { color: var(--link-color); border-bottom: none; text-decoration: none; &.external::after { font-family: "icons"; content: " 1"; vertical-align: middle; } } .link-normal { --link-color: var(--color); } b, strong { font-weight: 600; } h1, h2, h3, h4, h5, h6 { font-size: inherit; margin: 0; line-height: 1; font-weight: 600; } code, pre, .mono { /* TODO(redesign): We're not using Fira any more. */ font-family: "Fira Mono", monospace; } br { /* why, IE... */ border-style: none; } hr { margin: 0; border: none; border-bottom: 1px solid var(--border-color); } video { max-width: 100%; } /* Utility */ .m-center { margin-left: auto; margin-right: auto; } .flex-shrink-0 { flex-shrink: 0; } .flex-grow-1 { flex-grow: 1; } .flex-fair { flex-basis: 1px; flex-grow: 1; flex-shrink: 1; } @media screen and (min-width: 35em) { .flex-fair-ns { flex-basis: 1px; flex-grow: 1; flex-shrink: 1; } } @media screen and (min-width: 60em) { .flex-fair-l { flex-basis: 1px; flex-grow: 1; flex-shrink: 1; } } .c-normal { color: var(--color); } .c-white { --color: #fff; } .c-inherit { color: inherit; &:hover, &:active { color: inherit; } } .bg1 { background-color: var(--c1); } .bg2 { background-color: var(--c2); } .bg3 { background-color: var(--c3); } .bg4 { background-color: var(--c4); } .bg5 { background-color: var(--c5); } .bg-transparent { background-color: var(--c-transparent-background); } .f8 { font-size: 0.65rem; } .w6 { width: var(--width-6); } .w7 { width: var(--width-7); } .w8 { width: var(--width-8); } .mw-site { max-width: var(--site-width); } .mw-site-narrow { max-width: var(--site-width-narrow); } .maxh-3 { max-height: var(--height-3); } .maxh-4 { max-height: var(--height-4); } .maxh-5 { max-height: var(--height-5); } .maxh-6 { max-height: var(--height-6); } .maxh-100 { max-height: 100%; } .maxh-50vh { max-height: 50vh; } .maxh-60vh { max-height: 60vh; } .maxh-70vh { max-height: 70vh; } .maxh-80vh { max-height: 80vh; } .minw-100 { min-width: 100%; } .minh-1 { min-height: var(--height-1); } .minh-2 { min-height: var(--height-2); } .minh-3 { min-height: var(--height-3); } .minh-4 { min-height: var(--height-4); } .minh-5 { min-height: var(--height-5); } .minh-6 { min-height: var(--height-6); } .g0 { gap: var(--spacing-0); } .g1 { gap: var(--spacing-1); } .g2 { gap: var(--spacing-2); } .g3 { gap: var(--spacing-3); } .g4 { gap: var(--spacing-4); } .g5 { gap: var(--spacing-5); } .grid { display: grid; } .grid-1 { grid-template-columns: 1fr; } .grid-2 { grid-template-columns: 1fr 1fr; } .aspect-ratio--2x1 { padding-bottom: 50%; } .hide-if-empty:empty { display: none !important; } :not([hidden])+.show-when-sibling-hidden { display: none; } .fill-current { fill: currentColor; } .rot-180 { transform: rotate(180deg); } .grab:hover { cursor: grab; .grabbing & { cursor: grabbing; } } .grabbing { cursor: grabbing; } /* TODO(redesign): It's really unfortunate that we rely on text stuff so much...it makes all our SVGs fuzzy. Evaluate the places we use this and see if we can use the lite variant instead. (This will require us to carefully set width and height attributes on our SVGs to ensure that they naturally render at the right size.) */ .svgicon { svg { fill: currentColor; width: 1em; height: 1em; overflow: visible; } &:not(.svgicon-nofix) svg { transform: translate(0px, 0.1em); } } .svgicon-lite { svg { fill: currentColor; overflow: visible; } } .sr { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; transition: 0.2s all; } .sr-focusable:focus { padding: 15px 10px; height: auto; width: auto; background: var(--content-background); clip: initial; clip-path: initial; z-index: 99999; } .breadcrumb { &:hover { text-decoration: underline; } &.current { text-overflow: clip ellipsis; } } @media screen and (min-width: 35em) { .bg1-ns { background-color: var(--c1); } .bg2-ns { background-color: var(--c2); } .bg3-ns { background-color: var(--c3); } .bg4-ns { background-color: var(--c4); } .bg5-ns { background-color: var(--c5); } .w6-ns { width: var(--width-6); } .w7-ns { width: var(--width-7); } .w8-ns { width: var(--width-8); } .grid-1-ns { grid-template-columns: 1fr; } .grid-2-ns { grid-template-columns: 1fr 1fr; } } @media screen and (min-width: 35em) and (max-width: 60em) { .bg1-m { background-color: var(--c1); } .bg2-m { background-color: var(--c2); } .bg3-m { background-color: var(--c3); } .bg4-m { background-color: var(--c4); } .bg5-m { background-color: var(--c5); } .w6-m { width: var(--width-6); } .w7-m { width: var(--width-7); } .w8-m { width: var(--width-8); } .grid-1-m { grid-template-columns: 1fr; } .grid-2-m { grid-template-columns: 1fr 1fr; } } @media screen and (min-width: 60em) { .bg1-l { background-color: var(--c1); } .bg2-l { background-color: var(--c2); } .bg3-l { background-color: var(--c3); } .bg4-l { background-color: var(--c4); } .bg5-l { background-color: var(--c5); } .w6-l { width: var(--width-6); } .w7-l { width: var(--width-7); } .w8-l { width: var(--width-8); } .grid-1-l { grid-template-columns: 1fr; } .grid-2-l { grid-template-columns: 1fr 1fr; } } /* TODO(redesign): Compatibility styles; do not use in new designs. Remove when redesign is complete. */ .b--theme-dark { border-color: var(--theme-color-dark); } .b--theme-light { border-color: var(--theme-color-light); } .bg-theme { background-color: var(--theme-color); } .bg-theme-dim { background-color: var(--theme-color-dim); } .bg-theme-dimmer { background-color: var(--theme-color-dimmer); } .bg-theme-dimmest { background-color: var(--theme-color-dimmest); } .bg-theme-dark { background-color: var(--theme-color-dark); } .bg-theme-light { background-color: var(--theme-color-light); } .background-even:nth-of-type(even) { background-color: var(--background-even-background); --fade-color: var(--background-even-background); } .optionbar { width: 100%; padding-bottom: var(--spacing-2); display: flex; flex-direction: column; justify-content: space-between; text-align: center; align-items: center; border-style: dashed; border-width: 0 0 1px; @media screen and (min-width: 35em) { flex-direction: row; text-align: left; padding-bottom: 0; } &.bottom { border-bottom-width: 0; border-top-width: 1px; padding-bottom: 0; padding-top: var(--spacing-2); @media screen and (min-width: 35em) { padding-top: 0; } } &.center { /* TODO: find this and kill it */ text-align: center; } .options { display: flex; flex-direction: column; @media screen and (min-width: 35em) { flex-direction: row; } .option { padding: var(--spacing-1) var(--spacing-2); display: inline-flex; align-items: center; justify-content: center; @media screen and (min-width: 35em) { padding-top: var(--spacing-2); padding-bottom: var(--spacing-2); } } } .group { display: inline-block; height: 100%; margin: auto; } }