:root{
  --ink:#0f172a;
  --ink-soft:#475569;
  --muted:#64748b;
  --bg:#ffffff;
  --bg-soft:#f8fafc;
  --border:#e6e9ef;
  --accent:#4f46e5;
  --accent-dark:#4338ca;
  --maxw:1080px;
  --radius:14px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* nav */
.site-header{border-bottom:1px solid var(--border);background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(8px);position:sticky;top:0;z-index:10;}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;}
.brand{font-weight:700;font-size:1.15rem;color:var(--ink);letter-spacing:-.01em;}
.brand:hover{text-decoration:none;}
.brand .dot{color:var(--accent);}
.nav-links{display:flex;gap:28px;align-items:center;}
.nav-links a{color:var(--ink-soft);font-weight:500;font-size:.95rem;}
.nav-links a:hover{color:var(--ink);text-decoration:none;}
.nav-links a.active{color:var(--ink);}

/* buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;padding:13px 24px;border-radius:10px;font-weight:600;font-size:1rem;transition:background .15s ease;}
.btn:hover{background:var(--accent-dark);text-decoration:none;color:#fff;}

/* hero */
.hero{padding:96px 0 72px;}
.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08;letter-spacing:-.02em;margin:0 0 20px;font-weight:800;}
.hero p.lead{font-size:1.25rem;color:var(--ink-soft);max-width:760px;margin:0 0 32px;}

/* sections */
.section{padding:72px 0;}
.section-soft{background:var(--bg-soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:700;color:var(--accent);margin:0 0 12px;}
h2{font-size:clamp(1.6rem,3.5vw,2.1rem);line-height:1.2;letter-spacing:-.01em;margin:0 0 16px;font-weight:700;}
.section p.big{font-size:1.15rem;color:var(--ink-soft);max-width:840px;}

/* cards */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px;}
.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:32px;}
.card h3{margin:0 0 10px;font-size:1.25rem;}
.card p{margin:0;color:var(--ink-soft);}
.card .tag{display:inline-block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:14px;}

/* principles */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.principle h3{font-size:1.05rem;margin:0 0 8px;}
.principle p{margin:0;color:var(--ink-soft);font-size:.97rem;}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:36px;}
.contact-item{border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.contact-item .label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:0 0 6px;}
.contact-item .value{font-size:1.1rem;font-weight:600;margin:0;}

/* prose */
.prose{max-width:720px;}
.prose p{font-size:1.1rem;color:var(--ink-soft);margin:0 0 20px;}
.prose h1{font-size:clamp(2rem,4.5vw,2.8rem);letter-spacing:-.02em;margin:0 0 24px;font-weight:800;color:var(--ink);}

/* footer */
.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);padding:40px 0;}
.site-footer .legal{font-size:.88rem;color:var(--muted);line-height:1.8;}
.site-footer .legal strong{color:var(--ink-soft);font-weight:600;}
.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;}
.footer-links{display:flex;gap:20px;}
.footer-links a{color:var(--ink-soft);font-size:.9rem;}

/* responsive */
@media (max-width:760px){
  .cards{grid-template-columns:1fr;}
  .principles{grid-template-columns:1fr;}
  .nav-links{gap:18px;}
  .hero{padding:64px 0 48px;}
  .section{padding:56px 0;}
}
@media (max-width:520px){
  .brand span.full{display:none;}
}
