/* EDIT THE PALETTE HERE: these variables are used across every page. */
:root {
  --bg:#111313;
  --panel:#1a1d1c;
  --ink:#eeeee8;
  --muted:#a5aaa4;
  --line:#343935;
  --accent:#d8f397;
  --radius:12px;
  color-scheme:dark
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.65
}
a {
  color:inherit;
  text-underline-offset:5px
}
button {
  font:inherit;
  cursor:pointer
}
a,button {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
::selection {
  background:var(--accent);
  color:var(--bg)
}
.wrap {
  width:min(1280px,calc(100% - 96px));
  margin:auto
}
.skip-link {
  position:absolute;
  top:-100px;
  left:20px;
  z-index:10;
  background:var(--accent);
  color:#111;
  padding:12px
}
.skip-link:focus {
  top:12px
}
.site-header {
  border-bottom:1px solid var(--line)
}
.header-inner {
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.brand {
  font-size:17px;
  letter-spacing:-.6px;
  text-decoration:none;
  font-weight:700;
  white-space:nowrap
}
.brand-mark {
  display:inline-block;
  color:var(--accent);
  font-size:25px;
  vertical-align:middle;
  margin-right:9px
}
.nav {
  display:flex;
  gap:24px;
  align-items:center
}
.nav a {
  font-size:14px;
  text-decoration:none;
  color:var(--muted);
  padding:34px 0;
  position:relative
}
.nav a:hover,.nav a[aria-current=page] {
  color:var(--ink)
}
.nav a[aria-current=page]:after {
  content:"";
  height:3px;
  background:var(--accent);
  position:absolute;
  bottom:0;
  left:0;
  right:0
}
.menu-toggle {
  display:none;
  border:1px solid var(--line);
  border-radius:6px;
  background:transparent;
  color:var(--ink);
  padding:8px 13px
}
.eyebrow,.number,.tag {
  font-family:Consolas,'Courier New',monospace;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.8px
}
.eyebrow {
  color:var(--accent);
  margin:0 0 24px
}
.hero {
  padding:70px 0 52px;
  display:grid;
  grid-template-columns:1.02fr 1fr;
  gap:60px;
  align-items:center
}
h1,h2,h3,p {
  margin-top:0
}
h1 {
  font-weight:400;
  font-size:clamp(46px,5.5vw,78px);
  line-height:1.05;
  letter-spacing:-3.5px;
  margin-bottom:24px
}
h1 em {
  font-family:Georgia,serif;
  font-weight:400;
  color:var(--accent)
}
.intro {
  max-width:480px;
  color:var(--muted);
  font-size:17px
}
.student {
  margin:26px 0;
  color:var(--ink);
  font-size:14px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:var(--accent);
  border:1px solid var(--accent);
  border-radius:5px;
  color:#182016;
  padding:12px 20px;
  text-decoration:none;
  font-size:14px;
  font-weight:600
}
.button:hover {
  background:#e4ffad
}
.button.secondary {
  background:transparent;
  border-color:var(--line);
  color:var(--ink)
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px
}
.art-panel {
  position:relative;
  background:#191e1b;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden
}
.art-panel canvas {
  display:block;
  width:100%;
  height:380px;
  touch-action:pan-y
}
.art-label {
  padding:15px 20px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:12px;
  color:var(--muted);
  font-family:Consolas,monospace
}
.focus-strip {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:20px 0;
  display:flex;
  align-items:center;
  gap:24px;
  color:var(--muted);
  font-size:14px
}
.focus-strip .tag {
  color:var(--accent);
  white-space:nowrap
}
.section {
  padding:52px 0
}
.section-top {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:end;
  margin-bottom:24px
}
.section-top h2 {
  font-size:29px;
  font-weight:400;
  letter-spacing:-1px;
  margin:0
}
.text-link {
  font-size:14px;
  color:var(--muted)
}
.grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--panel)
}
.card-body {
  padding:24px
}
.card h3 {
  font-size:22px;
  font-weight:400;
  letter-spacing:-.5px;
  margin:10px 0
}
.card p {
  color:var(--muted);
  font-size:15px;
  margin-bottom:18px
}
.card .tag {
  color:var(--muted);
  letter-spacing:1px
}
.card-link {
  text-decoration:none;
  display:block;
  height:100%
}
.card-link:hover h3 {
  color:var(--accent)
}
.card-link:hover {
  border-color:var(--accent)
}
.visual {
  height:180px;
  position:relative;
  overflow:hidden;
  background:#222b25;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center
}
.visual .big-number {
  font-family:Georgia,serif;
  font-size:110px;
  line-height:1;
  color:#a7bda1;
  font-style:italic
}
.visual.research {
  background:repeating-linear-gradient(90deg,transparent 0 35px,#91a58b22 35px 36px),repeating-linear-gradient(0deg,#222a25 0 35px,#91a58b22 35px 36px)
}
.visual.proposal {
  background:#282823
}
.visual.proposal .big-number {
  font-size:80px;
  color:#d6d0a5
}
.visual.log {
  background:#20262d
}
.visual.log .big-number {
  color:#a3b9cf
}
.card-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  color:var(--accent)
}
.footer {
  border-top:1px solid var(--line);
  padding:26px 0;
  margin-top:35px;
  color:var(--muted);
  font-size:12px
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:20px
}
.footer a {
  color:var(--ink)
}
.page-heading {
  padding:64px 0 40px;
  border-bottom:1px solid var(--line);
  margin-bottom:36px
}
.page-heading h1 {
  font-size:clamp(44px,5vw,64px)
}
.page-heading p:last-child {
  max-width:660px;
  color:var(--muted);
  margin:0
}
.two-col {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px
}
.placeholder {
  color:var(--muted);
  font-style:normal
}
.placeholder-image {
  width:100%;
  height:220px;
  object-fit:cover;
  background:#242b26;
  display:block;
  border-bottom:1px solid var(--line)
}
dl {
  margin:0
}
dt {
  font-size:13px;
  color:var(--accent);
  margin:20px 0 4px
}
dd {
  margin:0;
  color:var(--muted)
}
.note {
  border-left:2px solid var(--accent);
  padding:12px 20px;
  color:var(--muted);
  font-size:14px;
  background:#d8f39706;
  margin:28px 0
}
.proposal-grid {
  counter-reset:section
}
.proposal-grid article {
  padding:30px;
  border-top:1px solid var(--line);
  min-height:185px
}
.proposal-grid article:before {
  counter-increment:section;
  content:"0" counter(section);
  font-family:Consolas,monospace;
  font-size:13px;
  color:var(--accent)
}
.proposal-grid h2 {
  font-size:24px;
  font-weight:400;
  margin:16px 0 10px
}
.proposal-grid p {
  color:var(--muted);
  margin:0
}
.experiment-layout {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:32px;
  align-items:start
}
.experiment-layout h2 {
  font-size:32px;
  line-height:1.2;
  font-weight:400
}
.experiment-layout p {
  color:var(--muted)
}
.experiment-controls {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:16px 0
}
.color-button {
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--ink);
  border-radius:6px;
  padding:8px 12px;
  font-size:14px
}
.swatch {
  width:10px;
  height:10px;
  display:inline-block;
  border-radius:50%;
  margin-right:8px;
  background:var(--swatch)
}
.status {
  font-size:13px;
  color:var(--muted);
  min-height:42px
}
.log-entry {
  border-top:1px solid var(--line);
  padding:32px 0;
  display:grid;
  grid-template-columns:190px 1fr;
  gap:32px
}
.log-entry h2 {
  font-weight:400;
  font-size:26px
}
.log-meta {
  color:var(--muted);
  font-size:14px
}
.log-meta strong {
  display:block;
  color:var(--accent);
  font-family:Consolas,monospace;
  font-size:13px;
  margin-bottom:10px
}
.log-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 32px
}
.evidence {
  margin-top:22px;
  border:1px dashed #56614e;
  padding:20px;
  color:var(--muted);
  font-size:14px;
  border-radius:6px
}
.large-placeholder {
  border:1px dashed #56614e;
  border-radius:10px;
  min-height:250px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:25px;
  color:var(--muted);
  background:var(--panel)
}
.large-placeholder span {
  font-size:40px;
  margin-bottom:14px;
  color:var(--accent)
}
.about-layout {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:60px
}
.about-layout h2 {
  font-size:26px;
  font-weight:400
}
.field-list {
  list-style:none;
  padding:0;
  margin:25px 0
}
.field-list li {
  padding:12px 0;
  border-bottom:1px solid var(--line)
}
.statement {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  padding:32px;
  margin-top:32px
}
.statement li {
  margin:12px 0;
  color:var(--muted)
}
.small {
  font-size:14px;
  color:var(--muted)
}
@media(min-width:1500px) {
  .hero {
    gap:100px
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 48px)
  }
  .nav {
    gap:15px
  }
  .nav a {
    font-size:12px
  }
  .hero {
    gap:30px
  }
  h1 {
    font-size:60px
  }
  .art-panel canvas {
    height:350px
  }
}
@media(max-width:800px) {
  .header-inner {
    flex-wrap:wrap;
    gap:0;
    min-height:78px;
    padding:18px 0
  }
  .menu-toggle {
    display:block
  }
  .nav {
    width:100%;
    flex-wrap:wrap;
    gap:0;
    margin-top:16px
  }
  .nav a {
    padding:10px 14px;
    font-size:14px
  }
  .js .nav:not(.is-open) {
    display:none
  }
  .hero {
    grid-template-columns:1fr;
    padding-top:42px;
    gap:32px
  }
  h1 {
    font-size:60px
  }
  .hero .intro {
    max-width:600px
  }
  .grid {
    grid-template-columns:1fr
  }
  .card-link {
    display:grid;
    grid-template-columns:.7fr 1fr
  }
  .visual {
    height:100%;
    min-height:190px;
    border-bottom:0;
    border-right:1px solid var(--line)
  }
  .two-col {
    grid-template-columns:1fr
  }
  .focus-strip {
    align-items:start;
    gap:12px;
    flex-direction:column
  }
  .experiment-layout,.about-layout {
    grid-template-columns:1fr;
    gap:24px
  }
  .log-entry {
    grid-template-columns:1fr;
    gap:16px
  }
  .log-meta strong {
    display:inline;
    margin-right:16px
  }
  .footer-inner {
    flex-direction:column;
    gap:8px
  }
  .page-heading {
    padding-top:42px
  }
  .section {
    padding:38px 0
  }
  .about-layout {
    gap:20px
  }
}
@media(max-width:480px) {
  .wrap {
    width:calc(100% - 36px)
  }
  h1 {
    font-size:49px;
    letter-spacing:-2px
  }
  .art-panel canvas {
    height:300px
  }
  .card-link {
    display:block
  }
  .visual {
    height:170px;
    min-height:0;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .log-fields {
    grid-template-columns:1fr
  }
  .section-top {
    align-items:start
  }
  .section-top h2 {
    font-size:25px
  }
  .art-label {
    font-size:11px;
    padding:12px
  }
  .page-heading h1 {
    font-size:44px
  }
  .statement {
    padding:22px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
}
