:root {
  --paper: #F2EEE6;
  --paper-deep: #E8DCC4;
  --chalk: #FBF9F4;
  --ink: #202320;
  --ink-soft: #5E6360;
  --ink-dim: #5E6360;
  --line: #B8ADA0;
  --accent: #3E5F54;
  --accent-2: #8C4943;
  --juniper: #29403A;
  --sumac: #5C2B27;
  --terracotta: #BC6A47;
  --celadon: #C4D2CB;
  --sage-mist: #84998E;
  --stone: #9C9589;
  --walnut: #5A4636;
  --gold: var(--accent-2);
}

body {
  border-top: 0;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 31px,
      rgba(90, 70, 54, .035) 31px 32px
    ),
    var(--paper);
}

nav {
  top: 0;
  min-height: 60px;
  border-bottom: 1px solid rgba(196, 210, 203, .24);
  background: rgba(41, 64, 58, .97);
  box-shadow: 0 5px 0 rgba(92, 43, 39, .92);
}

.nav-brand {
  color: var(--chalk);
}

.nav-brand::before {
  content: "\25C7";
  color: var(--paper-deep);
  font-size: 12px;
}

.nav-brand b {
  color: var(--celadon);
}

.nav-tag {
  color: rgba(245, 241, 233, .68);
}

header {
  position: relative;
  min-height: 720px;
  overflow: hidden;
  border-bottom: 7px double rgba(90, 70, 54, .28);
  background:
    linear-gradient(90deg, transparent 0 73%, rgba(92, 43, 39, .075) 73% 100%),
    linear-gradient(rgba(70, 91, 75, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(70, 91, 75, .045) 1px, transparent 1px),
    var(--paper);
  background-size: auto, 38px 38px, 38px 38px, auto;
}

header > * {
  position: relative;
  z-index: 2;
}

header::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 92px;
  right: max(42px, calc((100vw - 1180px) / 2));
  width: 300px;
  height: 430px;
  border: 2px solid rgba(62, 95, 84, .34);
  border-bottom: 0;
  border-radius: 170px 170px 0 0;
  box-shadow:
    0 0 0 14px var(--paper),
    0 0 0 15px rgba(92, 43, 39, .22),
    inset 0 0 0 16px rgba(242, 238, 230, .8),
    inset 0 0 0 17px rgba(62, 95, 84, .2);
  pointer-events: none;
}

header::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 196px;
  right: max(191px, calc((100vw - 882px) / 2));
  width: 1px;
  height: 380px;
  background: linear-gradient(
    var(--accent-2),
    rgba(92, 43, 39, .14) 82%,
    transparent
  );
  box-shadow:
    -74px 116px 0 rgba(62, 95, 84, .2),
    74px 116px 0 rgba(62, 95, 84, .2);
  pointer-events: none;
}

.hex {
  position: relative;
  width: 58px;
  height: 58px;
  margin-bottom: 30px;
  background: var(--sumac);
  filter: drop-shadow(8px 8px 0 rgba(183, 156, 119, .35));
}

.hex::before,
.hex::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid var(--paper-deep);
  clip-path: inherit;
}

.hex::after {
  inset: 22px;
  border: 0;
  background: var(--paper-deep);
}

.hex span {
  display: none;
}

header .kicker {
  display: inline-block;
  width: max-content;
  margin-bottom: 20px;
  padding: 6px 10px 5px;
  border-left: 4px solid var(--sumac);
  background: rgba(196, 210, 203, .46);
  color: var(--juniper);
}

h1 {
  max-width: 740px;
  color: var(--juniper);
  font-size: 88px;
  line-height: .94;
}

h1 .gild {
  color: var(--sumac);
}

.hero-sub {
  max-width: 650px;
  color: var(--walnut);
  font-size: 26px;
}

.doorway {
  max-width: 650px;
  padding-left: 22px;
  border-left: 2px solid var(--terracotta);
  color: #4D514E;
}

.scroll-hint {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 10px;
  margin-top: 34px;
  padding-top: 11px;
  border-top: 1px solid rgba(62, 95, 84, .42);
  color: var(--accent);
}

main {
  position: relative;
  max-width: 980px;
  padding-top: 92px;
}

.letter {
  position: relative;
  max-width: 860px;
  margin: 0 auto;
  padding: 52px 58px 48px;
  border: 7px double rgba(90, 70, 54, .3);
  background:
    linear-gradient(135deg, rgba(196, 210, 203, .34), transparent 24%),
    linear-gradient(315deg, rgba(205, 179, 137, .3), transparent 22%),
    var(--chalk);
  box-shadow: 16px 16px 0 rgba(183, 156, 119, .2);
}

.letter::before {
  content: "ADAB / 01";
  position: absolute;
  top: 18px;
  right: 22px;
  color: var(--accent-2);
  font: 500 9px/1 var(--mono);
}

.letter::after {
  content: "";
  position: absolute;
  right: 15px;
  bottom: 15px;
  width: 56px;
  height: 56px;
  border-right: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
}

.letter h2 {
  color: var(--juniper);
  font-size: 42px;
}

.letter p {
  max-width: 720px;
  font-size: 20px;
}

.letter p.lead {
  color: var(--walnut);
  font-size: 23px;
}

.letter p.lead::first-letter {
  float: left;
  margin: 9px 12px 0 0;
  color: var(--sumac);
  font-family: var(--display);
  font-size: 74px;
  font-weight: 600;
  line-height: .72;
}

.letter .eyebrow {
  width: max-content;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--terracotta);
  color: var(--sumac);
}

main > section.article {
  position: relative;
  margin-top: 92px;
  padding: 72px 0;
}

main > section.article::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 calc(50% - 50vw);
  border-top: 1px solid rgba(90, 70, 54, .16);
  border-bottom: 1px solid rgba(90, 70, 54, .16);
  background: rgba(232, 220, 196, .42);
}

main > section.article:nth-of-type(2)::before {
  background:
    linear-gradient(90deg, rgba(70, 91, 75, .06) 1px, transparent 1px),
    rgba(196, 210, 203, .34);
  background-size: 42px 42px, auto;
}

main > section.article:nth-of-type(3)::before {
  border-top: 6px solid var(--juniper);
  background:
    linear-gradient(135deg, rgba(196, 210, 203, .22), transparent 42%),
    var(--chalk);
}

main > section.article > .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--sumac);
}

main > section.article > .eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
}

.gloss-h {
  color: var(--juniper);
  font-size: 42px;
}

.caravan {
  gap: 8px;
  margin: 72px 0;
}

.caravan::before,
.caravan::after {
  width: min(230px, 24vw);
  height: 3px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
}

.caravan .d {
  width: 5px;
  height: 5px;
  border-radius: 0;
  background: var(--stone);
  transform: rotate(45deg);
}

.caravan .hx {
  width: 15px;
  height: 15px;
  border: 3px solid var(--paper);
  background: var(--sumac);
  box-shadow: 0 0 0 1px var(--sumac);
}

.glossary {
  gap: 22px;
}

.root {
  position: relative;
  min-height: 100%;
  padding: 34px 30px 30px;
  overflow: hidden;
  border: 1px solid rgba(90, 70, 54, .3);
  border-top: 6px solid var(--accent);
  background:
    linear-gradient(135deg, rgba(196, 210, 203, .28), transparent 38%),
    var(--chalk);
  box-shadow: 10px 10px 0 rgba(90, 70, 54, .09);
}

.root::before {
  content: "";
  position: absolute;
  top: 13px;
  right: 13px;
  width: 22px;
  height: 22px;
  border-top: 1px solid var(--accent);
  border-right: 1px solid var(--accent);
}

.root:nth-child(2) {
  border-top-color: var(--sumac);
  background:
    linear-gradient(135deg, rgba(205, 179, 137, .34), transparent 38%),
    var(--chalk);
}

.root:nth-child(2)::before {
  border-color: var(--sumac);
}

.root .ar {
  display: grid;
  width: 82px;
  height: 82px;
  margin-bottom: 20px;
  place-items: center;
  border: 1px solid rgba(62, 95, 84, .34);
  border-radius: 50%;
  background: rgba(196, 210, 203, .34);
  color: var(--juniper);
  font-size: 43px;
}

.root:nth-child(2) .ar {
  border-color: rgba(92, 43, 39, .3);
  background: rgba(232, 220, 196, .72);
  color: var(--sumac);
}

.root .tl {
  color: var(--juniper);
  font-size: 24px;
}

.root .pr {
  color: var(--accent-2);
}

.root .ln b,
.root .ch {
  color: var(--sumac);
}

.sgn li::before,
.qlist li::before {
  content: "\25C7";
  color: var(--terracotta);
}

.pull {
  position: relative;
  max-width: 820px;
  margin: 60px auto;
  padding: 34px 72px;
  border: 0;
  background: var(--juniper);
  color: var(--chalk);
  font-size: 34px;
  text-align: center;
  box-shadow:
    inset 0 0 0 8px var(--juniper),
    inset 0 0 0 9px rgba(232, 220, 196, .28);
}

.glossary + .pull {
  margin-top: 36px !important;
}

.pull::before,
.pull::after {
  content: "\25C7";
  position: absolute;
  top: 50%;
  color: var(--terracotta);
  font-family: var(--mono);
  font-size: 20px;
  transform: translateY(-50%);
}

.pull::before {
  left: 28px;
}

.pull::after {
  right: 28px;
}

.toolindex {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ti-card {
  position: relative;
  min-height: 148px;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 10px;
  overflow: hidden;
  border: 1px solid rgba(90, 70, 54, .3);
  border-top: 5px solid var(--accent);
  background: var(--chalk);
  box-shadow: 6px 6px 0 rgba(90, 70, 54, .08);
}

.ti-card::after {
  content: "";
  position: absolute;
  right: -20px;
  bottom: -20px;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(62, 95, 84, .2);
  transform: rotate(45deg);
}

.ti-card:nth-child(2) {
  border-top-color: var(--terracotta);
  background: #F3E7D5;
}

.ti-card:nth-child(3) {
  border-top-color: var(--sumac);
  background: #E7ECE8;
}

.ti-card:nth-child(4) {
  border-top-color: var(--sage-mist);
  background: #EFECE4;
}

.ti-card:nth-child(5) {
  border-top-color: var(--walnut);
  background: #E8DCC4;
}

.ti-card:hover {
  border-color: var(--accent);
  background: var(--chalk);
  transform: translateY(-3px);
}

.ti-card .n {
  width: 34px;
  height: 34px;
  background: var(--juniper);
  color: var(--chalk);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  place-items: center;
  font-size: 10px;
}

.ti-card:nth-child(2) .n,
.ti-card:nth-child(5) .n {
  background: var(--sumac);
}

.ti-card .t {
  color: var(--juniper);
  font-size: 18px;
}

.toolpanel {
  margin-top: 26px;
  padding: 42px;
  border: 7px double rgba(41, 64, 58, .46);
  background:
    linear-gradient(rgba(70, 91, 75, .035) 1px, transparent 1px),
    var(--chalk);
  background-size: 100% 32px, auto;
  box-shadow: 14px 14px 0 var(--paper-deep);
}

.toolpanel::before {
  top: -7px;
  left: 42px;
  width: 150px;
  height: 7px;
  background: linear-gradient(90deg, var(--sumac) 0 42%, var(--terracotta) 42% 64%, var(--accent) 64%);
}

.toolpanel::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border-top: 2px solid var(--sumac);
  border-right: 2px solid var(--sumac);
}

.tp-h {
  position: relative;
  margin-bottom: 34px;
  padding: 0 68px 24px 0;
  border-bottom: 3px double rgba(90, 70, 54, .28);
}

.tp-h .t {
  color: var(--juniper);
  font-size: 34px;
}

.tp-h .s {
  color: var(--walnut);
}

.tp-sec {
  margin-bottom: 30px;
  padding-left: 18px;
  border-left: 2px solid rgba(62, 95, 84, .24);
}

.tp-sec > .tl {
  width: max-content;
  max-width: 100%;
  padding: 5px 9px;
  background: var(--juniper);
  color: var(--chalk);
}

.tp-field {
  grid-template-columns: minmax(180px, 34%) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(90, 70, 54, .25);
}

.tp-field label {
  padding-top: 8px;
  color: var(--walnut);
}

.tp-field textarea {
  min-height: 84px;
  border: 1px solid rgba(90, 70, 54, .25);
  border-left: 4px solid var(--celadon);
  background: rgba(251, 249, 244, .86);
}

.tp-field textarea:focus {
  border-color: var(--accent);
  border-left-color: var(--sumac);
}

.opts label {
  padding: 10px 12px;
  border: 1px solid rgba(90, 70, 54, .22);
  background: rgba(232, 220, 196, .42);
}

.doorbox {
  border: 1px solid rgba(90, 70, 54, .25);
  border-left: 6px solid var(--sumac);
  background:
    linear-gradient(90deg, rgba(205, 179, 137, .32), transparent 46%),
    var(--paper);
  color: var(--walnut);
}

.tp-table-wrap {
  border: 1px solid rgba(41, 64, 58, .35);
  box-shadow: 6px 6px 0 rgba(90, 70, 54, .08);
}

.tp-table th {
  background: var(--juniper);
  color: var(--chalk);
}

.btn {
  border-color: var(--juniper);
  color: var(--juniper);
}

.btn-solid {
  background: var(--sumac);
  border-color: var(--sumac);
  color: var(--chalk);
}

.btn-solid:hover {
  background: var(--juniper);
}

.closing {
  max-width: 760px;
  padding: 42px 46px;
  border-top: 1px solid var(--sumac);
  border-bottom: 1px solid var(--sumac);
  background: rgba(232, 220, 196, .4);
}

.closing .q {
  color: var(--juniper);
  font-size: 25px;
}

footer {
  padding: 34px 24px;
  border-top: 7px double rgba(232, 220, 196, .22);
  background: var(--juniper);
  color: rgba(245, 241, 233, .7);
}

@media (max-width: 980px) {
  header::before {
    right: -52px;
    opacity: .5;
  }

  header::after {
    right: 97px;
    opacity: .5;
  }

  h1 {
    max-width: 660px;
    font-size: 76px;
  }
}

@media (max-width: 760px) {
  nav {
    box-shadow: 0 4px 0 rgba(92, 43, 39, .92);
  }

  header {
    min-height: 680px;
    padding-top: 86px;
  }

  header::before {
    top: 102px;
    right: -88px;
    width: 220px;
    height: 380px;
    opacity: .24;
  }

  header::after {
    top: 206px;
    right: 21px;
    opacity: .24;
  }

  h1 {
    max-width: 100%;
    font-size: 56px;
  }

  .hero-sub {
    font-size: 22px;
  }

  .letter {
    padding: 44px 24px 38px;
    box-shadow: 8px 8px 0 rgba(183, 156, 119, .2);
  }

  .letter h2,
  .gloss-h {
    font-size: 34px;
  }

  .letter p.lead::first-letter {
    font-size: 62px;
  }

  main > section.article {
    margin-top: 70px;
    padding: 56px 0;
  }

  .glossary,
  .toolindex {
    grid-template-columns: 1fr;
  }

  .pull {
    padding: 30px 44px;
    font-size: 27px;
  }

  .pull::before {
    left: 16px;
  }

  .pull::after {
    right: 16px;
  }

  .toolpanel {
    padding: 34px 20px;
    box-shadow: 8px 8px 0 var(--paper-deep);
  }

  .toolpanel::before {
    left: 20px;
  }

  .tp-h {
    padding-right: 38px;
  }

  .tp-h .t {
    font-size: 28px;
  }

  .tp-sec {
    padding-left: 10px;
  }

  .tp-field {
    grid-template-columns: 1fr;
    gap: 5px;
  }
}

@media print {
  body {
    background: var(--press-white) !important;
  }

  .toolpanel {
    border: 1px solid #777;
    background: var(--press-white) !important;
    box-shadow: none;
  }

  .toolpanel::after,
  .tp-sec {
    border-color: #999;
  }

  .tp-sec > .tl,
  .tp-table th {
    background: #29403A !important;
    color: #FFFFFF !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
