.panel-shell() {
  position: relative;
  background:
    linear-gradient(180deg, fade(@bone, 4%), transparent 24%),
    linear-gradient(135deg, fade(@ember, 8%), transparent 40%),
    linear-gradient(180deg, fade(@bg-char, 52%), fade(@bg-void, 34%)),
    url("@{page-bg-url}") center center / cover no-repeat,
    linear-gradient(180deg, @bg-panel 0%, color-mix(in srgb, @bg-panel 88%, black) 100%);
  border: @border-main;
  border-radius: @radius-md;
  box-shadow: @shadow-heavy, @shadow-inset;
}

.ornate-frame() {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    inset: 6px;
    pointer-events: none;
    border: 1px solid fade(@gold-acid, 16%);
    border-radius: calc(@radius-md - 4px);
  }
}

.caps-heading() {
  font-family: @font-display;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.body-copy() {
  font-family: @font-body;
  line-height: 1.45;
}

.metal-button() {
  .caps-heading();
  border: 1px solid fade(@gold-acid, 44%);
  border-radius: 999px;
  background:
    linear-gradient(180deg, fade(@ember-bright, 20%), fade(@blood, 10%)),
    linear-gradient(135deg, fade(@bone, 10%), transparent 40%),
    @bg-input;
  color: @parchment;
  box-shadow: inset 0 1px 0 fade(white, 8%), 0 6px 14px fade(black, 20%);
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease, color 120ms ease;

  &:hover,
  &:focus {
    border-color: fade(@ember-bright, 70%);
    color: lighten(@parchment, 8%);
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 fade(white, 14%), 0 8px 18px fade(@blood, 26%);
  }
}
