@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&display=swap');

:root{
  --ink:#0c1a24;
  --night:#0f2233;
  --dusk:#1c3c50;
  --mist:#6f9cb2;
  --fog:#dce8ee;
  --paper:#f5f8f9;
  --amber:#c98a4b;
  --amber-soft:#e3b989;
  --line: rgba(15,34,51,0.12);
}
*{box-sizing:border-box;}
html{scroll-padding-top: env(safe-area-inset-top,0px);}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',-apple-system,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  padding-top: env(safe-area-inset-top,0px);
  padding-bottom: env(safe-area-inset-bottom,0px);
}
a{color:var(--amber); text-decoration:none;}
a:hover{text-decoration:underline;}

.hero{
  position:relative;
  height:min(56vw, 340px);
  min-height:220px;
  background:#0f2233;
  overflow:hidden;
}
.hero img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(0.95) brightness(0.9);
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,20,28,0.15) 0%, rgba(10,20,28,0.65) 78%, var(--paper) 100%);
}
.identity{
  position:relative;
  max-width:760px;
  margin:-64px auto 0;
  padding:0 24px 8px;
  display:flex;
  align-items:flex-end;
  gap:20px;
}
.avatar{
  width:104px; height:104px;
  border-radius:50%;
  border:4px solid var(--paper);
  box-shadow:0 6px 18px rgba(0,0,0,0.25);
  object-fit:cover;
  flex-shrink:0;
}
.identity h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:clamp(28px,5vw,40px);
  margin:0 0 4px;
  letter-spacing:-0.01em;
}
.identity p{
  margin:0;
  color:var(--mist);
  font-size:15px;
}

main{max-width:760px; margin:0 auto; padding:36px 24px 80px;}

.tabs{
  display:flex;
  gap:4px;
  border-bottom:1px solid var(--line);
  margin-bottom:36px;
  position:sticky;
  top:0;
  background:var(--paper);
  padding-top:10px;
  z-index:5;
}
.tabs a{
  font-family:'Inter',sans-serif;
  font-size:15px; font-weight:500;
  color:var(--mist);
  padding:10px 4px 14px;
  margin-right:22px;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.tabs a.active{
  color:var(--ink);
  border-bottom-color:var(--amber);
}
.tabs a:hover{color:var(--ink); text-decoration:none;}

.updated{
  font-size:13px; color:var(--mist); margin:-24px 0 30px;
}

p.lede{
  font-family:'Fraunces',serif;
  font-size:19px;
  font-weight:400;
  color:var(--ink);
  max-width:60ch;
  margin:0 0 40px;
}

h2{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:22px;
  margin:44px 0 12px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
h2:first-of-type{border-top:none; padding-top:0; margin-top:0;}

main p, main li{
  font-size:15.5px;
  color:var(--ink);
  max-width:66ch;
}
main p{margin:0 0 14px;}
main ul{margin:0 0 14px; padding-left:20px;}
main li{margin-bottom:6px;}
strong{font-weight:600;}

.callout{
  background:var(--fog);
  border-left:3px solid var(--amber);
  padding:14px 18px;
  border-radius:2px;
  font-size:14.5px;
  max-width:66ch;
  margin:0 0 28px;
}

footer{
  max-width:760px; margin:0 auto; padding:0 24px 60px;
  font-size:13px; color:var(--mist);
}

/* index-only */
.index-links{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px;}
.index-links a{
  display:block;
  border:1px solid var(--line);
  border-radius:6px;
  padding:18px 20px;
  color:var(--ink);
  font-size:16px;
  font-weight:500;
}
.index-links a:hover{border-color:var(--amber); text-decoration:none;}
.index-links span{display:block; font-size:13.5px; color:var(--mist); font-weight:400; margin-top:4px;}

@media (max-width:520px){
  .identity{gap:14px; margin-top:-46px;}
  .avatar{width:76px; height:76px; border-width:3px;}
  .tabs{gap:0;}
  .tabs a{margin-right:14px; font-size:14px;}
}
