:root{
  --bg:#0f172a; --card:#101827; --text:#e5e7eb; --muted:#9ca3af; --accent:#22d3ee; --line:#1f2937;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;background:linear-gradient(180deg,#0b1220,var(--bg));color:var(--text);line-height:1.6}
.container{width:min(1100px,92%);margin:0 auto;padding:1rem 0 3rem}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block;border-radius:12px}

/* Header */
.site-header{position:sticky;top:0;z-index:20;display:flex;gap:.8rem;align-items:center;padding:.8rem 4%;background:rgba(10,14,25,.75);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:700}
.site-nav{display:flex;gap:1rem;margin-left:auto}
.nav-toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.3rem .5rem}
@media (max-width:760px){
  .site-nav{display:none;position:absolute;right:4%;top:56px;flex-direction:column;background:#0b1220;border:1px solid var(--line);padding:.6rem;border-radius:12px}
  .site-nav.show{display:flex}
  .nav-toggle{display:block;margin-left:auto}
}

/* Hero */
.hero{margin:1rem 0 2rem;padding:1.4rem;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#0b1325,transparent)}
.hero h1{margin:.2rem 0 0}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0 2rem}
.card{background:var(--card);border:1px solid var(--line);padding:1rem;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.btn{display:inline-block;margin-top:.6rem;padding:.5rem .9rem;border-radius:12px;border:1px solid var(--accent)}
@media (max-width:900px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cards{grid-template-columns:1fr}}

/* Grid */
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grid.three{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:900px){.grid.two{grid-template-columns:1fr} .grid.three{grid-template-columns:1fr}}

/* Callout */
.callout{background:rgba(34,211,238,.06);border:1px dashed var(--accent);border-radius:16px;padding:1rem}

/* Table */
table.data{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.data th, table.data td{padding:.5rem;border-bottom:1px solid var(--line);text-align:left}
table.data thead{background:rgba(255,255,255,.04)}

/* Gallery + Lightbox */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.gallery .thumb{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.gallery .thumb span{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.5);padding:.2rem .4rem;border-radius:8px;font-size:.85rem}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;flex-direction:column;padding:1rem}
.lightbox img{max-width:92vw;max-height:72vh}
.lightbox.show{display:flex}
.lightbox-close{position:absolute;top:12px;right:16px;font-size:2rem;background:transparent;border:none;color:white}

/* Carousel */
.carousel{position:relative;margin:1rem 0 2rem;border-radius:16px;border:1px solid var(--line);overflow:hidden}
.carousel .track{display:flex;transition:transform .5s ease}
.carousel .slide{min-width:100%;position:relative}
.carousel .slide .caption{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.5);padding:.4rem .6rem;border-radius:8px}
.carousel .ctrl{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:white;border:none;border-radius:50%;width:38px;height:38px;display:grid;place-items:center}
.carousel .prev{left:8px}
.carousel .next{right:8px}
.carousel .dots{position:absolute;left:0;right:0;bottom:8px;display:flex;gap:.4rem;justify-content:center}
.carousel .dots button{width:10px;height:10px;border-radius:50%;border:none;background:#64748b;opacity:.7}
.carousel .dots button.active{opacity:1;background:white}

/* Figure */
.figure{margin:1rem 0}
.figcaption{color:var(--muted)}

/* Checklist */
.checklist{list-style:none;padding-left:0}
.checklist li{display:flex;gap:.6rem;align-items:center;margin:.3rem 0}
.checklist input{width:18px;height:18px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:1rem 4%;text-align:center;color:var(--muted)}
