/* cover.css — one slice of the site stylesheet, split by concern.
   Load order is fixed in base.html and mirrors the old single-file
   source order; do not reorder the <link> tags. tokens.css holds
   every colour and must load first. */
/*********************************************************************


                                HEADER


**********************************************************************/
#head {
  position: relative;
  overflow: hidden;
  background-color: var(--ide-bg);
  color: var(--text-muted);
  padding: 30px 0 35px 0;
}
#head #logo {
  position: relative;
  z-index: 2;
}
#head img.img-circle {
  display: block;
  width: 140px;
  height: 140px;
  overflow: hidden;
  border: 9px solid rgba(255, 255, 255, 0.08);
  margin: 0 auto;
}
#head .title {
  font-family: Alice, Georgia, serif;
  font-size: 49px;
  font-size: 3.0625rem;
}
#head .title a {
  text-decoration: none;
  color: var(--text-strong);
}
#head .tagline {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 1.2em;
  color: var(--text-muted);
  margin: 5px 0 0;
}
#head .tagline b {
  font-weight: normal;
}
#head .tagline a {
  color: var(--text);
}
.home #head {
  padding: 90px 0;
}
.home #head .title {
  font-size: 49px;
  font-size: 3.0625rem;
  color: var(--text-strong);
}
.home #head .tagline {
  font-size: 16px;
  font-size: 1rem;
  color: var(--text-strong);
  margin: 15px 0 0;
}
/*********************************************************************


                          ANIMATED IDE COVER

  Decorative backdrop for #head: an editor typing out a file while an
  architecture sketch is drawn beside it, then both wipe and loop. Markup
  lives in templates/website/_ide_cover.html.

  The rules below are hand-written; everything between the "generated"
  markers further down comes from tools/gen_cover_animation.py, which owns
  the timeline (cycle length, per-line and per-stroke offsets) and each
  line's `--ch`. Edit the script, not the generated block.

**********************************************************************/
.ide-cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  overflow: hidden;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
  line-height: 1.5;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.ide-chrome {
  height: 30px;
  padding: 0 14px;
  background-color: var(--ide-chrome);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  overflow: hidden;
}
.ide-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 10px 4px 0 0;
  border-radius: 50%;
  background-color: var(--ide-dot);
  vertical-align: top;
}
.ide-tab {
  display: inline-block;
  padding: 0 14px;
  font-size: 11px;
  line-height: 29px;
  color: var(--text-faint);
}
.ide-tab:first-of-type {
  margin-left: 14px;
}
.ide-tab.is-active {
  color: var(--text);
  border-bottom: 2px solid var(--accent);
}
.ide-pane {
  max-width: 1170px;
  margin: 0 auto;
  padding: 18px 15px 0;
}
.ide-gutter {
  float: left;
  width: 46px;
  padding-right: 14px;
  border-right: 1px solid var(--border);
  text-align: right;
  color: var(--ide-gutter);
}
.ide-gutter span {
  display: block;
}
.ide-code {
  margin: 0;
  padding: 0 0 0 16px;
  overflow: hidden;
  background: none;
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: var(--code-text);
  word-break: normal;
  word-wrap: normal;
}
.ide-code .k {
  color: var(--code-kw);
}
.ide-code .s {
  color: var(--code-str);
}
.ide-code .f {
  color: var(--code-fn);
}
.ide-code .t {
  color: var(--code-type);
}
.ide-code .n {
  color: var(--code-num);
}
.ide-code .d {
  color: var(--code-self);
  font-style: italic;
}
.ide-line {
  display: block;
  width: 0;
  overflow: hidden;
  white-space: pre;
  border-right: 2px solid transparent;
  /* One keyframe set per line: each types at its own offset, but every line
     clears at the same instant so the file wipes and starts over as a whole
     instead of each line looping on its own clock. */
  animation-timing-function: steps(30, end);
  animation-iteration-count: infinite;
  animation-fill-mode: both;
}
.ide-line:last-child::after {
  content: "";
  display: inline-block;
  width: 1ch;
  height: 1em;
  margin-left: 2px;
  vertical-align: -2px;
  background-color: var(--accent);
  animation: ide-blink 1.1s steps(1, end) infinite;
}
@keyframes ide-blink {
0%,
50% {
    opacity: 1;
  }
50.01%,
100% {
    opacity: 0;
  }
}
.ide-board {
  /* Fluid, so the sketch shrinks alongside the code instead of being dropped
     the moment the window narrows. The SVG scales with its viewBox. */
  float: right;
  width: 40%;
  max-width: 470px;
  margin-left: 24px;
  /* pulled in from the right edge so the sketch sits nearer the centre */
  margin-right: 40px;
  padding-left: 24px;
  border-left: 1px solid var(--border);
}
.sk-canvas {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.sk-draw,
.sk-text {
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
}
.sk-draw {
  fill: none;
  stroke: var(--sketch-stroke);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
}
.sk-text {
  fill: var(--sketch-ink);
  font-family: "Architects Daughter", "Comic Sans MS", cursive;
  opacity: 0;
}
.sk-accent {
  stroke: var(--accent);
}
.sk-ghost {
  stroke-width: 1;
  opacity: 0.45;
}
.sk-dim {
  stroke: var(--sketch-dim);
  stroke-width: 1.2;
}
.sk-accent-text {
  fill: var(--accent);
}
.sk-muted-text {
  fill: var(--sketch-dim);
}
.sk-title {
  fill: var(--sketch-ink);
}
/* == generated by tools/gen_cover_animation.py — do not hand-edit == */
.ide-line,
.sk-draw,
.sk-text {
  animation-duration: 16.1s;
}
.ide-line:nth-child(1) {
  animation-name: ide-type-1;
}
@keyframes ide-type-1 {
  0% {
    width: 0;
    border-right-color: transparent;
  }
  0.05% {
    width: 0;
    border-right-color: var(--accent);
  }
  3.106% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  3.406%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(2) {
  animation-name: ide-type-2;
}
@keyframes ide-type-2 {
  0%, 3.106% {
    width: 0;
    border-right-color: transparent;
  }
  3.156% {
    width: 0;
    border-right-color: var(--accent);
  }
  6.211% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  6.511%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(3) {
  animation-name: ide-type-3;
}
@keyframes ide-type-3 {
  0%, 6.211% {
    width: 0;
    border-right-color: transparent;
  }
  6.261% {
    width: 0;
    border-right-color: var(--accent);
  }
  9.317% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  9.617%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(4) {
  animation-name: ide-type-4;
}
@keyframes ide-type-4 {
  0%, 9.317% {
    width: 0;
    border-right-color: transparent;
  }
  9.367% {
    width: 0;
    border-right-color: var(--accent);
  }
  12.422% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  12.722%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(5) {
  animation-name: ide-type-5;
}
@keyframes ide-type-5 {
  0%, 12.422% {
    width: 0;
    border-right-color: transparent;
  }
  12.472% {
    width: 0;
    border-right-color: var(--accent);
  }
  15.528% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  15.828%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(6) {
  animation-name: ide-type-6;
}
@keyframes ide-type-6 {
  0%, 15.528% {
    width: 0;
    border-right-color: transparent;
  }
  15.578% {
    width: 0;
    border-right-color: var(--accent);
  }
  18.634% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  18.934%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(7) {
  animation-name: ide-type-7;
}
@keyframes ide-type-7 {
  0%, 18.634% {
    width: 0;
    border-right-color: transparent;
  }
  18.684% {
    width: 0;
    border-right-color: var(--accent);
  }
  21.739% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  22.039%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(8) {
  animation-name: ide-type-8;
}
@keyframes ide-type-8 {
  0%, 21.739% {
    width: 0;
    border-right-color: transparent;
  }
  21.789% {
    width: 0;
    border-right-color: var(--accent);
  }
  24.845% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  25.145%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(9) {
  animation-name: ide-type-9;
}
@keyframes ide-type-9 {
  0%, 24.845% {
    width: 0;
    border-right-color: transparent;
  }
  24.895% {
    width: 0;
    border-right-color: var(--accent);
  }
  27.95% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  28.25%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(10) {
  animation-name: ide-type-10;
}
@keyframes ide-type-10 {
  0%, 27.95% {
    width: 0;
    border-right-color: transparent;
  }
  28.0% {
    width: 0;
    border-right-color: var(--accent);
  }
  31.056% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  31.356%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(11) {
  animation-name: ide-type-11;
}
@keyframes ide-type-11 {
  0%, 31.056% {
    width: 0;
    border-right-color: transparent;
  }
  31.106% {
    width: 0;
    border-right-color: var(--accent);
  }
  34.161% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  34.461%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(12) {
  animation-name: ide-type-12;
}
@keyframes ide-type-12 {
  0%, 34.161% {
    width: 0;
    border-right-color: transparent;
  }
  34.211% {
    width: 0;
    border-right-color: var(--accent);
  }
  37.267% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  37.567%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(13) {
  animation-name: ide-type-13;
}
@keyframes ide-type-13 {
  0%, 37.267% {
    width: 0;
    border-right-color: transparent;
  }
  37.317% {
    width: 0;
    border-right-color: var(--accent);
  }
  40.373% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  40.673%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(14) {
  animation-name: ide-type-14;
}
@keyframes ide-type-14 {
  0%, 40.373% {
    width: 0;
    border-right-color: transparent;
  }
  40.423% {
    width: 0;
    border-right-color: var(--accent);
  }
  43.478% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  43.778%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(15) {
  animation-name: ide-type-15;
}
@keyframes ide-type-15 {
  0%, 43.478% {
    width: 0;
    border-right-color: transparent;
  }
  43.528% {
    width: 0;
    border-right-color: var(--accent);
  }
  46.584% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  46.884%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(16) {
  animation-name: ide-type-16;
}
@keyframes ide-type-16 {
  0%, 46.584% {
    width: 0;
    border-right-color: transparent;
  }
  46.634% {
    width: 0;
    border-right-color: var(--accent);
  }
  49.689% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  49.989%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(17) {
  animation-name: ide-type-17;
}
@keyframes ide-type-17 {
  0%, 49.689% {
    width: 0;
    border-right-color: transparent;
  }
  49.739% {
    width: 0;
    border-right-color: var(--accent);
  }
  52.795% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  53.095%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(18) {
  animation-name: ide-type-18;
}
@keyframes ide-type-18 {
  0%, 52.795% {
    width: 0;
    border-right-color: transparent;
  }
  52.845% {
    width: 0;
    border-right-color: var(--accent);
  }
  55.901% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  56.201%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(19) {
  animation-name: ide-type-19;
}
@keyframes ide-type-19 {
  0%, 55.901% {
    width: 0;
    border-right-color: transparent;
  }
  55.951% {
    width: 0;
    border-right-color: var(--accent);
  }
  59.006% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  59.306%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.ide-line:nth-child(20) {
  animation-name: ide-type-20;
}
@keyframes ide-type-20 {
  0%, 59.006% {
    width: 0;
    border-right-color: transparent;
  }
  59.056% {
    width: 0;
    border-right-color: var(--accent);
  }
  62.112% {
    width: calc(var(--ch) * 1ch);
    border-right-color: var(--accent);
  }
  62.412%, 96.273% {
    width: calc(var(--ch) * 1ch);
    border-right-color: transparent;
  }
  96.283%, 100% {
    width: 0;
    border-right-color: transparent;
  }
}
.sk1 {
  animation-name: sk-draw-1;
}
@keyframes sk-draw-1 {
  0%, 0.932% {
    stroke-dashoffset: 100;
  }
  4.348%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk2 {
  animation-name: sk-fade-2;
}
@keyframes sk-fade-2 {
  0%, 3.727% {
    opacity: 0;
  }
  7.143%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk3 {
  animation-name: sk-draw-3;
}
@keyframes sk-draw-3 {
  0%, 6.522% {
    stroke-dashoffset: 100;
  }
  9.938%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk4 {
  animation-name: sk-fade-4;
}
@keyframes sk-fade-4 {
  0%, 9.317% {
    opacity: 0;
  }
  12.733%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk5 {
  animation-name: sk-draw-5;
}
@keyframes sk-draw-5 {
  0%, 12.112% {
    stroke-dashoffset: 100;
  }
  15.528%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk6 {
  animation-name: sk-draw-6;
}
@keyframes sk-draw-6 {
  0%, 14.907% {
    stroke-dashoffset: 100;
  }
  18.323%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk7 {
  animation-name: sk-fade-7;
}
@keyframes sk-fade-7 {
  0%, 17.702% {
    opacity: 0;
  }
  21.118%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk8 {
  animation-name: sk-draw-8;
}
@keyframes sk-draw-8 {
  0%, 20.497% {
    stroke-dashoffset: 100;
  }
  23.913%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk9 {
  animation-name: sk-draw-9;
}
@keyframes sk-draw-9 {
  0%, 23.292% {
    stroke-dashoffset: 100;
  }
  26.708%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk10 {
  animation-name: sk-draw-10;
}
@keyframes sk-draw-10 {
  0%, 26.087% {
    stroke-dashoffset: 100;
  }
  29.503%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk11 {
  animation-name: sk-fade-11;
}
@keyframes sk-fade-11 {
  0%, 28.882% {
    opacity: 0;
  }
  32.298%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk12 {
  animation-name: sk-fade-12;
}
@keyframes sk-fade-12 {
  0%, 31.677% {
    opacity: 0;
  }
  35.093%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk13 {
  animation-name: sk-draw-13;
}
@keyframes sk-draw-13 {
  0%, 34.472% {
    stroke-dashoffset: 100;
  }
  37.888%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk14 {
  animation-name: sk-draw-14;
}
@keyframes sk-draw-14 {
  0%, 37.267% {
    stroke-dashoffset: 100;
  }
  40.683%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk15 {
  animation-name: sk-fade-15;
}
@keyframes sk-fade-15 {
  0%, 40.062% {
    opacity: 0;
  }
  43.478%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk16 {
  animation-name: sk-draw-16;
}
@keyframes sk-draw-16 {
  0%, 42.857% {
    stroke-dashoffset: 100;
  }
  46.273%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk17 {
  animation-name: sk-draw-17;
}
@keyframes sk-draw-17 {
  0%, 45.652% {
    stroke-dashoffset: 100;
  }
  49.068%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk18 {
  animation-name: sk-fade-18;
}
@keyframes sk-fade-18 {
  0%, 48.447% {
    opacity: 0;
  }
  51.863%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk19 {
  animation-name: sk-draw-19;
}
@keyframes sk-draw-19 {
  0%, 51.242% {
    stroke-dashoffset: 100;
  }
  54.658%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk20 {
  animation-name: sk-draw-20;
}
@keyframes sk-draw-20 {
  0%, 54.037% {
    stroke-dashoffset: 100;
  }
  57.453%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
.sk21 {
  animation-name: sk-fade-21;
}
@keyframes sk-fade-21 {
  0%, 56.832% {
    opacity: 0;
  }
  60.248%, 96.273% {
    opacity: 1;
  }
  96.283%, 100% {
    opacity: 0;
  }
}
.sk22 {
  animation-name: sk-draw-22;
}
@keyframes sk-draw-22 {
  0%, 59.627% {
    stroke-dashoffset: 100;
  }
  63.043%, 96.273% {
    stroke-dashoffset: 0;
  }
  96.283%, 100% {
    stroke-dashoffset: 100;
  }
}
/* == end generated == */
.ide-status {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0 14px;
  font-size: 11px;
  line-height: 24px;
  color: var(--text-faint);
  background-color: var(--ide-chrome);
  border-top: 1px solid var(--border);
  white-space: nowrap;
  overflow: hidden;
}
.ide-status span {
  margin-right: 18px;
}
.ide-status-branch {
  color: var(--accent);
}
.ide-status-right {
  float: right;
  margin-right: 0 !important;
}
.ide-scrim {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background-image: radial-gradient(ellipse at 50% 45%, var(--scrim-core) 0%, transparent 74%), linear-gradient(to bottom, var(--scrim-top), var(--scrim-mid) 45%, var(--scrim-bottom));
}
@media (max-width: 991px) {
.ide-board {
    width: 38%;
    margin-left: 14px;
    margin-right: 20px;
    padding-left: 14px;
  }
}
@media (max-width: 767px) {
.ide-cover {
    font-size: 10px;
  }
.ide-gutter,
.ide-status {
    display: none;
  }
.ide-pane {
    padding-top: 12px;
  }
.ide-code {
    padding-left: 0;
  }
  /* The title wraps to three lines on phones and sits right on top of the
     code, so widen the scrim's core and drop the lighter top stop. */
.ide-scrim {
    background-image: radial-gradient(ellipse at 50% 45%, var(--scrim-core) 0%, transparent 88%), linear-gradient(to bottom, var(--scrim-mid), var(--scrim-bottom));
  }
}
/* Below tablet the header is all title — a sketch squeezed into what is left
   would be an unreadable smudge, so the code pane gets the space. */
@media (max-width: 767px) {
.ide-board {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
.ide-line {
    width: auto;
    border-right-color: transparent;
    animation: none;
  }
.ide-line:last-child::after {
    animation: none;
  }
.sk-draw {
    stroke-dashoffset: 0;
    animation: none;
  }
.sk-text {
    opacity: 1;
    animation: none;
  }
}
