/* education + projects: sibling columns; timeline rail, red nodes */
.edu-row{
  display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(44px,7vw,110px);align-items:start;
}
.col-label{
  display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--grey);margin-bottom:24px;
}
@media (max-width:900px){.edu-row{grid-template-columns:1fr;gap:48px}}
.edu{
  list-style:none;position:relative;margin:0;padding:0;
}
.edu::before{
  content:"";position:absolute;left:3px;top:8px;bottom:8px;width:1px;
  background:var(--hairline);
}
.edu-item{position:relative;padding:0 0 26px 28px;display:flex;flex-direction:column;gap:6px}
.edu-item:last-child{padding-bottom:0}
.edu-item::before{
  content:"";position:absolute;left:0;top:8px;width:7px;height:7px;
  border-radius:50%;background:var(--red);
}
.tr-inst{font-family:var(--serif);font-weight:400;font-size:clamp(16px,1.6vw,20px);line-height:1.25;letter-spacing:.01em}
.tr-prog{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey);line-height:1.7;text-wrap:balance;
}
/* projects list in the aside */
.prj{list-style:none;margin:-6px 0 0;padding:0}
.prj li{
  position:relative;padding:6px 0 6px 16px;
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  line-height:1.7;color:rgba(22,20,18,.68);
}
.prj li::before{
  content:"";position:absolute;left:0;top:14px;width:7px;height:1px;
  background:var(--red);
}

/* icon buttons beside Copy Email */
.btn.icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;padding-left:0;padding-right:0;
}
.btn.icon svg{position:relative;z-index:1;display:block}

.about-grid{
  display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,5vw,90px);
  margin-top:clamp(64px,10vh,130px);align-items:start;
}
.about-copy{grid-column:2}
.about-copy p{
  font-size:clamp(16px,1.5vw,20px);line-height:1.7;color:rgba(22,20,18,.85);
  max-width:52ch;
}
.about-copy p+p{margin-top:1.2em}
.about-copy em{font-style:italic;color:var(--ink)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}.about-copy{grid-column:1}}

.cta{text-align:center;position:relative}
.cta .sect-head{justify-content:center;gap:32px}
.cta-eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  margin-bottom:clamp(20px,4vh,40px);
}
.cta-eyebrow .rx{color:var(--red)}
.cta-mail{
  display:inline-block;
  font-size:clamp(38px,9vw,150px);
  letter-spacing:-.03em;line-height:1;
  font-style:italic;
  position:relative;
  padding-bottom:.08em;
}
.cta-mail::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:.045em;
  background:var(--red);
  transform:scaleX(0);transform-origin:right;
  transition:transform .6s var(--ease);
}
.cta-mail:hover::after{transform:scaleX(1);transform-origin:left}
.cta-mail:hover{color:var(--red)}
.cta-mail{transition:color .4s}
.cta-actions{
  margin-top:clamp(28px,5vh,48px);
  display:flex;justify-content:center;gap:14px;flex-wrap:wrap;
}
.btn{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--ink);border-radius:999px;
  padding:14px 26px;
  position:relative;overflow:hidden;
  transition:color .35s var(--ease),border-color .35s;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--ink);
  transform:translateY(101%);transition:transform .4s var(--ease);z-index:-1;
}
.btn:hover{color:var(--paper)}
.btn:hover::before{transform:translateY(0)}
.btn.red{border-color:var(--red);color:var(--red)}
.btn.red::before{background:var(--red)}
.btn.red:hover{color:var(--paper)}

.footer{
  background:var(--ink);color:var(--paper);
  padding:26px clamp(16px,3vw,40px);
  display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
}
.footer .heart{
  height:1.5em;width:auto;display:inline-block;
  vertical-align:-.42em;margin:0 .1em;
}
.footer a{position:relative}
.footer a::after{
  content:"";position:absolute;left:0;bottom:-3px;height:1px;width:100%;
  background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease);
}
.footer a:hover::after{transform:scaleX(1);transform-origin:left}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .line-in{transform:none}
  .hero-foot,.morph,.hero-fig{opacity:1;transform:none}
  .rv{opacity:1;transform:none}
  .cur-dot,.cur-ring{display:none!important}
}
