
:root{
  --bg:#f6f7f9;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --line:#e5e7eb;
  --accent:#374151;
  --cta:#111827;
  --ctaText:#ffffff;
  --shadow: 0 12px 28px rgba(17,24,39,.08);
  --r:16px;
  --r2:22px;
  --max:1120px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 420px at 20% 0%, rgba(156,163,175,.25), transparent 55%),
    radial-gradient(900px 380px at 90% 10%, rgba(75,85,99,.18), transparent 60%),
    linear-gradient(180deg, #fbfbfc 0%, var(--bg) 60%, #f2f3f6 100%);
  line-height:1.65;
}
a{color:inherit; text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max); margin:0 auto; padding:0 18px}
.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(1.2) blur(10px);
  background:rgba(246,247,249,.86);
  border-bottom:1px solid rgba(229,231,235,.9);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:12px 0;
}
.brand{display:flex; align-items:center; gap:10px; font-weight:900; letter-spacing:.2px}
.brand small{display:block; font-weight:700; color:var(--muted)}
.logo{
  width:36px; height:36px; border-radius:12px;
  background: linear-gradient(135deg, #111827 0%, #4b5563 55%, #9ca3af 100%);
  box-shadow: 0 10px 20px rgba(17,24,39,.18);
}
.navlinks{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-weight:800}
.navlinks a{padding:8px 10px; border-radius:12px}
.navlinks a:hover{background:rgba(229,231,235,.55); text-decoration:none}
.navcta{display:flex; align-items:center; gap:10px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:11px 15px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.85);
  box-shadow: 0 8px 18px rgba(17,24,39,.06);
  font-weight:900;
}
.btn:hover{background:#fff; text-decoration:none}
.btn.primary{
  background:var(--cta); color:var(--ctaText);
  border-color: rgba(17,24,39,.12);
}
.btn.primary:hover{filter:brightness(1.05)}
.hamburger{display:none}
.mobileMenu{display:none; padding:0 0 12px}
.mobileMenu.open{display:block}
.mobileMenu a{display:block; padding:10px 10px; border-radius:12px; font-weight:900}
.mobileMenu a:hover{background:rgba(229,231,235,.55); text-decoration:none}

.hero{padding:52px 0 18px}
.heroGrid{display:grid; grid-template-columns: 1.2fr .8fr; gap:16px; align-items:stretch}
.card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.92);
  border-radius:var(--r2);
  box-shadow: var(--shadow);
}
.heroCard{padding:26px; position:relative; overflow:hidden}
.heroCard:before{
  content:""; position:absolute; inset:-70px -90px auto auto;
  width:240px; height:240px;
  background: repeating-linear-gradient(45deg, rgba(156,163,175,.22) 0 10px, rgba(156,163,175,.04) 10px 20px);
  border-radius:48px; transform:rotate(12deg);
}
.kicker{
  display:inline-flex; gap:10px; align-items:center;
  padding:6px 12px; border-radius:999px;
  background:rgba(229,231,235,.65);
  border:1px solid rgba(229,231,235,.9);
  font-weight:900;
}
.h1{margin:14px 0 10px; font-size: clamp(28px, 3.1vw, 44px); line-height:1.1; letter-spacing:-.7px}
.lead{margin:0 0 16px; color:var(--muted); font-size:16.5px; max-width:74ch}
.badges{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.badge{font-weight:900; background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 12px}
.sideCard{padding:18px}
.sideList{margin:0; padding:0; list-style:none; display:grid; gap:10px}
.sideList li{display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid rgba(229,231,235,.9); border-radius:14px; background:#fff}
.icon{width:34px; height:34px; border-radius:12px; background:rgba(229,231,235,.65); border:1px solid rgba(229,231,235,.9); display:grid; place-items:center; flex:0 0 auto}

.section{padding:22px 0}
.sectionTitle{display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:14px}
.sectionTitle h2{margin:0; font-size:22px; letter-spacing:-.2px}
.sectionTitle p{margin:0; color:var(--muted); max-width:82ch}
.grid{display:grid; grid-template-columns: repeat(12, 1fr); gap:14px}
.tile{
  grid-column: span 6;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.92);
  border-radius:var(--r);
  box-shadow: 0 10px 22px rgba(17,24,39,.06);
  padding:18px;
}
.tile h3{margin:0 0 8px}
.tile p{margin:0 0 12px; color:var(--muted)}
.tile ul{margin:0; padding-left:18px; color:var(--muted)}
.pill{display:inline-block; font-weight:900; font-size:12.5px; background:rgba(229,231,235,.55); border:1px solid rgba(229,231,235,.9); border-radius:999px; padding:5px 10px; margin-right:6px; margin-top:8px}
.prose{max-width:900px}
.prose h1{margin:0 0 10px}
.prose h2{margin:22px 0 10px; letter-spacing:-.2px}
.prose h3{margin:16px 0 8px}
.prose p{margin:0 0 12px}
.prose ul,.prose ol{margin:0 0 12px; padding-left:18px}
.callout{
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(229,231,235,.58));
  border:1px solid rgba(229,231,235,.92);
  border-radius:var(--r2);
  padding:16px;
  margin:14px 0;
}
.footer{
  padding:26px 0 34px;
  color:var(--muted);
  border-top:1px solid rgba(229,231,235,.92);
  background:rgba(255,255,255,.55);
}
.footerGrid{display:grid; grid-template-columns: 1.2fr .8fr; gap:14px}
.small{font-size:13.5px}
.kbd{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:12px; padding:2px 6px; border-radius:8px; border:1px solid var(--line); background:#fff}

@media (max-width: 980px){
  .heroGrid{grid-template-columns:1fr}
  .tile{grid-column: span 12}
  .footerGrid{grid-template-columns:1fr}
  .navlinks{display:none}
  .hamburger{display:inline-flex}
}

/* Images */
.figure{margin:16px 0}
.figure img{width:100%;height:auto;display:block;border-radius:16px;border:1px solid rgba(229,231,235,.92);box-shadow:0 10px 22px rgba(17,24,39,.06)}
.figure figcaption{margin-top:8px;color:var(--muted);font-size:13.5px}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin:14px 0}
.gallery .g{grid-column:span 6}
@media (max-width: 980px){.gallery .g{grid-column:span 12}}




/* Image sizing fix (hard cap 640px) */
.figure img,
.gallery img,
img{
  max-width: 640px;
  width: 100%;
  height: auto;
  display: block;
}

/* Center images so they look clean in a narrow column */
.figure img,
.gallery img{
  margin-left: auto;
  margin-right: auto;
}


/* ==============================
   Responsive hardening + images
   ============================== */
html{box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
body{overflow-x:hidden}

/* Never allow any media to overflow viewport */
img, video, canvas, svg{max-width:100%; height:auto}

/* Images: cap at 640px but ALWAYS fit the visible area */
.figure img,
.gallery img,
main img{
  width: min(640px, 100%);
  max-width: 100%;
  height: auto;
  display:block;
  margin-left:auto;
  margin-right:auto;
}

/* Make galleries safe on narrow screens */
.gallery{grid-template-columns:repeat(12,1fr)}
.gallery .g{grid-column:span 6}
@media (max-width: 980px){ .gallery .g{grid-column:span 12} }

/* Ensure layout doesn't get wider than viewport */
.container{
  width: min(1120px, 100%);
  padding-left: 18px;
  padding-right: 18px;
  margin-left:auto;
  margin-right:auto;
}

/* Prevent long words/URLs from breaking layout */
.prose, .tile, .heroCard, .sideCard{overflow-wrap:anywhere}
