@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ink: #0B1F3B;
  --paper: #FFFFFF;
  --steel: #E9EBEE;
  --rust: #C0392B;
  --slate: #6B7280;
  --line: rgba(11,31,59,0.16);
  --line-light: rgba(255,255,255,0.24);
  --serif: 'Source Serif 4', Georgia, serif;
  --sans: 'IBM Plex Sans', -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit; text-decoration:none;}

img{max-width:100%; display:block;}

.wrap{
  max-width:1120px;
  margin:0 auto;
  padding:0 32px;
}

/* Masthead */
.masthead{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:50;
}
.masthead .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:20px;
  padding-bottom:20px;
}
.masthead-mark{
  display:flex;
  align-items:center;
}
.masthead-logo{
  height:44px;
  width:auto;
  display:block;
}
.masthead-nav{
  display:flex;
  gap:36px;
  font-size:14.5px;
}
.masthead-nav a{
  position:relative;
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .15s ease;
}
.masthead-nav a:hover, .masthead-nav a.active{
  border-color:var(--ink);
}
.masthead-cta{
  font-family:var(--mono);
  font-size:12.5px;
  border:1px solid var(--ink);
  padding:8px 14px;
  transition:background .15s ease, color .15s ease;
}
.masthead-cta:hover{
  background:var(--ink);
  color:var(--paper);
}

/* Flight strip divider - used between sections, carries metadata */
.strip{
  display:flex;
  align-items:center;
  gap:16px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--slate);
  padding:14px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.strip .strip-label{
  color:var(--ink);
  font-weight:500;
}
.strip .strip-fill{
  flex:1;
  height:1px;
  background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 12px);
}

/* Hero */
.hero{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden;
}
.hero-inner{
  padding:120px 32px 96px;
  max-width:1120px;
  margin:0 auto;
  position:relative;
}
.hero-eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--rust);
  margin-bottom:24px;
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-eyebrow::before{
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--rust);
  display:inline-block;
}
.hero h1{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(44px, 7vw, 84px);
  line-height:1.02;
  max-width:820px;
  letter-spacing:-0.01em;
}
.hero p{
  font-size:18px;
  color:var(--line-light);
  max-width:520px;
  margin-top:28px;
  line-height:1.6;
}
.hero-actions{
  display:flex;
  gap:16px;
  margin-top:44px;
}
.btn{
  font-family:var(--sans);
  font-size:14.5px;
  font-weight:500;
  padding:13px 24px;
  border:1px solid var(--paper);
  display:inline-block;
}
.btn-solid{
  background:var(--paper);
  color:var(--ink);
}
.btn-solid:hover{
  background:var(--rust);
  border-color:var(--rust);
  color:var(--paper);
}
.btn-outline{
  color:var(--paper);
}
.btn-outline:hover{
  background:rgba(236,234,226,0.1);
}

/* Sections */
section{
  padding:80px 0;
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:48px;
  gap:24px;
}
.section-head h2{
  font-family:var(--serif);
  font-weight:600;
  font-size:36px;
  letter-spacing:-0.01em;
}
.section-head .section-note{
  font-size:15px;
  color:var(--slate);
  max-width:320px;
  text-align:right;
}

/* Story list - flight strip rows, not cards */
.story-row{
  display:grid;
  grid-template-columns:120px 1fr auto;
  gap:24px;
  align-items:baseline;
  padding:26px 0;
  border-bottom:1px solid var(--line);
  transition:padding-left .15s ease;
}
.story-row:first-child{
  border-top:1px solid var(--line);
}
.story-row:hover{
  padding-left:8px;
}
.story-date{
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--slate);
}
.story-title{
  font-family:var(--serif);
  font-size:23px;
  font-weight:500;
  line-height:1.3;
}
.story-dek{
  font-size:14.5px;
  color:var(--slate);
  margin-top:6px;
  max-width:560px;
}
.story-tag{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--rust);
  white-space:nowrap;
  align-self:start;
  padding-top:4px;
}

/* Photo grid */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:8px;
}
.photo-grid .ph{
  background:var(--steel);
  aspect-ratio:4/5;
  display:flex;
  align-items:flex-end;
  padding:12px;
  font-family:var(--mono);
  font-size:11px;
  color:var(--slate);
  overflow:hidden;
  position:relative;
}
.photo-grid .ph img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.photo-grid .ph:nth-child(1){grid-column:span 3; aspect-ratio:16/10;}
.photo-grid .ph:nth-child(2){grid-column:span 3; aspect-ratio:16/10;}
.photo-grid .ph:nth-child(3){grid-column:span 2;}
.photo-grid .ph:nth-child(4){grid-column:span 2;}
.photo-grid .ph:nth-child(5){grid-column:span 2;}

/* Values - divided list, not icon cards */
.values-list{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.value-item{
  padding:32px 28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.value-item .value-num{
  font-family:var(--mono);
  font-size:12px;
  color:var(--rust);
  display:block;
  margin-bottom:14px;
}
.value-item h3{
  font-family:var(--serif);
  font-size:20px;
  font-weight:600;
  margin-bottom:10px;
}
.value-item p{
  font-size:14.5px;
  color:var(--slate);
  line-height:1.55;
}

/* About split */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
}
.split-text h2{
  font-family:var(--serif);
  font-size:34px;
  font-weight:600;
  line-height:1.25;
  margin-bottom:20px;
}
.split-text p{
  font-size:16px;
  color:var(--ink);
  opacity:0.82;
  line-height:1.65;
  margin-bottom:16px;
  max-width:460px;
}
.split-photo{
  background:var(--steel);
  aspect-ratio:4/5;
  display:flex;
  align-items:flex-end;
  padding:16px;
  font-family:var(--mono);
  font-size:11px;
  color:var(--slate);
  overflow:hidden;
  position:relative;
}
.split-photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Footer */
footer{
  background:var(--ink);
  color:var(--paper);
  padding:64px 0 32px;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding-bottom:40px;
  border-bottom:1px solid var(--line-light);
  gap:40px;
  flex-wrap:wrap;
}
.footer-mark{
  font-family:var(--serif);
  font-size:24px;
  font-weight:600;
}
.footer-mark span{color:var(--rust);}
.footer-tagline{
  font-size:14px;
  color:var(--line-light);
  max-width:280px;
  margin-top:10px;
}
.footer-links{
  display:flex;
  gap:56px;
}
.footer-col h4{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--rust);
  margin-bottom:14px;
  font-weight:500;
}
.footer-col a{
  display:block;
  font-size:14.5px;
  color:var(--line-light);
  margin-bottom:10px;
}
.footer-col a:hover{color:var(--paper);}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  padding-top:24px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--slate);
}

/* Contact form */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:8px;
}
.form-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.form-field.full{grid-column:1/-1;}
.form-field label{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--slate);
}
.form-field input, .form-field textarea{
  font-family:var(--sans);
  font-size:15px;
  padding:12px 14px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
}
.form-field textarea{resize:vertical; min-height:120px;}
.form-field input:focus, .form-field textarea:focus{
  outline:none;
  border-color:var(--rust);
}
.submit-btn{
  font-family:var(--sans);
  font-size:14.5px;
  font-weight:500;
  padding:14px 28px;
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--ink);
  margin-top:24px;
  cursor:pointer;
}
.submit-btn:hover{background:var(--rust); border-color:var(--rust);}

.contact-info{
  display:flex;
  flex-direction:column;
  gap:28px;
}
.contact-info .ci-item h4{
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--rust);
  margin-bottom:8px;
}
.contact-info .ci-item p, .contact-info .ci-item a{
  font-size:15.5px;
}

/* Print-report article layout - mirrors the PDF report masthead */
.print-article{
  max-width:760px;
  margin:0 auto;
  padding:64px 32px 100px;
}
.print-masthead{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding-bottom:24px;
  border-bottom:2px solid var(--ink);
  margin-bottom:40px;
}
.print-masthead-brand{
  font-family:var(--sans);
  font-size:15px;
  font-weight:600;
  letter-spacing:0.02em;
}
.print-masthead-tagline{
  font-family:var(--serif);
  font-style:italic;
  font-size:13px;
  color:var(--slate);
  margin-top:4px;
}
.print-masthead-meta{
  text-align:right;
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--slate);
}
.print-masthead-meta .print-byline{
  margin-top:4px;
  color:var(--ink);
  font-family:var(--sans);
  font-size:13.5px;
}
.print-tag{
  display:inline-block;
  font-family:var(--mono);
  font-size:11.5px;
  color:var(--rust);
  margin-bottom:16px;
}
.print-headline{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(32px, 4.5vw, 46px);
  line-height:1.12;
  letter-spacing:-0.01em;
  margin-bottom:36px;
}
.print-body{
  font-family:var(--serif);
  font-size:18px;
  line-height:1.8;
  color:var(--ink);
}
.print-body p{
  margin-bottom:22px;
  text-align:justify;
}
.print-body blockquote{
  margin:28px 0;
  padding:4px 0 4px 22px;
  border-left:3px solid var(--rust);
  font-style:italic;
  color:var(--slate);
}
.print-body blockquote p{
  text-align:left;
  margin-bottom:0;
}
.print-footer-bar{
  height:4px;
  background:var(--ink);
  margin-top:56px;
  margin-bottom:20px;
}
.print-copyright{
  text-align:center;
  font-family:var(--mono);
  font-size:11px;
  color:var(--slate);
  letter-spacing:0.02em;
}
.print-back{
  display:block;
  text-align:center;
  margin-top:28px;
  font-family:var(--sans);
  font-size:14px;
}
.print-back:hover{color:var(--rust);}

@media (max-width: 600px){
  .print-masthead{flex-direction:column; gap:16px;}
  .print-masthead-meta{text-align:left;}
  .print-body p{text-align:left;}
}

/* Page hero (for non-home pages) */
.page-hero{
  background:var(--ink);
  color:var(--paper);
  padding:100px 32px 72px;
}
.page-hero .wrap{padding:0;}
.page-hero .hero-eyebrow{margin-bottom:20px;}
.page-hero h1{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(38px, 6vw, 60px);
  letter-spacing:-0.01em;
  max-width:720px;
}
.page-hero p{
  font-size:17px;
  color:var(--line-light);
  max-width:520px;
  margin-top:20px;
}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--rust);
  outline-offset:2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

/* Responsive */
@media (max-width: 860px){
  .masthead-nav{display:none;}
  .split, .form-grid{grid-template-columns:1fr;}
  .values-list{grid-template-columns:repeat(2,1fr);}
  .photo-grid{grid-template-columns:repeat(2,1fr);}
  .photo-grid .ph:nth-child(1),
  .photo-grid .ph:nth-child(2){grid-column:span 2;}
  .story-row{grid-template-columns:1fr; gap:6px;}
  .story-tag{justify-self:start;}
  .footer-top{flex-direction:column; gap:24px;}
  .footer-links{gap:36px;}
  .section-head{flex-direction:column; align-items:flex-start;}
  .section-head .section-note{text-align:left;}
}
