html, body, #root { min-height: 100%; }
    body {
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, sans-serif;
      color: #0f172a;
      background: #fff;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    .font-mono { font-family: "JetBrains Mono", ui-monospace, monospace; }
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 5px; }
    ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
    ::-webkit-scrollbar-track { background: transparent; }
    .grid-bg {
      background-image:
        linear-gradient(to right, rgba(15,23,42,0.045) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(15,23,42,0.045) 1px, transparent 1px);
      background-size: 32px 32px;
    }
    .stack-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
    .stack-card:hover { transform: translateY(-1px); box-shadow: 0 12px 32px -16px rgba(15,23,42,0.18); }
    details > summary { list-style: none; cursor: pointer; }
    details > summary::-webkit-details-marker { display: none; }
    details[open] .faq-chev { transform: rotate(90deg); }
    .faq-chev { transition: transform .2s ease; }
    .tabular-nums { font-variant-numeric: tabular-nums; }
    .text-balance { text-wrap: balance; }
    .text-pretty { text-wrap: pretty; }

    @keyframes fadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
    .fade-up { animation: fadeUp .4s ease both; }
