:root {
  --bg: #08111b;
  --bg-soft: #0d1a28;
  --panel: #102235;
  --panel-2: #132a40;
  --text: #edf6ff;
  --muted: #a9bdcf;
  --accent: #43d3a8;
  --accent-2: #65a8ff;
  --line: rgba(255,255,255,.09);
  --shadow: 0 18px 50px rgba(0,0,0,.28);
  --radius: 20px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 15% 10%, rgba(67,211,168,.10), transparent 26rem),
    radial-gradient(circle at 85% 0%, rgba(101,168,255,.10), transparent 28rem),
    var(--bg);
  color: var(--text);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 32px), var(--max)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(16px);
  background: rgba(8,17,27,.80);
  border-bottom: 1px solid var(--line);
}
.nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: .02em; }
.brand-mark {
  width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 12px; background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #061018; box-shadow: 0 8px 24px rgba(67,211,168,.22);
}
.nav-links { display: flex; align-items: center; gap: 22px; color: var(--muted); font-size: .95rem; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--text); }
.nav-toggle { display: none; border: 1px solid var(--line); color: var(--text); background: transparent; padding: 8px 10px; border-radius: 10px; }
.hero { padding: 96px 0 70px; }
.hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 52px; align-items: center; }
.eyebrow { color: var(--accent); font-weight: 750; letter-spacing: .13em; font-size: .78rem; text-transform: uppercase; }
h1 { font-size: clamp(2.8rem, 7vw, 5.5rem); line-height: .98; margin: 16px 0 22px; letter-spacing: -.05em; }
h2 { font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.1; margin: 0 0 12px; letter-spacing: -.03em; }
h3 { margin: 0 0 8px; }
.lede { font-size: 1.15rem; color: var(--muted); max-width: 720px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 18px; border-radius: 12px; font-weight: 750; border: 1px solid transparent; }
.button.primary { background: var(--accent); color: #07130f; }
.button.secondary { border-color: var(--line); background: rgba(255,255,255,.03); color: var(--text); }
.button:hover { transform: translateY(-1px); }
.hero-console {
  border: 1px solid var(--line); border-radius: 24px; background: rgba(13,26,40,.85);
  box-shadow: var(--shadow); overflow: hidden;
}
.console-top { display:flex; gap:7px; align-items:center; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.dot { width: 9px; height: 9px; border-radius: 999px; background: rgba(255,255,255,.25); }
.console-body { padding: 22px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #c8d8e8; font-size: .92rem; }
.console-line { display: flex; gap: 12px; padding: 7px 0; border-bottom: 1px dashed rgba(255,255,255,.05); }
.console-line span:first-child { color: var(--accent); min-width: 110px; }
section { padding: 74px 0; }
.section-head { display: flex; justify-content: space-between; gap: 28px; align-items: end; margin-bottom: 30px; }
.section-head p { margin: 0; max-width: 660px; color: var(--muted); }
.grid { display: grid; gap: 18px; }
.grid.projects { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card {
  border: 1px solid var(--line); background: linear-gradient(180deg, rgba(19,42,64,.9), rgba(13,26,40,.82));
  border-radius: var(--radius); padding: 22px; box-shadow: 0 10px 36px rgba(0,0,0,.12);
}
.card-icon { font-size: 1.65rem; margin-bottom: 20px; }
.card p { color: var(--muted); margin-bottom: 20px; }
.card-link { color: var(--accent); font-weight: 750; }
.badges { display:flex; flex-wrap:wrap; gap:8px; margin: 16px 0 0; }
.badge { font-size:.75rem; padding:5px 9px; border-radius:999px; background: rgba(67,211,168,.08); border:1px solid rgba(67,211,168,.18); color:#b9f5e2; }
.band { border-block: 1px solid var(--line); background: rgba(255,255,255,.02); }
.feature-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.feature { padding: 10px 4px; }
.feature strong { display:block; font-size:1.05rem; margin-bottom:4px; }
.feature span { color:var(--muted); }
.page-hero { padding: 70px 0 36px; }
.page-hero h1 { font-size: clamp(2.4rem, 6vw, 4.5rem); }
.list { display:grid; gap:12px; margin-top:24px; }
.list-item { display:grid; grid-template-columns: 150px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }
.list-item strong { color: var(--accent); }
.callout { padding: 28px; border-radius: var(--radius); border: 1px solid var(--line); background: rgba(101,168,255,.07); }
footer { border-top:1px solid var(--line); padding: 32px 0 50px; color: var(--muted); }
.footer-row { display:flex; justify-content:space-between; gap:18px; align-items:center; flex-wrap:wrap; }
.small { font-size:.9rem; color:var(--muted); }
.code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: rgba(255,255,255,.04); border:1px solid var(--line); border-radius:12px; padding:14px; overflow:auto; }
@media (max-width: 900px) {
  .hero-grid, .grid.projects, .feature-grid { grid-template-columns: 1fr 1fr; }
  .hero-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .nav-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:72px; left:16px; right:16px; flex-direction:column; align-items:stretch; padding:16px; background:var(--bg-soft); border:1px solid var(--line); border-radius:14px; }
  .nav-links.open { display:flex; }
  .grid.projects, .feature-grid { grid-template-columns:1fr; }
  .section-head { align-items:start; flex-direction:column; }
  .list-item { grid-template-columns:1fr; gap:4px; }
  .hero { padding-top:64px; }
}

/* Solar Tracker interactive demo */
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.demo-hero { padding-bottom: 26px; }
.demo-title-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,360px); gap:30px; align-items:end; }
.demo-title-row h1 { margin-bottom:18px; }
.demo-safety-badge { border:1px solid rgba(67,211,168,.28); background:rgba(67,211,168,.07); border-radius:16px; padding:18px; display:grid; gap:6px; }
.demo-safety-badge strong { color:var(--accent); letter-spacing:.08em; font-size:.78rem; }
.demo-safety-badge span { color:var(--muted); font-size:.9rem; }
.demo-section { padding-top:26px; }
.demo-shell { border:1px solid var(--line); background:rgba(7,16,26,.82); border-radius:26px; box-shadow:var(--shadow); overflow:hidden; }
.demo-topbar { min-height:62px; padding:14px 18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.demo-topbar > div { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.demo-topbar-right { justify-content:flex-end; }
.demo-status-dot { width:9px; height:9px; border-radius:50%; background:#7e8c99; box-shadow:0 0 0 4px rgba(126,140,153,.08); }
.demo-status-dot.is-online { background:var(--accent); box-shadow:0 0 0 4px rgba(67,211,168,.09); }
.demo-muted { color:var(--muted); font-size:.86rem; }
.demo-pill { display:inline-flex; align-items:center; min-height:30px; padding:4px 10px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.03); font:700 .72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.03em; }
.demo-pill-safe { color:#b9f5e2; border-color:rgba(67,211,168,.22); background:rgba(67,211,168,.06); }
.demo-modebar { padding:12px 18px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; border-bottom:1px solid var(--line); background:rgba(255,255,255,.015); }
.demo-mode { min-height:38px; border:1px solid var(--line); border-radius:10px; padding:0 14px; color:var(--muted); background:rgba(255,255,255,.025); font-weight:750; cursor:pointer; }
.demo-mode:hover { color:var(--text); }
.demo-mode.is-active { color:#07130f; background:var(--accent); border-color:var(--accent); }
.demo-switch { margin-left:auto; min-height:38px; display:flex; align-items:center; gap:9px; color:var(--muted); font-size:.9rem; cursor:pointer; }
.demo-switch input { width:18px; height:18px; accent-color:var(--accent); }
.demo-grid-main { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,.65fr); min-width:0; }
.demo-visual-card { min-width:0; border-right:1px solid var(--line); }
.demo-sky { position:relative; min-height:430px; overflow:hidden; background:linear-gradient(180deg,#102941 0%,#14334b 47%,#16364b 70%,#0d1a28 70.5%,#09131e 100%); }
.demo-sky::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% -10%,rgba(255,255,255,.06),transparent 42%),linear-gradient(90deg,transparent 49.9%,rgba(255,255,255,.025) 50%,transparent 50.1%); pointer-events:none; }
.demo-sun { position:absolute; width:58px; height:58px; margin:-29px 0 0 -29px; border-radius:50%; background:#ffd76b; box-shadow:0 0 34px rgba(255,215,107,.52); transition:left .14s linear,top .14s linear,opacity .2s; }
.demo-sun span { position:absolute; inset:9px; border-radius:50%; border:1px solid rgba(255,255,255,.55); }
.demo-cloud { position:absolute; width:95px; height:24px; border-radius:30px; background:rgba(224,238,249,.12); filter:blur(.1px); }
.demo-cloud::before,.demo-cloud::after { content:""; position:absolute; border-radius:50%; background:inherit; }
.demo-cloud::before { width:38px; height:38px; left:17px; top:-17px; }
.demo-cloud::after { width:46px; height:46px; right:12px; top:-22px; }
.demo-cloud-one { left:12%; top:24%; }
.demo-cloud-two { right:10%; top:35%; transform:scale(.75); opacity:.6; }
.demo-horizon { position:absolute; left:0; right:0; bottom:29.5%; height:1px; background:rgba(255,255,255,.08); }
.demo-array-wrap { position:absolute; left:50%; bottom:9%; width:350px; height:190px; transform:translateX(-50%); }
.demo-array { position:absolute; width:290px; height:92px; left:30px; bottom:72px; display:grid; grid-template-columns:1fr 1fr; gap:8px; transform-origin:50% 100%; transition:transform .11s linear; }
.demo-panel { border:2px solid rgba(142,194,230,.65); border-radius:5px; background:linear-gradient(135deg,#173e5c,#0f2a43); display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); gap:3px; padding:4px; box-shadow:0 12px 26px rgba(0,0,0,.28); }
.demo-panel span { border:1px solid rgba(126,188,226,.25); background:linear-gradient(135deg,rgba(101,168,255,.18),rgba(67,211,168,.04)); }
.demo-post { position:absolute; left:50%; bottom:25px; width:16px; height:72px; transform:translateX(-50%); background:linear-gradient(90deg,#758695,#aebbc7,#667684); border-radius:4px; }
.demo-base { position:absolute; left:50%; bottom:17px; width:100px; height:12px; transform:translateX(-50%); border-radius:4px; background:#52616d; }
.demo-angle-label { position:absolute; left:18px; bottom:16px; padding:7px 10px; border-radius:10px; border:1px solid var(--line); background:rgba(8,17,27,.7); font:700 .9rem/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.demo-wind { position:absolute; right:18px; bottom:18px; color:#bcd0e0; letter-spacing:-4px; transition:opacity .15s,font-size .15s; }
.demo-visual-footer { min-height:48px; padding:11px 16px; display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; border-top:1px solid var(--line); font-size:.9rem; }
.demo-visual-footer > span:first-child { font-weight:800; color:var(--accent); }
.demo-telemetry { display:grid; grid-template-columns:1fr; align-content:start; min-width:0; }
.demo-metric { padding:15px 18px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); }
.demo-metric span { color:var(--muted); font-size:.84rem; }
.demo-metric strong { font:750 .98rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; text-align:right; }
.demo-metric-primary { padding-block:20px; background:rgba(67,211,168,.035); }
.demo-metric-primary strong { color:var(--accent); font-size:1.35rem; }
.demo-text-accent { color:var(--accent); }
.demo-text-alert { color:#ffbd78; }
.demo-text-safe { color:#8fe5c7; }
.is-wind-park .demo-visual-footer > span:first-child,.is-wind-park .demo-angle-label { color:#ffbd78; }
.demo-controls-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); }
.demo-control-card { min-width:0; padding:19px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.demo-control-card:nth-child(2n) { border-right:0; }
.demo-control-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.demo-control-head > div { min-width:0; }
.demo-control-head strong { display:block; }
.demo-control-head span { display:block; color:var(--muted); font-size:.82rem; margin-top:2px; }
.demo-value { color:var(--accent); white-space:nowrap; }
.demo-small-button { min-height:36px; padding-inline:12px; font-size:.82rem; cursor:pointer; }
.demo-range { width:100%; accent-color:var(--accent); cursor:pointer; }
.demo-range:disabled { opacity:.35; cursor:not-allowed; }
.demo-range-label,.demo-range-scale,.demo-threshold-line { display:flex; justify-content:space-between; gap:10px; align-items:center; color:var(--muted); font-size:.75rem; }
.demo-range-label { margin-bottom:8px; }
.demo-range-label strong { color:var(--text); font-size:.84rem; }
.demo-range-scale,.demo-threshold-line { margin-top:5px; }
.demo-threshold-line span:nth-child(2) { color:#ffbd78; text-align:center; }
.demo-control-card.is-disabled { opacity:.55; }
.demo-actions-card { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.demo-actions-card > div:first-child span { display:block; color:var(--muted); font-size:.82rem; }
.demo-action-buttons { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.demo-action-buttons .button { cursor:pointer; }
.demo-event-log { padding:18px; background:rgba(255,255,255,.012); }
.demo-log-head { display:flex; justify-content:space-between; gap:14px; margin-bottom:10px; }
.demo-log-head span { color:var(--muted); font-size:.78rem; }
.demo-log-row { display:grid; grid-template-columns:95px 1fr; gap:12px; padding:8px 0; border-top:1px dashed rgba(255,255,255,.06); color:#c8d8e8; font:500 .8rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; }
.demo-log-row span:first-child { color:#7791a6; }
.demo-log-alert span:last-child { color:#ffbd78; }
.demo-log-safe span:last-child { color:#8fe5c7; }
.demo-disclaimer { margin-top:28px; }
.demo-footer-links { display:flex; gap:18px; flex-wrap:wrap; }
@media (max-width:900px) {
  .demo-title-row { grid-template-columns:1fr; align-items:start; }
  .demo-grid-main { grid-template-columns:1fr; }
  .demo-visual-card { border-right:0; border-bottom:1px solid var(--line); }
  .demo-telemetry { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .demo-metric:nth-child(odd) { border-right:1px solid var(--line); }
}
@media (max-width:680px) {
  .demo-switch { width:100%; margin-left:0; }
  .demo-sky { min-height:340px; }
  .demo-array-wrap { transform:translateX(-50%) scale(.78); transform-origin:50% 100%; bottom:6%; }
  .demo-telemetry { grid-template-columns:1fr; }
  .demo-metric:nth-child(odd) { border-right:0; }
  .demo-controls-grid { grid-template-columns:1fr; }
  .demo-control-card,.demo-control-card:nth-child(2n) { border-right:0; }
  .demo-actions-card { align-items:flex-start; flex-direction:column; }
  .demo-action-buttons { justify-content:flex-start; }
  .demo-log-row { grid-template-columns:78px 1fr; }
}
