/* Shared compact capsule for actions throughout the account and tool catalogue. */
.world {
  --control-surface: linear-gradient(105deg, #171919 35%, #111311 78%);
  --control-edge: 3px solid rgba(255, 255, 255, .055);
  --control-shadow: inset 0 1px 4px #0008, 0 1px 0 #ffffff0a, 0 3px 10px #0002;
}

.world :is(.account-button, .account-text-button, .form-submit, .logout-button) {
  position: relative;
  isolation: isolate;
  min-height: 36px;
  border: var(--control-edge);
  border-radius: 999px;
  background: var(--control-surface);
  background-clip: padding-box;
  box-shadow: var(--control-shadow);
  color: #e6e8e2;
  font-family: inherit;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  transition: box-shadow 220ms, transform 220ms;
}

.world :is(.account-button, .account-text-button, .form-submit, .logout-button) {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: fit-content;
  min-width: min(160px, 100%);
  max-width: 100%;
  padding: 6px 72px 6px 12px;
  font-size: 9.5px;
  letter-spacing: .025em;
  text-align: left;
  overflow-wrap: anywhere;
}

.world .form-submit { width: 100%; }
.world :is(.account-button, .account-text-button, .form-submit, .logout-button) > .icon { display: none; }

.world :is(.account-button, .account-text-button, .form-submit, .logout-button)::before {
  content: "";
  position: absolute;
  inset: -2px -2px -2px auto;
  width: 62px;
  border: 1px solid #ffffff3b;
  border-radius: 999px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='white' fill-opacity='.3'%3E%3Ccircle cx='2' cy='2' r='1.2'/%3E%3Ccircle cx='8' cy='2' r='1.2'/%3E%3Ccircle cx='14' cy='2' r='1.2'/%3E%3Ccircle cx='2' cy='8' r='1.2'/%3E%3Ccircle cx='8' cy='8' r='1.2'/%3E%3Ccircle cx='14' cy='8' r='1.2'/%3E%3Ccircle cx='2' cy='14' r='1.2'/%3E%3Ccircle cx='8' cy='14' r='1.2'/%3E%3Ccircle cx='14' cy='14' r='1.2'/%3E%3C/svg%3E") 10px center / 18px 18px no-repeat,
    linear-gradient(110deg, rgba(var(--accent), .65), rgba(var(--accent), .2) 48%, #ffffff70);
  box-shadow: inset 0 1px 2px #ffffff5c, inset 1px -2px 3px #ffffff26, -7px 0 17px rgba(var(--accent), .23), 0 2px 5px #0003;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform 280ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms;
  pointer-events: none;
}

.world :is(.account-button, .account-text-button, .form-submit, .logout-button)::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 50%;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  border: 1px solid #ffffff2b;
  border-radius: 50%;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fffef4' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-5-5 5 5-5 5'/%3E%3C/svg%3E") center / 15px 15px no-repeat,
    linear-gradient(130deg, #ffffff12, #ffffff38);
  box-shadow: inset 1px 1px 4px #ffffff21, inset -2px -3px 6px #00000012;
  transition: transform 280ms cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}

.world :is(.account-button, .account-text-button, .form-submit, .logout-button):not(:disabled):is(:hover, :focus-visible)::before {
  transform: translateX(2px);
  box-shadow: inset 0 1px 2px #ffffff5c, inset 1px -2px 3px #ffffff26, -7px 0 22px rgba(var(--accent), .4), 0 2px 5px #0003;
}
.world :is(.account-button, .account-text-button, .form-submit, .logout-button):not(:disabled):is(:hover, :focus-visible)::after { transform: translate(2px, -50%); }
.world :is(.account-button, .account-text-button, .form-submit, .logout-button):not(:disabled):active { transform: scale(.98); }
.world :is(.account-button, .account-text-button, .form-submit, .logout-button)[aria-pressed="true"] { border-color: rgba(var(--accent), .3); background: var(--control-surface); }
.world :is(.purchase-button, .account-button, .account-text-button, .form-submit, .logout-button):focus-visible { outline: 2px solid rgb(var(--accent)); outline-offset: 5px; }
.world :is(.purchase-button, .account-button, .account-text-button, .form-submit, .logout-button):disabled { opacity: .45; cursor: default; }

@media (max-width: 700px) {
  .world #profile-form { flex-wrap: wrap; }
  .world .account-signout { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .world :is(.purchase-button, .account-button, .account-text-button, .form-submit, .logout-button),
  .world :is(.account-button, .account-text-button, .form-submit, .logout-button)::before,
  .world :is(.account-button, .account-text-button, .form-submit, .logout-button)::after { transition: none; }
}
