/* Hub page and generic (data-driven) app pages. Loaded together with base.css */
body.site{background-image:radial-gradient(900px 500px at 15% -10%,#2a3a8a55,transparent),radial-gradient(700px 400px at 95% 0%,#7c3aed40,transparent);background-repeat:no-repeat}
.site a{text-decoration:none}
.site a:hover{text-decoration:underline}
.site .wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.site header.nav{display:flex;justify-content:space-between;align-items:center;padding:20px 0}
.site .brand{font-weight:800;font-size:1.2rem;color:var(--ink);letter-spacing:.3px}
.site .brand span{color:var(--accent)}
.site .nav a.link{color:var(--muted);margin-left:20px;font-size:.95rem}
.site .hero{text-align:center;padding:64px 0 48px}
.site .hero h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.15;font-weight:800;margin:0 0 16px;
  background:linear-gradient(90deg,#fff,#a5b4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.site .hero p{color:var(--muted);font-size:1.15rem;max-width:620px;margin:0 auto}
.site h2.section{font-size:1.5rem;margin:40px 0 20px}
.site .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.site .card{display:block;background:linear-gradient(180deg,var(--card),var(--card2));border:1px solid var(--line);border-radius:20px;padding:24px;color:var(--ink);transition:transform .2s,border-color .2s,box-shadow .2s}
.site .card:hover{transform:translateY(-4px);text-decoration:none;border-color:var(--accent);box-shadow:0 12px 30px #0006}
.site .icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:16px;box-shadow:0 6px 16px #0005}
.site .icon.icon-img{background:none;box-shadow:none;padding:0}
.site .icon.icon-img img{width:64px;height:64px;border-radius:16px;display:block;box-shadow:0 6px 16px #0005}
.site .card h3{font-size:1.25rem;margin:0 0 6px}
.site .card p{color:var(--muted);font-size:.97rem;margin:0 0 14px}
.site .chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.site .chips span{background:var(--soft);color:var(--soft-ink);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600}
.site .card .more{color:var(--accent);font-weight:600;font-size:.95rem}
.site .soon{border-style:dashed;text-align:center;color:var(--muted);display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:200px}
.site .soon:hover{transform:none;border-color:var(--line);box-shadow:none}
.site .about{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px;margin-top:40px;color:var(--muted)}
.site .about h2{color:var(--ink);margin:0 0 8px;font-size:1.3rem}
.site .app-hero{display:flex;gap:28px;align-items:center;padding:48px 0 24px;flex-wrap:wrap}
.site .app-hero .icon{width:112px;height:112px;font-size:3.4rem;border-radius:28px;margin:0}
.site .app-hero h1{font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.15;margin:0}
.site .app-hero p{color:var(--muted);font-size:1.1rem;margin:6px 0 0}
.site .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.site .btn{display:inline-block;padding:12px 22px;border-radius:12px;font-weight:700;font-size:.97rem;color:#fff;border:1px solid transparent}
.site .btn:hover{text-decoration:none;filter:brightness(1.1)}
.site .btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.site .panel{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px;margin:20px 0}
.site .panel h2{font-size:1.3rem;margin:0 0 12px}
.site .panel ul{margin-left:20px}.site .panel li{margin:8px 0}
.site .panel p{color:var(--muted);margin:0 0 10px}
.site .doc{max-width:760px;margin:0 auto;padding:40px 0}
.site .doc h1{font-size:2rem;margin:0 0 6px}
.site .doc h2{font-size:1.2rem;margin:28px 0 8px}
.site .doc p,.site .doc li{color:#c6cee8}
.site .doc ul{margin:8px 0 8px 22px}
.site .doc .meta{color:var(--muted);font-size:.9rem;margin-bottom:18px}
.site .crumbs{color:var(--muted);font-size:.9rem;padding-top:8px}
