:root{
  --paper:#f6f1e7;
  --ink:#211d18;
  --ink-soft:#5a5145;
  --accent:#8f4a12;
  --line:#ddd2bd;
  --card:#fffdf8;
  --serif:"Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  min-height:100vh;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  display:flex;
  flex-direction:column;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}

.wrap{width:100%;max-width:560px;margin:0 auto;padding:0 24px;flex:1;display:flex;flex-direction:column}
.top{padding:28px 0 0}
.brand{font-family:var(--serif);font-weight:700;font-size:1.5rem;letter-spacing:.01em}

.intro{margin:auto 0;padding:40px 0}
.intro h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.15;margin:0;letter-spacing:-.01em}

.projects{display:flex;flex-direction:column;gap:14px;padding-bottom:40px}
.proj{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;text-decoration:none;color:inherit;
  border:1px solid var(--line);border-radius:12px;padding:18px 20px;background:var(--card);transition:border-color .15s ease}
a.proj:hover{border-color:var(--accent)}
.proj-name{font-family:var(--serif);font-size:1.25rem;font-weight:700}
.proj-tag{color:var(--ink-soft);font-size:.95rem;flex:1;min-width:130px}
.proj-badge{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap}
.proj-badge.live{background:#e7f0e1;color:#3f6b34}
.proj-badge.plan{background:#f3e6d3;color:#8f4a12}

.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:20px 0;border-top:1px solid var(--line);
  color:var(--ink-soft);font-size:.9rem}
.foot a{text-decoration:none;font-weight:600}
.foot a:hover{text-decoration:underline}

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