@layer base {
  *,
  *::before,
  *::after {
    font: inherit;
    color: inherit;
    -webkit-text-size-adjust: none;
  }
}


html,
body {
  height: 100dvh;
}


body {
  padding-top: env(safe-area-inset-top);
  background-color: var(--toolbar-background-color);


  > [purpose="sheet"] {
    border-top-left-radius: var(--sheet-border-radius);
    border-top-right-radius: var(--sheet-border-radius);


    [purpose="heading"] {
      text-box: trim-both cap alphabetic;
      overflow: visible;
    }
  }


  a:is(:link, :visited) {
    color: var(--active-color);
    text-underline-offset: 0.2rem;
  }


  b,
  button,
  button > span {
    font-weight: 600;
  }
}


#game-market-view {
  > [purpose="tablist"] {
    > [purpose="tabitem"] {
      box-sizing: content-box;
      padding-bottom: env(safe-area-inset-bottom);
    }
  }
}


:is([is="view"], [is="host"]) {
  > [purpose="heading"]:has(> .logo):has(> .name) {
    padding-block: 0.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;


    > .logo {
      display: block;
      align-self: center;
      width: auto;
      height: 4.8rem;
    }


    > .name {
      font-size: 1.5rem;
      font-weight: 600;
      line-height: 1;
      letter-spacing: 0.1rem;
      text-box: trim-both cap alphabetic;
    }
  }


  > header[purpose="toolbar"] {
    align-items: center;
    border-bottom: var(--toolbar-border);


    fieldset:has(> menu) {
      border: none;


      > button[popovertarget] {
        &:has(+ menu:popover-open) {
          anchor-name: --viewkit-menu-button;
          opacity: 0;
          transition: opacity 0.2s;
        }
      }


      > menu[popover] {
        position: absolute;
        position-anchor: --viewkit-menu-button;
        inset: auto;
        margin: 0;
        box-shadow:
          0px 0px 0px 1px rgba(0, 0, 0, 0.06),
          0px 1px 2px -1px rgba(0, 0, 0, 0.06),
          0px 2px 4px 0px rgba(0, 0, 0, 0.04);
        border: var(--toolbar-border);
        border-radius: calc(1.8rem + 0.8rem);
        padding: 0.8rem;
        background: var(--toolbar-background-color);
        display: grid;
        align-content: start;
        gap: 0.8rem;
        transform-origin: top right;

        &:not([anchorto]),
        &[anchorto="top-left"] {
          left: anchor(left);
          top: anchor(top);
          position-try-fallbacks:
            --viewkit-anchor-top-right,
            --viewkit-anchor-bottom-left,
            --viewkit-anchor-bottom-right;
        }

        &[anchorto="top-right"] {
          top: anchor(top);
          right: anchor(right);
          position-try-fallbacks:
            --viewkit-anchor-top-left,
            --viewkit-anchor-bottom-left,
            --viewkit-anchor-bottom-right;
        }

        &:not(:popover-open) {
          display: none;
        }

        &:popover-open {
          animation: viewkit-menu-open 0.2s ease;
        }


        > button {
          justify-content: start;
        }


        > hr {
          margin-block: 0.4rem;
          border: none;
          border-radius: 100vmax;
          height: 0.3rem;
          background: var(--toolbar-border-color);
        }
      }
    }
  }
}


@position-try --viewkit-anchor-top-left {
  inset: auto;
  top: anchor(top);
  left: anchor(left);
}

@position-try --viewkit-anchor-top-right {
  inset: auto;
  top: anchor(top);
  right: anchor(right);
}

@position-try --viewkit-anchor-bottom-left {
  inset: auto;
  bottom: anchor(bottom);
  left: anchor(left);
}

@position-try --viewkit-anchor-bottom-right {
  inset: auto;
  right: anchor(right);
  bottom: anchor(bottom);
}


@keyframes viewkit-menu-open {
  from {
    opacity: 0;
    scale: 0;
  }

  to {
    opacity: 1;
    scale: 1;
  }
}
