:root{
  --paper:#fbf7ef;
  --ink:#111111;
  --muted:rgba(17,17,17,.55);
  --warm:#8b7355;
  --accent:#5a4a3a;
  --line:1px;
  --rule:rgba(17,17,17,.18);
  --pad:18px;
  --max:980px;
  --shadow:none;
  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --radius:4px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  letter-spacing:.2px;
  line-height:1.6;
}
img{max-width:100%; height:auto; display:block}

a{color:var(--ink); text-decoration:none}
a:focus, a:hover{outline:none; color:var(--warm)}

/* prevent long URLs / code from overflowing on mobile */
main, .card, p, li, a{overflow-wrap:anywhere; word-break:break-word}
pre, code{white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word}

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

.topbar{
  position:sticky; top:0; z-index:10;
  background: var(--paper);
  border-bottom: var(--line) solid var(--rule);
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; gap:12px}

.brand{
  font-weight:800;
  text-transform:uppercase;
  font-size:14px;
  letter-spacing:2px;
}
.brand:hover{color:var(--warm)}

.grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:var(--space-3);
}
@media (min-width: 820px){
  .grid{grid-template-columns: 1.1fr .9fr; gap:var(--space-3)}
}

.card{
  border: var(--line) solid var(--rule);
  padding: 20px;
  background: rgba(255,255,255,.3);
  box-shadow: none;
  border-radius: var(--radius);
}

.heroTitle{
  font-size: clamp(36px, 8vw, 88px);
  line-height: .95;
  margin: 8px 0 16px;
  text-transform: uppercase;
  letter-spacing:-1px;
}

.kicker{
  color:var(--warm);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:600;
}

.photo{
  border: var(--line) solid var(--rule);
  box-shadow: none;
  border-radius: var(--radius);
}

/* nav component */
.nav{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:var(--space-3);
  align-items:baseline;
  margin-top:var(--space-2);
}

.nav__link{
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:1.5px;
  font-size:13px;
}

/* top links: no boxes */
.nav .nav__link{
  border:0;
  box-shadow:none;
  padding:10px 0;
}

/* page sections */
section{
  margin-bottom: var(--space-3);
}

h1{
  font-size: 28px;
  line-height: 1.2;
  margin: 0 0 12px;
  letter-spacing:-0.5px;
}

h2{
  font-size: 18px;
  line-height: 1.3;
  margin: 24px 0 10px;
  color: var(--accent);
}

h3{
  font-size: 14px;
  line-height: 1.4;
  margin: 18px 0 8px;
  color: var(--warm);
  text-transform:uppercase;
  letter-spacing:1px;
}

p{
  margin: 0 0 12px;
}

ul{
  margin: 8px 0 16px;
  padding-left: 20px;
}

li{
  margin-bottom: 6px;
}

.muted{color:var(--muted); font-size:13px; line-height:1.5}

hr{
  border:0;
  border-top: var(--line) solid var(--rule);
  margin: 24px 0;
}

.btn{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  padding: 14px 16px;
  border: var(--line) solid var(--rule);
  background: transparent;
  box-shadow: none;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:1.5px;
  font-size: 13px;
  border-radius: var(--radius);
  transition: border-color 0.15s ease;
}
.btn span{color:var(--muted); font-weight:600; letter-spacing:0.5px; text-transform:none; font-size:12px}
.btn:hover{border-color:var(--warm); background:rgba(139,115,85,.04)}

.list{display:flex; flex-direction:column; gap:2px}
.item{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding: 12px 0;
  border:0;
  border-top: var(--line) solid var(--rule);
}
.item code{color:var(--muted); font-size:12px}

.big{
  display:block;
  font-size: clamp(44px, 12vw, 100px);
  line-height: .95;
  margin: 0;
  padding: 12px 0;
  text-transform: uppercase;
  letter-spacing:-1px;
}

.big + .big{ padding-top: 0; }

.small{color:var(--muted); font-size:12px}

/* intro text */
.intro{
  font-size: 15px;
  line-height: 1.6;
  color: var(--accent);
  margin-bottom: 16px;
}

/* location badge */
.location{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(139,115,85,.08);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  color: var(--warm);
  font-weight: 600;
  letter-spacing: 0.5px;
}

/* timestamp */
.timestamp{
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 0.5px;
}

/* footer */
footer{
  border-top: var(--line) solid var(--rule);
  padding: 16px 0;
  margin-top: 32px;
}
footer .wrap{
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* mobile comfort */
@media (max-width: 420px){
  .btn{padding:16px 14px}
  .card{padding:16px}
  h1{font-size:24px}
  .heroTitle{font-size:32px}
}

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto}
}

/* home nav: clickable */
.nav .nav__link{
  display:block;
  padding:10px 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-weight: 700;
  letter-spacing: 1.5px;
  font-size: 13px;
}
.nav .nav__link:hover,
.nav .nav__link:focus-visible,
.nav .nav__link:active{
  background: rgba(139,115,85,.06);
  color: var(--warm);
  outline: none;
}
/* end home nav: clickable */

/* page list styling */
.page-list{
  list-style: none;
  padding: 0;
  margin: 0;
}
.page-list li{
  border-top: var(--line) solid var(--rule);
  padding: 12px 0;
}
.page-list li:last-child{
  border-bottom: var(--line) solid var(--rule);
}
.page-list a{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.page-list .date{
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}
