/* style.css — amélioré : responsive, accessible, animations subtiles */

/* -------- Variables -------- */
:root{
  --bg-main:#0f0f14;
  --bg-grad-end:#171724;
  --accent-1:#8c7ae6;
  --accent-2:#a899f9;
  --txt:#e6e6f2;
  --muted:#9aa0b3;
  --glass: rgba(255,255,255,0.03);
  --max-width:980px;
  --radius:12px;
  --trans-fast: 160ms;
  --trans-mid: 240ms;
}

/* Reset léger */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family: 'Inter', Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  -webkit-font-smoothing:antialiased;
  color:var(--txt);
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(140,122,230,0.06), transparent 8%),
    linear-gradient(135deg,var(--bg-main) 0%,var(--bg-grad-end) 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  padding:28px;
  min-height:100vh;
  -webkit-font-kerning:normal;
  -moz-osx-font-smoothing:grayscale;
}

/* Respecter reduce motion */
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}

/* Remove underline for all links by default (kept accessible focus styles) */
a, button.link-like, .nav-link {
  text-decoration: none;
}

/* TOPBAR */
.topbar{width:100%;display:flex;justify-content:center}
.topbar-inner{
  width:100%;
  max-width:var(--max-width);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.005));
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,0.02);
  box-shadow:0 6px 20px rgba(2,6,23,0.45);
}

/* Brand */
.brand{display:flex;align-items:center;gap:10px}
.brand-logo{width:44px;height:44px;border-radius:9px;object-fit:cover;transform-origin:center;transition:transform var(--trans-fast) ease}
.brand-logo:hover{transform:scale(1.04) rotate(-2deg)}
.brand-title{font-weight:800;font-size:0.98rem}
.brand-sub{color:var(--muted);font-size:0.78rem}

/* Nav & burger */
.nav{display:flex;align-items:center;gap:8px}
.nav-toggle{
  display:none;
  background:transparent;border:0;padding:8px;border-radius:8px;
}
.nav-toggle:focus{outline:2px solid rgba(140,122,230,0.28);outline-offset:2px}

/* Burger lines using pseudo elements for animated transform */
.burger{
  width:22px;height:2px;background:var(--txt);position:relative;border-radius:2px;display:inline-block;
  transition:background var(--trans-fast) ease, transform var(--trans-fast) ease;
}
.burger::before,.burger::after{
  content:"";position:absolute;left:0;width:100%;height:2px;background:var(--txt);border-radius:2px;
  transition:transform var(--trans-fast) ease, top var(--trans-fast) ease, opacity var(--trans-fast) ease;
}
.burger::before{top:-7px}
.burger::after{top:7px}

/* when nav-toggle has .open, animate burger to X */
.nav-toggle.open .burger{
  background:transparent;
}
.nav-toggle.open .burger::before{
  transform: rotate(45deg);
  top:0;
}
.nav-toggle.open .burger::after{
  transform: rotate(-45deg);
  top:0;
}

/* Menu list (desktop) */
.nav-list{display:flex;list-style:none;gap:10px;align-items:center}
.nav-link{
  display:inline-block;padding:8px 14px;border-radius:999px;font-weight:700;font-size:0.90rem;color:var(--muted);
  transition:color var(--trans-fast) ease, transform var(--trans-fast) cubic-bezier(.2,.9,.3,1), box-shadow var(--trans-fast);
  border:1px solid transparent;background:transparent;
  -webkit-tap-highlight-color: transparent;
}
.nav-link:hover{color:var(--txt);transform:translateY(-2px)}
.nav-link.active{
  color:#fff;background:linear-gradient(90deg,var(--accent-1) 0%,var(--accent-2) 100%);
  box-shadow:0 8px 26px rgba(140,122,230,0.16);border:1px solid rgba(255,255,255,0.03);
}

/* Container card */
.container-card{
  width:100%;max-width:var(--max-width);margin:0 auto;
  background:linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.015));
  border-radius:16px;padding:22px;border:1px solid rgba(255,255,255,0.04);
  box-shadow:0 20px 50px rgba(3,8,24,0.6);backdrop-filter:blur(8px) saturate(120%);
  transition:transform .24s cubic-bezier(.2,.9,.3,1),box-shadow .24s;
  transform-origin:center;
  will-change:transform;
}
.container-card:hover{transform:translateY(-6px);box-shadow:0 28px 70px rgba(3,8,24,0.7)}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-title{font-size:1.25rem;font-weight:800;margin-bottom:4px}
.card-sub{color:var(--muted);font-size:0.92rem}

/* Grid layout */
.card-grid{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.card-main{}
.card-side{display:flex;flex-direction:column;gap:12px}

/* Sections */
.card-section{
  background:linear-gradient(180deg, rgba(255,255,255,0.008), rgba(255,255,255,0.006));
  border-radius:12px;padding:14px;border:1px solid rgba(255,255,255,0.02);
  opacity:0; transform: translateY(8px); animation:sectionIn .5s ease forwards;
}

/* NEW: espace vertical uniforme entre sections (surtout dans la colonne principale) */
.card-section { margin-bottom: 12px; }
.card-main .card-section:last-child { margin-bottom: 0; } /* pas d'espace après la dernière section de la colonne principale */

/* animation delays (génériques) */
.card-section:nth-child(1){animation-delay:0.08s}
.card-section:nth-child(2){animation-delay:0.14s}
.card-section:nth-child(3){animation-delay:0.20s}
.card-section h2,.card-section h3{margin-bottom:10px}
.card-section p{color:var(--muted);font-size:0.95rem;line-height:1.48}

/* Profile compact */
.profile-compact{display:flex;gap:12px;align-items:center;padding:10px;border-radius:10px;background:rgba(255,255,255,0.01);border:1px solid rgba(255,255,255,0.02)}
.profile-compact img{width:80px;height:80px;border-radius:10px;object-fit:cover}
.name{font-weight:700}
.role{color:var(--muted);font-size:0.86rem}

/* Buttons */
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,0.03);
  background:linear-gradient(90deg, rgba(140,122,230,0.12), rgba(168,153,249,0.06));color:#fff;font-weight:600;
  transition: transform var(--trans-fast) ease, box-shadow var(--trans-fast) ease, filter var(--trans-fast) ease;
  transform-origin:center;
}
.btn:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 10px 28px rgba(140,122,230,0.12)}
.btn.secondary{background:transparent;border:1px solid rgba(255,255,255,0.04);color:var(--txt)}
.btn.tri{background: rgba(50, 43, 80, 0.12);border:1px solid rgba(255,255,255,0.04);color:var(--txt)}

/* Projects list & items */
.projects-list{display:grid;gap:12px}
.project-item{
  padding:12px;border-radius:10px;background:linear-gradient(180deg, rgba(255,255,255,0.007), rgba(255,255,255,0.004));
  border:1px solid rgba(255,255,255,0.02);
  transition: transform var(--trans-mid) cubic-bezier(.2,.9,.3,1), box-shadow var(--trans-mid), background var(--trans-mid);
  transform-origin:center;
}
.project-item:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(3,8,24,0.5);
  background: linear-gradient(180deg, rgba(140,122,230,0.02), rgba(255,255,255,0.004));
}
.project-item h3{margin-bottom:6px}
.small-muted{color:var(--muted);font-size:0.86rem}
.link{
  color:var(--accent-2);font-weight:600;transition: color var(--trans-fast) ease, transform var(--trans-fast) ease;
}
.link:hover{color:var(--accent-1);transform:translateY(-2px)}

/* Contact linklike */
.link-like{
  background:transparent;border:0;color:var(--accent-2);font-weight:700;padding:0;
  cursor:pointer;
  transition:color var(--trans-fast) ease, transform var(--trans-fast) ease;
  border-radius:4px;
}
.link-like:hover{color:var(--accent-1);transform:translateY(-2px)}

/* Skills list */
.skill-list{list-style:none;padding-left:0;color:var(--muted);font-size:0.92rem;display:grid;gap:6px}

/* Footer */
.card-footer{margin-top:16px;text-align:center;color:var(--muted);font-size:0.88rem}

/* Focus visible */
:focus{outline:none}
:focus-visible{outline:3px solid rgba(140,122,230,0.22);outline-offset:2px;border-radius:6px}

/* Responsive */
@media (max-width:980px){
  .card-grid{grid-template-columns:1fr}
  .card-side{order:2}
  .card-section{order:1}
  .topbar-inner{flex-direction:row;gap:8px;padding:10px}
  .nav-toggle{display:inline-flex}
  .nav-list{
    position:absolute;right:28px;top:70px;background:linear-gradient(180deg, rgba(17,17,24,0.98), rgba(10,10,14,0.98));
    backdrop-filter:blur(6px);
    border-radius:12px;padding:8px;border:1px solid rgba(255,255,255,0.03);flex-direction:column;display:none;min-width:160px;box-shadow:0 12px 40px rgba(0,0,0,0.6)
  }
  .nav-list.show{display:flex;animation:menuIn .18s cubic-bezier(.2,.9,.3,1) both}
  .nav-link{padding:10px 12px}
}

/* Mobile small */
@media (max-width:480px){
  body{padding:16px;gap:12px}
  .brand-logo{width:40px;height:40px}
  .card-title{font-size:1.05rem}
  .container-card{padding:16px}
  .profile-compact img{width:64px;height:64px}
}

/* Decorative micro animations */
@keyframes floatUp{from{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}
.container-card{animation:floatUp .45s cubic-bezier(.2,.9,.3,1) both}

/* Section entry */
@keyframes sectionIn{
  from{opacity:0; transform:translateY(8px)}
  to{opacity:1; transform:none}
}

/* Mobile menu in */
@keyframes menuIn{
  from{opacity:0; transform:translateY(-6px)}
  to{opacity:1; transform:none}
}

/* Respect reduced motion preference for animations */
@media (prefers-reduced-motion: reduce){
  .container-card, .card-section, .nav-list, .project-item { animation: none; transition: none; }
}
