/* himadridas.com: shared stylesheet
   Identity carried from the business card: Spectral, IBM Plex Sans, IBM Plex Mono,
   deep blue on cool paper. */

:root{
  --ground:#F7F8FA;
  --surface:#FFFFFF;
  --surface-2:#ECEFF4;
  --ink:#141A22;
  --ink-2:#3A4350;
  --ink-3:#556072;
  --line:#D7DCE3;
  --line-strong:#B6BFCB;
  --accent:#174589;
  --accent-soft:#E3EBF5;
  --shadow:0 6px 28px rgba(20,26,34,.10);

  --serif:'Spectral','Iowan Old Style',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#0E121A; --surface:#151B24; --surface-2:#1B232E;
    --ink:#E7EBF0; --ink-2:#B2BBC6; --ink-3:#84909F;
    --line:#29323D; --line-strong:#3B4654;
    --accent:#7FA6DB; --accent-soft:#172238;
    --shadow:0 6px 28px rgba(0,0,0,.45);
  }
}
:root[data-theme="dark"]{
  --ground:#0E121A; --surface:#151B24; --surface-2:#1B232E;
  --ink:#E7EBF0; --ink-2:#B2BBC6; --ink-3:#84909F;
  --line:#29323D; --line-strong:#3B4654;
  --accent:#7FA6DB; --accent-soft:#172238;
  --shadow:0 6px 28px rgba(0,0,0,.45);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;color-scheme:light dark;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;}
[hidden]{display:none!important;}
a{color:var(--accent);text-underline-offset:3px;}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;}
.skip{
  position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);
  padding:10px 16px;z-index:100;border:1px solid var(--line);
}
.skip:focus{left:12px;top:12px;}

/* ---------------------------------------------------------- header */
.bar{
  position:sticky;top:0;z-index:40;
  background:var(--ground);
  border-bottom:1px solid var(--line);
}
.bar-in{
  max-width:1120px;margin:0 auto;padding:12px 24px;
  display:flex;gap:18px 26px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;
}
.brand{
  font-family:var(--serif);font-weight:600;font-size:1.02rem;
  letter-spacing:-0.012em;color:var(--ink);text-decoration:none;white-space:nowrap;
}
.brand:hover{color:var(--accent);}
.nav{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline;}
.nav > a{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none;white-space:nowrap;padding-bottom:2px;
}
.nav > a:hover{color:var(--accent);}
.nav a[aria-current="page"]{color:var(--ink);border-bottom:1.5px solid var(--accent);}
@media (max-width:560px){
  .nav{gap:8px 15px;}
  .nav > a{font-size:.63rem;letter-spacing:.075em;}
}

/* ---------------------------------------------------------- layout */
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px;}
main{padding-bottom:88px;}
.prose{max-width:64ch;}
.prose p{margin:0 0 17px;color:var(--ink-2);}
.prose p strong{color:var(--ink);font-weight:600;}
.prose ul,.prose ol{max-width:62ch;padding-left:20px;color:var(--ink-2);}
.prose li{margin-bottom:8px;}

.pagehead{padding-block:64px 0;}
.eyebrow{
  font-family:var(--mono);font-size:.69rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin:0 0 16px;
}
h1{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.9rem,4.4vw,2.85rem);line-height:1.15;letter-spacing:-0.018em;
  margin:0 0 22px;max-width:20ch;text-wrap:balance;
}
h1 em{font-style:italic;font-weight:500;color:var(--accent);}
.standfirst{
  font-family:var(--serif);font-size:clamp(1.05rem,2.1vw,1.26rem);line-height:1.52;
  color:var(--ink-2);max-width:52ch;margin:0 0 8px;
}
h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(1.34rem,2.7vw,1.76rem);line-height:1.22;letter-spacing:-0.012em;
  margin:0 0 18px;max-width:26ch;text-wrap:balance;
}
h3{font-family:var(--sans);font-weight:600;font-size:1.02rem;margin:0 0 6px;line-height:1.4;}
section{padding-block:52px 0;}
.label{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin:0 0 14px;display:flex;align-items:center;gap:12px;
}
.label::after{content:"";flex:1;height:1px;background:var(--line);}
.pull{
  font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.55;
  color:var(--ink);border-left:2px solid var(--accent);padding-left:20px;
  margin:26px 0;max-width:50ch;
}
.note{
  background:var(--surface-2);border-radius:3px;padding:20px 24px;margin:26px 0;max-width:62ch;
}
.note p:last-child{margin-bottom:0;}

/* ---------------------------------------------------------- rows */
.rows{margin-top:24px;border-top:2px solid var(--ink);}
.row{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:8px 34px;
  padding:20px 0;border-bottom:1px solid var(--line);
}
.row p{margin:0;font-size:.93rem;color:var(--ink-2);}
.row p + p{margin-top:9px;}
@media (max-width:680px){ .row{grid-template-columns:1fr;} }

.dl{margin-top:24px;border-top:2px solid var(--ink);}
.dl > div{
  display:grid;grid-template-columns:142px minmax(0,1fr);gap:6px 26px;
  padding:15px 0;border-bottom:1px solid var(--line);
}
.dl dt{font-family:var(--mono);font-size:.76rem;font-weight:500;color:var(--accent);}
.dl dd{margin:0;font-size:.93rem;color:var(--ink-2);}
@media (max-width:560px){ .dl > div{grid-template-columns:1fr;} }

.grid3{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:0;
  margin-top:24px;border-top:1px solid var(--line-strong);
}
.grid3 > div{padding:18px 28px 22px 0;border-top:2px solid var(--ink);margin-top:-1px;}
.grid3 .n{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:9px;
}
.grid3 p{margin:0;font-size:.9rem;color:var(--ink-2);}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:28px 44px;margin-top:22px;}
.cols h3{
  font-family:var(--mono);font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin-bottom:11px;
}
.cols ul{margin:0;padding-left:16px;}
.cols li{font-size:.9rem;color:var(--ink-2);margin-bottom:7px;}

/* ---------------------------------------------------------- cards / links */
.cardlist{display:grid;gap:0;margin-top:24px;border-top:2px solid var(--ink);}
.cardlist a{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:6px 34px;
  padding:22px 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;
}
.cardlist a:hover h3{color:var(--accent);}
.cardlist h3{margin:0;}
.cardlist p{margin:0;font-size:.92rem;color:var(--ink-2);}
.cardlist .more{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--accent);margin-top:10px;display:block;
}
@media (max-width:680px){ .cardlist a{grid-template-columns:1fr;} }

/* ---------------------------------------------------------- article */
.article{max-width:66ch;}
.article h2{
  font-size:clamp(1.2rem,2.3vw,1.42rem);margin-top:40px;margin-bottom:14px;max-width:30ch;
}
.article h3{margin-top:28px;font-size:1rem;}
.article p{margin:0 0 17px;color:var(--ink-2);}
.article p strong{color:var(--ink);font-weight:600;}
.article > p > strong:only-child{
  display:block;font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:1.1rem;line-height:1.5;color:var(--ink);
  border-left:2px solid var(--accent);padding-left:20px;margin:22px 0;
}
.summary{
  border-top:2px solid var(--ink);border-bottom:1px solid var(--line);
  padding:18px 0 20px;margin:0 0 34px;max-width:64ch;
}
.summary .n{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:10px;
}
.summary ul{margin:0;padding-left:18px;}
.summary li{color:var(--ink-2);font-size:.95rem;margin-bottom:7px;}
.related{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);max-width:66ch;}
.related .n{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:12px;
}
.related a{display:block;margin-bottom:8px;font-size:.95rem;}

/* ---------------------------------------------------------- portrait */
.bio{display:grid;grid-template-columns:1fr;gap:34px;margin-top:8px;}
@media (min-width:860px){
  .bio{grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr);gap:56px;align-items:start;}
}
.portrait{margin:0;}
.portrait img{
  width:100%;height:auto;border-radius:2px;display:block;
  filter:saturate(.92);
}
.portrait figcaption{
  font-family:var(--mono);font-size:.66rem;line-height:1.8;color:var(--ink-3);margin-top:12px;
}

/* ---------------------------------------------------------- contact */
.contact{margin-top:28px;padding-top:28px;border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;gap:16px 56px;}
.contact div{min-width:208px;}
.contact .n{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);display:block;margin-bottom:6px;
}
.contact a{font-size:1.02rem;font-weight:500;text-decoration:none;}
.contact a:hover{text-decoration:underline;}
.contact span.val{font-size:1.02rem;color:var(--ink-2);}

/* ---------------------------------------------------------- footer */
footer{border-top:1px solid var(--line);background:var(--surface-2);}
.foot-in{
  max-width:1120px;margin:0 auto;padding:36px 24px 44px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px 44px;
}
.foot-in h4{
  font-family:var(--mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);font-weight:500;margin:0 0 10px;
}
.foot-in a{display:block;font-size:.88rem;color:var(--ink-2);text-decoration:none;margin-bottom:6px;}
.foot-in a:hover{color:var(--accent);}
.foot-base{
  max-width:1120px;margin:0 auto;padding:0 24px 34px;
  font-family:var(--mono);font-size:.66rem;line-height:1.9;color:var(--ink-3);
  display:flex;flex-wrap:wrap;gap:4px 28px;justify-content:space-between;
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
