:root{
  --ink-900:#0c0e12; --ink-700:#2a2d34; --ink-600:#474b54; --ink-500:#6b6f78;
  --ink-400:#989da6; --ink-300:#c4c8cf; --ink-200:#e2e4e8; --ink-100:#eef0f2; --ink-050:#f6f7f8;
  --paper:#fbfbfa; --paper-2:#ffffff;
  --blue-700:#1c3fb0; --blue-600:#2552d6; --blue-500:#2f63ff; --blue-400:#6e92ff; --blue-100:#e7edff; --blue-050:#f2f5ff;
  --sans:'Space Grotesk',ui-sans-serif,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink-700); font-family:var(--sans); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;}
h1,h2,h3{margin:0; color:var(--ink-900); font-weight:600; letter-spacing:-0.02em; line-height:1.2;}
p{margin:0;}
a{color:var(--blue-600); text-decoration:none;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-500);}
.eyebrow .num{color:var(--blue-500);}
.eyebrow .rule{width:18px; height:1px; background:var(--ink-200);}

/* Header */
header{position:sticky; top:0; z-index:50; background:rgba(251,251,250,0.82); backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--ink-200);}
.nav{height:68px; display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:11px;}
.mark{width:34px; height:34px; border:1.5px solid var(--ink-900); border-radius:4px; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-weight:700; font-size:14px; color:var(--ink-900); letter-spacing:-0.02em;}
.brand .word{font-weight:600; font-size:17px; letter-spacing:-0.02em; color:var(--ink-900);}
.brand .word span{color:var(--blue-500);}
.menu{display:flex; align-items:center; gap:4px;}
.menu a{font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-500); padding:8px 12px; font-weight:500; transition:color .12s;}
.menu a:hover{color:var(--ink-900);}
.menu a.btn-primary{color:#fff;}
.menu a.btn-primary:hover{color:#fff;}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--sans); font-weight:500; line-height:1; border-radius:4px; cursor:pointer; transition:background .12s,color .12s,transform .12s,border-color .12s; white-space:nowrap; border:1.5px solid transparent; text-decoration:none;}
.btn-sm{height:36px; padding:0 14px; font-size:14px;}
.btn-lg{height:52px; padding:0 28px; font-size:18px;}
.btn-primary{background:var(--blue-500); color:#fff; border-color:var(--blue-500);}
.btn-primary:hover{background:var(--blue-600); border-color:var(--blue-600); color:#fff;}
.btn-primary:active{background:var(--blue-700); transform:translateY(1px);}

/* Tags */
.tag{display:inline-flex; align-items:center; font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:0.04em; color:var(--ink-700); background:var(--ink-050); border:1px solid var(--ink-200); border-radius:999px; padding:4px 10px; line-height:1.2;}
.tag.accent{color:var(--blue-500); background:var(--blue-100); border-color:transparent;}

/* Hero */
.hero{padding:96px 0 64px;}
.hero .row{display:grid; grid-template-columns:1.25fr 0.75fr; gap:56px; align-items:center;}
.hero h1{font-size:clamp(38px,5.5vw,68px); font-weight:600; letter-spacing:-0.03em; line-height:1.03; margin:22px 0 0; max-width:15ch;}
.hero .lead{font-size:18px; color:var(--ink-500); max-width:48ch; margin-top:24px;}
.hero .cta{display:flex; gap:12px; margin-top:32px; flex-wrap:wrap;}
.hero .tags{display:flex; gap:8px; margin-top:36px; flex-wrap:wrap;}
.hero .photo{position:relative;}
.hero .photo img{width:100%; height:auto; display:block; border-radius:6px; border:1px solid var(--ink-200); filter:grayscale(1); background:var(--ink-050);}
.hero .photo .cap{position:absolute; left:14px; bottom:14px; font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#fff; background:rgba(12,14,18,0.66); backdrop-filter:blur(4px); padding:5px 10px; border-radius:4px;}

/* Specialties */
.specialties{border-top:1px solid var(--ink-200); background:var(--paper-2);}
.specialties .inner{padding:64px 0;}
.grid{display:grid; grid-template-columns:repeat(3,1fr); margin-top:28px; border-left:1px solid var(--ink-200); border-top:1px solid var(--ink-200);}
.cell{border-right:1px solid var(--ink-200); border-bottom:1px solid var(--ink-200); padding:24px; min-height:150px;}
.cell .n{font-family:var(--mono); font-size:12px; color:var(--ink-400);}
.cell h3{font-size:24px; font-weight:600; margin:10px 0 8px;}
.cell p{color:var(--ink-500); font-size:14px;}
.cell.focus{background:var(--blue-050); box-shadow:inset 2px 0 0 var(--blue-500);}
.cell.focus .n{color:var(--blue-500);}
.cell.focus p{color:var(--ink-600);}
.focus-row{display:flex; align-items:center; justify-content:space-between;}
.focus-badge{font-family:var(--mono); font-size:10px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--blue-700); background:var(--blue-100); border-radius:999px; padding:3px 9px;}

/* Values */
.values{background:var(--ink-900); color:var(--paper);}
.values .inner{padding:96px 0;}
.values .label{font-family:var(--mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--blue-400);}
.values .cols{display:grid; grid-template-columns:1.2fr 1fr; gap:64px; margin-top:32px; align-items:start;}
.values .body{font-size:18px; line-height:1.7; color:var(--ink-200); max-width:52ch;}
.values .quote{font-size:clamp(24px,3vw,34px); font-weight:600; letter-spacing:-0.02em; line-height:1.25; color:var(--paper);}
.values .quote span{color:var(--blue-400);}

/* Footer */
footer{border-top:1px solid var(--ink-200); margin-top:128px;}
footer .inner{padding:96px 0 48px;}
.foot-label{font-family:var(--mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-500); margin-bottom:14px;}
.foot-top{display:flex; flex-wrap:wrap; gap:32px; justify-content:space-between; align-items:flex-end;}
.foot-top h2{font-size:clamp(28px,4vw,44px); font-weight:600; letter-spacing:-0.02em; max-width:16ch; line-height:1.1;}
.foot-mail{font-family:var(--mono); font-size:clamp(15px,1.6vw,18px); color:var(--ink-900); border-bottom:1.5px solid var(--blue-500); padding-bottom:4px;}
.foot-rule{border:0; border-top:1px solid var(--ink-200); margin:64px 0 24px;}
.foot-meta{display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:center; font-family:var(--mono); font-size:12px; color:var(--ink-500);}
.foot-links{display:flex; align-items:center; gap:20px;}
.foot-meta a{color:var(--ink-500); transition:color .12s;}
.foot-meta a:hover{color:var(--ink-900);}
.social{display:inline-flex; align-items:center; gap:7px;}
.social svg{width:15px; height:15px; flex:none;}
.social:hover{color:var(--blue-600);}
.icon-link{display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid var(--ink-200); border-radius:4px; color:var(--ink-600); transition:color .12s,border-color .12s,background .12s;}
.icon-link svg{width:17px; height:17px;}
.icon-link:hover{color:var(--blue-600); border-color:var(--blue-400); background:var(--blue-050);}
.icon-link.lg{width:52px; height:52px; border-radius:4px;}
.icon-link.lg svg{width:20px; height:20px;}

/* Legal / prose pages */
.legal{padding:72px 0 24px; max-width:760px;}
.legal .back{font-family:var(--mono); font-size:12px; letter-spacing:0.06em; color:var(--ink-500); display:inline-block; margin-bottom:28px;}
.legal .back:hover{color:var(--ink-900);}
.legal h1{font-size:clamp(34px,5vw,52px); font-weight:600; letter-spacing:-0.03em; line-height:1.05;}
.legal .lede{font-family:var(--mono); font-size:12px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-500); margin-top:18px;}
.legal h2{font-size:22px; font-weight:600; margin:48px 0 0;}
.legal h3{font-size:16px; font-weight:600; margin:28px 0 0; color:var(--ink-900);}
.legal p{color:var(--ink-600); margin-top:12px; line-height:1.7;}
.legal .addr{font-family:var(--mono); font-size:14px; color:var(--ink-800); line-height:1.8; margin-top:20px; padding:20px 22px; background:var(--paper-2); border:1px solid var(--ink-200); border-radius:6px; border-left:2px solid var(--blue-500);}
.legal .addr strong{color:var(--ink-900); font-weight:700;}
.legal a{color:var(--blue-600);}
.legal .fine{font-size:14px; color:var(--ink-500); line-height:1.7;}

@media (max-width:860px){
  .hero{padding:56px 0 48px;}
  .grid{grid-template-columns:repeat(2,1fr);}
  .values .cols{grid-template-columns:1fr; gap:32px;}
  .values .inner{padding:64px 0;}
  .hero .row{grid-template-columns:1fr; gap:36px;}
  .hero .photo{max-width:360px;}
  footer{margin-top:80px;}
  footer .inner{padding:64px 0 40px;}
}
@media (max-width:560px){
  .grid{grid-template-columns:1fr;}
  .wrap{padding:0 20px;}
  .menu a:not(.btn):not(.icon-link){display:none;}
  .hero h1{font-size:clamp(30px,8vw,40px); max-width:none;}
  .hero .photo{max-width:none;}
  .btn-sm{height:40px;}
  .foot-top{gap:20px;}
  .legal{padding:48px 0 16px;}
}
