
:root{
  --black:#090909; --cream:#e7e4df; --paper:#f4f1ec; --ink:#11100e;
  --muted:#77736d; --line:#c7c2bb; --orange:#fc4c02; --orange-dark:#d93f00;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
.shell{max-width:var(--max);margin:auto;padding-left:28px;padding-right:28px}
.site-header{
  position:sticky;top:0;z-index:50;min-height:74px;padding:0 max(28px,calc((100vw - var(--max))/2));
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  background:rgba(231,228,223,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(17,16,14,.2)
}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--black);color:var(--cream);font-weight:800}
.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy strong{font-size:14px}.brand-copy small{font-size:11px;color:var(--muted);margin-top:4px}
.site-header nav{display:flex;gap:28px}.site-header nav a,.header-link{font-size:13px;font-weight:700}.header-link{justify-self:end;border-bottom:1px solid;padding-bottom:2px}
.hero{padding-top:118px;padding-bottom:105px;min-height:690px;display:flex;flex-direction:column;justify-content:center}
.eyebrow,.kicker,.micro,.cycling-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin:0;color:var(--muted)}
.hero-grid{display:grid;grid-template-columns:1.6fr .65fr;gap:70px;align-items:end;margin-top:28px}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(68px,8vw,120px);font-weight:400;letter-spacing:-.06em;line-height:.9;margin:0}.hero h1 em{font-style:italic}
.hero-side p{font-size:20px;color:#4e4a45}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.button{min-height:46px;padding:0 18px;border:1px solid var(--black);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}.button.dark{background:var(--black);color:var(--cream)}.button.light{background:transparent}
.divider-strip{border-top:1px solid;border-bottom:1px solid;padding:17px 28px;display:flex;gap:20px;justify-content:center;align-items:center;font-size:11px;font-weight:800;letter-spacing:.04em;white-space:nowrap;overflow:hidden}.divider-strip i{width:4px;height:4px;border-radius:50%;background:var(--ink)}
.section{padding-top:115px;padding-bottom:115px}.section-head{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end;border-bottom:1px solid;padding-bottom:30px;margin-bottom:40px}.section-head h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,5.2vw,74px);font-weight:400;letter-spacing:-.05em;line-height:.98;margin:8px 0 0}.section-head>p{color:var(--muted);margin:0}
.current-role{display:grid;grid-template-columns:220px 1fr;border-top:1px solid;border-bottom:1px solid;padding:36px 0}.role-meta{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted);font-weight:800}.role-main h3{font-family:Georgia,"Times New Roman",serif;font-size:43px;font-weight:400;letter-spacing:-.04em;margin:8px 0}.role-main>p:last-child{color:#5e5a54;max-width:850px}
.engineering-grid{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid}.engineering-grid article{min-height:255px;padding:25px 22px 25px 0}.engineering-grid article+article{border-left:1px solid;padding-left:22px}.engineering-grid article>span{font-size:11px;color:var(--muted);font-weight:800}.engineering-grid h3{margin:55px 0 10px;font-size:19px}.engineering-grid p{font-size:14px;color:#5e5a54}
.experience-list{margin-top:85px;border-top:1px solid}.experience-list article{display:grid;grid-template-columns:220px 1fr;padding:30px 0;border-bottom:1px solid}.experience-list .date{font-size:11px;color:var(--muted);font-weight:800}.experience-list h3{font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:400;letter-spacing:-.03em;margin:8px 0}.experience-list p:last-child{color:#5e5a54}
.education-row{display:grid;grid-template-columns:1fr 1fr;margin-top:85px;border-top:1px solid;border-bottom:1px solid}.education-row article{padding:30px 28px 30px 0}.education-row article+article{border-left:1px solid;padding-left:28px}.education-row h3{font-family:Georgia,"Times New Roman",serif;font-size:30px;font-weight:400;margin:9px 0}.education-row p:last-child{color:var(--muted)}
.resume-row{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-top:70px;padding:38px;background:var(--paper);border:1px solid var(--line)}.resume-row h3{font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:400;margin:8px 0}.resume-row p:last-child{color:var(--muted)}.resume-actions{display:flex;gap:10px;flex-wrap:wrap}

.transition{height:55vh;min-height:430px;background:linear-gradient(to bottom,var(--cream) 0%,var(--cream) 18%,var(--orange) 82%,var(--orange) 100%);position:relative;overflow:hidden;display:grid;place-items:center}
.transition-word{font-family:Arial,Helvetica,sans-serif;font-size:clamp(130px,28vw,420px);font-weight:900;letter-spacing:-.09em;color:var(--black);line-height:.7;transform:translateY(18%)}.transition-arrow{position:absolute;bottom:28px;right:5vw;font-size:40px;color:var(--black)}
.cycling{background:var(--orange);color:var(--black);padding-bottom:1px}.cycling-hero{padding-top:95px;padding-bottom:90px}.cycling-label{color:rgba(0,0,0,.58)}.cycling-hero h2{font-size:clamp(82px,12vw,170px);line-height:.78;letter-spacing:-.075em;margin:28px 0 55px;font-weight:900}.cycling-hero h2 span{color:transparent;-webkit-text-stroke:2px var(--black)}
.cycling-intro{display:grid;grid-template-columns:1fr auto;gap:50px;align-items:end}.cycling-intro>p{font-size:21px;max-width:690px}.strava-cta{background:var(--black);color:var(--orange);padding:22px 26px;min-width:190px;display:flex;flex-direction:column}.strava-cta span{font-size:10px;text-transform:uppercase;letter-spacing:.09em}.strava-cta strong{font-size:26px;margin-top:3px}

  to{transform:translateX(-7vw)}
}
.cycling-grid{display:grid;grid-template-columns:2fr 1fr 1fr;padding-top:55px;padding-bottom:85px}.cycle-card{min-height:420px;border:2px solid var(--black);padding:27px;position:relative}.cycle-card+ .cycle-card{border-left:0}.cycle-number{font-size:11px;font-weight:900}.orange-micro{color:rgba(0,0,0,.55);margin-top:65px}.cycle-card h3{font-size:clamp(34px,4vw,60px);line-height:.95;letter-spacing:-.05em;margin:8px 0 18px}.cycle-card p:last-child{max-width:550px}.social-card{display:flex;flex-direction:column}.social-card h3{margin-top:auto}.social-card .arrow{font-size:28px;position:absolute;right:24px;bottom:20px}.social-card:hover{background:var(--black);color:var(--orange)}.social-card:hover .orange-micro{color:var(--orange)}
.ride-notes{padding-top:70px;padding-bottom:110px}.orange-head{border-color:var(--black)}.orange-kicker{color:rgba(0,0,0,.58)}.photo-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}.photo-placeholder{min-height:420px;border:2px solid var(--black);padding:26px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.photo-placeholder:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 18px,rgba(0,0,0,.06) 18px 20px)}.photo-placeholder span,.photo-placeholder strong{position:relative;z-index:2}.photo-placeholder span{font-size:10px;font-weight:900;letter-spacing:.1em}.photo-placeholder strong{font-size:28px;margin-top:6px}.photo-placeholder:hover{background:var(--black);color:var(--orange)}
.cycle-contact{padding-top:110px;padding-bottom:32px;border-top:2px solid}.cycle-contact h2{font-size:clamp(90px,14vw,190px);letter-spacing:-.08em;line-height:.8;margin:35px 0 70px}.contact-links{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid;border-bottom:2px solid}.contact-links a{padding:25px 0;font-weight:900}.contact-links a+a{padding-left:22px;border-left:2px solid}.contact-links a:hover{background:var(--black);color:var(--orange)}
footer{display:grid;grid-template-columns:1fr 1fr 1fr;padding-top:28px;margin-top:80px;font-size:11px;font-weight:800}footer span:nth-child(2){text-align:center}footer a{text-align:right}
.resume-page{background:var(--cream)}.resume-shell{max-width:1240px;margin:auto;padding:60px 28px 80px}.resume-page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.resume-page-head h1{font-family:Georgia,"Times New Roman",serif;font-size:80px;font-weight:400;letter-spacing:-.055em;margin:6px 0 0}.pdf-frame{height:calc(100vh - 240px);min-height:700px;border:1px solid;background:#ccc}.pdf-frame iframe{width:100%;height:100%;border:0}
@media(max-width:900px){
 .site-header nav{display:none}.site-header{grid-template-columns:1fr auto}.header-link{grid-column:2}.hero-grid,.section-head,.cycling-intro{grid-template-columns:1fr}.hero{min-height:auto}.current-role,.experience-list article{grid-template-columns:130px 1fr}.engineering-grid{grid-template-columns:1fr 1fr}.engineering-grid article:nth-child(3){border-left:0}.resume-row{grid-template-columns:1fr}.cycling-grid{grid-template-columns:1fr 1fr}.cycle-card.huge{grid-column:1/-1}.cycle-card:nth-child(2){border-left:2px solid}.cycle-card:nth-child(3){border-left:0}.photo-grid{grid-template-columns:1fr}.contact-links{grid-template-columns:1fr 1fr}.contact-links a:nth-child(3){border-left:0;border-top:2px solid}.contact-links a:nth-child(4){border-top:2px solid}
}
@media(max-width:600px){
 .shell{padding-left:20px;padding-right:20px}.site-header{padding-left:20px;padding-right:20px}.brand-copy small{display:none}.hero h1{font-size:57px}.hero-side p{font-size:18px}.current-role,.experience-list article{grid-template-columns:1fr;gap:10px}.engineering-grid,.education-row,.cycling-grid,.contact-links{grid-template-columns:1fr}.engineering-grid article+article,.education-row article+article,.cycle-card+ .cycle-card,.cycle-card:nth-child(2),.cycle-card:nth-child(3),.contact-links a+a,.contact-links a:nth-child(4){border-left:0}.engineering-grid article{border-top:1px solid}.cycling-grid .cycle-card{border:2px solid;border-top:0}.cycling-grid .cycle-card:first-child{border-top:2px solid}.transition{height:42vh}.cycling-hero h2{font-size:82px}.contact-links a{border-top:2px solid!important;padding-left:0!important}.contact-links a:first-child{border-top:0!important}footer{grid-template-columns:1fr;gap:15px}footer span:nth-child(2),footer a{text-align:left}.resume-page-head{flex-direction:column;align-items:flex-start;gap:20px}.resume-page-head h1{font-size:56px}
}


/* Cycling readability refinements */
.orange-head > p {
  color: rgba(0, 0, 0, 0.82);
  font-weight: 600;
}

.photo-grid.single {
  grid-template-columns: 1fr;
}

.photo-placeholder.instagram-only {
  min-height: 360px;
}

@media (max-width: 600px) {
  .photo-placeholder.instagram-only {
    min-height: 300px;
  }
}


.education-section-head{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:70px;
  align-items:end;
  margin-top:85px;
  padding-bottom:28px;
  border-bottom:1px solid var(--ink);
}
.education-section-head h2{
  margin:8px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(44px,5vw,68px);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1;
}
.education-section-head>p{
  margin:0;
  color:var(--muted);
  max-width:520px;
}
.credentials-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--ink);
}
.credentials-grid article{
  display:grid;
  grid-template-columns:70px 1fr;
  gap:20px;
  padding:24px 28px 24px 0;
  border-top:1px solid var(--line);
}
.credentials-grid article:nth-child(even){
  border-left:1px solid var(--ink);
  padding-left:28px;
}
.credentials-grid article>span{
  font-size:11px;
  color:var(--muted);
  font-weight:800;
}
.credentials-grid h3{
  margin:7px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:400;
  letter-spacing:-.03em;
}
@media(max-width:900px){
  .education-section-head{grid-template-columns:1fr;gap:24px}
}
@media(max-width:600px){
  .credentials-grid{grid-template-columns:1fr}
  .credentials-grid article:nth-child(even){border-left:0;padding-left:0}
}
