html > body > #grid .dialog {
  /** Required arguments with purportedly ridiculous defaults */
  --element-background-dialog: red;
  --element-background-curtain: red;
  --element-color-closer: red;
  --element-color-shadow: red;
  --element-gap: 50px;
  --element-opener-text-decoration-line: underline;
  --element-opener-text-decoration-style: solid;
  --element-opener-text-decoration-thickness: 200px;
  --element-opener-text-underline-offset: 50px;
  --element-border-radius: 50%;
  --element-zindex: -10000;

  > summary {
    text-align: start;
    display: inline-block;
    text-decoration-line: var(--element-opener-text-decoration-line);
    text-decoration-style: var(--element-opener-text-decoration-style);
    text-decoration-thickness: var(--element-opener-text-decoration-thickness);
    text-underline-offset: var(--element-opener-text-underline-offset);
    white-space: nowrap;
  }

  > :not(summary) {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: var(--element-zindex);
    padding: var(--element-gap);
    margin: var(--element-gap);
    background: var(--element-background-dialog);
    box-shadow:
      1px 1px var(--element-color-shadow),
      0 0 0 100000px var(--element-background-curtain)
  ;
    border-radius: var(--element-border-radius);

    > * {
      flex: 0 0 100%;
      margin: 0;
    }
  }

  &[open] {
    &:before {
      content: '';
      position: fixed;
      z-index: calc(var(--element-zindex) - 1);
      inset: 0;
      cursor: default;
    }

    > :not(summary) {
      min-width: 20em;
    }

    > summary:after {
      display: block;
      position: absolute;
      z-index: calc(var(--element-zindex) + 1);
      top: 0;
      right: 0;
      margin-top: var(--element-gap);
      margin-right: var(--element-gap);
      text-shadow: 1px 1px var(--element-color-shadow);
      font-size: 250%;
      color: var(--element-color-closer);
      text-decoration: none;
      font-style: normal;
      font-weight: bold;
      content: "×";
    }
  }
}
