/* ── Reset ─────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 14px; -webkit-overflow-scrolling: touch; overscroll-behavior: none; }

/* ── Tokens ─────────────────────────────────────── */
:root {
  --bg:          #F5F1D8;
  --fg:          #2C2820;
  --fg-subtle:   rgba(44,40,32,0.08);
  --blue:        #1A5F6E;
  --blue-hover:  #0F3D49;
  --max-w:       1260px;
}

/* ── Selection ──────────────────────────────────── */
::selection { background: var(--fg); color: #ffffff; }

/* ── Body ───────────────────────────────────────── */
body {
  font-family: 'Lato', Helvetica, Arial, sans-serif;
  background-color: var(--bg);
  color: var(--fg);
  line-height: 1;
  position: relative;
  min-height: 100vh;
}

#bg-shader, #bg-grid {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

header, section, footer { position: relative; z-index: 1; }

a { outline: none !important; color: var(--blue); text-decoration: underline; transition: color 200ms ease-in-out; }
a:hover { color: var(--blue-hover); text-decoration: underline; }

/* ── Hero ───────────────────────────────────────── */
.intro { padding: 0 60px; }

.intro-content {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 60px 0 0;
  overflow: hidden;
}

.intro-sub {
  font-size: clamp(1.5rem, 3.5vw, 4.5rem);
  line-height: 1.2;
  font-style: italic;
  font-weight: 500;
  color: rgba(44,40,32,0.88);
  padding-bottom: 48px;
}

/* ── About ──────────────────────────────────────── */
.about-me {
  padding: 0 60px 60px;
  font-size: 1.5rem;
}

.about-me-content {
  display: grid;
  grid-template-columns: 1fr 240px;
  grid-template-rows: auto auto;
  column-gap: 60px;
  max-width: var(--max-w);
  margin: 0 auto;
  padding-top: 48px;
  box-shadow: 0 -3px 0 var(--fg);
}

.about-me-bio { grid-column: 1; grid-row: 1; }
.about-me-bio-text { line-height: 2.5rem; }
.about-me-bio-text._l { font-size: 1.5rem; line-height: 2.6rem; }
.mt-1em { margin-top: 1em; }

.about-me-contact {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: start;
  position: sticky;
  top: 40px;
}

.ben-headshot {
  width: 100%;
  border-radius: 0 72px 0 72px;
  display: block;
  margin-bottom: 20px;
  box-shadow: 0 0 0 1px rgba(44,40,32,0.10), 0 8px 32px rgba(44,40,32,0.12);
}

.contact-info-list { list-style: none; padding: 0; margin: 0; }
.contact-info-list-item { margin-bottom: 0.85rem; }

.contact-info-list-item a {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--blue);
  font-size: 1.5rem;
  line-height: 1;
  transition: color 200ms ease-in-out;
  text-decoration: underline;
}
.contact-info-list-item a:hover { color: var(--blue-hover); }

.contact-info-list-item a::before {
  content: '';
  width: 18px;
  height: 18px;
  background-size: 18px 18px;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
  flex-shrink: 0;
  opacity: 0.8;
}

a.social-email::before    { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='4' width='20' height='16' rx='1' stroke='%232C2820' stroke-width='1.8' fill='none'/%3E%3Cpath d='M2 5.5L12 13L22 5.5' stroke='%232C2820' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); }
a.social-linkedin::before { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.5 7.5h-3v12h3v-12zm-1.5-5a1.75 1.75 0 110 3.5A1.75 1.75 0 013 2.5zm5 5h2.9v1.6c.8-1.2 2.1-1.9 3.6-1.9 3.1 0 4.5 2 4.5 5.2V19.5h-3v-6.3c0-1.8-.5-3-2-3-1.7 0-2.5 1.2-2.5 3.1v6.2H8.5v-12z' fill='%232C2820'/%3E%3C/svg%3E"); }
a.social-instagram::before { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' stroke='%232C2820' stroke-width='1.8' fill='none'/%3E%3Ccircle cx='12' cy='12' r='4.5' stroke='%232C2820' stroke-width='1.8' fill='none'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%232C2820'/%3E%3C/svg%3E"); }
a.social-github::before   { background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 2C6.477 2 2 6.477 2 12c0 4.418 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.155-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.202 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z' fill='%232C2820'/%3E%3C/svg%3E"); }

/* ── Accolades ──────────────────────────────────── */
.accolades-articles {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  gap: 0 3rem;
  flex-wrap: wrap;
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid var(--fg-subtle);
}
.accolades-articles > div { flex: 1; min-width: 220px; }

.about-me-accolades-title {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.about-me-accolades-list { list-style: none; padding: 0; margin: 0 0 2rem; }
.about-me-accolades-list li { margin-bottom: 0.75rem; font-size: 1.2rem; line-height: 1.6; }

/* ── Background animation ───────────────────────── */
@keyframes shaderBreathe {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.06); }
  100% { transform: scale(1); }
}

/* ── Responsive ─────────────────────────────────── */
@media (max-width: 1035px) {
  .about-me-content { grid-template-columns: 1fr; grid-template-rows: auto; }
  .about-me-contact {
    grid-column: 1;
    grid-row: auto;
    position: static;
    margin-top: 40px;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 28px;
  }
  .ben-headshot {
    width: 240px;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .contact-info-list {
    margin: auto 0;
}
    .intro-sub {font-size: 3rem; }
  .accolades-articles { grid-column: 1; grid-row: auto; margin-top: 40px; }
}
@media (max-width: 775px) {
  html { font-size: 11px; }
  .intro { padding: 0 20px; }
  .about-me { padding: 40px 20px; }
}
@media (max-width: 540px) {
  .intro-sub { padding-bottom: 40px;}
  .about-me-contact {
    flex-direction: column;
    align-items: center;
  }
  .ben-headshot {
    width: 300px;
    height: 300px;
    margin-bottom: 20px;
  }
  .contact-info-list { text-align: left; }
  .accolades-articles { flex-direction: column; }
}
