html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  image-rendering: auto;
}
img,
video,
.px {
  image-rendering: pixelated;
}
@view-transition {
  navigation: auto;
}
.bar {
  view-transition-name: dpm-bar;
}
main.desk {
  view-transition-name: dpm-main;
}
::view-transition-old(dpm-bar),
::view-transition-new(dpm-bar) {
  animation: none;
}
::view-transition-old(dpm-main) {
  animation: vt-out .16s steps(3) both;
}
::view-transition-new(dpm-main) {
  animation: vt-in .28s steps(5) both;
}
@keyframes vt-out {
  to {
    opacity: 0;
  }
}
@keyframes vt-in {
  0% {
    opacity: 0;
    clip-path: inset(18% 22% 60% 22%);
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
  }
}
@supports not (view-transition-name: a) {
  main.desk {
    animation: vt-in .28s steps(5) both;
  }
}
.bar nav a[aria-current] {
  background: var(--ink);
  color: var(--paper);
}
.bar .mark[aria-current] span {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pull {
  display: none;
  align-items: center;
  gap: 6px;
  height: 100%;
  padding: 0 10px;
  border: 0;
  background: none;
  cursor: pointer;
}
.pull .lines {
  width: 12px;
  height: 10px;
  background: repeating-linear-gradient(var(--ink) 0 2px, transparent 2px 4px);
}
.pull[aria-expanded=true] {
  background: var(--ink);
  color: var(--paper);
}
.pull[aria-expanded=true] .lines {
  background: repeating-linear-gradient(var(--paper) 0 2px, transparent 2px 4px);
}
.pullmenu {
  position: absolute;
  top: 28px;
  left: 6px;
  z-index: 60;
  min-width: 220px;
  display: grid;
  background: var(--paper);
  border: 2px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  padding: 4px 0;
}
.pullmenu a {
  padding: 6px 14px;
  text-decoration: none;
}
.pullmenu a:hover,
.pullmenu a[aria-current] {
  background: var(--ink);
  color: var(--paper);
}
.toast a {
  margin-left: 12px;
  border-bottom: 2px solid var(--ink);
  text-decoration: none;
}
.toast.link {
  pointer-events: auto;
}
.toast.good {
  border-color: var(--ink);
  box-shadow: 3px 3px 0 var(--sig);
}
@media (max-width: 1240px) {
  .bar .mark span {
    display: none;
  }
}
@media (max-width: 860px) {
  .bar nav {
    display: none;
  }
  .pull {
    display: flex;
  }
}
@media (prefers-reduced-motion: no-preference) {
  [data-reveal]:not(.shown) {
    opacity: 0;
    transform: translateY(12px);
  }
  [data-reveal].shown {
    animation: rise .36s steps(4) backwards;
    animation-delay: var(--d, 0ms);
  }
}
@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.rolling {
  color: var(--sig);
}
.home .top {
  align-items: stretch;
}
.hots {
  position: absolute;
  inset: 0;
  z-index: 2;
}
.spot {
  position: absolute;
  transform: translateX(-50%);
  display: grid;
  place-items: end center;
  padding-bottom: 6px;
  text-decoration: none;
  outline-offset: -2px;
}
.spot span {
  opacity: 0;
  padding: 2px 8px;
  background: var(--ink);
  color: var(--paper);
  white-space: nowrap;
  transition: opacity .12s steps(2);
}
.spot:hover,
.spot:focus-visible {
  background-image:
    linear-gradient(
      90deg,
      var(--ink) 50%,
      transparent 0),
    linear-gradient(
      90deg,
      var(--ink) 50%,
      transparent 0),
    linear-gradient(
      0deg,
      var(--ink) 50%,
      transparent 0),
    linear-gradient(
      0deg,
      var(--ink) 50%,
      transparent 0);
  background-size:
    8px 2px,
    8px 2px,
    2px 8px,
    2px 8px;
  background-position:
    0 0,
    0 100%,
    0 0,
    100% 0;
  background-repeat:
    repeat-x,
    repeat-x,
    repeat-y,
    repeat-y;
  animation: ants .6s steps(4) infinite;
}
.spot:hover span,
.spot:focus-visible span {
  opacity: 1;
}
@keyframes ants {
  to {
    background-position:
      8px 0,
      -8px 100%,
      0 -8px,
      100% 8px;
  }
}
.spot.flash {
  animation: hotflash .9s steps(6);
}
@keyframes hotflash {
  0%, 33%, 66% {
    box-shadow: inset 0 0 0 3px var(--sig);
  }
  16%, 50%, 100% {
    box-shadow: none;
  }
}
.flare {
  position: absolute;
  z-index: 1;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  pointer-events: none;
  opacity: 0;
}
.flare.on {
  animation: flare 1s steps(6) both;
}
@keyframes flare {
  0% {
    opacity: 1;
    box-shadow:
      0 -10px var(--sig),
      0 10px var(--sig),
      -10px 0 var(--sig),
      10px 0 var(--sig),
      7px 7px var(--sig),
      -7px 7px var(--sig),
      7px -7px var(--sig),
      -7px -7px var(--sig);
  }
  60% {
    opacity: 1;
    box-shadow:
      0 -46px var(--sig),
      0 46px var(--sig),
      -46px 0 var(--sig),
      46px 0 var(--sig),
      33px 33px var(--ink),
      -33px 33px var(--ink),
      33px -33px var(--ink),
      -33px -33px var(--ink);
  }
  100% {
    opacity: 0;
    box-shadow:
      0 -64px var(--sig),
      0 64px var(--sig),
      -64px 0 var(--sig),
      64px 0 var(--sig),
      46px 46px var(--ink),
      -46px 46px var(--ink),
      46px -46px var(--ink),
      -46px -46px var(--ink);
  }
}
.stage video {
  opacity: 0;
}
.stage.moving video {
  opacity: 1;
}
.home .lower {
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}
.player {
  position: relative;
  outline: none;
  background: var(--paper);
}
.player:focus-visible {
  box-shadow: inset 0 0 0 2px var(--sig);
}
.pl-screen {
  position: relative;
  overflow: hidden;
  background: var(--paper);
  aspect-ratio: 1280 / 714;
}
.player.tall .pl-screen {
  aspect-ratio: 9 / 16;
}
.pl-screen video,
.pl-screen .pl-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
}
.pl-screen video {
  opacity: 0;
}
.player.preview .pl-screen video,
.player.played .pl-screen video {
  opacity: 1;
}
.player.played .pl-poster {
  visibility: hidden;
}
.pl-big {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 16px 6px 8px;
  border: 2px solid var(--ink);
  background: var(--paper);
  box-shadow: 3px 3px 0 var(--ink);
  cursor: pointer;
  text-align: left;
}
.pl-big .coin {
  position: relative;
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
  background: var(--sig);
  box-shadow:
    inset 0 0 0 3px var(--ink),
    inset 0 0 0 6px var(--sig),
    inset 0 0 0 8px var(--ink);
}
.pl-big .coin i {
  position: absolute;
  left: 17px;
  top: 13px;
  width: 0;
  height: 0;
  border-left: 14px solid var(--ink);
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
}
.pl-big .lbl {
  display: grid;
  font-size: 24px;
  line-height: 30px;
}
.pl-big small {
  font-size: 12px;
  line-height: 18px;
  color: #555;
}
.pl-big:hover {
  background: var(--ink);
  color: var(--paper);
}
.pl-big:hover small {
  color: var(--paper);
}
.pl-big:hover .coin {
  animation: flip .5s steps(4) infinite alternate;
}
@keyframes flip {
  to {
    transform: scaleX(.15);
  }
}
.player.played .pl-big {
  display: none;
}
.player.ended .pl-big {
  display: flex;
}
.pl-cap {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  max-width: 92%;
  text-align: center;
  padding: 3px 10px;
  background: var(--paper);
  border: 2px solid var(--ink);
  pointer-events: none;
}
.pl-cap:empty {
  display: none;
}
.pl-chap {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: 0 6px;
  background: var(--ink);
  color: var(--paper);
  pointer-events: none;
}
.pl-chap:empty {
  display: none;
}
.pl-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-top: 2px solid var(--ink);
}
.pl-k {
  min-width: 30px;
  height: 26px;
  padding: 0 8px;
  display: inline-grid;
  place-items: center;
  border: 2px solid var(--ink);
  border-radius: 7px;
  background: var(--paper);
  cursor: pointer;
  white-space: nowrap;
}
.pl-k:hover {
  background: var(--ink);
  color: var(--paper);
}
.pl-k.on:not(.pl-play) {
  background: var(--ink);
  color: var(--paper);
}
.pl-play i {
  width: 0;
  height: 0;
  border-left: 9px solid currentColor;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
}
.pl-play.on i {
  width: 9px;
  height: 11px;
  border: 0;
  border-left: 3px solid currentColor;
  border-right: 3px solid currentColor;
}
.pl-track {
  position: relative;
  flex: 1;
  min-width: 80px;
  height: 26px;
  cursor: pointer;
  outline: none;
}
.pl-track:focus-visible .pl-rail {
  box-shadow: 0 0 0 2px var(--sig);
}
.pl-rail {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 3px;
  height: 14px;
  border: 2px solid var(--ink);
  background: var(--paper);
}
.pl-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--dither50);
  background-size: 2px 2px;
}
.pl-head {
  position: absolute;
  top: -4px;
  width: 6px;
  height: 18px;
  margin-left: -3px;
  background: var(--sig);
  box-shadow: 0 0 0 2px var(--ink);
}
.pl-ticks {
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 0;
  z-index: 2;
}
.pl-ticks button {
  position: absolute;
  top: 9px;
  width: 10px;
  height: 20px;
  margin-left: -5px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.pl-ticks button::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 2px;
  height: 12px;
  background: var(--ink);
}
.pl-ticks button.m img {
  position: absolute;
  left: 50%;
  bottom: 20px;
  width: 22px;
  height: auto;
  transform: translateX(-50%);
}
.pl-ticks button.on::before,
.pl-ticks button:hover::before {
  background: var(--sig);
  width: 4px;
  left: 3px;
}
.pl-ticks button.on img {
  filter: none;
}
.player.wide .pl-bar {
  padding-top: 22px;
}
.pl-time {
  white-space: nowrap;
  min-width: 82px;
  text-align: right;
}
.player:fullscreen {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--paper);
}
.player:fullscreen .pl-screen {
  width: min(100%, calc((100vh - 70px) * 1280 / 714));
  margin: 0 auto;
}
.qm {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--paper);
  font-size: 12px;
  line-height: 1;
  cursor: help;
  vertical-align: 1px;
}
.qm:hover,
.qm:focus-visible {
  background: var(--sig);
}
.h2 .qm {
  vertical-align: 4px;
}
.win > .tb .tbq {
  position: absolute;
  left: 32px;
  top: 0;
  width: 18px;
  height: 18px;
  box-shadow: 0 0 0 2px var(--paper);
}
.helpcard {
  position: absolute;
  z-index: 80;
  animation: pop .16s steps(3) both;
}
.helpcard img {
  width: 100%;
  height: auto;
  border-bottom: 2px solid var(--ink);
}
.helpcard p {
  margin: 0;
  padding: 10px 12px 12px;
}
@keyframes pop {
  from {
    transform: scale(.8);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.coach {
  position: absolute;
  z-index: 75;
  padding: 10px 12px;
  background: var(--paper);
  border: 2px solid var(--ink);
  box-shadow: 3px 3px 0 var(--sig);
  animation: pop .16s steps(3) both;
}
.coach b {
  font-weight: normal;
  display: block;
  background: var(--ink);
  color: var(--paper);
  padding: 0 6px;
  margin: -2px 0 6px;
  align-self: start;
  width: max-content;
  max-width: 100%;
}
.coach p {
  margin: 0 0 10px;
}
.coach > div {
  display: flex;
  gap: 6px;
  align-items: center;
}
.coach > div .muted {
  flex: 1;
}
.coach-on {
  outline: 3px solid var(--sig);
  outline-offset: 2px;
}
.celebrate {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 16px;
  background: var(--dither);
  background-size: 4px 4px;
  opacity: 0;
  transition: opacity .2s steps(3);
}
.celebrate.on {
  opacity: 1;
}
.celebrate .dlg {
  width: min(460px, 100%);
}
.celebrate .dlg.wide {
  width: min(760px, 100%);
}
.celebrate .body {
  display: grid;
  gap: 14px;
  justify-items: center;
  text-align: center;
}
.cel-stage {
  position: relative;
  width: 100%;
  height: 220px;
  display: grid;
  place-items: end center;
  border-bottom: 2px solid var(--ink);
}
.cel-stage img {
  height: 190px;
  width: auto;
}
.celebrate.on .cel-stage img {
  animation: thump .6s steps(4) both .1s;
}
@keyframes thump {
  0% {
    transform: translateY(-30px);
  }
  60% {
    transform: translateY(0) scaleY(.92);
  }
  100% {
    transform: none;
  }
}
.stamp {
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%) rotate(-8deg);
  padding: 4px 16px;
  font-size: 36px;
  line-height: 42px;
  color: var(--sig);
  border: 4px solid var(--sig);
  background: var(--paper);
  box-shadow: 0 0 0 2px var(--paper);
  opacity: 0;
}
.celebrate.on .stamp {
  animation: stamp .5s steps(4) both .55s;
}
@keyframes stamp {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-8deg) scale(2.4);
  }
  70% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-8deg) scale(.94);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-8deg) scale(1);
  }
}
.burst {
  position: absolute;
  left: 50%;
  bottom: 90px;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  opacity: 0;
  pointer-events: none;
}
.celebrate.on .burst {
  animation: flare 1s steps(6) both .5s;
}
.cel-act {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: center;
}
.sharecard {
  width: 100%;
  height: auto;
  border: 2px solid var(--ink);
  image-rendering: auto;
  background: var(--paper) var(--dither);
  aspect-ratio: 1200 / 630;
}
@media (prefers-reduced-motion: reduce) {
  .celebrate.on .cel-stage img,
  .celebrate.on .stamp,
  .celebrate.on .burst {
    animation: none;
    opacity: 1;
  }
  .celebrate.on .burst {
    opacity: 0;
  }
}
.sticky {
  display: none;
}
@media (max-width: 760px) {
  .sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    display: flex;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: var(--paper);
    border-top: 2px solid var(--ink);
  }
  .sticky .btn {
    flex: 1;
    min-height: 44px;
    font-size: 12px;
  }
  .sticky .btn.go {
    flex: 2;
  }
  body {
    padding-bottom: 66px;
  }
  .toast {
    bottom: 76px;
  }
  .in,
  select.in {
    font-size: 16px;
    line-height: 20px;
  }
}
.before {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 14px;
  margin: 10px 0;
}
.before > div > b {
  font-weight: normal;
  display: inline-block;
  padding: 0 6px;
  background: var(--ink);
  color: var(--paper);
}
.before .receipt {
  margin: 4px 0 0;
}
.before .receipt li:last-child b {
  color: var(--sig);
}
.after {
  list-style: none;
  counter-reset: a;
  margin: 0;
  padding: 4px 0;
}
.after li {
  counter-increment: a;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 2px 10px;
  padding: 8px 14px;
  border-bottom: 1px dashed var(--ink);
}
.after li:last-child {
  border-bottom: 0;
}
.after li::before {
  content: counter(a);
  grid-row: 1 / 3;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  background: var(--ink);
  color: var(--paper);
}
.after b {
  font-weight: normal;
}
.after span {
  color: #555;
}
.tagline .tag,
.tag {
  display: inline-block;
  padding: 0 5px;
  background: var(--ink);
  color: var(--paper);
}
.tag.AI {
  background: var(--sig);
  color: var(--ink);
}
.tag.house {
  background: var(--paper);
  color: var(--ink);
  box-shadow: inset 0 0 0 2px var(--ink);
}
#preview .h3 {
  font-size: 24px;
  line-height: 30px;
}
.pagehead .body {
  display: grid;
  gap: 6px;
}
.pagehead p {
  margin: 0;
}
.jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 10px;
  border: 2px solid var(--ink);
  width: max-content;
  max-width: 100%;
}
.jump a {
  padding: 3px 10px;
  text-decoration: none;
  border-right: 2px solid var(--ink);
  white-space: nowrap;
}
.jump a:last-child {
  border-right: 0;
}
.jump a:hover,
.jump a.on {
  background: var(--ink);
  color: var(--paper);
}
.guide {
  display: grid;
  gap: var(--gap);
}
.gstep {
  scroll-margin-top: 50px;
}
.gbody {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
}
.gstep:nth-child(even) .gbody {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
}
.gstep:nth-child(even) .pic {
  order: 2;
  border-right: 0;
  border-left: 2px solid var(--ink);
}
.gbody .pic {
  border-right: 2px solid var(--ink);
  background: var(--paper);
}
.gbody .pic img {
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 896;
}
.gtx {
  padding: 26px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  align-items: flex-start;
}
.gtx .n {
  font-size: 36px;
  line-height: 42px;
  color: var(--sig);
}
.gtx h2 {
  font-size: 36px;
  line-height: 42px;
  font-weight: normal;
  margin: 0;
}
.gtx p {
  margin: 0;
  max-width: 52ch;
}
.qa details {
  border-bottom: 1px dashed var(--ink);
  padding: 8px 0;
}
.qa summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  gap: 8px;
}
.qa summary::before {
  content: "+";
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border: 2px solid var(--ink);
  flex: none;
}
.qa details[open] summary::before {
  content: "−";
  background: var(--ink);
  color: var(--paper);
}
.qa details p {
  margin: 6px 0 0 26px;
}
.tools {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 2px solid var(--ink);
}
.find .in {
  font-size: 24px;
  line-height: 30px;
  padding: 6px 10px;
}
.kinds {
  flex-wrap: wrap;
}
.kinds button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.kinds button img {
  width: 18px;
  height: auto;
}
.kinds button[aria-pressed=true] img {
  filter: invert(1);
}
.tools .row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
}
.sel {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sel select {
  width: auto;
  padding: 3px 28px 3px 8px;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  background-color: var(--paper);
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      var(--ink) 50%),
    linear-gradient(
      -45deg,
      transparent 50%,
      var(--ink) 50%);
  background-position: right 13px top 50%, right 7px top 50%;
  background-size: 6px 6px;
  background-repeat: no-repeat;
}
.count {
  margin-left: auto;
  color: #555;
}
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 0;
}
.ccard {
  position: relative;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px 14px;
  padding: 14px;
  text-decoration: none;
  border-right: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  margin: 0 -2px -2px 0;
}
.ccard:hover {
  background: var(--ink);
  color: var(--paper);
}
.ccard:hover .muted,
.ccard:hover dt {
  color: var(--paper);
}
.ccard:hover .cm img {
  filter: invert(1);
}
.cimg {
  width: 96px;
  height: 96px;
  border: 2px solid var(--ink);
  background: var(--paper) var(--dither);
  overflow: hidden;
}
.ccard:hover .cimg {
  border-color: var(--paper);
}
.cimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: auto;
}
.ctx {
  min-width: 0;
  display: grid;
  gap: 2px;
  align-content: start;
}
.ct {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ct b {
  font-weight: normal;
  font-size: 24px;
  line-height: 30px;
}
.cn {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cm {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cm img {
  width: 16px;
  height: auto;
}
.cst {
  position: absolute;
  right: 14px;
  top: 14px;
}
.cnum {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 14px;
  margin: 0;
  padding-top: 8px;
  border-top: 1px dashed currentColor;
}
.cnum dt {
  color: #555;
}
.cnum dd {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cfoot {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: inherit;
  opacity: .8;
}
.empty.wide {
  grid-column: 1 / -1;
}
.empty.illus img {
  width: min(420px, 100%);
  height: auto;
  margin: 0 auto 10px;
}
.empty .h2 {
  margin-bottom: 4px;
}
.tiles {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.tiles > div {
  padding: 14px 16px;
  border-right: 2px solid var(--ink);
  display: grid;
  gap: 4px;
}
.tiles > div:last-child {
  border-right: 0;
}
.tiles b {
  font-weight: normal;
  font-size: 36px;
  line-height: 42px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#meTiles {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}
.stack {
  display: grid;
  gap: var(--gap);
  align-content: start;
}
.bm {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px dashed var(--ink);
}
.bm:last-child {
  border-bottom: 0;
}
.bm img {
  height: 54px;
  width: auto;
  justify-self: center;
}
.bm-h {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  align-items: baseline;
  margin-bottom: 6px;
}
.bm-h b {
  font-weight: normal;
  font-size: 24px;
  line-height: 30px;
}
.gauge,
.meter {
  position: relative;
  height: 14px;
  border: 2px solid var(--ink);
  background: var(--paper);
}
.gauge i,
.meter i {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  background: var(--sig);
  border-right: 2px solid var(--ink);
}
.gauge i[style*="width:0%"] {
  border: 0;
}
.meter {
  height: 22px;
  margin: 10px 0;
}
.meter span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  mix-blend-mode: normal;
}
.ledger.sortable th button {
  border: 0;
  background: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
}
.ledger.sortable th button[aria-pressed=true] {
  background: var(--ink);
  color: var(--paper);
  padding: 0 4px;
}
.ledger .m img {
  height: 22px;
  width: auto;
}
.receipt.pad {
  margin: 0;
  padding: 6px 14px 10px;
}
.receipt.big li {
  padding: 6px 0;
}
.receipt li.hi b {
  color: var(--sig);
}
.receipt li.hi {
  font-size: 24px;
  line-height: 30px;
}
.calc-in {
  display: grid;
  gap: 4px;
}
.unit {
  display: flex;
}
.unit .in {
  flex: 1;
  min-width: 0;
}
.unit b {
  font-weight: normal;
  padding: 5px 10px;
  border: 2px solid var(--ink);
  border-left: 0;
  background: var(--ink);
  color: var(--paper);
}
.calc .field > span:first-child,
#next .field > span:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 0 8px;
}
.coinhead .acts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 8px 0 0;
}
.coinhead .mach {
  position: relative;
}
.coinhead .mach.on img {
  animation: thump .6s steps(4);
}
.coinhead .mach .burst {
  bottom: 50%;
}
.coinhead .mach.on .burst {
  animation: flare 1s steps(6) both;
}
.hist {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  gap: 2px;
  height: 120px;
  align-items: end;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 8px;
  position: relative;
}
.hist span {
  position: relative;
  height: 100%;
  display: flex;
  align-items: flex-end;
}
.hist span i {
  display: block;
  width: 100%;
  background: var(--ink);
}
.hist span:nth-last-child(-n+1) i {
  background: var(--sig);
}
.hist span b {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 6px;
  background: var(--sig);
}
.hist-k {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  color: #555;
}
#history p {
  margin: 8px 0 0;
}
.gate img {
  width: min(460px, 100%);
  height: auto;
  margin: 0 auto 10px;
}
#mine {
  display: grid;
  gap: var(--gap);
}
@media (max-width: 1100px) {
  .tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .tiles > div:nth-child(3n) {
    border-right: 0;
  }
  .tiles > div:nth-child(-n+3) {
    border-bottom: 2px solid var(--ink);
  }
  .gbody,
  .gstep:nth-child(even) .gbody {
    grid-template-columns: minmax(0, 1fr);
  }
  .gbody .pic,
  .gstep:nth-child(even) .pic {
    order: 0;
    border: 0;
    border-bottom: 2px solid var(--ink);
  }
}
@media (max-width: 640px) {
  .seg button {
    white-space: normal;
    padding: 4px 3px;
    line-height: 16px;
    min-width: 0;
  }
  .pl-bar {
    flex-wrap: wrap;
    gap: 6px;
    padding: 18px 10px 10px;
  }
  .pl-track {
    order: -1;
    flex: 1 1 100%;
    height: 30px;
  }
  .pl-time {
    min-width: 0;
    margin-right: auto;
  }
  .pl-k {
    min-width: 44px;
    height: 40px;
  }
  .pl-big {
    bottom: 22px;
  }
  .pl-big .lbl {
    font-size: 12px;
    line-height: 18px;
  }
  .tiles,
  #meTiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tiles > div {
    border-bottom: 2px solid var(--ink);
  }
  .tiles > div:nth-child(3n) {
    border-right: 2px solid var(--ink);
  }
  .tiles > div:nth-child(2n) {
    border-right: 0;
  }
  .tiles b {
    font-size: 24px;
    line-height: 30px;
  }
  .gtx {
    padding: 16px;
  }
  .gtx h2,
  .gtx .n {
    font-size: 24px;
    line-height: 30px;
  }
  .before {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .ccard {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .cimg {
    width: 72px;
    height: 72px;
  }
  .count {
    margin-left: 0;
  }
  .find .in {
    font-size: 16px;
    line-height: 20px;
  }
  .kinds button {
    flex: 1 1 30%;
    border-bottom: 2px solid var(--ink);
  }
  .kinds {
    border-bottom: 0;
  }
  .receipt li.hi {
    font-size: 12px;
    line-height: 18px;
  }
  .celebrate .cel-stage {
    height: 170px;
  }
  .celebrate .cel-stage img {
    height: 150px;
  }
  .jump {
    width: 100%;
  }
  .jump a {
    flex: 1 1 auto;
    text-align: center;
    border-bottom: 2px solid var(--ink);
  }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(dpm-main),
  ::view-transition-new(dpm-main) {
    animation: none;
  }
  main.desk {
    animation: none !important;
  }
  .spot:hover,
  .spot:focus-visible {
    animation: none;
  }
  .flare.on,
  .spot.flash,
  .coinhead .mach.on img,
  .coinhead .mach.on .burst {
    animation: none;
  }
}
.waitline {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}
.waitline img {
  width: 200px;
  height: auto;
  border: 2px solid var(--ink);
}
.waitline p {
  margin: 0 0 4px;
}
@media (max-width: 640px) {
  .waitline {
    grid-template-columns: minmax(0, 1fr);
  }
  .waitline img {
    width: 100%;
  }
}
