:root{--wm-ink:#08112f;--wm-blue:#1760e8;--wm-violet:#6733f1;--wm-muted:#63718f;--wm-line:#dce5f6;--wm-soft:#f4f7ff;--wm-white:#fff;--wm-shadow:0 24px 70px rgba(20,43,95,.16)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--wm-ink);background:#fff}.wm-portfolio{position:relative;overflow:hidden;padding:100px 0;background:radial-gradient(circle at 100% 0,rgba(103,51,241,.1),transparent 26%),linear-gradient(180deg,#f8faff,#fff 38%)}.wm-container{width:min(1180px,calc(100% - 40px));margin:auto}.wm-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:50px;align-items:end}.wm-eyebrow{margin:0 0 14px;color:var(--wm-blue);font-size:.74rem;font-weight:850;letter-spacing:.17em;text-transform:uppercase}.wm-heading h2{max-width:780px;margin:0;font-size:clamp(2.2rem,4.8vw,4rem);line-height:1.02;letter-spacing:-.05em}.wm-heading__intro{margin:0;color:var(--wm-muted);font-size:1.02rem;line-height:1.75}.wm-filters{display:flex;gap:8px;flex-wrap:wrap;margin:38px 0 28px}.wm-filters button{padding:10px 16px;border:1px solid var(--wm-line);border-radius:999px;color:var(--wm-muted);background:#fff;font:inherit;font-size:.84rem;font-weight:750;cursor:pointer;transition:.2s}.wm-filters button:hover,.wm-filters button.is-active{color:#fff;border-color:var(--wm-blue);background:linear-gradient(135deg,var(--wm-blue),var(--wm-violet));box-shadow:0 9px 24px rgba(38,83,213,.2)}.wm-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.wm-project{min-width:0;overflow:hidden;border:1px solid var(--wm-line);border-radius:24px;background:#fff;box-shadow:0 12px 36px rgba(20,44,96,.09);transition:transform .25s,box-shadow .25s}.wm-project:hover{transform:translateY(-6px);box-shadow:var(--wm-shadow)}.wm-project.is-hidden{display:none}.wm-project__preview{position:relative;display:block;width:100%;padding:36px 14px 14px;border:0;background:linear-gradient(145deg,#ecf2ff,#f8f7ff);cursor:pointer;overflow:hidden}.wm-browser{position:absolute;z-index:2;top:0;left:0;display:flex;width:100%;height:36px;padding:0 13px;align-items:center;gap:6px;color:#8290ad;background:rgba(255,255,255,.95);border-bottom:1px solid var(--wm-line);font-size:.62rem}.wm-browser i{width:7px;height:7px;border-radius:50%;background:#cbd5e8}.wm-browser i:first-child{background:#ff6a65}.wm-browser i:nth-child(2){background:#ffc345}.wm-browser i:nth-child(3){background:#55c66d}.wm-browser b{max-width:48%;margin:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.wm-project__preview img{display:block;width:100%;aspect-ratio:1.5625;object-fit:cover;object-position:top;border:1px solid rgba(214,224,245,.9);border-radius:11px;box-shadow:0 16px 35px rgba(30,53,105,.14);transition:transform .45s}.wm-project:hover .wm-project__preview img{transform:scale(1.025)}.wm-view{position:absolute;right:26px;bottom:26px;padding:10px 14px;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--wm-blue),var(--wm-violet));box-shadow:0 10px 24px rgba(24,63,173,.28);font-size:.76rem;font-weight:800;opacity:0;transform:translateY(6px);transition:.2s}.wm-project:hover .wm-view,.wm-project__preview:focus-visible .wm-view{opacity:1;transform:none}.wm-project__content{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;padding:25px}.wm-project__content span{color:var(--wm-blue);font-size:.67rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.wm-project h3{margin:7px 0 0;font-size:1.42rem}.wm-project p{margin:0;color:var(--wm-muted);font-size:.91rem;line-height:1.65}.wm-portfolio__cta{display:flex;margin-top:34px;padding:28px 32px;align-items:center;justify-content:space-between;gap:24px;border-radius:20px;color:#fff;background:linear-gradient(120deg,#091435,#12275a 58%,#3d22a0)}.wm-portfolio__cta p{margin:0;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:800}.wm-portfolio__cta a{display:inline-flex;min-height:48px;padding:0 18px;align-items:center;gap:14px;border-radius:11px;color:var(--wm-ink);background:#fff;text-decoration:none;font-weight:800;white-space:nowrap}.wm-dialog{width:min(1100px,94vw);height:min(90vh,900px);padding:0;border:1px solid var(--wm-line);border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(4,12,38,.35);overflow:hidden}.wm-dialog::backdrop{background:rgba(4,11,32,.76);backdrop-filter:blur(5px)}.wm-dialog__bar{display:flex;height:54px;padding:0 18px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--wm-line)}.wm-dialog__bar button{width:36px;height:36px;border:0;border-radius:50%;color:var(--wm-ink);background:var(--wm-soft);font-size:1.5rem;cursor:pointer}.wm-dialog__scroll{height:calc(100% - 54px);overflow:auto;background:#edf2fc}.wm-dialog__scroll img{display:block;width:100%;height:auto}.wm-project__preview:focus-visible,.wm-filters button:focus-visible,.wm-portfolio__cta a:focus-visible{outline:3px solid rgba(23,96,232,.35);outline-offset:3px}
@media(max-width:850px){.wm-portfolio{padding:72px 0}.wm-heading{grid-template-columns:1fr;gap:18px}.wm-project__content{grid-template-columns:1fr;gap:12px}}
@media(max-width:650px){.wm-container{width:min(100% - 28px,1180px)}.wm-projects{grid-template-columns:1fr}.wm-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.wm-filters button{flex:0 0 auto}.wm-project__content{grid-template-columns:1fr;padding:21px}.wm-view{display:block;right:20px;bottom:20px;opacity:1;transform:none}.wm-portfolio__cta{align-items:flex-start;flex-direction:column}.wm-portfolio__cta a{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.wm-project,.wm-project img,.wm-view,.wm-filters button{transition:none}}
.wm-dialog__bar>span{margin-left:auto;margin-right:14px;color:var(--wm-muted);font-size:.75rem;font-weight:800}.wm-dialog__stage{position:relative;height:calc(100% - 54px);background:#edf2fc}.wm-dialog__stage .wm-dialog__scroll{height:100%}.wm-dialog__nav{position:absolute;z-index:4;top:50%;display:grid;width:44px;height:44px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;color:#fff;background:rgba(11,15,43,.78);box-shadow:0 8px 24px rgba(5,15,45,.25);font-size:1.8rem;cursor:pointer;transform:translateY(-50%)}.wm-dialog__prev{left:14px}.wm-dialog__next{right:14px}.wm-dialog__nav:hover{background:var(--wm-blue)}.wm-dialog__nav[hidden]{display:none}@media(max-width:650px){.wm-dialog__nav{top:auto;bottom:16px;transform:none}.wm-dialog__prev{left:16px}.wm-dialog__next{right:16px}}

/* Accent dégradé Webmestro permanent + reflet lumineux au survol (ajout, sans dupliquer le hover existant) */
.wm-project{position:relative}
.wm-project:before{content:"";position:absolute;z-index:4;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--wm-blue),var(--wm-violet));opacity:.85;pointer-events:none}
.wm-project__preview:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.55) 48%,transparent 64%);transform:translateX(-120%) skewX(-12deg);transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .25s ease}
.wm-project__preview .wm-view{z-index:3}
.wm-project:hover .wm-project__preview:after,.wm-project__preview:focus-visible:after{opacity:1;transform:translateX(120%) skewX(-12deg)}
@media(prefers-reduced-motion:reduce){
  .wm-project__preview:after{transition:none;opacity:0;transform:translateX(-120%) skewX(-12deg)}
  .wm-project:hover .wm-project__preview:after,.wm-project__preview:focus-visible:after{opacity:0;transform:translateX(-120%) skewX(-12deg)}
}
