@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --ink:#14171A;
  --paper:#EDEEE9;
  --paper2:#E2E4DD;
  --steel:#4B5563;
  --steel-light:#8B9199;
  --red:#C6362A;
  --red-dark:#9E2A20;
  --line:#C9CCC6;
  --white:#FAFAF7;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight:400; line-height:1.5;}
.display{font-family:'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight:900; letter-spacing:-0.01em; text-transform:uppercase;}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.04em;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.logo-link{display:inline-block;}
.logo-img{height:48px; width:auto; display:block;}
.hero-media{width:100%; aspect-ratio:4/3; object-fit:cover; border:2px solid var(--ink);}
.hero-media.wide{aspect-ratio:16/7;}
.hero-with-media{display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:center;}
.photo-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--ink); margin-top:6px;}
.photo-strip img{width:100%; height:220px; object-fit:cover; display:block;}
.img-card img{width:100%; height:190px; object-fit:cover; display:block; border-bottom:1px solid var(--line);}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--ink);}
.gallery-grid img{width:100%; height:220px; object-fit:cover; display:block;}
.banner-full{width:100%; height:420px; object-fit:cover; border-bottom:2px solid var(--ink); display:block;}
.gallery-filmstrip-wrap{position:relative;}
.gallery-filmstrip{display:flex; gap:2px; overflow-x:auto; background:var(--ink); scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; cursor:grab; scrollbar-width:none;}
.gallery-filmstrip.dragging{cursor:grabbing; scroll-snap-type:none;}
.gallery-filmstrip::-webkit-scrollbar{display:none;}
.gallery-filmstrip img{flex:0 0 auto; width:calc(33.333% - 2px); height:460px; object-fit:contain; background:var(--white); scroll-snap-align:start; display:block; user-select:none; -webkit-user-drag:none;}
.filmstrip-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:44px; height:44px; border-radius:50%; background:var(--white); border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700; cursor:pointer;}
.filmstrip-arrow:hover{background:var(--red); color:var(--white); border-color:var(--red);}
.filmstrip-arrow.prev{left:12px;}
.filmstrip-arrow.next{right:12px;}
@media (max-width:860px){
  .gallery-filmstrip img{width:78%; height:260px;}
  .filmstrip-arrow{display:none;}
}
.banner-wrap{position:relative;}
.banner-wrap .banner-full{border-bottom:none;}
.header-overlay{position:absolute; top:0; left:0; right:0; background:linear-gradient(to bottom, rgba(20,23,26,0.65) 0%, rgba(20,23,26,0.25) 60%, rgba(20,23,26,0) 100%); border-bottom:none;}
.header-overlay .logo{color:var(--white);}
.header-overlay .logo span{color:var(--red);}
.header-overlay .navlinks a{color:var(--white);}
.header-overlay .navlinks a:hover{color:var(--red);}
.header-overlay .cta-mini{background:var(--white); color:var(--ink);}
.header-overlay .cta-mini:hover{background:var(--red); color:var(--white);}
.hero-photo{position:relative; min-height:600px; display:flex; align-items:flex-end; overflow:hidden;}
.hero-photo .hero-photo-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; display:block;}
.hero-photo-content{position:relative; z-index:2; color:var(--white); padding:40px 0 52px; width:100%;}
.breadcrumb{font-size:12px; color:rgba(250,250,247,0.65); margin-bottom:18px; font-family:'IBM Plex Mono', monospace; letter-spacing:0.03em;}
.breadcrumb a{color:rgba(250,250,247,0.9);}
.breadcrumb a:hover{color:var(--white); text-decoration:underline;}
.hero-photo h1{color:var(--white);}
.hero-photo .lede{color:rgba(250,250,247,0.88);}
.hero-photo .tags-row .tag{border-color:rgba(255,255,255,0.6); background:rgba(20,23,26,0.35); color:var(--white);}
.hero-photo .tags-row .tag.rei{background:var(--red); border-color:var(--red); color:var(--white);}
.hero-photo .btn-ghost{border-color:var(--white); color:var(--white);}
.hero-photo .btn-ghost:hover{background:var(--white); color:var(--ink);}
.tech-table{width:100%; border-collapse:collapse; border:1px solid var(--line); background:var(--white); font-size:14px;}
.tech-table th{background:var(--ink); color:var(--white); font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:600; letter-spacing:0.04em; text-align:left; padding:10px 16px;}
.tech-table th:not(:first-child){color:var(--red);}
.tech-table td{padding:10px 16px; border-bottom:1px solid var(--line); color:var(--steel);}
.tech-table td:first-child{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em; color:var(--steel);}
.tech-table td:not(:first-child){color:var(--ink); font-weight:600;}
.tech-table tr.tt-section td{background:var(--paper2); font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:600; letter-spacing:0.04em; color:var(--steel); text-transform:uppercase;}
.blurb-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.blurb-card .blurb-eyebrow{color:var(--red); font-size:12px; font-weight:600; margin-bottom:8px;}
.blurb-card h4{font-size:20px; margin-bottom:8px;}
.blurb-card p{font-size:14px; color:var(--steel);}
@media (max-width:860px){
  .blurb-grid{grid-template-columns:1fr;}
  .tech-table{display:block; overflow-x:auto;}
}
@media (max-width:860px){
  .hero-photo{min-height:460px;}
  .hero-photo-content{padding-top:30px;}
  .hero-with-media{grid-template-columns:1fr;}
  .photo-strip{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid .g-wide{grid-column:span 2;}
  .banner-full{height:220px;}
}

header{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:2px solid var(--ink);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1180px; margin:0 auto; gap:20px;}
.logo{font-size:26px; letter-spacing:-0.01em; white-space:nowrap;}
.logo span{color:var(--red);}
.navlinks{display:flex; gap:22px; font-size:15px; font-weight:600; flex-wrap:wrap;}
.navlinks a:hover{color:var(--red);}
.cta-mini{background:var(--ink); color:var(--white); font-size:13px; font-weight:600; padding:10px 18px; border-radius:2px; white-space:nowrap;}
.cta-mini:hover{background:var(--red);}

.pagehead{padding:56px 0 40px; border-bottom:2px solid var(--ink);}
.eyebrow{font-size:12px; font-weight:600; color:var(--red); margin-bottom:14px; display:flex; align-items:center; gap:8px;}
.eyebrow::before{content:''; width:20px; height:2px; background:var(--red); display:inline-block;}
h1{font-size:clamp(34px,4.6vw,58px); line-height:0.98; margin-bottom:18px;}
.lede{font-size:17px; font-weight:400; color:var(--steel); max-width:60ch; margin-bottom:24px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{background:var(--red); color:var(--white); font-weight:600; font-size:14px; padding:14px 24px; border-radius:2px; display:inline-block;}
.btn-primary:hover{background:var(--red-dark);}
.btn-ghost{border:2px solid var(--ink); font-weight:600; font-size:14px; padding:12px 22px; border-radius:2px; display:inline-block;}
.btn-ghost:hover{background:var(--ink); color:var(--white);}

section{padding:56px 0; border-bottom:2px solid var(--ink);}
section:last-of-type{border-bottom:none;}
.section-label{font-size:12px; font-weight:600; color:var(--steel); margin-bottom:24px;}

.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--ink);}
.card{background:var(--paper); padding:36px; display:flex; flex-direction:column; justify-content:space-between; min-height:220px;}
.card:hover{background:var(--white);}
.card h3{font-size:clamp(26px,3.4vw,38px); margin-bottom:10px; line-height:1.02;}
.card h3.tight{font-size:clamp(22px,2.7vw,30px); line-height:1.05;}
.card h3 a{color:var(--ink); text-decoration:none;}
.card h3 a:hover{color:var(--red);}
.card p{color:var(--steel); font-size:14px; max-width:40ch; margin-bottom:16px;}
.card .go{font-size:13px; font-weight:600; color:var(--red); display:inline-flex; align-items:center; gap:6px;}
.card .go::after{content:'→'; transition:transform .15s;}
.card:hover .go::after{transform:translateX(4px);}

.grid-lines{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.line-card{border:1px solid var(--line); background:var(--white); padding:20px 16px; display:flex; flex-direction:column; gap:10px;}
.line-card .lc-top{font-size:10px; font-weight:600; color:var(--steel); display:flex; justify-content:space-between;}
.line-card h4{font-size:20px;}
.line-card h4 a{color:var(--ink); text-decoration:none;}
.line-card h4 a:hover{color:var(--red);}
.lc-tag:hover{opacity:0.85;}
.lc-tag{font-size:10px; font-weight:600; width:fit-content; padding:3px 6px; border:1px solid var(--ink);}
.lc-tag.fire{background:var(--red); color:var(--white); border-color:var(--red);}
.lc-tag.multi{background:var(--steel-light); color:var(--white); border-color:var(--steel-light);}

.specs{border:1px solid var(--line); background:var(--white);}
.specs .spec-row{display:grid; grid-template-columns:220px 1fr; border-bottom:1px solid var(--line); padding:14px 20px;}
.specs .spec-row:last-child{border-bottom:none;}
.specs .spec-label{font-size:11px; font-weight:600; color:var(--steel);}
.specs .spec-val{font-size:14px;}

.tag{font-size:11px; font-weight:600; border:1px solid var(--ink); padding:4px 8px; display:inline-block;}
.tag.rei{background:var(--red); color:var(--white); border-color:var(--red);}
.tags-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;}

.trust{padding:26px 0; border-bottom:2px solid var(--ink); background:var(--ink); color:var(--white);}
.trust-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:12px; font-weight:600;}
.trust-row span{color:var(--steel-light);}

footer{padding:44px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:36px;}
.foot-col h5{font-size:12px; font-weight:600; color:var(--steel); margin-bottom:12px;}
.foot-col a{display:block; font-size:14px; margin-bottom:8px;}
.foot-col a:hover{color:var(--red);}
.foot-bottom{border-top:1px solid var(--line); padding-top:18px; font-size:12px; color:var(--steel); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}

@media (max-width:860px){
  .grid-2{grid-template-columns:1fr;}
  .grid-lines{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .navlinks{display:none;}
  .specs .spec-row{grid-template-columns:1fr;}
}
