/* Lucenia site — shared stylesheet
   Brand tokens from lucenia.io: deep #0c4c76, bright #2685c7, dark #0f172a,
   mint accent #00d4aa, slate grays. */
:root{
  --brand:#0c4c76;
  --brand-bright:#2685c7;
  --dark:#0f172a;
  --mint:#00d4aa;
  --teal:#297272;
  --ink:#0f172a;
  --body:#374151;
  --mut:#64748b;
  --faint:#94a3b8;
  --line:#e2e8f0;
  --wash:#f8fafc;
  --grotesk:'Space Grotesk',ui-sans-serif,system-ui,sans-serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,ui-sans-serif,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:#fff;color:var(--body);font-family:var(--sans);
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;
}
.wrap{max-width:1400px;margin:0 auto;padding:0 40px}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--grotesk);color:var(--brand);letter-spacing:-.02em;line-height:1.15}
h1{color:var(--dark)}

/* nav */
nav{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
nav .wrap{display:flex;align-items:center;height:58px;gap:28px}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;margin-right:auto;
  font-family:var(--grotesk);font-weight:700;font-size:17px;color:var(--dark)}
.logo img{width:22px;height:22px}
.nl{display:flex;gap:22px;font-size:13.5px}
.nl a{text-decoration:none;color:var(--mut)}
.nl a:hover,.nl a.on{color:var(--brand)}
.nl a.on{border-bottom:2px solid var(--mint)}
.btn{display:inline-block;padding:9px 16px;font-size:13.5px;font-weight:500;
  text-decoration:none;border:1px solid var(--brand);color:var(--brand);background:#fff}
.btn:hover{background:var(--wash)}
.btn.solid{background:var(--brand);color:#fff}
.btn.solid:hover{background:#0a3d5f}

/* page header (interior pages) */
.ph{padding:64px 0 44px}
.ph h1{font-size:clamp(30px,4.5vw,44px);font-weight:700;margin-bottom:16px}
.ph p{font-size:16px;max-width:64ch}
.ph p+p{margin-top:12px}

/* hero (home) */
.hero{padding:88px 0 64px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,500px);
  gap:28px 72px;align-items:center}
.hero .specline{grid-column:1/-1}
.hero-viz{margin:0;border:1px solid var(--line);overflow:hidden;border-radius:8px}
.hero-viz svg{display:block;width:100%;height:auto}
@media(max-width:980px){.hero .wrap{grid-template-columns:1fr}.hero-viz{max-width:520px}}
.hero h1{font-size:clamp(38px,6vw,64px);font-weight:700;margin-bottom:22px;max-width:18ch}
.hero p{font-size:16px;max-width:62ch}
.hero p+p{margin-top:12px}
.cta{display:flex;gap:10px;margin-top:30px;flex-wrap:wrap}
.specline{margin-top:44px;font-family:var(--mono);font-size:12px;color:var(--mut);
  border-top:1px solid var(--line);padding-top:14px;display:flex;flex-wrap:wrap;gap:6px 0}
.specline span+span::before{content:'·';margin:0 12px;color:var(--faint)}

/* sections */
section{padding:56px 0;border-top:1px solid var(--line)}
section h2{font-size:26px;font-weight:600;margin-bottom:14px}
section>.wrap>p{max-width:66ch}
section>.wrap>p+p{margin-top:12px}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--teal);display:block;margin-bottom:14px}
.more{display:inline-block;margin-top:18px;font-size:14px;font-weight:500;color:var(--brand);
  text-decoration:none;border-bottom:1px solid var(--brand)}
.more:hover{color:var(--brand-bright);border-color:var(--brand-bright)}

/* diagrams & code */
pre.d{
  font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--body);
  background:var(--wash);border:1px solid var(--line);padding:24px;
  overflow-x:auto;margin:28px 0 8px;white-space:pre;
}
pre.d b{color:var(--brand);font-weight:600}
pre.d i{color:var(--faint);font-style:normal}
pre.d .c{color:var(--brand-bright)}
.cap{font-family:var(--mono);font-size:12px;color:var(--faint)}

/* figures (svg) */
.fig{margin:28px 0 8px;border:1px solid var(--line);background:#fff}
.fig svg{display:block;width:100%;height:auto}
.figrow{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0 8px}
.figrow .fig{margin:0}

/* tables */
.tw{overflow-x:auto;margin-top:26px}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}
th{text-align:left;font-weight:600;color:var(--brand);padding:9px 14px;
  border-bottom:1px solid var(--brand);font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;white-space:nowrap}
td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
td.k{color:var(--ink);font-weight:600;white-space:nowrap}
td code,p code,li code{font-family:var(--mono);font-size:12px;background:var(--wash);
  border:1px solid var(--line);padding:1px 5px;white-space:nowrap;display:inline-block;
  margin:1px 2px 1px 0;color:var(--brand)}
.num{text-align:right;font-variant-numeric:tabular-nums}

/* limitation blocks */
.lim{margin-top:26px;border-left:2px solid var(--line);padding-left:18px;max-width:64ch}
.lim h3{font-family:var(--mono);font-size:12px;font-weight:600;text-transform:uppercase;
  letter-spacing:.08em;margin-bottom:10px;color:var(--mut)}
.lim ul{list-style:none}
.lim li{padding:3px 0;font-size:14px}
.lim li::before{content:'— ';color:var(--faint)}

/* two-col prose */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px 48px;margin-top:30px}
@media(min-width:1080px){.cols{grid-template-columns:1fr 1fr 1fr;gap:20px 40px}}
.cols h3{font-size:17px;font-weight:600;margin-bottom:8px}
.cols p{font-size:14px}
.cols .q{font-family:var(--mono);font-size:12px;color:var(--brand);background:var(--wash);
  border:1px solid var(--line);border-left:2px solid var(--mint);
  padding:10px 12px;margin-bottom:10px;line-height:1.6}
.cols>div{padding:22px 0;border-top:1px solid var(--line)}

/* deployment strip */
.dstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:30px;
  border:1px solid var(--line)}
.dstrip>div{padding:20px;border-right:1px solid var(--line)}
.dstrip>div:last-child{border-right:0}
.dstrip h3{font-size:15px;font-weight:600;margin-bottom:6px;color:var(--ink)}
.dstrip p{font-size:13px;color:var(--mut)}
.dstrip .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--teal);display:block;margin-bottom:8px}

/* footer */
footer{background:var(--dark);padding:40px 0;font-size:13px;color:rgba(255,255,255,.6)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer a{color:rgba(255,255,255,.6);text-decoration:none;margin-right:18px}
footer a:hover{color:#fff}

@media(max-width:820px){
  .dstrip{grid-template-columns:1fr 1fr}
  .dstrip>div:nth-child(2){border-right:0}
  .dstrip>div:nth-child(1),.dstrip>div:nth-child(2){border-bottom:1px solid var(--line)}
}
@media(max-width:720px){
  .cols,.figrow{grid-template-columns:1fr}
  .nl{display:none}
  .hero{padding:56px 0 44px}
  section{padding:44px 0}
}
@media(max-width:520px){
  .dstrip{grid-template-columns:1fr}
  .dstrip>div{border-right:0;border-bottom:1px solid var(--line)}
  .dstrip>div:last-child{border-bottom:0}
}
