:root{
  --paper:#EDEFEA;
  --paper-2:#E4E8E2;
  --ink:#131C1A;
  --ink-soft:#56635F;
  --rule:#C9D1CB;
  --signal:#0F5E58;
  --beam:#C08A1E;
  --measure:56rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Newsreader",Georgia,serif;
  font-size:clamp(1.05rem,0.98rem + 0.35vw,1.2rem);
  line-height:1.6;
  font-weight:400;
}
::selection{background:var(--signal);color:var(--paper)}
a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule);transition:border-color .15s,color .15s}
a:hover{color:var(--signal);border-bottom-color:var(--signal)}
a:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.5rem}

/* ---------- hero ---------- */
.hero{position:relative;padding:1.5rem 0 3.5rem;overflow:hidden}
#sweep{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.85}
.hero .wrap{position:relative;z-index:1}
.name{
  font-family:"Archivo",system-ui,sans-serif;
  font-weight:700;
  font-size:clamp(2.9rem,1.4rem + 7vw,6.2rem);
  line-height:.92;
  letter-spacing:-.035em;
  margin:0 0 1.4rem;
}
.lede{max-width:34ch;margin:0;font-size:clamp(1.15rem,1rem + .5vw,1.45rem);line-height:1.45;font-weight:300}
.lede em{font-style:normal;color:var(--signal)}

/* ---------- language switch ---------- */
.hero .lang{
  display:flex;justify-content:flex-end;gap:1.1rem;
  margin-bottom:2.5rem;
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.72rem;font-weight:500;letter-spacing:.14em;
}
.lang a{color:var(--ink-soft);border-bottom-color:transparent;padding:.2rem 0}
.lang a:hover{color:var(--signal);border-bottom-color:var(--signal)}
.lang a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}

/* ---------- labels & rows ---------- */
.label{
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);
}
section{padding:3rem 0;border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:9rem 1fr;gap:2rem}
@media (max-width:640px){
  .row{grid-template-columns:1fr;gap:.9rem}
  .hero{padding:1.25rem 0 2.5rem}
  .hero .lang{margin-bottom:1.25rem}
}
.row > .label{padding-top:.45rem}

ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{padding:.55rem 0}
ul.plain li + li{border-top:1px solid var(--paper-2)}

.entry{display:grid;grid-template-columns:8rem 1fr;gap:1.25rem;align-items:baseline;padding:.7rem 0}
.entry + .entry{border-top:1px solid var(--paper-2)}
.entry .when{font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:var(--ink-soft);letter-spacing:.02em}
.entry .what{margin:0}
.entry .where{display:block;color:var(--ink-soft);font-size:.92em}
@media (max-width:640px){
  .entry{grid-template-columns:1fr;gap:.2rem}
}

/* ---------- contact ---------- */
.links{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;margin:0;padding:0;list-style:none}
.links a{font-family:"IBM Plex Mono",monospace;font-size:.9rem;letter-spacing:.01em}

footer{padding:2.5rem 0 4rem;border-top:1px solid var(--rule)}
footer p{margin:0;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}

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