/* additional gap from space character */
.xsmall {
  font-size: 0.625rem;
  line-height: 0.75rem; }

/*
	Section layout
*/
details {
  min-width: -moz-fit-content;
  min-width: -webkit-fit-content;
  min-width: fit-content;
  margin-top: -1px;
  margin-bottom: 0;
  margin-left: 1rem;
  margin-right: 1rem;
  overflow: hidden;
  border: 1px solid silver; }
  details:first-of-type {
    margin-top: 3rem; }
  details:last-of-type {
    margin-bottom: 4.5rem; }
  details h2 {
    margin: 0.875rem 0;
    padding: 0; }
  details h3, details h4 {
    font-size: 1rem;
    line-height: 1.5rem;
    margin: 0;
    padding: 0;
    width: 100%; }

summary {
  padding: 0.6em;
  text-align: center;
  font-weight: bold;
  background-color: snow;
  cursor: pointer; }
  summary > h2 {
    display: inline-block; }
  summary::marker {
    font-size: 1.25rem;
    line-height: 1.5rem; }
  summary::-webkit-details-marker {
    font-size: 1.25rem;
    line-height: 1.5rem; }
  summary:hover {
    color: dimgrey; }
    summary:hover > h2 {
      color: black; }

.sectiongrid {
  display: grid;
  grid-template-columns: 8.333333% 8.333333% auto;
  grid-template-columns: minmax(4rem, 8.333333%) minmax(4rem, 8.333333%) auto;
  grid-auto-flow: row;
  grid-gap: 0;
  gap: 0;
  margin: -1px;
  margin-top: 0;
  padding-top: 1px;
  padding-left: 1px; }
  .sectiongrid section {
    display: contents; }

.shead, .shead2, .sfill, .sfilla {
  background-color: snow;
  border: 1px solid silver;
  margin-top: -1px;
  margin-left: -1px;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-align: center;
  padding: 0.1875rem 0.5em; }

.shead2 {
  grid-column: span 2; }

.sfill {
  border-left-style: none; }

.sfilla {
  border-left-style: none;
  border-top-style: none; }

/*
	Calendar layout
*/
.calendar {
  display: grid;
  grid-template-columns: 8.333333% 8.333333% auto;
  grid-template-columns: minmax(4rem, 8.333333%) minmax(4rem, 8.333333%) auto;
  grid-column: 1 / -1;
  background-color: transparent;
  border: 1px solid silver;
  margin-top: -1px;
  margin-bottom: 0;
  margin-left: -1px;
  margin-right: 0; }

.yearcal {
  display: grid;
  grid-row: 1;
  grid-column: 3;
  background-color: snow;
  margin-left: -1px; }

.monthcal {
  display: grid;
  grid-row: 2;
  grid-column: 3;
  margin-left: -1px; }

.year {
  border-bottom: 1px solid lightgrey;
  border-left: 1px solid lightgrey;
  overflow: hidden;
  padding: 0.1875rem 0.5em;
  text-align: center; }

.mth {
  border-left: 1px solid lightgrey;
  font-size: 0.833333rem;
  line-height: 1rem;
  overflow: hidden;
  padding: 0.1875rem 0;
  min-width: 0.5em;
  text-align: center; }

.calprev {
  display: block;
  position: relative;
  top: -1.5rem;
  left: -0.3em;
  width: 1.5rem;
  height: 1.5rem;
  margin-bottom: -1.5rem;
  margin-right: auto;
  cursor: pointer; }
  .calprev path {
    fill: black; }
  .calprev:hover path {
    fill: dimgrey; }

.calnext {
  display: block;
  position: relative;
  top: -1.5rem;
  right: -0.3em;
  width: 1.5rem;
  height: 1.5rem;
  margin-bottom: -1.5rem;
  margin-left: auto;
  cursor: pointer; }
  .calnext path {
    fill: black; }
  .calnext:hover path {
    fill: dimgrey; }

a.calprev > svg, a.calnext > svg {
  margin: 0; }

a.calprev:hover > svg, a.calprev:focus-within > svg, a.calnext:hover > svg, a.calnext:focus-within > svg {
  background-color: unset; }

/*
	Timeline layout
*/
.timeline {
  display: grid;
  grid-auto-flow: column;
  grid-gap: 0;
  gap: 0;
  background-color: transparent;
  border-style: none;
  margin: 0;
  /* Mask over border on left of header */ }
  .timeline > header {
    display: contents; }
  .timeline > header::before {
    content: '';
    grid-row: 1 / 2;
    grid-column: 1 / 2;
    position: relative;
    top: 0;
    left: -1px;
    z-index: 5;
    width: 1px;
    height: calc(100% - 1px);
    background-color: snow; }

.fill {
  margin-top: -1px;
  margin-left: -1px;
  background-color: #eae8e8;
  border: 1px solid lightgrey;
  font-size: 0.833333rem;
  grid-column: 1 / -1;
  min-height: 0.1875rem; }

.fillsh {
  margin-top: -1px;
  margin-left: -1px;
  background-color: snow;
  border: 1px solid silver;
  font-size: 0.833333rem;
  grid-column: 1 / -1;
  min-height: 0.1875rem; }

.fill-p {
  position: relative;
  direction: rtl;
  width: 0;
  overflow-x: visible;
  color: silver;
  font-size: 0.625rem;
  line-height: 0.75rem;
  right: 0.1em;
  pointer-events: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.d, .dq, .sh, .shq {
  grid-column: span 1;
  /* arbitrary default */
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  border-color: silver;
  /* for inheritance; no border itself */
  border-top-color: var(--border);
  border-bottom-color: var(--border);
  line-height: 1.25;
  /* For popup */
  cursor: pointer; }

/* Primary wrapper */
.wrapper {
  position: relative;
  margin-top: -1px;
  margin-left: -1px;
  border: 1px solid silver;
  box-sizing: border-box;
  height: calc(100% + 1px);
  width: calc(100% + 1px);
  overflow: hidden;
  padding: 0.1875rem 0.5em;
  border-color: inherit;
  background-color: inherit;
  /* For subdivs */
  color: silver; }

/* Highlight for (wrapper of) link targets */
@-webkit-keyframes highlight {
  from {
    z-index: 1;
    box-shadow: 0 0 5px 1px turquoise; }
  to {
    z-index: initial;
    box-shadow: initial; } }

@keyframes highlight {
  from {
    z-index: 1;
    box-shadow: 0 0 5px 1px turquoise; }
  to {
    z-index: initial;
    box-shadow: initial; } }

.d {
  /* Default colours without class-specific styles */
  --background: #eae8e8;
  /* $filler */
  --border: dimgrey;
  /* $text2 */
  background-color: var(--background);
  /* $background is global background used by SCSS preprocessor, var(--background) is class-specific background defined in page-specific stylesheets */ }
  .d:focus-within {
    background-color: snow;
    border-color: var(--border); }
  .d:target > .wrapper {
    animation: ease-out 1 backwards highlight;
    -webkit-animation-duration: 4s;
    animation-duration: 4s;
    -webkit-animation-delay: 1s;
    animation-delay: 1s; }

.d.fade {
  background-color: transparent;
  background-image: linear-gradient(to right, var(--background) 90%, transparent 100%); }
  .d.fade > .wrapper {
    border-image-source: linear-gradient(to right, silver 1px, var(--border) 1px, var(--border) 90%, transparent 100%);
    border-image-width: 1px 0 1px 1px;
    border-image-slice: 1; }

.d.meld {
  background-color: transparent;
  background-image: linear-gradient(45deg, var(--background) 92.5%, transparent 100%); }
  .d.meld > .wrapper {
    border-image-source: linear-gradient(to right, silver 1px, var(--border) 1px, var(--border) 95%, transparent 100%);
    border-image-width: 1px 0 1px 1px;
    border-image-slice: 1; }

.dq {
  --background: #eae8e8;
  /* $filler */
  --border: silver;
  /* $border */
  background-color: #eae8e8; }
  .dq > .wrapper {
    color: silver; }

.dqa, .dqa:hover, .dqa:focus {
  display: contents;
  text-decoration: none; }

.sh {
  /* Default colours without class-specific styles */
  --background: #eae8e8;
  /* $filler */
  --border: dimgrey;
  /* $text2 */
  background-color: snow; }
  .sh:focus-within {
    background-color: var(--background); }
  .sh > .wrapper {
    left: 1px;
    border-top-width: 2px;
    border-bottom-width: 2px;
    border-left-style: none;
    border-right-style: none;
    font-size: 0.833333rem;
    /* reduce line height to match .r, so as to remove extra vertical space */ }
  .sh:target > .wrapper {
    animation: ease-out 1 backwards highlight;
    -webkit-animation-duration: 4s;
    animation-duration: 4s;
    -webkit-animation-delay: 1s;
    animation-delay: 1s; }

.shq {
  --background: snow;
  /* $background */
  --border: silver;
  /* $border */
  color: silver;
  background-color: snow; }
  .shq > .wrapper {
    left: 1px;
    border-top-width: 2px;
    border-bottom-width: 2px;
    border-left-style: none;
    border-right-style: none;
    font-size: 0.833333rem;
    /* reduce line height to match .r, so as to remove extra vertical space */
    color: silver; }

/* Colourblind support */
.c > .r::before {
  content: var(--label);
  display: none;
  font-size: 0.833333rem;
  margin-right: 0.3em;
  vertical-align: top; }

/*
	Popup layout
*/
.popup {
  display: none;
  cursor: initial;
  position: absolute;
  left: 0;
  bottom: calc(100% + 0.8rem + 0.3rem);
  z-index: 6;
  min-width: 3rem;
  min-height: 1rem;
  background-color: #322b2b;
  border-radius: 0.3rem;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Popup pointer */ }
  .popup::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -0.8rem;
    margin-bottom: calc(1px - 0.8rem);
    width: 0;
    height: 0;
    border-left: 0.8rem solid transparent;
    border-right: 0.8rem solid transparent;
    border-top: calc(0.8rem + 1px) solid #322b2b;
    border-bottom: 0; }

/* Container for centering images */
.badgeframe, .external > a {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: center;
  padding: 0.5rem; }
  .badgeframe:hover > img, .badgeframe:focus-within > img, .external > a:hover > img, .external > a:focus-within > img {
    background-color: unset; }

.badgeframe {
  background-color: snow;
  border: 2px solid #322b2b;
  border-bottom: 0;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
  /* When popup only contains badge without external */ }
  .badgeframe > img {
    object-fit: contain;
    width: 96px;
    height: 80px;
    margin: 0; }
  .badgeframe:last-child {
    border-radius: 0.3rem;
    border-bottom: 2px solid #322b2b; }

.external {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  align-items: stretch;
  position: relative;
  z-index: -1;
  overflow-x: hidden; }
  .external > a {
    border-left: 1px solid snow;
    border-top: 1px solid snow;
    margin-left: -1px;
    margin-top: -1px;
    flex: 1 1 auto; }
    .external > a > img {
      object-fit: contain;
      object-position: center center;
      width: 1.25rem;
      height: 1.25rem;
      margin: 0; }

/*
	Interactivity
*/
.d.fade:focus-within, .d.meld:focus-within {
  --background: snow;
  /* $background */ }

.d.fade:hover, .d.meld:hover {
  background-color: var(--background); }
  .d.fade:hover > .wrapper, .d.meld:hover > .wrapper {
    border-image-source: none;
    background-color: inherit; }

.d.fade:focus-within, .d.meld:focus-within {
  background-color: var(--background); }
  .d.fade:focus-within > .wrapper, .d.meld:focus-within > .wrapper {
    border-image-source: none;
    background-color: inherit; }

.d, .sh {
  /* Show popup on focus */
  /* Expand on hover or focus */
  /* Expand on hover for right-most item */ }
  .d:focus-within > .popup, .sh:focus-within > .popup {
    display: initial; }
  .d:hover, .sh:hover {
    overflow: visible;
    /* Column highlight on hover */ }
    .d:hover > .wrapper, .sh:hover > .wrapper {
      z-index: 4;
      min-width: calc(100% + 1px);
      width: -moz-fit-content;
      width: -webkit-fit-content;
      width: fit-content;
      color: dimgrey; }
    .d:hover::after, .sh:hover::after {
      content: '';
      position: absolute;
      top: -10000px;
      left: 0;
      z-index: -2;
      height: 20000px;
      width: calc(100% - 1px);
      background-color: var(--background);
      font-size: 0.833333rem; }
  .d:focus-within, .sh:focus-within {
    overflow: visible;
    /* Column highlight on hover */ }
    .d:focus-within > .wrapper, .sh:focus-within > .wrapper {
      z-index: 4;
      min-width: calc(100% + 1px);
      width: -moz-fit-content;
      width: -webkit-fit-content;
      width: fit-content;
      color: dimgrey; }
    .d:focus-within::after, .sh:focus-within::after {
      content: '';
      position: absolute;
      top: -10000px;
      left: 0;
      z-index: -2;
      height: 20000px;
      width: calc(100% - 1px);
      background-color: var(--background);
      font-size: 0.833333rem; }
  .d.terminus:hover, .sh.terminus:hover {
    direction: rtl; }
  .d.terminus:focus-within, .sh.terminus:focus-within {
    direction: rtl; }

/* Prevent expand on hover for right-most item from overriding text direction */
.wrapper, .popup {
  direction: initial !important; }

/*
	Cell layout
*/
.a {
  position: absolute;
  top: 0;
  left: 0;
  font-style: italic;
  color: #dcdcdc80; }

/* Subdivision groups */
.c, .g, .b {
  display: block;
  position: relative;
  /* Remove inter-inline-block spacing */
  font-size: 0;
  line-height: 0;
  padding: 0;
  border-style: none; }

.l {
  display: block;
  font-size: 0.625rem;
  line-height: 0.75rem;
  padding: 0;
  border-style: none; }

/* Subdivisions */
.i {
  display: inline-block;
  z-index: -1;
  margin-left: 0.4rem;
  font-size: 0.625rem;
  line-height: 0.75rem; }

/* First subdivision in group */
.r {
  display: inline-block;
  z-index: -1;
  padding-left: 0;
  font-size: 0.625rem;
  line-height: 0.75rem; }

.t, .tc, .tt {
  font-style: italic; }

.d-c > .tc, .sh-c > .tc {
  font-size: 0.833333rem;
  line-height: 0.875rem;
  vertical-align: top;
  margin-right: 0.1rem; }

.d-c > .tt, .sh-c > .tt {
  font-size: 0.833333rem;
  line-height: 0.875rem;
  margin-right: 0.1rem; }

.d-c > .t, .sh-c > .t {
  margin-right: 0.1rem; }
  .d-c > .t > .tc, .sh-c > .t > .tc {
    font-size: 0.833333rem;
    line-height: 0.875rem;
    vertical-align: top; }
  .d-c > .t > .tt, .sh-c > .t > .tt {
    font-size: 0.833333rem;
    line-height: 0.875rem;
    margin-left: 0; }
  .d-c > .t > .ta, .sh-c > .t > .ta {
    font-size: 0.833333rem;
    line-height: 0.875rem;
    vertical-align: top;
    font-style: normal;
    margin-left: 0.2rem; }
    .d-c > .t > .ta > .tf, .sh-c > .t > .ta > .tf {
      font-size: 0.625rem;
      line-height: 0.75rem; }

.d-c > .r {
  font-size: 1rem;
  line-height: 1.25rem;
  color: black; }

.d-c > .t {
  font-size: 1rem;
  line-height: 1.25rem; }

.d-c > .s {
  vertical-align: top;
  line-height: 0.625rem; }

.d-c > .sx {
  vertical-align: top;
  line-height: 0.625rem; }

.d-c > .s1 {
  font-size: 0.833333rem;
  line-height: 1rem; }

.d-g > .r {
  color: dimgrey;
  margin-right: 0.1rem; }

.d-g > .t > .tt {
  margin-left: 0.1rem; }

.sh-c > .r {
  color: dimgrey;
  font-size: 0.833333rem;
  line-height: 1.125rem; }

.sh-c .tc {
  font-size: 0.833333rem;
  line-height: 0.875rem;
  vertical-align: top; }

.sh-c > .t {
  font-size: 0.833333rem;
  line-height: 1.125rem; }

.sh-b > .r {
  color: dimgrey;
  font-style: italic;
  margin-right: 0.2rem; }

.dq-c {
  display: inline-block;
  background-color: #eae8e8;
  text-decoration: underline;
  text-decoration-color: silver; }

.dq:hover > .wrapper {
  color: dimgrey; }

.dq:hover .dq-c {
  text-decoration: none; }

.dq:hover::before {
  content: '';
  position: absolute;
  top: 0.5rem;
  left: -0.375rem;
  width: 1rem;
  height: 1rem;
  z-index: 100;
  background-image: url("../images/alias.svg");
  /* Modified from shortcut by franc11s from the Noun Project (CCBY) */
  background-size: 1rem;
  background-repeat: no-repeat;
  background-position: bottom; }

.dq:focus-within > .wrapper {
  color: dimgrey; }

.dq:focus-within .dq-c {
  text-decoration: none; }

.dq:focus-within::before {
  content: '';
  position: absolute;
  top: 0.5rem;
  left: -0.375rem;
  width: 1rem;
  height: 1rem;
  z-index: 100;
  background-image: url("../images/alias.svg");
  /* Modified from shortcut by franc11s from the Noun Project (CCBY) */
  background-size: 1rem;
  background-repeat: no-repeat;
  background-position: bottom; }

.shq-c {
  font-size: 0.833333rem;
  line-height: 1.125rem;
  padding-right: 0.5em; }

.shq-b {
  font-size: 0.625rem;
  line-height: 0.75rem;
  font-style: italic;
  padding-right: 0.5em;
  text-decoration: underline;
  text-decoration-color: silver; }

.shq:hover > .wrapper {
  color: dimgrey; }

.shq:hover .shq-b {
  text-decoration: none; }

.shq:hover::before {
  content: '';
  position: absolute;
  top: 1.375rem;
  left: -0.25rem;
  z-index: 100;
  width: 0.875rem;
  height: 0.875rem;
  background-image: url("../images/alias.svg");
  /* Modified from shortcut by franc11s from the Noun Project (CCBY) */
  background-size: 0.875rem;
  background-repeat: no-repeat;
  background-position: top; }

.shq:focus-within > .wrapper {
  color: dimgrey; }

.shq:focus-within .shq-b {
  text-decoration: none; }

.shq:focus-within::before {
  content: '';
  position: absolute;
  top: 1.375rem;
  left: -0.25rem;
  z-index: 100;
  width: 0.875rem;
  height: 0.875rem;
  background-image: url("../images/alias.svg");
  /* Modified from shortcut by franc11s from the Noun Project (CCBY) */
  background-size: 0.875rem;
  background-repeat: no-repeat;
  background-position: top; }

/*# sourceMappingURL=cpu-grid.css.map */