/* ── HERO ── */
.hero { position:relative; z-index:10; padding:10rem 3rem 4rem; max-width:900px; margin:0 auto; }
.hero-title { font-size:clamp(3.5rem,9vw,7rem); font-weight:800; line-height:0.9; letter-spacing:-0.04em; opacity:0; transform:translateY(24px); animation:fadeUp 0.9s cubic-bezier(0.16,1,0.3,1) forwards 0.5s; }
.hero-intro { margin-top:2rem; font-family:'DM Mono',monospace; font-size:clamp(0.75rem,1.6vw,0.95rem); color:var(--muted2); line-height:1.8; max-width:520px; opacity:0; transform:translateY(12px); animation:fadeUp 0.7s ease forwards 0.8s; }
.hero-stats { display:flex; align-items:center; gap:1.5rem; margin-top:2rem; flex-wrap:wrap; }
.hstat { display:flex; flex-direction:column; gap:2px; }
.hstat-val { font-size:1.8rem; font-weight:800; color:var(--accent); line-height:1; letter-spacing:-0.03em; }
.hstat-label { font-family:'DM Mono',monospace; font-size:10px; color:var(--muted2); letter-spacing:0.1em; }
.hstat-sep { font-size:1.2rem; color:var(--muted); }

/* ── SECTIONS ── */
.section { position:relative; z-index:10; max-width:900px; margin:0 auto; padding:2rem 3rem 4rem; border-top:1px solid var(--border2); }
.section--controls { padding-bottom:0; border-top:none; }
.section-header { display:flex; align-items:baseline; gap:1rem; margin-bottom:2rem; }
.section-tag { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); letter-spacing:0.1em; }
.section-title { font-size:clamp(1.5rem,3vw,2rem); font-weight:800; letter-spacing:-0.02em; }

/* ── FILTRES ── */
.filters { display:flex; gap:8px; flex-wrap:wrap; }
.filter-btn { font-family:'DM Mono',monospace; font-size:10px; color:var(--muted2); background:transparent; border:1px solid var(--border2); padding:6px 16px; cursor:pointer; letter-spacing:0.1em; text-transform:uppercase; transition:all 0.2s; }
.filter-btn:hover { border-color:var(--accent); color:var(--accent); }
.filter-btn.active { border-color:var(--accent); color:var(--accent); background:rgba(0,245,160,0.04); }

/* ── PROJECTS GRID ── */
.projects-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(380px,1fr)); gap:1rem; }
.project-card { background:var(--surface); border:1px solid var(--border2); padding:1.6rem; display:flex; flex-direction:column; gap:1rem; transition:border-color 0.2s,transform 0.2s; position:relative; overflow:hidden; }
.project-card:hover { border-color:rgba(0,245,160,0.25); transform:translateY(-3px); }
.project-card--featured { border-color:rgba(0,245,160,0.2); }
.project-card--featured::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at top right,rgba(0,245,160,0.04),transparent 60%); pointer-events:none; }
.project-header { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.project-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.project-num { font-family:'DM Mono',monospace; font-size:10px; color:var(--accent); letter-spacing:0.1em; }
.project-badges { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.project-tag { font-family:'DM Mono',monospace; font-size:9px; color:var(--muted2); border:1px solid var(--border2); padding:2px 7px; letter-spacing:0.06em; }
.status-badge { font-family:'DM Mono',monospace; font-size:9px; padding:2px 8px; letter-spacing:0.06em; }
.status-badge.done { color:var(--accent); border:1px solid rgba(0,245,160,0.3); }
.status-badge.inprog { color:var(--accent2); border:1px solid rgba(0,200,245,0.3); animation:blink 2s ease-in-out infinite; }
.project-type { font-family:'DM Mono',monospace; font-size:10px; color:var(--muted2); display:flex; align-items:center; gap:5px; white-space:nowrap; }
.featured-tag { font-family:'DM Mono',monospace; font-size:9px; color:#080b0f; background:var(--accent); padding:3px 10px; letter-spacing:0.08em; width:fit-content; }
.project-name { font-size:1.2rem; font-weight:800; color:var(--text); letter-spacing:-0.02em; }
.project-desc { font-size:13px; color:var(--muted2); line-height:1.7; flex:1; }
.project-details { display:flex; flex-direction:column; gap:4px; background:rgba(0,0,0,0.2); padding:10px 12px; border-left:2px solid rgba(0,245,160,0.2); }
.detail-row { display:flex; gap:10px; align-items:baseline; }
.detail-key { font-family:'DM Mono',monospace; font-size:9px; color:var(--accent); letter-spacing:0.1em; text-transform:uppercase; min-width:50px; flex-shrink:0; }
.detail-val { font-family:'DM Mono',monospace; font-size:10px; color:var(--muted2); line-height:1.5; }
.project-links { display:flex; gap:10px; align-items:center; padding-top:0.5rem; border-top:1px solid var(--border2); margin-top:auto; }
.project-link { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); text-decoration:none; letter-spacing:0.06em; transition:opacity 0.2s; }
.project-link:hover { opacity:0.7; }
.project-link--gh { display:inline-flex; align-items:center; gap:5px; color:var(--muted2); }
.project-link--gh:hover { color:var(--text); opacity:1; }
.no-results { display:flex; align-items:center; gap:10px; font-family:'DM Mono',monospace; font-size:13px; color:var(--muted2); padding:2rem 0; }

/* ── NEXT SECTION ── */
.next-grid { display:flex; flex-direction:column; gap:8px; }
.next-card { display:flex; align-items:center; gap:1.5rem; background:var(--surface); border:1px solid var(--border2); border-left:2px solid rgba(0,245,160,0.15); padding:1rem 1.4rem; transition:border-color 0.2s; }
.next-card:hover { border-color:rgba(0,245,160,0.2); }
.next-num { font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:0.1em; min-width:20px; }
.next-info { display:flex; flex-direction:column; gap:3px; flex:1; }
.next-name { font-size:14px; font-weight:700; color:var(--muted2); }
.next-desc { font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); line-height:1.5; }
.next-status { font-family:'DM Mono',monospace; font-size:10px; color:var(--accent2); border:1px solid rgba(0,200,245,0.2); padding:3px 10px; white-space:nowrap; }

/* ── RESPONSIVE ── */
@media (max-width:700px) {
    .hero { padding:8rem 1.5rem 3rem; }
    .section { padding:2rem 1.5rem 3rem; }
    .projects-grid { grid-template-columns:1fr; }
}