/* Base reset */
*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}
:before,:after{--tw-content:""}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}
body{margin:0;line-height:inherit}
a{color:inherit;text-decoration:inherit}
img,video,svg{display:block}
img,video{max-width:100%;height:auto}
button{font:inherit;color:inherit;background-color:transparent;background-image:none;cursor:pointer}

/* Core utilities */
.scroll-smooth{scroll-behavior:smooth}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

.fixed{position:fixed}
.top-0{top:0}
.z-50{z-index:50}
.block{display:block}
.hidden{display:none}
.flex{display:flex}
.inline-flex{display:inline-flex}
.grid{display:grid}

.mx-auto{margin-left:auto;margin-right:auto}
.mx-2{margin-left:.5rem;margin-right:.5rem}
.mt-4{margin-top:1rem}
.mb-2{margin-bottom:.5rem}
.mb-8{margin-bottom:2rem}
.mb-10{margin-bottom:2.5rem}

.min-h-screen{min-height:100vh}
.h-3\.5{height:.875rem}
.h-4{height:1rem}
.h-5{height:1.25rem}
.h-6{height:1.5rem}
.h-full{height:100%}
.w-3\.5{width:.875rem}
.w-4{width:1rem}
.w-5{width:1.25rem}
.w-6{width:1.5rem}
.w-full{width:100%}
.max-w-5xl{max-width:64rem}

.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.gap-1\.5{gap:.375rem}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-12{gap:3rem}

.space-x-8>:not([hidden])~:not([hidden]){margin-left:2rem}
.space-y-3>:not([hidden])~:not([hidden]){margin-top:.75rem}
.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}
.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}
.space-y-14>:not([hidden])~:not([hidden]){margin-top:3.5rem}

.overflow-hidden{overflow:hidden}
.rounded-sm{border-radius:.125rem}
.border-b{border-bottom-width:1px}
.border-t{border-top-width:1px}

.bg-white{background-color:#fff}
.bg-white\/90{background-color:rgba(255,255,255,.9)}
.bg-gray-100{background-color:#f3f4f6}
.border-gray-200{border-color:#e5e7eb}

.object-contain{object-fit:contain}
.object-cover{object-fit:cover}
.aspect-square{aspect-ratio:1/1}
.aspect-\[4\/3\]{aspect-ratio:4/3}
.aspect-video{aspect-ratio:16/9}

.px-3{padding-left:.75rem;padding-right:.75rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.pb-2{padding-bottom:.5rem}
.pt-2{padding-top:.5rem}
.pt-4{padding-top:1rem}
.pt-20{padding-top:5rem}

.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.font-medium{font-weight:500}
.font-bold{font-weight:700}
.leading-tight{line-height:1.25}
.leading-relaxed{line-height:1.625}

.text-gray-900{color:#111827}
.text-gray-900\/80{color:rgba(17,24,39,.8)}
.text-gray-900\/70{color:rgba(17,24,39,.7)}
.text-muted{color:#737373}
.text-accent{color:#d97706}

.grayscale{filter:grayscale(100%)}
.backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}

.transition-all{transition:all .15s cubic-bezier(.4,0,.2,1)}
.transition-colors{transition:color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1)}
.transition-opacity{transition:opacity .15s cubic-bezier(.4,0,.2,1)}
.duration-500{transition-duration:.5s}

.hover\:text-accent:hover{color:#d97706}
.hover\:text-gray-900:hover{color:#111827}
.hover\:bg-gray-200:hover{background-color:#e5e7eb}
.hover\:opacity-80:hover{opacity:.8}
.hover\:grayscale-0:hover{filter:grayscale(0)}

@media (min-width:768px){
  .md\:hidden{display:none}
  .md\:flex{display:flex}
  .md\:flex-row{flex-direction:row}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:col-span-1{grid-column:span 1/span 1}
  .md\:col-span-2{grid-column:span 2/span 2}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
}

/* Site-specific theme + overrides */
:root{
  --bg:#ffffff;
  --text:#111827;
  --text-muted:#4b5563;
  --border:#e5e7eb;
  --accent:#0f766e;
}

body{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;
  background:var(--bg);
  color:var(--text);
}

nav{
  border-color:var(--border)!important;
  box-shadow:none;
}

section{scroll-margin-top:5.5rem}

h1,h2,h4{letter-spacing:-0.02em}

#about .aspect-square,
#research .aspect-\[4\/3\],
#research .aspect-video{
  border-radius:.25rem;
  background:#fff;
}

#research article{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0 0 3.5rem 0;
  box-shadow:none;
  transition:none;
}

#research article:hover{
  transform:none;
  box-shadow:none;
  border-color:transparent;
}

#research article .text-muted,
#contact .text-muted,
footer .text-muted{color:var(--text-muted)!important}

#research a.inline-flex{
  border:0;
  border-bottom:1px solid transparent;
  border-radius:0;
  background:transparent!important;
  font-weight:400;
  padding:.125rem .25rem!important;
}

#research a.inline-flex:hover{
  background:transparent!important;
  border-color:var(--accent);
}

.text-accent,
.hover\:text-accent:hover{color:var(--accent)!important}

.bio-inline-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1);
}

.bio-inline-link:hover{
  color:var(--accent);
  border-color:var(--accent);
}

.interactive-link{
  border-radius:.2rem;
  transition:color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);
}

.interactive-link:hover{
  background-color:rgba(15,118,110,.08);
}

.interactive-link:focus-visible{
  background-color:rgba(15,118,110,.12);
}

.project-title-link{
  display:inline;
  text-decoration:underline;
  text-decoration-color:rgba(15,118,110,.25);
  text-underline-offset:.2em;
}

.project-title-link:hover{
  text-decoration-color:rgba(15,118,110,.65);
}

.interactive-media{
  display:block;
  width:100%;
  height:100%;
}

.interactive-media:hover,
.interactive-media:focus-visible{
  background-color:transparent;
  box-shadow:none;
}

a:focus-visible,
button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:.35rem;
}

footer{
  background:transparent;
  backdrop-filter:none;
}

@media (max-width:767px){
  nav .max-w-5xl{
    padding-left:1rem;
    padding-right:1rem;
    padding-top:.85rem;
    padding-bottom:.85rem;
  }

  #about{
    min-height:auto;
    padding-top:5rem;
  }

  #about > .max-w-5xl,
  #research > .max-w-5xl,
  #contact > .max-w-5xl,
  footer .max-w-5xl{
    padding-left:1rem;
    padding-right:1rem;
  }

  #about > .max-w-5xl{
    padding-top:2.5rem;
    padding-bottom:3rem;
  }

  #about .grid{gap:2rem}

  #research,
  #contact{
    padding-top:3.5rem!important;
    padding-bottom:3.5rem!important;
  }

  #research .grid{gap:1rem}

  #contact a{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}

