*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --cream: #f5f0e8;
  --cream-dark: #ece5d8;
  --cream-darker: #dfd4c0;
  --terra: #c4622d;
  --terra-dim: rgba(196,98,45,0.1);
  --ink: #1a1714;
  --muted: #8c7e6e;
  --border: rgba(26,23,20,0.1);
  --max: 1080px;
}

html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--ink);
  font-family: 'DM Sans', sans-serif;
  font-size: 16px; line-height: 1.6;
  overflow-x: hidden;
}

/* Nav */
.nav {
  position: sticky; top:0; z-index:100;
  background: rgba(245,240,232,0.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.nav-inner {
  max-width: var(--max); margin:0 auto;
  padding: 0 36px; height:60px;
  display:flex; align-items:center; justify-content:space-between;
}
.back-link {
  font-family:'DM Mono',monospace; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  display:flex; align-items:center; gap:8px; transition:color .2s;
}
.back-link:hover { color:var(--terra); }
.nav-tag {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.12em; color:var(--terra);
  border:1px solid rgba(196,98,45,.25);
  padding:4px 12px; border-radius:20px; text-transform:uppercase;
}
.nav-cta {
  background:var(--terra); color:#fff; border:none;
  padding:8px 18px; font-family:'DM Sans',sans-serif;
  font-size:12px; font-weight:500; border-radius:4px;
  text-decoration:none; transition:background .2s;
}
.nav-cta:hover { background:#a84f22; }

/* ── HERO — fullwidth dark ── */
.hero {
  background: var(--ink);
  min-height: 100vh;
  display: grid;
  grid-template-rows: 1fr auto;
  position: relative; overflow: hidden;
}
/* Giant background initial */
.hero::before {
  content: 'AB';
  position: absolute; bottom:-10%; right:-4%;
  font-family:'Cormorant Garamond',serif;
  font-size: 52vw; font-weight:600; line-height:.85;
  color:rgba(245,240,232,0.025);
  pointer-events:none; z-index:0; user-select:none;
  letter-spacing:-0.04em;
}
.hero-content {
  max-width: var(--max); margin:0 auto;
  padding: 100px 36px 60px;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 80px; align-items: end;
  position: relative; z-index: 1;
}
.hero-left {}
.hero-label {
  font-family:'DM Mono',monospace; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--terra); margin-bottom:32px;
  display:flex; align-items:center; gap:12px;
}
.hero-label::before { content:''; width:28px; height:1px; background:var(--terra); }
.hero-name {
  font-family:'Cormorant Garamond',serif;
  font-size: clamp(64px, 8vw, 108px);
  font-weight:300; line-height:.9;
  color:var(--cream); letter-spacing:-0.01em;
  margin-bottom: 28px;
}
.hero-title {
  font-family:'Cormorant Garamond',serif;
  font-size:26px; font-weight:300; font-style:italic;
  color:var(--terra); margin-bottom:36px;
}
.hero-bio {
  font-size:16px; font-weight:300;
  color:rgba(245,240,232,.5); line-height:1.8;
  max-width:540px;
}
.hero-bio strong { color:rgba(245,240,232,.85); font-weight:500; }

/* Photo card */
.hero-photo {
  align-self: stretch;
  display: flex; flex-direction: column;
  justify-content: flex-end;
}
.photo-frame {
  background: var(--cream-dark);
  border-radius: 4px 4px 0 0;
  aspect-ratio: 3/4;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.photo-initials-block {
  text-align:center;
}
.photo-big-initial {
  font-family:'Cormorant Garamond',serif;
  font-size:96px; font-weight:300; color:var(--muted);
  line-height:1;
}
.photo-sub {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.1em; color:var(--muted);
  text-transform:uppercase; margin-top:8px;
}

/* Stats strip inside hero bottom */
.hero-stats {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid rgba(245,240,232,.08);
  position: relative; z-index:1;
}
.hero-stat {
  padding: 28px 0;
  border-right: 1px solid rgba(245,240,232,.08);
}
.hero-stat:last-child { border-right:none; }
.hero-stat-num {
  font-family:'Cormorant Garamond',serif;
  font-size:44px; font-weight:300; color:var(--terra);
  line-height:1; margin-bottom:4px;
}
.hero-stat-label {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.1em; text-transform:uppercase;
  color:rgba(245,240,232,.3);
}

/* ── CONTACT RIBBON ── */
.contact-ribbon {
  background: var(--terra); padding:0;
}
.contact-inner {
  max-width:var(--max); margin:0 auto; padding:0 36px;
  display:grid; grid-template-columns:1fr 1fr;
  gap:0;
}
.contact-primary {
  padding:28px 36px 28px 0;
  border-right:1px solid rgba(26,23,20,0.2);
  display:flex; flex-direction:column; gap:8px;
}
.contact-primary-email {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; font-weight:600;
  color:var(--ink); letter-spacing:.01em;
}
.contact-primary-avail {
  font-family:'DM Mono',monospace; font-size:12px;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); opacity:.6;
}
.contact-secondary {
  padding:28px 0 28px 36px;
  display:flex; flex-direction:column; gap:10px;
  justify-content:center;
}
.contact-item {
  display:flex; align-items:center; gap:10px;
  font-family:'DM Mono',monospace; font-size:12px;
  color:rgba(255,255,255,.65); letter-spacing:.04em;
}
.contact-item svg { width:13px; height:13px; stroke:#fff; opacity:.7; flex-shrink:0; }
.contact-item a { color:rgba(255,255,255,.65); text-decoration:none; }

/* ── SHARED SECTION ── */
.sec { padding:88px 0; border-bottom:1px solid var(--border); }
.sec-inner { max-width:var(--max); margin:0 auto; padding:0 36px; }
.sec-label {
  font-family:'DM Mono',monospace; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--terra); margin-bottom:16px;
  display:flex; align-items:center; gap:12px;
}
.sec-label::before { content:''; width:24px; height:1px; background:var(--terra); }
.sec-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(32px,4vw,48px);
  font-weight:300; line-height:1.1; color:var(--ink);
  margin-bottom:44px; white-space:nowrap;
}
.sec-h2 em { font-style:italic; color:var(--terra); }

/* ── ABOUT — fullwidth editorial ── */
.about-sec { background:var(--cream); }
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:start;
}
.about-quote {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; font-weight:300; font-style:italic;
  color:var(--ink); line-height:1.35; margin-bottom:24px;
  border-left:3px solid var(--terra); padding-left:28px;
}
.about-quote em { color:var(--terra); font-style:normal; }
.about-text {
  font-size:15px; font-weight:300; color:var(--muted);
  line-height:1.8;
}
.about-text strong { color:var(--ink); font-weight:500; }
.about-right {}
.about-facts { display:flex; flex-direction:column; gap:0; }
.fact-row {
  display:grid; grid-template-columns:140px 1fr;
  gap:20px; padding:14px 0;
  border-bottom:1px solid var(--border);
  font-size:14px;
}
.fact-row:first-child { border-top:1px solid var(--border); }
.fact-key {
  font-family:'DM Mono',monospace; font-size:11px;
  letter-spacing:.08em; color:var(--muted);
  text-transform:uppercase; padding-top:1px;
}
.fact-val { color:var(--ink); font-weight:300; }
.fact-val strong { font-weight:500; color:var(--terra); }

/* ── EXPERIENCE — big cards ── */
.exp-sec { background:var(--cream-dark); }
.exp-sec .sec-h2 { color:var(--ink); }
.exp-cards { display:flex; flex-direction:column; gap:0; }
.exp-card {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:48px;
  padding:48px 0;
  border-bottom:1px solid var(--border);
  position:relative;
}
.exp-card:last-child { border-bottom:none; }
.exp-card::before {
  content:'';
  position:absolute; left:-36px; top:52px;
  width:8px; height:8px; border-radius:50%;
  background:var(--cream-darker); border:2px solid var(--border);
}
.exp-card.current::before { background:var(--terra); border-color:var(--terra); }
.exp-meta {}
.exp-period {
  font-family:'DM Mono',monospace; font-size:11px;
  color:var(--muted); letter-spacing:.04em; line-height:1.7;
  margin-bottom:6px; font-weight:500;
}
.exp-duration {
  font-family:'DM Mono',monospace; font-size:10px;
  color:var(--terra); letter-spacing:.06em;
}
.exp-body {}
.exp-role {
  font-family:'Cormorant Garamond',serif;
  font-size:28px; font-weight:600; color:var(--ink);
  margin-bottom:4px; line-height:1.1;
}
.exp-company {
  font-size:14px; font-weight:300; color:var(--terra);
  margin-bottom:16px;
}
.exp-desc {
  font-size:14px; font-weight:300; color:var(--muted);
  line-height:1.75; margin-bottom:16px; max-width:580px;
}
.exp-highlights {
  display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px;
}
.exp-hl {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.06em; color:var(--ink);
  background:var(--cream); border:1px solid var(--border);
  padding:4px 12px; border-radius:20px;
}

/* ── SKILLS — fullwidth grid ── */
.skills-sec { background:var(--ink); }
.skills-sec .sec-label { color:var(--terra); }
.skills-sec .sec-label::before { background:var(--terra); }
.skills-sec .sec-h2 { color:var(--cream); }
.skills-sec .sec-h2 em { color:var(--terra); }
.skills-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(245,240,232,.07);
  border:1px solid rgba(245,240,232,.07); border-radius:8px;
  overflow:hidden;
}
.skill-cat { background:var(--ink); padding:32px 28px; }
.skill-cat-title {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--terra); margin-bottom:20px;
  padding-bottom:12px; border-bottom:1px solid rgba(245,240,232,.08);
}
.skill-item {
  margin-bottom:12px;
}
.skill-name-row {
  display:flex; justify-content:space-between;
  font-family:'DM Mono',monospace; font-size:11px;
  color:rgba(245,240,232,.55); letter-spacing:.04em;
  margin-bottom:6px;
}
.skill-bar-track { height:2px; background:rgba(245,240,232,.08); border-radius:2px; }
.skill-bar-fill { height:2px; background:var(--terra); border-radius:2px; }

/* Lang pills - inline */
.lang-grid { display:flex; flex-direction:column; gap:12px; margin-top:0; }
.lang-pill {
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid rgba(245,240,232,.08);
}
.lang-pill:last-child { border-bottom:none; }
.lang-pill-name {
  font-family:'DM Mono',monospace; font-size:11px;
  color:rgba(245,240,232,.7); letter-spacing:.06em;
}
.lang-pill-level {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.08em; color:var(--terra); text-transform:uppercase;
}

/* ── EDUCATION — timeline ── */
.edu-sec { background:var(--cream); }
.edu-items { display:flex; flex-direction:column; gap:0; }
.edu-item {
  display:grid; grid-template-columns:200px 1fr;
  gap:48px; padding:40px 0;
  border-bottom:1px solid var(--border);
}
.edu-item:last-child { border-bottom:none; }
.edu-years {
  font-family:'DM Mono',monospace; font-size:11px;
  color:var(--muted); letter-spacing:.04em; padding-top:4px;
}
.edu-degree {
  font-family:'Cormorant Garamond',serif;
  font-size:24px; font-weight:600; color:var(--ink);
  margin-bottom:4px; line-height:1.2;
}
.edu-school { font-size:13px; font-weight:300; color:var(--terra); margin-bottom:8px; }
.edu-note { font-size:13px; font-weight:300; color:var(--muted); }

/* ── CERTS — horizontal scroll feel ── */
.certs-sec { background:var(--cream-dark); }
.certs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cert-card {
  background:var(--cream); border:1px solid var(--border);
  border-radius:8px; padding:28px;
}
.cert-icon {
  width:36px; height:36px; border-radius:6px;
  background:var(--terra-dim); display:flex;
  align-items:center; justify-content:center;
  margin-bottom:16px;
}
.cert-icon svg { width:18px; height:18px; stroke:var(--terra); }
.cert-title {
  font-family:'Cormorant Garamond',serif;
  font-size:20px; font-weight:600; color:var(--ink);
  margin-bottom:4px;
}
.cert-org { font-size:12px; font-weight:300; color:var(--terra); margin-bottom:8px; }
.cert-year {
  font-family:'DM Mono',monospace; font-size:11px;
  color:var(--muted); letter-spacing:.06em;
}

.cert-desc {
  font-size:12px; font-weight:300; color:var(--muted);
  line-height:1.6; margin-bottom:8px;
}

/* ── DOWNLOADS ── */
.downloads-sec { background:var(--cream); }
.downloads-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.dl-card {
  background:#fff; border:1px solid var(--border);
  border-radius:8px; padding:24px 28px;
  display:flex; align-items:center; gap:18px;
  text-decoration:none; transition:border-color .2s, transform .15s;
}
.dl-card:hover { border-color:var(--terra); transform:translateY(-2px); }
.dl-icon {
  width:44px; height:44px; border-radius:8px;
  background:var(--terra-dim); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.dl-icon svg { width:20px; height:20px; stroke:var(--terra); }
.dl-title {
  font-family:'Cormorant Garamond',serif;
  font-size:18px; font-weight:600; color:var(--ink); margin-bottom:3px;
}
.dl-meta {
  font-family:'DM Mono',monospace; font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
}

.cta-sec {
  background:var(--terra); padding:88px 0;
  text-align:center;
}
.cta-label {
  font-family:'DM Mono',monospace; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.6); margin-bottom:20px;
}
.cta-h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(36px,5vw,64px);
  font-weight:300; color:#fff; line-height:1.05;
  margin-bottom:32px;
}
.cta-h2 em { font-style:italic; }
.cta-btn {
  display:inline-block; background:#fff; color:var(--terra);
  padding:16px 40px; border-radius:4px;
  font-family:'DM Sans',sans-serif; font-size:14px; font-weight:500;
  text-decoration:none; transition:opacity .2s;
}
.cta-btn:hover { opacity:.88; }
.cta-note {
  margin-top:16px;
  font-family:'DM Mono',monospace; font-size:11px;
  color:rgba(255,255,255,.4); letter-spacing:.06em;
}

/* ── FOOTER ── */
.cv-footer { background:var(--ink); padding:32px 0; }
.cv-footer-inner {
  max-width:var(--max); margin:0 auto; padding:0 36px;
  display:flex; align-items:center; justify-content:space-between;
}
.footer-name {
  font-family:'Cormorant Garamond',serif;
  font-size:18px; font-weight:300; color:var(--cream);
}
.footer-name em { color:var(--terra); font-style:italic; }
.footer-meta {
  font-family:'DM Mono',monospace; font-size:10px;
  color:rgba(245,240,232,.2); letter-spacing:.08em; text-align:center;
}
.footer-pa {
  font-family:'DM Mono',monospace; font-size:10px;
  color:rgba(245,240,232,.2); letter-spacing:.06em; text-align:right;
}
.footer-pa a { color:var(--terra); text-decoration:none; }

/* Reveal */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.reveal.visible { opacity:1; transform:none; }
.rd1 { transition-delay:.1s; } .rd2 { transition-delay:.2s; } .rd3 { transition-delay:.3s; }

@media(max-width:780px){
  .hero-content { grid-template-columns:1fr; padding-top:60px; }
  .hero-photo { display:none; }
  .hero-stats { grid-template-columns:repeat(2,1fr); }
  .about-grid,.exp-card,.edu-item { grid-template-columns:1fr; gap:24px; }
  .exp-card::before { display:none; }
  .skills-grid,.certs-grid { grid-template-columns:1fr; }
  .contact-inner { gap:16px; }
  .contact-item.avail { margin-left:0; }
  .cv-footer-inner { flex-direction:column; gap:12px; text-align:center; }
}

