:root{
  --bg:#F9F4ED;
  --surface:#EFECE8;
  --ink:#222222;
  --muted:#6B7280;
  --line:#E0D7CB;
  --tag-bg:#E4B29C;
  --cta-muted:#E4B29C;
  --cta:#C47A5A;
  --cta-hover:#B9684A;
  --shadow:0 2px 8px rgba(0,0,0,0.08);
  --radius:24px;
  --container:1080px;
}

*{box-sizing:border-box; margin:0; padding:0}
html,body{background:var(--bg); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; line-height:1.6}
body.nav-open{overflow:hidden}
img{max-width:100%; height:auto}
.wrapper{max-width:var(--container); margin:0 auto; padding:0 1rem}

/* Header */
.mast{position:sticky; top:0; z-index:100; backdrop-filter:blur(12px); background:rgba(249,244,237,.96); border-bottom:1px solid var(--line)}
.mast-inner{display:flex; align-items:center; justify-content:space-between; padding:1rem 0 .5rem; gap:1rem}
.brand{display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap}
.dot{width:.5rem; height:.5rem; border-radius:50%; background:var(--muted); opacity:.6}
.name{font-weight:600; letter-spacing:.2px}
.role{color:var(--muted); font-size:.95rem}

/* Desktop Navigation */
.nav{display:flex; gap:1rem}
.nav a{color:var(--muted); text-decoration:none; padding:.35rem .6rem; border-radius:12px; transition:background .2s, color .2s}
.nav a:hover{background:var(--surface); color:var(--ink)}

/* Burger Button */
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.5rem; z-index:110}
.burger-line{width:24px; height:2px; background:var(--ink); border-radius:2px; transition:all .3s ease}
.burger.active .burger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.active .burger-line:nth-child(2){opacity:0}
.burger.active .burger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile Navigation Overlay */
.mobile-nav-overlay{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background:rgba(0,0,0,.5);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s, visibility .3s;
  z-index:90;
  backdrop-filter:blur(4px);
}
.mobile-nav-overlay.active{opacity:1; visibility:visible}

.mobile-nav{
  position:absolute;
  top:0;
  right:0;
  height:100vh;
  width:min(300px, 75vw);
  background:var(--surface);
  padding:5rem 2rem 2rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow:-4px 0 20px rgba(0,0,0,.1);
}
.mobile-nav-overlay.active .mobile-nav{transform:translateX(0)}

.mobile-nav-link{
  color:var(--ink);
  text-decoration:none;
  font-size:1.2rem;
  font-weight:500;
  padding:.75rem 0;
  border-bottom:1px solid var(--line);
  transition:color .2s;
}
.mobile-nav-link:hover{color:var(--muted)}

@media (max-width: 768px) {
  .nav{display:none}
  .burger{display:flex}
  .role{display:none}
}

/* Sections */
main{padding:1.2rem 0 2rem}

/* Hide default Jekyll page titles */
.page-heading{display:none}
.post-list-heading{display:none}

.hero{padding:2.2rem 0 1.2rem; max-width:800px}
.hero h1{margin:0 0 .5rem; font-size:clamp(1.8rem,4vw,2.6rem); font-weight:600; letter-spacing:.1px; line-height:1.2}
.hero .lede{color:var(--muted); margin:0 0 1.2rem; max-width:65ch; font-size:1.1rem}
.hero-cta{display:flex; gap:.6rem; flex-wrap:wrap}
.btn{display:inline-block; padding:.65rem 1.3rem; border-radius:16px; background:var(--cta); color:#fff; text-decoration:none; font-weight:600; transition:background .2s, transform .2s; box-shadow:var(--shadow)}
.btn:hover{background:var(--cta-hover); transform:translateY(-1px)}
.btn.ghost{background:var(--surface); color:var(--ink); border:1px solid var(--line); box-shadow:none}
.rule{border:0; border-top:1px solid var(--line); margin:1.8rem 0 2rem}

/* About Section on Landing */
.about-section{
  background:var(--surface);
  border-radius:var(--radius);
  padding:2rem;
  margin:2rem 0;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.about-section h2{font-size:1.6rem; margin-bottom:1rem; font-weight:600; color:var(--ink)}
.about-section p{color:var(--muted); margin-bottom:1rem; line-height:1.7}
.focus-list{display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:1.5rem; margin-top:1.5rem}
.focus-item h4{font-size:1rem; font-weight:600; margin-bottom:.5rem; color:var(--ink)}
.focus-item ul{list-style:none; padding:0}
.focus-item li{color:var(--muted); padding:.3rem 0; padding-left:1.2rem; position:relative}
.focus-item li:before{content:"→"; position:absolute; left:0; color:var(--muted)}

/* Cards */
.cards{margin:1.5rem 0 2.5rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.2rem}
.card{
  display:block;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem;
  text-decoration:none;
  transition:all .25s;
  box-shadow:var(--shadow);
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.08), 0 12px 24px rgba(0,0,0,.12);
  border-color:var(--cta-muted, var(--line));
}
.card h3{margin:0 0 .6rem; font-size:1.25rem; color:var(--ink); font-weight:600}
.card p{color:var(--muted); margin:0 0 1rem; line-height:1.6; font-size:.95rem}
.tags{display:flex; flex-wrap:wrap; gap:.4rem; list-style:none; padding:0; margin:0}
.tags li{background:var(--tag-bg); color:var(--muted); font-size:.8rem; padding:.25rem .6rem; border-radius:6px; font-weight:500}

/* Two-column strip */
.strip{background:var(--surface); border-radius:var(--radius); padding:2rem; margin:2.5rem 0; border:1px solid var(--line)}
.strip .cols{display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:2rem}
.strip h4{margin:0 0 .8rem; font-weight:600}
.strip ul{list-style:none; padding:0}
.strip li{color:var(--muted); padding:.3rem 0; padding-left:1.2rem; position:relative}
.strip li:before{content:"•"; position:absolute; left:0; color:var(--muted)}

/* Page content (for project and about pages) */
.page-content{max-width:900px; margin:0 auto; padding-bottom:3rem}

/* Page title */
.page-content h1{
  font-size:2.4rem;
  font-weight:700;
  margin-bottom:.5rem;
  line-height:1.2;
  color:var(--ink);
}

/* Subtitle (first h2 after h1) */
.page-content h1 + h2{
  font-size:1.3rem;
  font-weight:500;
  color:var(--muted);
  margin-top:0;
  margin-bottom:1.5rem;
  border:none;
  padding:0;
  background:none;
}

/* Metadata section (first paragraph with bold labels) */
.page-content h1 + h2 + p,
.page-content h1 + h2 + hr + h2 + p{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:1.5rem;
  margin:1.5rem 0;
  line-height:1.9;
  box-shadow:var(--shadow);
}

/* Major section headers (h2) */
.page-content h2{
  font-size:1.7rem;
  font-weight:600;
  margin:3rem 0 1.2rem;
  padding-top:2rem;
  border-top:2px solid var(--line);
  line-height:1.3;
  color:var(--ink);
}

/* Remove border from first content h2 */
.page-content > h2:first-of-type{
  border-top:none;
  padding-top:0;
}

/* Subsection headers (h3) */
.page-content h3{
  font-size:1.3rem;
  font-weight:600;
  margin:2rem 0 1rem;
  color:var(--ink);
  padding-left:.8rem;
  border-left:4px solid var(--line);
}

/* Sub-subsection headers (h4) */
.page-content h4{
  font-size:1.1rem;
  font-weight:600;
  margin:1.5rem 0 .8rem;
  color:var(--ink);
}

/* Paragraphs */
.page-content p{
  margin-bottom:1.2rem;
  line-height:1.8;
  color:var(--muted);
}

/* Lists */
.page-content ul, .page-content ol{
  margin-bottom:1.5rem;
  padding-left:1.8rem;
  line-height:1.7;
}

.page-content li{
  margin-bottom:.8rem;
  line-height:1.7;
  color:var(--muted);
  padding-left:.3rem;
}

/* Nested lists */
.page-content li ul, .page-content li ol{
  margin-top:.8rem;
  margin-bottom:.5rem;
}

/* Bold text in lists (often used as sub-headers) */
.page-content li strong{
  color:var(--ink);
  font-weight:600;
}

/* Code blocks */
.page-content pre{
  background:#2f2f2f;
  color:#f8f9fa;
  padding:1.5rem;
  border-radius:12px;
  overflow-x:auto;
  margin:1.5rem 0;
  line-height:1.6;
  border:1px solid #444;
}

.page-content code{
  font-family:'SF Mono', Monaco, 'Courier New', monospace;
  font-size:.9em;
}

/* Inline code */
.page-content p code, .page-content li code{
  background:var(--tag-bg);
  padding:.2em .5em;
  border-radius:4px;
  color:var(--ink);
  font-size:.88em;
}

/* Horizontal rules */
.page-content hr{
  border:0;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--line) 20%, var(--line) 80%, transparent);
  margin:2.5rem 0;
}

/* Blockquotes (if any) */
.page-content blockquote{
  border-left:4px solid var(--line);
  padding-left:1.5rem;
  margin:1.5rem 0;
  color:var(--muted);
  font-style:italic;
}

/* Links in content */
.page-content a{
  color:var(--cta);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .2s, color .2s;
}

.page-content a:hover{
  border-bottom-color:var(--cta);
  color:var(--cta-hover);
}

/* Strong emphasis */
.page-content strong{
  color:var(--ink);
  font-weight:600;
}

/* Highlight boxes for key info */
.highlight-box{
  background:linear-gradient(135deg, #F9F4ED 0%, #EFECE8 100%);
  border-left:6px solid var(--cta);
  padding:1.5rem;
  margin:2rem 0;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.highlight-box h3,
.highlight-box h4{
  margin-top:0;
  color:var(--ink);
  border:none;
  padding:0;
}

.highlight-box ul{
  margin-bottom:0;
}

/* Metrics/stats callout */
.metrics-box{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:1rem;
  margin:2rem 0;
}

.metric{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.2rem;
  text-align:center;
  box-shadow:var(--shadow);
}

.metric-value{
  font-size:2rem;
  font-weight:700;
  color:var(--cta);
  display:block;
  margin-bottom:.3rem;
}

.metric-label{
  color:var(--muted);
  font-size:.9rem;
  display:block;
}

/* Two-column layout for comparison */
.two-col{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:1.5rem;
  margin:1.5rem 0;
}

.col-box{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem;
  box-shadow:var(--shadow);
}

.col-box h4{
  margin-top:0;
  margin-bottom:1rem;
  color:var(--ink);
}

.col-box ul{
  margin-bottom:0;
}

/* Responsive adjustments */
@media (max-width: 600px) {
  .hero{padding:1.5rem 0 1rem}
  .hero h1{font-size:1.8rem}
  .cards{grid-template-columns:1fr}
  .about-section{padding:1.5rem}
  .focus-list{grid-template-columns:1fr}

  /* Project pages on mobile */
  .page-content{padding-bottom:2rem}
  .page-content h1{font-size:1.8rem}
  .page-content h1 + h2{font-size:1.1rem}
  .page-content h2{font-size:1.4rem; margin:2rem 0 1rem; padding-top:1.5rem}
  .page-content h3{font-size:1.2rem; margin:1.5rem 0 .8rem}
  .page-content pre{padding:1rem; font-size:.85rem}
  .page-content ul, .page-content ol{padding-left:1.3rem}
}

/* CV-specific spacing */
.cv-page{font-size:0.95rem}
.cv-page h1{margin-bottom:1rem}
.cv-page h2{margin-top:1.8rem; margin-bottom:1rem; padding-top:1.2rem}
.cv-page h3{margin-top:1.6rem; margin-bottom:.8rem}
.cv-page p{margin-bottom:1.2rem; line-height:1.65}
.cv-page ul, .cv-page ol{padding-left:1.8rem; margin-bottom:1.4rem}
.cv-page li{margin-bottom:.9rem; line-height:1.6}

/* CV pages: white background, hide nav (screen) */
body.cv{background:#fff}
body.cv .mast,
body.cv .mobile-nav-overlay{display:none}

/* CV contact header line */
.cv-contact{font-size:0.85rem; color:var(--muted); margin:0.25rem 0 0.6rem; line-height:1.6}
.cv-contact a{color:var(--muted); text-decoration:none; border-bottom:none}
.cv-contact a:hover{color:var(--cta)}

/* Print / Save as PDF button */
.print-btn{
  font-size:0.8rem;
  padding:0.3rem 0.8rem;
  border:1px solid var(--line);
  border-radius:6px;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  margin-bottom:1.5rem;
  display:inline-block;
}
.print-btn:hover{border-color:var(--cta); color:var(--cta)}

/* Print styles */
@media print{
  /* ── Page setup ── */
  @page{size:A4; margin:1.8cm 2.2cm}

  /* ── Global resets ── */
  html,body{background:white !important; color:#111 !important}
  .mast,.mobile-nav-overlay,.print-btn{display:none !important}
  .wrapper{max-width:none !important; padding:0 !important}
  .page-content{max-width:none; padding:0}
  a{color:#111 !important; text-decoration:none !important; border:none !important}
  h1,h2,h3,h4,h5,h6{page-break-after:avoid}
  li,p{page-break-inside:avoid}
  .highlight-box,.metrics-box,.two-col,.col-box{box-shadow:none; border-color:#ccc}

  /* ── CV-specific: traditional print typography ── */
  body.cv,
  body.cv .cv-page{
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 10.5pt;
    line-height: 1.45;
    color: #111;
  }

  /* Name */
  body.cv .cv-page h1{
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 18pt;
    font-weight: 700;
    letter-spacing: 0.3pt;
    color: #111;
    margin-bottom: 4pt;
    border: none;
    padding: 0;
  }

  /* Contact line under name */
  body.cv .cv-contact{
    font-size: 9pt;
    color: #444;
    margin-bottom: 10pt;
    line-height: 1.5;
  }
  body.cv .cv-contact a{color:#444 !important}

  /* Section headings — ALL CAPS with bottom rule, traditional style */
  body.cv .cv-page h2{
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 8pt;
    font-weight: 700;
    letter-spacing: 1.8pt;
    text-transform: uppercase;
    color: #111;
    margin-top: 13pt;
    margin-bottom: 5pt;
    padding-top: 0;
    padding-bottom: 3pt;
    border-top: none;
    border-bottom: 0.75pt solid #111;
  }

  /* Sub-headings */
  body.cv .cv-page h3{
    font-size: 10.5pt;
    font-weight: 700;
    margin-top: 6pt;
    margin-bottom: 2pt;
  }

  /* Body paragraphs */
  body.cv .cv-page p{
    font-size: 10.5pt;
    line-height: 1.45;
    margin-bottom: 5pt;
    color: #111;
  }

  /* Lists */
  body.cv .cv-page ul,
  body.cv .cv-page ol{
    padding-left: 12pt;
    margin-bottom: 4pt;
  }
  body.cv .cv-page li{
    font-size: 10.5pt;
    line-height: 1.4;
    margin-bottom: 2.5pt;
    color: #111;
  }

  /* Bold text in experience bullets */
  body.cv .cv-page strong{
    font-weight: 700;
    color: #111;
  }
}

/* GitHub heatmap */
