:root {
  --ink: #18231f;
  --muted: #5f6d67;
  --paper: #f6f5f0;
  --surface: #ffffff;
  --line: #d9ddd8;
  --earth: #49634f;
  --earth-dark: #294234;
  --ochre: #9a7441;
  --blue: #315a69;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--paper); line-height:1.65; }
a { color:inherit; }
.container { width:min(var(--max), calc(100% - 40px)); margin:auto; }
header { position:sticky; top:0; z-index:20; background:rgba(246,245,240,.94); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.nav { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:9px; text-decoration:none; font-weight:800; letter-spacing:.1em; text-transform:uppercase; font-size:1.15rem; }
.brand-mark { display:inline-flex; width:30px; height:30px; color:var(--earth-dark); }
.brand-mark svg { width:100%; height:100%; }
nav { display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
nav a { text-decoration:none; font-size:.88rem; color:var(--muted); }
nav a:hover { color:var(--ink); }
.lang { border-left:1px solid var(--line); padding-left:18px; }
.hero { min-height:760px; display:grid; align-items:end; position:relative; background:linear-gradient(180deg,rgba(12,25,20,.05),rgba(12,25,20,.76)), url('../assets/images/Grant_George_Buffett_vertical_seismic_profile-Ribago_Quebec_2004.jpg') center/cover; color:white; }
.hero-inner { padding:120px 0 76px; max-width:900px; }
.eyebrow { text-transform:uppercase; letter-spacing:.15em; font-size:.75rem; font-weight:700; opacity:.82; }
h1 { font-size:clamp(3rem, 7vw, 6.3rem); line-height:.98; letter-spacing:-.045em; margin:18px 0 24px; max-width:950px; }
.hero p { font-size:clamp(1.05rem, 2vw, 1.35rem); max-width:760px; color:rgba(255,255,255,.9); }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }
.button { display:inline-block; padding:11px 17px; border:1px solid rgba(255,255,255,.45); text-decoration:none; font-size:.88rem; }
.button.primary { background:white; color:var(--ink); border-color:white; }
section { padding:105px 0; }
.section-head { display:grid; grid-template-columns: .8fr 1.7fr; gap:50px; margin-bottom:50px; }
.kicker { color:var(--earth); text-transform:uppercase; letter-spacing:.13em; font-size:.75rem; font-weight:750; }
h2 { font-size:clamp(2rem,4vw,3.7rem); line-height:1.05; letter-spacing:-.035em; margin:0; }
.lead { font-size:1.15rem; color:var(--muted); max-width:760px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.card { background:var(--surface); border:1px solid var(--line); padding:28px; }
.card h3 { margin:0 0 12px; font-size:1.15rem; }
.card p { color:var(--muted); margin:0; }
.card ul { margin:14px 0 0; padding-left:20px; color:var(--muted); }
.band { background:var(--earth-dark); color:white; }
.band .kicker { color:#cdb27d; }
.band .lead { color:rgba(255,255,255,.78); }
.timeline { position:relative; margin-top:30px; }
.timeline::before { content:""; position:absolute; left:112px; top:0; bottom:0; width:1px; background:var(--line); }
.t-row { display:grid; grid-template-columns:90px 1fr; gap:44px; padding:28px 0; position:relative; }
.t-row::before { content:""; position:absolute; left:107px; top:36px; width:11px; height:11px; background:var(--earth); border-radius:50%; border:4px solid var(--paper); }
.t-date { font-size:.82rem; color:var(--muted); text-align:right; padding-top:2px; }
.t-content h3 { margin:0 0 5px; }
.t-content p { margin:0; color:var(--muted); max-width:760px; }
.feature { display:grid; grid-template-columns:1.1fr .9fr; min-height:520px; background:var(--surface); border:1px solid var(--line); }
.feature img { width:100%; height:100%; object-fit:contain; background:var(--paper); min-height:420px; padding:16px; }
.feature-copy { padding:48px; align-self:center; }
.feature-copy h3 { font-size:2rem; line-height:1.08; margin:8px 0 16px; }
.feature-copy p { color:var(--muted); }
.gallery { display:grid; grid-template-columns:repeat(12,1fr); gap:12px; }
.gallery figure { margin:0; overflow:hidden; background:var(--surface); border:1px solid var(--line); }
.gallery figure:nth-child(1){grid-column:span 7}.gallery figure:nth-child(2){grid-column:span 5}.gallery figure:nth-child(3){grid-column:span 4}.gallery figure:nth-child(4){grid-column:span 8}.gallery figure:nth-child(5){grid-column:span 5}.gallery figure:nth-child(6){grid-column:span 7}.gallery figure:nth-child(8){grid-column:span 4}.gallery figure:nth-child(9){grid-column:span 4}.gallery figure:nth-child(10){grid-column:span 4}
.gallery img { display:block; width:100%; height:330px; object-fit:cover; }
.gallery figcaption { padding:12px 14px; font-size:.78rem; color:var(--muted); }
.publications { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.pub { display:block; break-inside:avoid; padding:22px; margin:0 0 18px; border:1px solid var(--line); background:var(--surface); text-decoration:none; transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.pub:hover { transform:translateY(-2px); border-color:var(--earth); box-shadow:0 8px 24px rgba(24,35,31,.08); }
.pub strong { display:block; font-size:.96rem; }
.pub span { color:var(--muted); font-size:.86rem; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.contact a { color:rgba(255,255,255,.9); text-decoration:underline; text-underline-offset:3px; }
.contact a:hover { color:#fff; }
footer { border-top:1px solid var(--line); padding:30px 0; color:var(--muted); font-size:.8rem; }
.small { font-size:.85rem; color:var(--muted); }
.note { border-left:3px solid var(--ochre); padding-left:18px; color:var(--muted); }
@media (max-width:800px){
  nav a:nth-child(-n+5){display:none}
  .section-head,.feature,.contact,.grid-2,.grid-3,.publications{grid-template-columns:1fr}
  .hero{min-height:680px}
  .timeline::before{left:8px}.t-row{grid-template-columns:1fr;padding-left:32px}.t-date{text-align:left}.t-row::before{left:3px}
  .gallery figure,.gallery figure:nth-child(n){grid-column:span 12}.gallery img{height:260px}
}

/* Workflow arrows */
#about + .band .grid-3 { position:relative; }
#about + .band .grid-3 .card { position:relative; }
#about + .band .grid-3 .card:not(:last-child)::after {
  content:"→";
  position:absolute;
  right:-30px;
  top:50%;
  transform:translateY(-50%);
  color:#cdb27d;
  font-size:2.1rem;
  font-weight:300;
  z-index:2;
}
.project-divider {
  margin:44px 0 22px;
  padding-top:24px;
  border-top:1px solid var(--line);
  color:var(--earth);
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.75rem;
  font-weight:750;
}
.live-data { display:block; margin-top:18px; text-decoration:none; }
.live-data img { display:block; width:100%; height:auto; border:1px solid var(--line); }
.live-data span { display:block; margin-top:10px; color:var(--earth-dark); font-size:.88rem; font-weight:650; }
.astro-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:18px; }
.astro-grid figure { margin:0; background:var(--surface); border:1px solid var(--line); overflow:hidden; }
.astro-grid img { display:block; width:100%; aspect-ratio:1 / 1; object-fit:cover; }
.astro-grid figcaption { padding:9px 11px; font-size:.74rem; color:var(--muted); }
.astronomy-equipment { display:block; width:100%; margin-top:18px; aspect-ratio:16 / 9; object-fit:cover; border:1px solid var(--line); }
.workflow-graphic { width:100%; background:var(--earth-dark); overflow:hidden; }
.workflow-graphic img { display:block; width:100%; height:auto; }

@media (max-width:800px){
  #about + .band .grid-3 .card:not(:last-child)::after { content:"↓"; right:auto; left:50%; top:auto; bottom:-30px; transform:translateX(-50%); }
  .astro-grid { grid-template-columns:repeat(2,1fr); }
  .workflow-graphic { margin-top:10px; }
}

/* Expertise icons */
.expertise-card { padding-top:22px; }
.expertise-icon { height:92px; display:flex; align-items:center; margin-bottom:18px; }
.expertise-icon img { display:block; width:100%; max-width:250px; height:80px; object-fit:contain; object-position:left center; }

/* Photographic CV: final three images form a clean bottom row */
.gallery figure:nth-child(7){grid-column:span 4}
.gallery figure:nth-child(8){grid-column:span 4}
.gallery figure:nth-child(9){grid-column:span 4}

/* The workflow artwork already includes its intended dark surround; crop away the original white bands. */
.workflow-graphic { line-height:0; }
