.projects-page[data-v-7b82c0ec]{padding-top:80px;overflow:visible}.projects-hero[data-v-7b82c0ec]{padding:var(--space-xl) 0;background:linear-gradient(180deg,var(--surface) 0%,var(--bg) 100%)}.projects-hero__content[data-v-7b82c0ec]{max-width:700px}.status-badge[data-v-7b82c0ec]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--primary-soft);border:1px solid rgba(42,191,255,.2);border-radius:2rem;font-family:JetBrains Mono,monospace;font-size:.55rem;color:var(--primary);letter-spacing:.15em;margin-bottom:var(--space-md)}.status-badge__dot[data-v-7b82c0ec]{width:6px;height:6px;background:var(--primary);border-radius:50%;animation:pulse-slow 2s infinite}.projects-hero__title[data-v-7b82c0ec]{font-size:clamp(2.5rem,7vw,4rem);font-weight:700;line-height:1.1;margin-bottom:var(--space-md)}.projects-hero__desc[data-v-7b82c0ec]{font-size:1.1rem;color:var(--text-muted);line-height:1.7;margin-bottom:var(--space-lg)}.projects-stats[data-v-7b82c0ec]{display:flex;gap:2rem}.projects-stat[data-v-7b82c0ec]{display:flex;flex-direction:column}.projects-stat__value[data-v-7b82c0ec]{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700;color:var(--primary)}.projects-stat__label[data-v-7b82c0ec]{font-size:.8rem;color:var(--text-dark)}.projects-filters[data-v-7b82c0ec]{padding:var(--space-md) 0;border-bottom:1px solid var(--border);background:var(--bg)}.filters-wrapper[data-v-7b82c0ec]{display:flex;flex-wrap:wrap;gap:.5rem}.filter-btn[data-v-7b82c0ec]{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:transparent;border:1px solid var(--border);border-radius:2rem;font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.filter-btn[data-v-7b82c0ec]:hover{border-color:var(--primary);color:var(--primary)}.filter-btn.active[data-v-7b82c0ec]{background:var(--primary);border-color:var(--primary);color:var(--bg)}.filter-count[data-v-7b82c0ec]{padding:.15rem .4rem;background:#ffffff1a;border-radius:1rem;font-size:.65rem}.filter-btn.active .filter-count[data-v-7b82c0ec]{background:#0003}.projects-grid-section[data-v-7b82c0ec]{padding:var(--space-xl) 0}.projects-grid[data-v-7b82c0ec]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-md)}.project-card[data-v-7b82c0ec]{padding:1.5rem;border-radius:1rem;border:1px solid var(--border);cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column}.project-card[data-v-7b82c0ec]:hover{border-color:var(--rule-strong);transform:translateY(-4px);box-shadow:var(--shadow-md)}.project-card__header[data-v-7b82c0ec]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-card__icon[data-v-7b82c0ec]{font-size:2.5rem}.project-card__badges[data-v-7b82c0ec]{display:flex;gap:.5rem}.badge[data-v-7b82c0ec]{padding:.25rem .6rem;border-radius:2rem;font-family:JetBrains Mono,monospace;font-size:.6rem;background:var(--surface);border:1px solid var(--rule);color:var(--text-muted)}.badge--featured[data-v-7b82c0ec]{background:var(--surface);border-color:var(--rule-strong);color:var(--ink);font-weight:700}.badge--symfony[data-v-7b82c0ec],.badge--vue[data-v-7b82c0ec],.badge--wordpress[data-v-7b82c0ec],.badge--gaming[data-v-7b82c0ec],.badge--fullstack[data-v-7b82c0ec]{background:var(--surface);border-color:var(--rule);color:var(--ink-soft)}.project-card__content[data-v-7b82c0ec]{flex:1;margin-bottom:1rem}.project-card__title[data-v-7b82c0ec]{font-size:1.25rem;margin-bottom:.5rem}.project-card__desc[data-v-7b82c0ec]{font-size:.85rem;color:var(--text-muted);line-height:1.6}.project-card__stack[data-v-7b82c0ec]{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.tech-tag[data-v-7b82c0ec]{padding:.25rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.6rem;color:var(--text-dark)}.tech-tag--more[data-v-7b82c0ec]{background:var(--surface);border-color:var(--rule);color:var(--ink-soft)}.project-card__footer[data-v-7b82c0ec]{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border)}.project-card__date[data-v-7b82c0ec]{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--text-dark)}.project-card__action[data-v-7b82c0ec]{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--ink-soft)}.project-modal[data-v-7b82c0ec]{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:1rem;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.project-modal__content[data-v-7b82c0ec]{position:relative;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;padding:2rem;border-radius:1rem;border:1px solid var(--border);background:var(--bg);cursor:default}.project-modal__close[data-v-7b82c0ec]{position:absolute;top:1rem;right:1rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .2s;z-index:10}.project-modal__close[data-v-7b82c0ec]:hover{border-color:var(--primary);color:var(--primary)}.project-modal__header[data-v-7b82c0ec]{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.project-modal__icon[data-v-7b82c0ec]{font-size:3rem}.project-modal__title[data-v-7b82c0ec]{font-size:1.75rem;margin-bottom:.25rem}.project-modal__category[data-v-7b82c0ec]{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--primary)}.project-modal__desc[data-v-7b82c0ec]{font-size:1rem;color:var(--text-muted);line-height:1.7;margin-bottom:1.5rem}.project-modal__features[data-v-7b82c0ec],.project-modal__stack[data-v-7b82c0ec],.project-modal__learnings[data-v-7b82c0ec]{margin-bottom:1.5rem}.project-modal__features h3[data-v-7b82c0ec],.project-modal__stack h3[data-v-7b82c0ec],.project-modal__learnings h3[data-v-7b82c0ec]{font-size:.85rem;color:var(--primary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.project-modal__features ul[data-v-7b82c0ec]{list-style:none;padding:0;margin:0}.project-modal__features li[data-v-7b82c0ec]{position:relative;padding:.5rem 0 .5rem 1.5rem;font-size:.9rem;color:var(--text-muted)}.project-modal__features li[data-v-7b82c0ec]:before{content:"→";position:absolute;left:0;color:var(--primary)}.project-modal__tags[data-v-7b82c0ec]{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag--large[data-v-7b82c0ec]{padding:.4rem .75rem;font-size:.7rem}.project-modal__learnings p[data-v-7b82c0ec]{font-size:.9rem;color:var(--text-muted);line-height:1.6;font-style:italic}.project-modal__links[data-v-7b82c0ec]{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:1.5rem;border-top:1px solid var(--border)}.project-modal__link[data-v-7b82c0ec]{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-muted);text-decoration:none;transition:all .2s}.project-modal__link[data-v-7b82c0ec]:hover{border-color:var(--primary);color:var(--primary)}.project-modal__link--primary[data-v-7b82c0ec]{background:var(--primary);border-color:var(--primary);color:var(--bg)}.project-modal__link--primary[data-v-7b82c0ec]:hover{background:var(--primary-dark);color:var(--bg)}.projects-cta[data-v-7b82c0ec]{padding:var(--space-xl) 0}.projects-cta__box[data-v-7b82c0ec]{display:flex;justify-content:space-between;align-items:center;padding:2.5rem;border-radius:1rem;border:1px solid var(--border)}.projects-cta__content h2[data-v-7b82c0ec]{font-size:1.5rem;margin-bottom:.5rem}.projects-cta__content p[data-v-7b82c0ec]{color:var(--text-muted)}.projects-cta__btn[data-v-7b82c0ec]{padding:1rem 2rem;background:var(--primary);color:var(--bg);font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;text-decoration:none;border-radius:.5rem;transition:all .2s}.projects-cta__btn[data-v-7b82c0ec]:hover{background:var(--primary-dark);box-shadow:0 0 20px #2abfff66}.projects-enter-active[data-v-7b82c0ec],.projects-leave-active[data-v-7b82c0ec]{transition:all .3s ease}.projects-enter-from[data-v-7b82c0ec],.projects-leave-to[data-v-7b82c0ec]{opacity:0;transform:translateY(20px)}.modal-enter-active[data-v-7b82c0ec],.modal-leave-active[data-v-7b82c0ec]{transition:opacity .3s ease}.modal-enter-active .project-modal__content[data-v-7b82c0ec],.modal-leave-active .project-modal__content[data-v-7b82c0ec]{transition:transform .3s ease}.modal-enter-from[data-v-7b82c0ec],.modal-leave-to[data-v-7b82c0ec]{opacity:0}.modal-enter-from .project-modal__content[data-v-7b82c0ec],.modal-leave-to .project-modal__content[data-v-7b82c0ec]{transform:scale(.95) translateY(20px)}@media(max-width:768px){.projects-stats[data-v-7b82c0ec]{gap:1.5rem}.projects-stat__value[data-v-7b82c0ec]{font-size:1.5rem}.projects-grid[data-v-7b82c0ec]{grid-template-columns:1fr}.projects-cta__box[data-v-7b82c0ec]{flex-direction:column;text-align:center;gap:1.5rem}.project-modal__header[data-v-7b82c0ec]{flex-direction:column;text-align:center}}.project-card__auto[data-v-7b82c0ec]{margin:.5rem 0 0;font-size:.82rem;line-height:1.55;color:var(--text-muted)}.project-card__auto-tag[data-v-7b82c0ec]{display:inline-block;margin-right:.4rem;padding:.05rem .45rem;border:1px solid var(--border-hover);border-radius:999px;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--primary-light)}.project-card[role=button][data-v-7b82c0ec]:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.preuve-etapes[data-v-7b82c0ec]{display:grid;gap:.9rem;margin:1.25rem 0 1.5rem}.preuve-etape[data-v-7b82c0ec]{padding:.9rem 1rem;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;background:#0000002e}.preuve-etape h3[data-v-7b82c0ec]{margin:0 0 .4rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary-light)}.preuve-etape p[data-v-7b82c0ec]{margin:0;font-size:.93rem;line-height:1.6;color:var(--text-muted)}.preuve-etape__note[data-v-7b82c0ec]{margin-top:.55rem!important;font-size:.78rem!important}.preuve-etape__absent[data-v-7b82c0ec]{font-style:italic}.preuve-etape--releve[data-v-7b82c0ec]{border-left-color:var(--action)}.preuve-etape--releve h3[data-v-7b82c0ec]{color:var(--action)}.preuve-releve[data-v-7b82c0ec]{margin:.4rem 0 0;padding-left:1.1rem;font-size:.9rem;line-height:1.7;color:var(--text-muted)}@media(max-width:640px){.preuve-etape[data-v-7b82c0ec]{padding:.8rem .85rem}}
