:root {
  --paper:#f4f1e8;
  --ink:#193d49;
  --muted:#596b6d;
  --line:#cdd1c6;
  --gold:#ac732b;
  --white:#fcfaf5;
  --mono:"Cascadia Code","SFMono-Regular",Consolas,monospace;
  --sans:"Segoe UI",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:32px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,a,summary {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,summary:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:6px
}
::selection {
  background:#e1cba2
}
p {
  line-height:1.7
}
.wrap {
  width:min(1200px,calc(100% - 96px));
  margin-inline:auto
}
.site-header {
  height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line)
}
.wordmark {
  display:flex;
  align-items:center;
  font-size:22px;
  font-weight:650;
  letter-spacing:-.8px
}
.domain {
  font-weight:400;
  color:var(--muted)
}
.brand-mark {
  width:36px;
  height:37px;
  margin-right:13px;
  font:italic 31px var(--serif);
  position:relative
}
.brand-mark span {
  font:18px var(--sans);
  position:absolute;
  right:-2px;
  top:-4px;
  color:var(--gold)
}
nav {
  display:flex;
  gap:35px;
  align-items:center;
  font-size:14px
}
nav a {
  padding:10px 0
}
nav a:hover,.text-link:hover,footer a:hover {
  color:var(--gold)
}
.github-link {
  margin-left:12px
}
.github-link span {
  margin-left:8px
}
.hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  padding-block:76px 84px;
  align-items:center
}
.eyebrow {
  font:11px var(--mono);
  text-transform:uppercase;
  letter-spacing:1.7px;
  margin:0 0 24px;
  display:flex;
  align-items:center;
  gap:10px
}
.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#648474;
  box-shadow:0 0 0 4px #64847415
}
h1 {
  font:normal clamp(60px,6.8vw,92px)/1.02 var(--serif);
  letter-spacing:-4px;
  margin:0 0 27px
}
h1 em {
  color:var(--gold);
  font-weight:400
}
.intro {
  font-size:18px;
  max-width:410px;
  margin:0 0 12px;
  line-height:1.65
}
.intro-secondary {
  color:var(--muted);
  font-size:14px;
  margin:0 0 30px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:42px;
  background:var(--ink);
  color:var(--white);
  padding:16px 21px;
  font-size:13px;
  border:1px solid var(--ink);
  transition:background .2s,transform .2s
}
.button:hover {
  background:#2c5660;
  transform:translateY(-2px)
}
.button span {
  font-size:19px
}
.hero-chart {
  position:relative;
  color:#536e70;
  transform:rotate(4deg);
  padding:15px;
  background:#efede2;
  border:1px solid #c7cbbb;
  box-shadow:12px 15px 0 #e6e6da77;
  margin:4px 10px 26px 0
}
.chart-top,.chart-bottom {
  display:flex;
  justify-content:space-between;
  font:9px var(--mono);
  letter-spacing:1.2px;
  padding:4px 3px 12px
}
.chart-bottom {
  padding:13px 3px 3px;
  border-top:1px solid var(--line);
  font-size:8px
}
.airfield {
  display:block;
  width:100%;
  height:auto
}
.chart-note {
  position:absolute;
  bottom:26px;
  right:-22px;
  background:#e7d7b7;
  border:1px solid #d4bf96;
  color:#72562e;
  font:italic 17px/1.4 var(--serif);
  padding:16px 21px;
  transform:rotate(-8deg);
  box-shadow:3px 4px 8px #193d4909
}
.manifest {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-block:21px;
  font:10px var(--mono);
  letter-spacing:1.1px
}
.manifest p {
  margin:0;
  font:12px var(--sans);
  color:var(--muted);
  letter-spacing:0
}
.manifest p span {
  padding:0 13px;
  color:#9fa99f
}
.manifest-count {
  font-size:9px;
  color:var(--muted)
}
.projects {
  padding-block:86px 90px
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-bottom:37px
}
.section-heading .eyebrow {
  margin-bottom:16px
}
h2 {
  font:normal 42px/1.15 var(--serif);
  letter-spacing:-1.3px;
  margin:0
}
.section-heading>p {
  font-size:13px;
  color:var(--muted);
  margin:0 0 3px;
  line-height:1.7
}
.project-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:38px 30px
}
.project {
  border:1px solid var(--line);
  background:var(--white);
  min-width:0;
  transition:border-color .2s
}
.project:hover {
  border-color:#8b9e98
}
.project-visual {
  height:262px;
  position:relative;
  overflow:hidden;
  padding:22px 28px 25px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-bottom:1px solid var(--line)
}
.visual-kicker {
  font:9px var(--mono);
  letter-spacing:1.2px
}
.visual-caption {
  font:italic 17px var(--serif)
}
.gate-visual {
  background:#dfe7e2;
  color:#35565a
}
.terminal {
  margin:35px 4% 0;
  display:flex;
  justify-content:space-around;
  position:relative
}
.terminal:before {
  content:"";
  height:19px;
  background:#5d7b78;
  position:absolute;
  left:-9%;
  right:-9%;
  top:-25px
}
.terminal span {
  font:10px var(--mono);
  background:#f6f4eb;
  border:1px solid #a4b5ab;
  padding:5px 10px;
  position:relative
}
.terminal span:before {
  content:"";
  position:absolute;
  height:12px;
  width:3px;
  background:#5d7b78;
  left:50%;
  top:-12px
}
.gate-lines {
  display:flex;
  justify-content:space-around;
  margin:0 5%;
  font-size:33px
}
.gate-lines i {
  font-style:normal;
  transform:rotate(-90deg);
  color:#42666a
}
.gate-lines i:nth-child(3) {
  opacity:.2
}
.taxiway {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px dashed #a6a994;
  border-bottom:1px dashed #a6a994;
  color:#897239;
  font:9px var(--mono);
  letter-spacing:3px;
  padding:6px 10px;
  margin:0 -28px 8px
}
.taxiway span:first-child,.taxiway span:last-child {
  font-size:15px
}
.skycons-visual {
  background:#e6e8ef;
  color:#45516e
}
.tail-collection {
  display:flex;
  justify-content:center;
  gap:15px;
  padding:20px 3px 2px
}
.tail {
  width:77px;
  height:100px;
  clip-path:polygon(26% 0,66% 0,100% 100%,0 100%);
  position:relative;
  transform:skew(-8deg);
  display:flex;
  align-items:center;
  justify-content:center
}
.tail b {
  font:normal 49px var(--serif);
  transform:skew(8deg);
  margin-top:20px
}
.tail-one {
  background:#254e69;
  color:#e5a563
}
.tail-two {
  background:#9a4b40;
  color:#f2d6a2
}
.tail-three {
  background:#e7c982;
  color:#6e765f
}
.tail-four {
  background:#627d6c;
  color:#f2ead6
}
.swatch-labels {
  display:flex;
  gap:30px;
  justify-content:center;
  font:8px var(--mono);
  letter-spacing:1.5px;
  margin:4px 0 17px;
  color:#707a89
}
.data-visual {
  background:#e4ece8;
  color:#46665f
}
.data-visual svg,.wifi-visual svg {
  width:100%;
  height:155px;
  margin-block:4px
}
.data-labels {
  display:flex;
  gap:19px;
  font:9px var(--mono);
  letter-spacing:1px;
  margin-bottom:16px
}
.data-labels span:last-child {
  margin-left:auto;
  font-size:7px;
  align-self:center;
  opacity:.8
}
.wifi-visual {
  background:#e8e8d8;
  color:#5b654b
}
.signal-key {
  display:flex;
  align-items:center;
  gap:7px;
  font:7px var(--mono);
  letter-spacing:.6px;
  margin-bottom:16px
}
.signal-key>span:last-child {
  margin-left:auto;
  opacity:.8
}
.signal-gradient {
  height:5px;
  width:50px;
  background:linear-gradient(90deg,#5c8b70,#c3ad64,#c58a4d)
}
.project-body {
  padding:27px 30px 0
}
.project-meta {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font:9px var(--mono);
  letter-spacing:.4px;
  color:var(--muted);
  text-transform:uppercase;
  align-items:center
}
.project-type {
  border:1px solid #d8dbd1;
  padding:4px 6px;
  font-size:8px;
  white-space:nowrap
}
h3 {
  font:normal 34px var(--serif);
  letter-spacing:-.8px;
  margin:18px 0 12px
}
.project-body>p {
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  margin:0;
  min-height:76px
}
.tags {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  list-style:none;
  margin:19px 0 25px;
  padding:0
}
.tags li {
  font:9px var(--mono);
  color:#607271;
  background:#edf0e9;
  padding:6px 8px
}
.project-link,.source-note {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  font-weight:600;
  min-height:30px;
  margin-bottom:23px
}
.project-link span {
  font-size:21px;
  color:var(--gold)
}
.project-link:hover {
  color:var(--gold)
}
.source-note {
  font-size:11px;
  font-weight:400;
  color:var(--muted)
}
details {
  border-top:1px solid var(--line)
}
summary {
  cursor:pointer;
  list-style:none;
  font-size:11px;
  display:flex;
  justify-content:space-between;
  padding:18px 0;
  color:var(--muted)
}
summary::-webkit-details-marker {
  display:none
}
summary span {
  font-size:15px;
  transition:transform .2s
}
details[open] summary span {
  transform:rotate(45deg)
}
details p {
  font-size:13px;
  color:var(--muted);
  margin:0;
  padding-bottom:22px
}
.about {
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:90px;
  padding-block:66px 78px
}
.about .eyebrow {
  margin-bottom:23px
}
.about h2 {
  font-size:35px;
  line-height:1.3
}
.about-copy p {
  font-size:14px;
  margin:0 0 17px;
  color:var(--muted)
}
.about-copy p:first-child {
  color:var(--ink);
  font-size:17px
}
.text-link {
  display:inline-flex;
  gap:27px;
  align-items:center;
  font-size:13px;
  font-weight:600;
  margin-top:9px
}
.text-link span {
  font-size:19px;
  color:var(--gold)
}
footer {
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:center;
  padding-block:26px 32px;
  border-top:1px solid var(--line);
  font-size:11px;
  color:var(--muted)
}
.footer-brand {
  font-size:15px;
  color:var(--ink);
  font-weight:600
}
footer a:last-child {
  display:flex;
  gap:15px
}
.skip-link {
  position:fixed;
  top:-70px;
  left:20px;
  background:var(--ink);
  color:var(--white);
  padding:15px;
  z-index:10
}
.skip-link:focus {
  top:10px
}
.error-page {
  max-width:800px;
  margin:15vh auto;
  padding:30px
}
.error-page h1 {
  font-size:80px
}
.error-page p {
  margin-bottom:30px
}
@media(min-width:1500px) {
  .hero {
  padding-block:90px 100px
}

}
@media(max-width:1000px) {
  .wrap {
  width:calc(100% - 64px)
}
.hero {
  gap:30px
}
h1 {
  font-size:73px
}
.hero-chart {
  margin-right:0
}
.chart-note {
  font-size:14px;
  right:-12px
}
.manifest-count {
  display:none
}
.project-visual {
  padding-inline:22px
}
.project-body {
  padding-inline:24px
}
.project-body>p {
  min-height:100px
}
.tail-collection {
  gap:10px
}
.tail {
  height:90px
}
.about {
  gap:40px
}
.about h2 {
  font-size:31px
}
.section-heading>p {
  max-width:220px
}
.signal-key>span:last-child {
  font-size:6px
}

}
@media(max-width:700px) {
  .wrap {
  width:calc(100% - 40px)
}
.site-header {
  height:84px
}
.wordmark {
  font-size:19px
}
.brand-mark {
  margin-right:8px
}
nav {
  gap:20px;
  font-size:12px
}
.github-link {
  display:none
}
.hero {
  grid-template-columns:1fr;
  gap:52px;
  padding-block:47px 45px
}
.eyebrow {
  font-size:10px;
  letter-spacing:1.3px
}
h1 {
  font-size:76px;
  letter-spacing:-3px
}
.intro {
  font-size:17px;
  max-width:360px
}
.intro-secondary {
  font-size:14px
}
.hero-chart {
  max-width:430px;
  width:calc(100% - 28px);
  margin:0 auto 16px;
  transform:rotate(2.5deg)
}
.chart-note {
  font-size:15px;
  right:-15px
}
.manifest {
  padding-block:19px;
  display:block
}
.manifest>span {
  font-size:9px
}
.manifest p {
  font-size:10px;
  margin-top:10px
}
.manifest p span {
  padding-inline:5px
}
.manifest .manifest-count {
  display:none
}
.projects {
  padding-block:51px 52px
}
.section-heading {
  display:block;
  margin-bottom:27px
}
.section-heading h2 {
  font-size:35px
}
.section-heading>p {
  margin-top:17px;
  max-width:none
}
.section-heading>p br {
  display:none
}
.project-grid {
  grid-template-columns:1fr;
  gap:26px
}
.project-visual {
  height:245px
}
.project-body {
  padding-top:24px
}
.project-body>p {
  min-height:0
}
.project-meta {
  font-size:8px
}
h3 {
  font-size:32px
}
.tail-collection {
  gap:15px
}
.tail {
  width:65px;
  height:90px
}
.about {
  grid-template-columns:1fr;
  gap:28px;
  padding-block:43px
}
.about h2 {
  font-size:31px
}
.about-copy p {
  font-size:14px
}
footer {
  flex-wrap:wrap;
  font-size:10px;
  padding-block:23px;
  gap:16px
}
footer>span {
  order:3;
  width:100%
}
.error-page h1 {
  font-size:55px
}

}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}
*,*:before,*:after {
  transition:none!important
}

}
