:root { --bg:#0b0f14; --panel:#11161d; --text:#e6edf3; --muted:#9fb0c0; --accent:#4cc3f1; --accent-2:#7ee787; --border:#1f2a36; --shadow:0 2px 16px rgba(0,0,0,.3) }
* { box-sizing: border-box }
html, body { height: 100% }
body { margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; line-height:1.6; color:var(--text); background:linear-gradient(180deg,#0b0f14 0%,#0d1218 100%) }
a { color: var(--accent); text-decoration: none }
a:hover { text-decoration: underline }
.container { width: min(1100px, 92%); margin-inline: auto }
header { position: sticky; top: 0; z-index: 100; background: rgba(11,15,20,.7); backdrop-filter: blur(10px); border-bottom:1px solid var(--border) }
.nav { display:flex; align-items:center; justify-content:space-between; padding:14px 0 }
.brand { display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.3px }
.brand .logo { width:28px; height:28px; border-radius:8px; background:linear-gradient(135deg,var(--accent),var(--accent-2)) }
.nav-links { display:flex; gap:18px; align-items:center }
.nav-links a { color:var(--text); opacity:.9 }
.nav-cta { padding:8px 14px; background:var(--accent); color:#072231; border-radius:8px; font-weight:600; border:1px solid transparent }
.nav-toggle { display:none; background:none; border:1px solid var(--border); color:var(--text); padding:8px 10px; border-radius:8px }
@media (max-width: 900px) { .nav-links { display:none; position:absolute; inset:56px 0 auto 0; background:rgba(11,15,20,.95); border-bottom:1px solid var(--border); padding:12px 4%; flex-direction:column; align-items:flex-start } .nav-links.open{display:flex} .nav-toggle{display:inline-flex; align-items:center; gap:8px} }
.hero { padding: clamp(48px, 8vw, 96px) 0 }
.hero .inner { display:grid; grid-template-columns: 1.2fr 1fr; gap:32px; align-items:center }
.hero h1 { font-size: clamp(28px, 4.5vw, 44px); line-height:1.15; margin:0 0 12px }
.hero p { color:var(--muted); margin:0 0 20px }
.hero .panel { background:var(--panel); border:1px solid var(--border); border-radius:16px; padding:18px; box-shadow:var(--shadow) }
.hero .actions { display:flex; gap:12px; flex-wrap:wrap }
.btn { display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border-radius:10px; font-weight:600; border:1px solid var(--border); background:#0e141a; color:var(--text) }
.btn.primary { background:var(--accent); color:#062030; border-color:transparent }
.btn:hover { transform: translateY(-1px); filter: brightness(1.03) }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.card { background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:16px; box-shadow:var(--shadow) }
.card h3 { margin:0 0 6px; font-size:18px }
.card p { margin:0; color:var(--muted) }
@media (max-width: 980px) { .hero .inner { grid-template-columns:1fr } .card-grid { grid-template-columns:1fr 1fr } }
@media (max-width: 620px) { .card-grid { grid-template-columns:1fr } }
section { padding:40px 0 }
section h2 { font-size:22px; margin:0 0 12px }
.list { display:grid; gap:12px }
.list li { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:12px }
footer { border-top:1px solid var(--border); padding:20px 0; color:var(--muted) }
.skip-link { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden }
.skip-link:focus { left:10px; top:10px; width:auto; height:auto; background:#000; color:#fff; padding:8px 10px; border-radius:8px; z-index:999 }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px }
.tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px }
.tag { background:#0e141a; border:1px solid var(--border); color:var(--muted); padding:4px 10px; border-radius:999px; font-size:12px }
.timeline { display:grid; gap:16px }
.t-item { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:14px }
.muted { color:var(--muted) }

/* Project page helpers */
.prose { max-width: 80ch }
.kpi { display:grid; grid-template-columns: repeat(3, 1fr); gap:12px }
.kpi .card { text-align:center }
