:root{--ink:#0A1F3D;--ink-2:#122A4E;--teal:#0F6E68;--teal-hover:#0B4F4A;--teal-tint:#E4F1EF;--paper:#FBFAF6;--panel:#F1F3F7;--line:#D6DAE3;--muted:#4E5872;--white:#FFFFFF}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Inter",system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
ul,ol{list-style:none}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--ink)}
a:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
h1,h2,h3{font-family:"Source Serif 4",Georgia,serif;color:var(--ink);font-weight:600;line-height:1.2;letter-spacing:-0.01em}
.eyebrow{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal);font-weight:600}
.container{width:100%;max-width:1120px;margin:0 auto;padding:0 32px}
.container-narrow{max-width:760px;margin:0 auto;padding:0 32px}

/* Header */
.site-brand{height:3px;background:linear-gradient(90deg,var(--teal) 0%,var(--teal) 60%,var(--ink) 60%,var(--ink) 100%)}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px}
.site-logo{font-family:"Source Serif 4",serif;font-size:22px;font-weight:600;color:var(--ink);white-space:nowrap;letter-spacing:-0.01em}
.site-logo span{color:var(--teal)}
.site-logo:hover{color:var(--ink)}
.nav-toggle{display:none;padding:8px;color:var(--ink)}
.nav-toggle svg{width:24px;height:24px;display:block}
.site-nav ul{display:flex;gap:28px;align-items:center}
.site-nav a{font-size:15px;font-weight:500;color:var(--muted);padding:6px 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:var(--ink)}
.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--teal)}
.site-nav .btn{padding:10px 18px;color:#FFFFFF !important;border:none;border-bottom:none}
.site-nav .btn[aria-current="page"]{border-bottom:none}

/* Buttons */
.btn{display:inline-block;font-weight:600;font-size:15px;padding:14px 22px;border-radius:4px;transition:background .15s,color .15s;border:none;text-align:center}
.btn--primary{background:var(--ink);color:#FFFFFF}
.btn--primary:hover{background:var(--teal);color:#FFFFFF}
.btn--secondary{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn--secondary:hover{background:var(--ink);color:#FFFFFF}
.btn--teal{background:var(--teal);color:#FFFFFF}
.btn--teal:hover{background:var(--teal-hover);color:#FFFFFF}

/* Sections */
section{padding:72px 0}
.section--alt{background:var(--panel)}
.section--ink{background:var(--ink);color:#FFFFFF}
.section--ink h1,.section--ink h2,.section--ink h3{color:#FFFFFF}
.section--ink .eyebrow{color:#7FD6CE}

/* Hero */
.hero{padding:72px 0 40px;position:relative;overflow:hidden}
.hero-glow{position:absolute;top:-80px;right:-160px;width:620px;height:620px;background:radial-gradient(closest-side,rgba(15,110,104,0.10),transparent 70%);pointer-events:none}
.hero h1{font-size:clamp(36px,5.5vw,56px);line-height:1.08;letter-spacing:-0.02em;margin-top:14px;max-width:960px}
.hero .subhead{max-width:720px;margin-top:22px;font-size:19px;line-height:1.6;color:var(--muted)}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

.hero-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.hero-stats .num{font-family:"Source Serif 4",serif;font-size:28px;font-weight:600;color:var(--ink);line-height:1}
.hero-stats .lab{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.4}

.client-strip{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.client-strip-title{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.client-strip ul{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:14px}
.client-strip li{font-size:13px;color:var(--ink);background:var(--white);border:1px solid var(--line);padding:6px 12px;border-radius:999px;font-weight:500}

/* Section: services top */
.services{padding:48px 0 88px}
.services-header{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:28px}
.services-header h2{font-size:40px;line-height:1.1;letter-spacing:-0.02em;margin-top:12px;max-width:720px}
.services-header p{max-width:360px;color:var(--muted);font-size:15px;line-height:1.6}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service-card{display:block;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:32px;color:var(--ink)}
.service-card:hover{border-color:var(--teal);color:var(--ink)}
.service-card .eyebrow-row{display:flex;align-items:center;gap:10px}
.service-card .dot{width:8px;height:8px;background:var(--teal);border-radius:50%}
.service-card h3{font-size:24px;line-height:1.2;margin-top:14px}
.service-card p{color:var(--muted);font-size:15px;margin-top:12px;line-height:1.65}
.service-card ul{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px}
.service-card li{font-size:12px;color:var(--ink);background:var(--teal-tint);padding:4px 10px;border-radius:999px;font-weight:500}
.service-card .more{margin-top:22px;color:var(--teal);font-weight:600;font-size:14px}

/* Why panel */
.why{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start}
.why h2{font-size:34px;margin-top:12px;line-height:1.15}
.why-body{font-size:17px;line-height:1.7}
.why-body p{margin-bottom:14px}
.why-body p:last-child{color:var(--muted);margin-bottom:0}
.proof-grid{margin:40px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.proof-item{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:28px}
.proof-item .big{font-family:"Source Serif 4",serif;font-size:36px;color:var(--teal);line-height:1;font-weight:600}
.proof-item h3{font-size:17px;font-family:"Inter",sans-serif;margin-top:12px}
.proof-item p{color:var(--muted);font-size:15px;margin-top:8px;line-height:1.6}

/* Track record (home) */
.track-cta{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.track-cta p{color:#C7CFDD;font-size:17px;line-height:1.7;margin-top:16px}
.track-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.track-tiles li{padding:16px 18px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.10);border-radius:6px}
.track-tiles .cat{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#7FD6CE;font-weight:600}
.track-tiles .name{font-family:"Source Serif 4",serif;font-size:18px;color:#FFFFFF;margin-top:6px}

/* Service detail */
.service-detail-hero h1{font-size:clamp(32px,4.5vw,48px);line-height:1.1;margin-top:12px;max-width:820px}
.service-detail-hero .intro{max-width:720px;margin-top:20px;font-size:19px;line-height:1.6;color:var(--muted)}
.service-body-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:56px;align-items:start;padding-top:16px}
.toc{background:var(--panel);border-radius:8px;padding:24px;position:sticky;top:96px}
.toc ul{margin-top:12px;display:flex;flex-direction:column;gap:8px;font-size:15px}
.toc a{color:var(--muted);padding-left:12px}
.toc a.active{color:var(--ink);font-weight:600;border-left:2px solid var(--teal);padding-left:10px}
.service-body h2{font-size:28px;margin-top:0}
.service-body h2+h2,.service-body .helps-title{margin-top:40px}
.service-body p{font-size:17px;line-height:1.75;margin-top:12px}
.helps-list{margin-top:16px;display:flex;flex-direction:column;gap:14px}
.helps-list li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start}
.helps-list .mark{margin-top:8px;width:14px;height:14px;border-radius:3px;background:var(--teal-tint);border:2px solid var(--teal)}
.helps-list span.text{font-size:16px;line-height:1.65}
.outcome{margin-top:40px;background:var(--teal-tint);border-left:4px solid var(--teal);padding:24px 28px;border-radius:0 8px 8px 0}
.outcome p{font-family:"Source Serif 4",serif;font-size:20px;line-height:1.5;color:var(--ink);margin-top:8px;font-weight:600}
.other-services{padding-top:0}
.other-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.other-grid .service-card h3{font-size:20px}

/* About */
.about-intro{max-width:720px;margin-top:20px;font-size:17px;line-height:1.75;display:flex;flex-direction:column;gap:14px}
.about-intro p+p{color:var(--muted)}
.track-record-grid{margin-top:28px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.track-record-item{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:24px}
.track-record-item .head{display:flex;align-items:center;gap:10px}
.track-record-item h3{font-family:"Source Serif 4",serif;font-size:20px;margin-top:10px}
.track-record-item p{color:var(--muted);font-size:15px;margin-top:6px;line-height:1.6}
.track-record-item.wide{grid-column:span 2}
.note{margin-top:24px;color:var(--muted);font-size:14px;max-width:640px}
.about-cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.about-cta p{color:#C7CFDD;font-size:16px;margin-top:8px}

/* Insights */
.insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.insight-card{display:block;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:28px;color:var(--ink)}
.insight-card:hover{border-color:var(--teal);color:var(--ink)}
.insight-card .top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.insight-card .topic{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal);font-weight:600}
.insight-card .status{font-size:12px;color:var(--muted)}
.insight-card h3{font-family:"Source Serif 4",serif;font-size:22px;line-height:1.3;margin-top:14px}
.insight-card .more{margin-top:20px;color:var(--teal);font-weight:600;font-size:14px}
.insights-foot{margin-top:32px;color:var(--muted);font-size:14px}

/* Projects (GitHub-style repo list) */
.repo-list{display:flex;flex-direction:column;gap:16px;margin-top:8px}
.repo-card{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:24px 28px;display:block;color:var(--ink)}
.repo-card:hover{border-color:var(--teal);color:var(--ink)}
.repo-card .repo-top{display:flex;justify-content:space-between;align-items:start;gap:16px;flex-wrap:wrap}
.repo-card .repo-name{font-family:"Source Serif 4",serif;font-size:20px;display:flex;align-items:center;gap:8px}
.repo-card .repo-name svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}
.repo-card .repo-visibility{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-weight:600;white-space:nowrap}
.repo-card .repo-desc{color:var(--muted);font-size:15px;margin-top:10px;line-height:1.6}
.repo-card .repo-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:13px;color:var(--muted);align-items:center}
.repo-card .repo-meta .lang{display:inline-flex;align-items:center;gap:6px}
.repo-card .repo-meta .lang-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.repo-card .repo-meta svg{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.repo-card .repo-topics{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.repo-card .repo-topics span{font-size:11px;color:var(--teal);background:var(--teal-tint);padding:3px 10px;border-radius:999px;font-weight:500}
.repo-state{color:var(--muted);font-size:15px;padding:36px;text-align:center;border:1px dashed var(--line);border-radius:8px}
.github-cta{margin-top:12px;background:var(--panel);border-radius:8px;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.github-cta p{color:var(--muted);font-size:15px;margin-top:6px}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.contact-grid h1{font-size:clamp(32px,4.5vw,48px);line-height:1.1;margin-top:12px}
.contact-grid .lede{margin-top:20px;font-size:17px;line-height:1.65;color:var(--muted);max-width:480px}
.contact-loc{margin-top:32px;color:var(--muted);font-size:14px}
.contact-panel{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:8px}
.contact-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-radius:8px;border-bottom:1px solid var(--line);color:var(--ink)}
.contact-item:hover{color:var(--ink)}
.contact-item:last-child{border-bottom:none;background:var(--ink);color:#FFFFFF;margin:8px}
.contact-item:last-child:hover{color:#FFFFFF}
.contact-item .lab{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal);font-weight:600}
.contact-item:last-child .lab{color:#7FD6CE}
.contact-item .val{font-family:"Source Serif 4",serif;font-size:20px;margin-top:4px}
.contact-item .arr{color:var(--teal);font-weight:600}
.contact-item:last-child .arr{color:#7FD6CE}

/* Privacy */
.privacy h2{font-size:24px;margin-top:32px}
.privacy p{font-size:16px;line-height:1.75;color:var(--muted);margin-top:8px}
.privacy>p:first-of-type{color:var(--ink);font-size:17px;line-height:1.7;margin-top:20px}

/* 404 */
.notfound{padding:120px 0;text-align:center}
.notfound .big404{font-family:"Source Serif 4",serif;font-size:88px;font-weight:600;color:var(--teal);letter-spacing:-0.03em;line-height:1}
.notfound h1{font-size:36px;margin-top:8px}
.notfound p{color:var(--muted);font-size:17px;margin-top:12px;max-width:540px;margin-left:auto;margin-right:auto}
.notfound .cta-row{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}

/* Footer */
.site-footer{background:var(--ink);color:#DDE3EE;padding:32px 0;font-size:14px}
.site-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
.site-footer a{color:#DDE3EE}
.site-footer a:hover{color:#FFFFFF}
.footer-nav{display:flex;gap:24px;flex-wrap:wrap}

/* Responsive */
@media (max-width:900px){
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .services-grid,.proof-grid{grid-template-columns:1fr}
  .why,.track-cta,.contact-grid,.service-body-grid,.insights-grid,.track-record-grid,.other-grid{grid-template-columns:1fr;gap:32px}
  .toc{position:static}
  .track-record-item.wide{grid-column:auto}
  .services-header h2{font-size:32px}
  .about-cta{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:12px 24px}
  .site-nav.is-open{display:block}
  .site-nav ul{flex-direction:column;gap:0;align-items:stretch}
  .site-nav a{display:block;padding:12px 0}
  .site-nav .btn{text-align:center;margin-top:8px}
  section{padding:56px 0}
  .hero-stats{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms !important}html{scroll-behavior:auto}}