:root{--bg-color:#0f172a;--card-bg:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--accent-color:#38bdf8;--accent-hover:#0284c7}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);flex-direction:column;min-height:100vh;font-family:Inter,sans-serif;line-height:1.6;display:flex}.container{flex-grow:1;justify-content:center;align-items:center;padding:2rem;display:flex}.profile-card{background-color:var(--card-bg);border:1px solid #ffffff0d;border-radius:16px;width:100%;max-width:800px;padding:4rem 3rem;box-shadow:0 25px 50px -12px #00000080}.header-section{align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.portrait{object-fit:cover;border:3px solid var(--accent-color);border-radius:50%;width:120px;height:120px}.titles h1{letter-spacing:-.05em;margin-bottom:.5rem;font-size:2.5rem;font-weight:800}.titles h2{color:var(--accent-color);font-family:Fira Code,monospace;font-size:1rem;font-weight:500}.bio{color:var(--text-muted);margin-bottom:2rem;font-size:1.1rem}.bio strong{color:var(--text-main);font-weight:600}.tech-stack{flex-wrap:wrap;gap:.8rem;margin-bottom:3rem;display:flex}.tech-tag{color:var(--accent-color);background-color:#38bdf81a;border:1px solid #38bdf833;border-radius:9999px;padding:.4rem 1rem;font-family:Fira Code,monospace;font-size:.85rem}.links{flex-wrap:wrap;gap:1rem;display:flex}.btn{border-radius:8px;justify-content:center;align-items:center;gap:.45em;padding:.8rem 1.5rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.btn svg{flex-shrink:0}.btn-primary{background-color:var(--text-main);color:var(--bg-color)}.btn-primary:hover{background-color:var(--accent-color);color:#fff}.btn-outline{color:var(--text-main);border:1px solid var(--text-muted);background-color:#0000}.btn-outline:hover{border-color:var(--accent-color);color:var(--accent-color)}.status-badge{color:var(--text-muted);background-color:#ffffff1a;border-radius:6px;align-items:center;gap:.5rem;width:fit-content;margin-bottom:2rem;padding:.3rem .8rem;font-size:.85rem;display:flex}.status-dot{background-color:#22c55e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 10px #22c55e}.testimonial{border-left:4px solid var(--accent-color);background-color:#38bdf80f;border-radius:0 12px 12px 0;margin:0 0 3rem;padding:1.5rem 1.75rem;position:relative}.testimonial p{color:var(--text-main);font-size:1.05rem;font-style:italic}.testimonial cite{color:var(--text-muted);margin-top:1rem;font-size:.9rem;font-style:normal;display:block}.testimonial cite strong{color:var(--accent-color);font-weight:600}.section{margin-bottom:2.5rem}.section-title{letter-spacing:-.02em;align-items:center;gap:.6rem;margin-bottom:1.25rem;font-size:1.3rem;font-weight:800;display:flex}.project-card{background-color:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;padding:1.75rem}.project-card h4{margin-bottom:.4rem;font-size:1.15rem;font-weight:700}.project-meta{color:var(--accent-color);margin-bottom:1rem;font-family:Fira Code,monospace;font-size:.8rem}.project-card p{color:var(--text-muted);margin-bottom:1rem}.feature-list{margin-bottom:1.25rem;list-style:none}.feature-list li{color:var(--text-muted);margin-bottom:.6rem;padding-left:1.5rem;font-size:.95rem;position:relative}.feature-list li:before{content:"▹";color:var(--accent-color);position:absolute;left:0}.feature-list strong{color:var(--text-main);font-weight:600}.stack-inline{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.stack-inline span{color:var(--accent-color);background-color:#38bdf814;border-radius:6px;padding:.25rem .7rem;font-family:Fira Code,monospace;font-size:.75rem}.project-links{flex-direction:column;gap:.6rem;margin-bottom:.25rem;display:flex}.project-links a{color:var(--text-main);font-size:.95rem;font-weight:600;text-decoration:none;transition:color .2s}.project-links a:hover{color:var(--accent-color)}.project-links span.repo-note{color:var(--text-muted);font-size:.9rem;font-weight:400}.divider{border:none;border-top:1px solid #ffffff0f;margin:0 0 2.5rem}.reviews-swiper{--swiper-theme-color:var(--accent-color);--swiper-navigation-size:22px;padding:.25rem 0 2.75rem}.reviews-swiper .swiper-slide{height:auto}.review-card{background-color:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;flex-direction:column;height:100%;padding:1.5rem 1.6rem;display:flex}.review-stars{color:#fbbf24;letter-spacing:.1em;margin-bottom:.8rem;font-size:.95rem}.review-badge{color:var(--accent-color);background-color:#38bdf81a;border:1px solid #38bdf840;border-radius:9999px;align-items:center;gap:.35em;margin-bottom:1.15rem;padding:.2rem .6rem;font-family:Fira Code,monospace;font-size:.72rem;display:inline-flex}.review-badge-icon{color:#fbbf24}.review-text{color:var(--text-main);flex-grow:1;margin-bottom:1.2rem;font-size:1rem;font-style:italic;line-height:1.55}.review-author{color:var(--text-muted);border-top:1px solid #ffffff0f;align-items:center;gap:.75rem;padding-top:.9rem;font-size:.9rem;display:flex}.review-avatar{object-fit:cover;border:2px solid #38bdf859;border-radius:50%;flex-shrink:0;width:44px;height:44px}.review-avatar--initials{color:var(--accent-color);background-color:#38bdf826;justify-content:center;align-items:center;font-family:Fira Code,monospace;font-size:.95rem;font-weight:600;display:flex}.review-author-info{flex-direction:column;min-width:0;display:flex}.review-name{color:var(--accent-color);font-weight:600;text-decoration:none}.review-name:hover{text-decoration:underline}.review-meta{opacity:.8;margin-top:.1rem;font-size:.78rem}.reviews-cta{margin-top:.5rem;font-size:.92rem}.reviews-cta a{color:var(--accent-color);font-weight:600;text-decoration:none}.reviews-cta a:hover{text-decoration:underline}@media (width<=768px){.header-section{text-align:center;flex-direction:column}.portrait{width:148px;height:148px}.tech-stack{justify-content:center}.links{flex-direction:column;align-items:center;gap:.75rem}.links .btn{width:100%;max-width:320px}.section-title{text-align:center;justify-content:center}.titles h1{font-size:2rem}.status-badge{margin:0 auto 2rem}}@media print{@page{size:A4;margin:1.2cm 1.5cm}html{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{color:#1e293b;background-color:#0000;font-size:11pt;line-height:1.45;flex-direction:unset!important;min-height:0!important;display:block!important}.container{padding:0;align-items:unset!important;justify-content:unset!important;flex-grow:0!important;min-height:0!important;display:block!important}.profile-card{max-width:100%;box-shadow:none;background-color:#0000;border:none;padding:0}.header-section{align-items:center;gap:1.2em;margin-bottom:1.5em}.portrait{border:2px solid #0284c7;width:92px;height:92px}.titles h1{color:#000;margin-bottom:.1em;font-size:24pt}.titles h2{color:#0284c7;font-size:11pt;font-weight:600}.status-badge{display:none}.bio{color:#334155;margin-bottom:1.5em;font-size:11pt}.bio strong,.bio b,.feature-list strong,.feature-list b{color:#000;font-weight:700}.tech-stack{gap:.5em;margin-bottom:1.5em}.tech-tag{color:#334155;background-color:#0000;border:1px solid #94a3b8;border-radius:4px;padding:.3em .8em;font-size:9pt}.testimonial{box-shadow:none;break-inside:avoid;background-color:#0000;border:1px solid #cbd5e1;border-left:3px solid #0284c7;border-radius:0 8px 8px 0;margin-bottom:1.5em;padding:1em 1.2em}.testimonial p{color:#1e293b;font-size:11pt}.testimonial cite{color:#64748b;font-size:9.5pt}.testimonial cite strong{color:#0f172a}.testimonial cite a{color:#64748b;text-decoration:none}.testimonial cite a:after{content:" (" attr(href) ")";color:#94a3b8;font-size:8.5pt}.links{flex-direction:column;gap:.3em;margin-bottom:2em;display:flex}.btn{color:#000;text-align:left;background:0 0;border:none;margin-bottom:.4em;padding:0;font-size:10.5pt;font-weight:600;text-decoration:none;display:block}.btn svg{display:none}.btn:after{content:"  →  " attr(href);color:#64748b;font-family:Fira Code,monospace;font-size:8.5pt;font-weight:400}.divider{display:none}.section{break-inside:avoid;margin-bottom:1.2em}.section-title{color:#000;margin-bottom:.8em;font-size:14pt}.project-card{box-shadow:none;background-color:#0000;border:1px solid #cbd5e1;border-radius:6px;padding:1em 1.2em}.project-card h4{color:#000;margin-bottom:.2em;font-size:12pt}.project-meta{color:#0284c7;margin-bottom:.6em;font-size:9.5pt}.project-card>p{color:#334155;margin-bottom:.8em;font-size:11pt}.feature-list{margin-bottom:.8em}.feature-list li{color:#334155;margin-bottom:.3em;font-size:10.5pt}.feature-list li:before{color:#0284c7}.stack-inline{gap:.4em;margin-top:.8em}.stack-inline span{color:#475569;background-color:#0000;border:1px solid #cbd5e1;border-radius:4px;padding:.2em .5em;font-size:8.5pt}.project-links{flex-direction:column;gap:.3em;display:flex}.project-links a{color:#000;font-size:10.5pt;font-weight:600;text-decoration:none;display:block}.project-links a:after{content:"  →  " attr(href);color:#64748b;font-family:Fira Code,monospace;font-size:8.5pt;font-weight:400}.repo-note{display:none}footer{border-top:1px solid #cbd5e1;padding-top:.5rem;font-size:8.5pt;break-before:avoid!important;color:#64748b!important;margin-top:4rem!important;display:block!important}footer:after{content:" • damien.becherini.fr";color:#0284c7;font-weight:600}.section:last-of-type{padding-bottom:0}.reviews{display:none!important}}