/* AEL // GLITCH  -  v1.3.1 */
:root{
  --bg0:#14151b; --bg1:#1a1b23;
  --ink:#cfd6e5; --muted:#98a3b8;
  --accent1:#7da4d4; --accent2:#a792ff; --lav:#c7b4ff;
  --panel:rgba(0,0,0,.22); --panelH:rgba(255,255,255,.08); --border:rgba(255,255,255,.12);
  --extra-pad: 42px;
}
*{box-sizing:border-box} html,body{height:100%}
body{margin:0; color:var(--ink); font-family:"Share Tech Mono", ui-monospace, Menlo, Consolas, monospace; background:linear-gradient(180deg, var(--bg1), var(--bg0) 60%); overflow-x:hidden}
#night{ position:fixed; inset:0; pointer-events:none; background:radial-gradient(80% 200% at 50% 120%, rgba(200,40,60,.0), rgba(200,40,60,.1) 60%, rgba(200,40,60,.0)); opacity:0; transition:opacity .3s; z-index:2 }
#synapses,#synapsemouse{position:fixed; inset:0; pointer-events:none}
#synapses{z-index:0; background:transparent} #synapsemouse{z-index:1; mix-blend-mode:screen}
.hdr{ position:sticky; top:0; z-index:60; border-bottom:1px solid var(--border); background:linear-gradient(90deg, #251c34, #2b2350) }
.synthwave{ position:relative; overflow:hidden }
.synthwave .sun{
  position:absolute; left:6vw; top:-36px; width:160px; height:160px; border-radius:50%;
  background:radial-gradient(circle at 50% 60%, rgba(255,230,140,.9), rgba(255,140,210,.85) 40%, rgba(120,60,255,.55) 70%, rgba(120,60,255,0) 72%) ,
             repeating-linear-gradient( to bottom, rgba(20,0,30,.0) 0 6px, rgba(255,255,255,.20) 8px 10px, rgba(20,0,30,.0) 12px 24px);
  filter: blur(.2px) drop-shadow(0 0 24px rgba(255,170,210,.45));
}
.synthwave .mounts{
  position:absolute; inset:auto 0 -1px 0; height:80px;
  background:
    linear-gradient(to right, rgba(120,80,200,.2), rgba(120,80,200,.05)),
    linear-gradient(0deg, transparent 0, transparent 32px, rgba(255,255,255,.06) 33px, transparent 34px),
    polygon(0 100%,8% 60%,18% 75%,28% 55%,40% 78%,52% 50%,60% 72%,70% 58%,80% 77%,90% 61%,100% 100%) / 100% 100% no-repeat;
}
.circuits{ position:absolute; inset:auto 0 0 0; height:54px; opacity:.85; pointer-events:none }
.headbar{ height:72px; display:flex; align-items:center; justify-content:space-between; gap:16px; position:relative }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit }
.logo{ height:64px; aspect-ratio:1/1; object-fit:contain; filter:drop-shadow(0 0 10px rgba(167,146,255,.36)) drop-shadow(0 0 6px rgba(125,164,212,.28)) }
h1,h3{font-family:Orbitron, system-ui, sans-serif; margin:0}
.glitch,.glitch-s{ position:relative; display:inline-block; color:var(--ink); text-shadow:0 0 12px rgba(167,146,255,.34), 0 0 18px rgba(125,164,212,.24) }
.glitch:before,.glitch:after,.glitch-s:before,.glitch-s:after{ content:attr(data-text); position:absolute; inset:0; pointer-events:none }
.glitch:before{ color:#70b7ff; transform:translate(2px,-1px); mix-blend-mode:screen; clip-path:inset(0 0 58% 0); animation:glitchX 1.1s steps(12,end) infinite }
.glitch:after { color:#caa2ff; transform:translate(-2px,1px); mix-blend-mode:screen; clip-path:inset(42% 0 0 0); animation:glitchY 1.3s steps(14,end) infinite }
.glitch-s:before{ color:#70b7ff; transform:translate(1px,-1px); mix-blend-mode:screen; clip-path:inset(0 0 62% 0); animation:glitchX 1.2s steps(10,end) infinite }
.glitch-s:after { color:#caa2ff; transform:translate(-1px,1px); mix-blend-mode:screen; clip-path:inset(38% 0 0 0); animation:glitchY 1.4s steps(12,end) infinite }
@keyframes glitchX{ 0%{clip-path:inset(0 0 64% 0)} 50%{clip-path:inset(12% 0 44% 0)} 100%{clip-path:inset(0 0 64% 0)} }
@keyframes glitchY{ 0%{clip-path:inset(36% 0 0 0)} 50%{clip-path:inset(56% 0 0 0)} 100%{clip-path:inset(36% 0 0 0)} }
.sfx-title{ position:relative; padding-bottom:6px }
.sfx-title:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:linear-gradient(90deg, transparent, rgba(199,180,255,.9), transparent); filter:blur(.6px); animation:beam 2.6s ease-in-out infinite }
@keyframes beam{ 0%{transform:translateX(-30%)} 50%{transform:translateX(30%)} 100%{transform:translateX(-30%)} }

.container{max-width:1200px; margin:0 auto; padding:22px}
.tabs{display:flex; gap:10px}
.btn{ appearance:none; border:1px solid rgba(199,180,255,.45); background:var(--panel); color:var(--ink); padding:10px 14px; border-radius:12px; cursor:pointer; transition:.2s ease; font-size:13px; text-decoration:none; box-shadow:0 0 0 1px rgba(199,180,255,.25) inset }
.btn:hover{ background:var(--panelH); box-shadow:0 0 0 1px rgba(199,180,255,.55) inset, 0 0 10px rgba(199,180,255,.25) }
.btn.play{ background:rgba(80,180,120,.15); border-color:rgba(120,220,160,.45) }

.neon-border{ position:relative; isolation:isolate; overflow:hidden }
.neon-border:before{ content:""; position:absolute; inset:-1.5px; border-radius:inherit; pointer-events:none;
  background:conic-gradient(from 0deg, rgba(125,164,212,.22), rgba(167,146,255,.22), rgba(125,164,212,.22));
  filter:blur(6px); opacity:.2; z-index:-1; animation:spin 6s linear infinite }
.scan-border:after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  padding:1px; background:
    linear-gradient(0deg, transparent 48%, rgba(199,180,255,.85) 50%, transparent 52%),
    conic-gradient(from var(--a,0deg), rgba(199,180,255,0) 0 10%, rgba(199,180,255,.8) 12%, rgba(125,164,212,0) 15% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation:edgeFlow 4s linear infinite; opacity:.95;
}
@keyframes spin{ to{ transform:rotate(1turn) } } @keyframes edgeFlow{ to{ --a:360deg } }
.sci-lines:after{ content:""; position:absolute; inset:0; pointer-events:none; border-radius:12px;
  background:repeating-linear-gradient(0deg, rgba(199,180,255,.08), rgba(199,180,255,.08) 1px, transparent 2px, transparent 6px),
             repeating-linear-gradient(90deg, rgba(125,164,212,.05), rgba(125,164,212,.05) 1px, transparent 2px, transparent 8px);
  mix-blend-mode:soft-light; opacity:.25 }

.panel{background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:14px; margin:12px 0}
.subtitle{color:var(--muted)} .muted{color:var(--muted)} .list{margin:0; padding-left:18px}
main section[data-tab]{display:none} main section.active{display:block}

/* categories */
.catgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px}
.catcard{background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; transition:.25s}
.catcard:hover{transform:translateY(-2px) scale(1.01)}
.catcard img{width:100%; height:180px; object-fit:cover; background:#000}
.catmeta{padding:10px; display:flex; align-items:center; justify-content:space-between}
.catname{font-weight:700} .catcount{font-size:12px; color:var(--muted)}

/* gallery */
.gallery-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap:16px; align-items:stretch }
.gallery-grid .item{ min-width:0; position:relative; overflow:hidden; border:1px solid var(--border); border-radius:12px; aspect-ratio: var(--tile-ratio, 4/3); background:#000 }
.gallery-grid .item figure{ margin:0; height:100%; position:relative }
.gallery-grid .item img{ width:100%; height:100%; display:block; object-fit:cover }
.gallery-grid .item figcaption{ position:absolute; left:0; right:0; bottom:0; padding:6px 8px; font-size:12px; color:var(--muted); background:linear-gradient(180deg, transparent, rgba(0,0,0,.55)) }
.gallery-grid .vec-frame::before{ display:none !important }

/* lightbox + zoom/pan */
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.86); display:none; align-items:center; justify-content:center; z-index:9999}
.lightbox.active{display:flex}
.viewer{max-width:min(96vw,1200px); max-height:88vh; position:relative; background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:10px}
.zoomWrap{ position:relative; width:calc(min(96vw,1200px) - 120px); height:72vh; overflow:hidden; cursor:grab }
.zoomWrap:active{ cursor:grabbing }
.viewer img{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(1); transform-origin:center; max-width:none; max-height:none; border-radius:8px; border:1px solid rgba(255,255,255,.15); background:#000; user-select:none; -webkit-user-drag:none }
.closeBtn{ position:absolute; top:-42px; right:0; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:10px; width:42px; height:42px; display:grid; place-items:center; cursor:pointer; font-size:18px }
.navBtn{position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); width:48px; height:48px; border-radius:10px; display:grid; place-items:center; cursor:pointer; font-size:20px }
.navPrev{left:-56px} .navNext{right:-56px}
.navBtn.disabled{display:none}
.lb-controls{position:absolute; inset:auto 0 -40px 0; display:flex; justify-content:center; align-items:center; gap:10px}
.lb-help{ position:absolute; left:0; right:0; bottom:-28px; text-align:center; color:var(--muted); font-size:12px; opacity:.9 }
.pill{font-size:12px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#fff}

/* footer game */
footer{position:fixed; left:0; right:0; bottom:0; z-index:50; background:linear-gradient(180deg, rgba(0,0,0,.78), rgba(0,0,0,.92)); border-top:1px solid var(--border); transition: transform .25s ease }
.footHUD{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 22px; }
.tools{ display:flex; gap:8px } .score b{ font-size:16px }
.lapinBar{ padding:4px 22px 0 } .lapinList{ display:flex; gap:10px; overflow-x:auto; scrollbar-width:thin; }
.lapinCard{ display:flex; align-items:center; gap:6px; padding:6px 8px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:10px; white-space:nowrap }
.lapinCard .face{ font-size:16px }
.lapinCard .bars{ display:flex; gap:6px; align-items:center }
.lapinCard .bar{ width:60px; height:6px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; border:1px solid rgba(255,255,255,.18) }
.lapinCard .bar>i{ display:block; height:100%; background:linear-gradient(90deg, #7da4d4, #a792ff); width:50% }
.lapinCard .hp>i{ background:linear-gradient(90deg, #78e08f, #2ecc71) }

.footstage{ position:relative; height:190px; max-width:1200px; margin:0 auto; display:block; overflow:hidden }
.hole{ position:absolute; left:50%; bottom:24px; transform:translateX(-50%); font-size:44px; cursor:pointer }
.entity{ position:absolute; bottom:52px; font-size:28px; transform: translateX(var(--x,0)) scaleX(calc(-1 * var(--dir,1))); user-select:none; cursor:pointer; transition: opacity .25s }
.entity.baby{ font-size:22px } .entity.dog{ bottom:58px; font-size:30px }
.fx{ position:absolute; bottom:84px; font-size:18px; transform:translateX(var(--x,0)); animation:fade 1.2s ease forwards }
.fx.blue{ color:#7da4d4; text-shadow:0 0 10px rgba(125,164,212,.5) }
@keyframes fade{ from{opacity:1; transform:translateX(var(--x,0)) translateY(0)} to{opacity:0; transform:translateX(var(--x,0)) translateY(-14px)} }
.poop{ position:absolute; bottom:32px; font-size:16px; transform:translateX(var(--x,0)) }
.item{ position:absolute; bottom:32px; font-size:22px; transform:translateX(var(--x,0)) } .item.bait{ bottom:38px }
.grave{ position:absolute; bottom:36px; font-size:20px; transform:translateX(var(--x,0)) }
.toolCursor{ position:fixed; top:0; left:0; pointer-events:none; transform:translate(-50%,-50%); font-size:22px; z-index:70; display:none }
.hint{ position:absolute; right:12px; bottom:6px; color:var(--muted); font-size:12px; opacity:.85 }
.gameover{ position:absolute; left:50%; transform:translateX(-50%); bottom:4px; font-weight:700; display:none; background:rgba(0,0,0,.45); padding:4px 10px; border-radius:10px; border:1px solid rgba(255,255,255,.12) }
.shopPanel{ position:absolute; left:12px; bottom:204px; background:rgba(0,0,0,.78); border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:8px; display:none; z-index:80 }
.shopPanel .shopItem{ padding:6px 8px; border-radius:8px; border:1px solid rgba(255,255,255,.12); margin-bottom:6px; cursor:pointer }
.shopPanel .shopItem:hover{ background:rgba(255,255,255,.06) }

/* collapsible footer */
#footerGame.collapsed{ transform: translateY(100%); }
.collapseHandle{ position:absolute; left:50%; transform:translateX(-50%); top:-34px; width:132px; height:34px; border-radius:10px 10px 0 0; border:1px solid rgba(255,255,255,.22); background:rgba(0,0,0,.75); color:var(--ink); cursor:pointer; z-index:70; box-shadow:0 0 10px rgba(199,180,255,.25) }
.pauseOverlay{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.45); color:#fff; font-weight:800; letter-spacing:.2em; font-family:Orbitron,system-ui,sans-serif; z-index:65; pointer-events:none }
#footerGame.paused .pauseOverlay{ display:flex }

/* Bottom padding so content never hides under footer (gros espace en plus) */
main{ padding-bottom: calc(var(--footer-h, 0px) + var(--extra-pad)); }

@supports not (aspect-ratio: 1 / 1){
  .gallery-grid .item::before{ content:""; display:block; padding-top:75% }
  .gallery-grid .item > figure{ position:absolute; inset:0 }
}

@media (prefers-reduced-motion: reduce){
  .glitch:before,.glitch:after,.glitch-s:before,.glitch-s:after{ animation:none !important }
  .scan-border:after{ animation:none !important }
}

/* ===== v1.4.0 - Accueil / projets / expériences ===== */
body{min-height:100%;}
main{position:relative; z-index:3;}
.tabs .btn[aria-selected="true"]{background:rgba(125,164,212,.18); border-color:rgba(199,180,255,.75); box-shadow:0 0 0 1px rgba(199,180,255,.5) inset,0 0 16px rgba(125,164,212,.18)}
.row{display:flex; align-items:center; justify-content:space-between; gap:16px}
.hero{display:grid; grid-template-columns:minmax(0,1.55fr) minmax(220px,.45fr); gap:28px; align-items:center; padding:30px; min-height:330px; overflow:hidden}
.hero-copy{position:relative; z-index:2}
.hero h2,.section-title h2,.experiments-intro h2{font-family:Orbitron,system-ui,sans-serif; margin:8px 0 14px; line-height:1.15; color:#f0f3ff}
.hero h2{font-size:clamp(28px,4vw,52px); max-width:900px}
.hero p{max-width:820px; color:var(--muted); font-size:16px; line-height:1.65}
.eyebrow{font-size:12px; letter-spacing:.18em; color:var(--lav); text-transform:uppercase}
.hero-actions,.project-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px}
.btn.primary{background:linear-gradient(90deg,rgba(125,164,212,.25),rgba(167,146,255,.25)); border-color:rgba(199,180,255,.7); color:#fff}
.hero-mark{justify-self:end; font-family:Orbitron,system-ui,sans-serif; font-size:clamp(42px,7vw,96px); line-height:.82; font-weight:800; text-align:right; color:rgba(255,255,255,.055); text-shadow:0 0 28px rgba(167,146,255,.18); user-select:none}
.hero-mark span{color:rgba(199,180,255,.16)}
.section-title{display:flex; align-items:end; justify-content:space-between; margin:34px 2px 16px}
.section-title h2{font-size:clamp(22px,3vw,34px); margin-bottom:0}
.compact-top{margin-top:42px}
.featured-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.secondary-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px}
.project-card,.experiment-card{background:rgba(6,8,16,.48); border:1px solid var(--border); border-radius:16px; padding:18px; position:relative}
.project-card{display:flex; flex-direction:column; min-width:0}
.featured-card{padding:22px}
.project-card h3,.experiment-card h3{font-family:Orbitron,system-ui,sans-serif; margin:7px 0 10px; color:#f3f5ff}
.project-card h3{font-size:24px}
.project-card p,.experiment-card p{color:var(--muted); line-height:1.55}
.project-card .lead{font-size:16px; color:#dbe1f0}
.project-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px}
.project-icon{font-size:34px; filter:drop-shadow(0 0 8px rgba(199,180,255,.22))}
.status{display:inline-flex; align-items:center; gap:6px; width:max-content; max-width:100%; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:5px 8px; border-radius:999px; border:1px solid rgba(255,255,255,.14); color:#dfe5f3; background:rgba(255,255,255,.05)}
.status.live{border-color:rgba(120,224,160,.35); color:#8be6ae; background:rgba(70,150,100,.12)}
.status.free{border-color:rgba(125,164,212,.45); color:#9bc4f5; background:rgba(80,120,180,.12)}
.status.art{border-color:rgba(202,162,255,.42); color:#d5baff; background:rgba(150,90,190,.12)}
.status.abandoned{border-color:rgba(255,180,120,.24); color:#e8bd98; background:rgba(150,100,60,.09)}
.tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:16px}
.tags span{font-size:11px; color:var(--muted); border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.035); border-radius:999px; padding:5px 8px}
.shot-grid{display:grid; gap:8px; margin:14px 0}
.teaser-shots{grid-template-columns:repeat(3,minmax(0,1fr))}
.shot-grid img,.small-expandable{display:block; width:100%; object-fit:cover; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:#05060a; cursor:zoom-in; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.teaser-shots img{aspect-ratio:16/9}
.shot-grid img:hover,.small-expandable:hover{transform:translateY(-2px); border-color:rgba(199,180,255,.45); box-shadow:0 8px 24px rgba(0,0,0,.28)}
.small-expandable{max-width:360px; align-self:center; margin:12px auto 2px; max-height:240px; object-fit:cover}
.microcopy{font-size:11px; text-align:center; margin:4px 0 0 !important; opacity:.8}
.media-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.86); z-index:9998; opacity:0; pointer-events:none; transition:opacity .18s ease}
.media-backdrop.active{opacity:1; pointer-events:auto}
[data-expandable].is-expanded{position:fixed !important; z-index:9999 !important; inset:50% auto auto 50% !important; transform:translate(-50%,-50%) !important; width:auto !important; height:auto !important; max-width:92vw !important; max-height:90vh !important; object-fit:contain !important; cursor:zoom-out !important; background:#05060a; border:1px solid rgba(199,180,255,.5); border-radius:12px; box-shadow:0 0 60px rgba(0,0,0,.75)}
.cerfa-card{background:radial-gradient(circle at 80% 20%,rgba(125,164,212,.12),transparent 35%),rgba(6,8,16,.48)}
.cerfa-terminal{margin:12px 0 4px; min-height:180px; border:1px solid rgba(125,164,212,.3); border-radius:12px; background:linear-gradient(180deg,rgba(3,8,15,.95),rgba(8,12,22,.95)); padding:20px; display:flex; flex-direction:column; justify-content:center; gap:8px; box-shadow:inset 0 0 40px rgba(125,164,212,.05)}
.cerfa-terminal span{font-size:12px; letter-spacing:.16em; color:#7da4d4}
.cerfa-terminal strong{font-family:Orbitron,system-ui,sans-serif; font-size:clamp(22px,3vw,34px); color:#edf4ff}
.cerfa-terminal i{font-style:normal; color:var(--muted)}
.archive-callout{background:radial-gradient(circle at 80% 20%,rgba(255,170,100,.06),transparent 40%),rgba(6,8,16,.48)}
.experiments-intro{padding:24px; margin-bottom:18px}
.experiments-intro p{color:var(--muted); line-height:1.6; max-width:900px}
.experiment-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.experiment-card{display:flex; align-items:flex-start; gap:14px; min-height:215px}
.experiment-icon{font-size:30px; width:48px; flex:0 0 48px; height:48px; display:grid; place-items:center; border-radius:12px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09)}
.experiment-body{display:flex; flex-direction:column; min-width:0; height:100%}
.experiment-body p{flex:1}
.btn.compact{padding:7px 10px; align-self:flex-start}

/* Mini-jeu : caché par défaut et poignée compréhensible */
.collapseHandle{font-family:"Share Tech Mono",ui-monospace,monospace; font-size:13px; letter-spacing:.04em; white-space:nowrap}
#footerGame.collapsed .collapseHandle{background:rgba(12,14,22,.96); border-color:rgba(199,180,255,.4)}
.infectionBadge{position:absolute; bottom:88px; transform:translateX(var(--x,0)); z-index:5; font-size:12px; line-height:1; padding:4px 6px; border-radius:999px; color:#d6ffb5; background:rgba(25,55,20,.88); border:1px solid rgba(150,255,110,.38); box-shadow:0 0 10px rgba(90,220,80,.22); pointer-events:none; white-space:nowrap; display:none}
.entity.poisoned{filter:drop-shadow(0 0 8px rgba(120,255,80,.6))}
.infectionBadge.dogInfection{bottom:98px}

@media (max-width:980px){
  .headbar{height:auto; min-height:72px; padding-top:10px; padding-bottom:10px; flex-wrap:wrap}
  .tabs{flex-wrap:wrap; justify-content:flex-end}
  .hero{grid-template-columns:1fr}
  .hero-mark{display:none}
  .featured-grid{grid-template-columns:1fr}
  .secondary-grid{grid-template-columns:1fr 1fr}
  .experiment-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .container{padding:14px}
  .brand h1{font-size:17px}
  .logo{height:52px}
  .tabs{width:100%; justify-content:flex-start; gap:6px}
  .tabs .btn{padding:8px 10px; font-size:12px}
  .hero{padding:20px; min-height:0}
  .secondary-grid,.experiment-grid{grid-template-columns:1fr}
  .teaser-shots{grid-template-columns:1fr}
  .footHUD{align-items:flex-start; flex-direction:column}
  .tools{flex-wrap:wrap}
  .hint{display:none}
}

/* ===== v1.5.0 - Projets actifs supplémentaires ===== */
.project-showcase-card{background:radial-gradient(circle at 88% 12%,rgba(167,146,255,.08),transparent 34%),rgba(6,8,16,.48)}
.project-preview{display:block;width:100%;height:auto;max-height:360px;object-fit:contain;margin:14px 0 4px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#05060a;cursor:zoom-in;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.project-preview:hover{transform:translateY(-2px);border-color:rgba(199,180,255,.45);box-shadow:0 8px 24px rgba(0,0,0,.28)}
@media (max-width:680px){.project-preview{max-height:280px}}

