body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{background:radial-gradient(circle at 20% 20%,#181b35,#0b1021 55%);color:#f2f6ff;font-family:Inter,Arial,sans-serif;font-size:15px;margin:0;overflow:hidden;overscroll-behavior:none;transition:background .9s ease}html{height:100%;scroll-behavior:smooth}:root{--nav-height:72px}body,html{min-height:100%}[data-theme=hero]{background:radial-gradient(circle at 25% 20%,#1f2b55 0,#0e1027 50%,#080816 100%)}[data-theme=about]{background:linear-gradient(145deg,#0f172a,#0c1021 42%,#0a0a18)}[data-theme=skills]{background:radial-gradient(circle at 80% 10%,#5783ff1f,#0000 32%),linear-gradient(155deg,#0a0c1b,#0b1026 45%,#05060f)}[data-theme=projects]{background:radial-gradient(circle at 20% 20%,#ffffff14,#0000 38%),radial-gradient(circle at 80% 70%,#7659ff29,#0000 45%),linear-gradient(160deg,#070914,#0b0f1f 45%,#0a0a13)}[data-theme=contact]{background:radial-gradient(circle at 65% 22%,#78bdff29,#0000 46%),radial-gradient(circle at 18% 78%,#ffc7921f,#0000 45%),linear-gradient(150deg,#090b17,#0a0d1b 45%,#070813)}.app-shell{display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.section-rail{grid-gap:12px;display:grid;gap:12px;position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:1200}.rail-dot{align-items:center;background:#ffffff59;border:1px solid #ffffff59;border-radius:50%;cursor:pointer;display:inline-flex;height:12px;justify-content:center;position:relative;text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease;width:12px}.rail-dot:hover{background:#ffffff8c;border-color:#ffffffa6;transform:scale(1.1)}.rail-dot--active{background:#b0c5ff;border-color:#d9e4ff;box-shadow:0 0 0 6px #b0c5ff29;transform:scale(1.2)}.rail-dot__label{background:#0000008c;border-radius:10px;color:#f5f7ff;font-size:.85rem;letter-spacing:.2px;opacity:0;padding:6px 10px;pointer-events:none;position:absolute;right:140%;transform:translateY(2px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.rail-dot--active .rail-dot__label,.rail-dot:hover .rail-dot__label{opacity:1;transform:translateY(0)}.navbar{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#070812b8;border-bottom:1px solid #ffffff1a;box-shadow:0 12px 32px #0000005c;display:flex;height:72px;height:var(--nav-height);justify-content:space-between;left:0;padding:18px 26px;position:fixed;right:0;top:0;transition:opacity .35s ease,transform .35s ease;z-index:1000}body:not([data-active-section=accueil]) .navbar{opacity:0;pointer-events:none;transform:translateY(-55%)}.nav-brand{font-size:1.05rem;font-weight:800;letter-spacing:.6px}.nav-links{align-items:center;display:flex;gap:18px}.nav-button,.nav-link{background:none;border:none;color:#f5f7ff;cursor:pointer;font:inherit;font-weight:600;letter-spacing:.3px;padding:0;position:relative;text-decoration:none;transition:opacity .2s ease,transform .2s ease}.nav-button:after,.nav-link:after{background:#f5f7ff;bottom:-6px;content:"";height:2px;left:0;opacity:.9;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .2s ease;width:100%}.nav-button:hover,.nav-link:hover{opacity:.9;transform:translateY(-1px)}.nav-button:hover:after,.nav-link:hover:after{transform:scaleX(1)}.nav-dropdown{position:relative}.dropdown-menu{grid-gap:8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0e111ef2;border:1px solid #ffffff1f;border-radius:12px;box-shadow:0 14px 40px #00000073;display:grid;gap:8px;left:50%;min-width:200px;padding:10px;position:absolute;top:calc(100% + 10px);transform:translateX(-50%)}.dropdown-menu a{border-radius:10px;color:#f5f7ff;padding:10px 12px;text-decoration:none;transition:background .15s ease,transform .15s ease}.dropdown-menu a:hover{background:#ffffff1a;transform:translateY(-1px)}.content{background:inherit;flex:1 1;height:100vh;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-scroll-snap-type:y mandatory}.section{align-items:center;box-sizing:border-box;display:flex;height:100vh;isolation:isolate;justify-content:center;min-height:100vh;padding:104px 10vw 96px;padding:calc(var(--nav-height) + 32px) 10vw 96px;position:relative;scroll-snap-align:start;scroll-snap-stop:always;transition:filter .5s ease,box-shadow .5s ease;width:100%}body:not([data-active-section=accueil]) .section{padding:32px 10vw 96px}.section:after{background:radial-gradient(circle at 50% 20%,#ffffff0d,#0000 50%);content:"";inset:0;opacity:.6;pointer-events:none;position:absolute;z-index:0}.section-content{align-items:center;display:flex;height:100%;max-width:960px;position:relative;width:100%;z-index:1}.section-hero{background:radial-gradient(circle at 30% 25%,#5e81ff2e,#0000 42%),linear-gradient(150deg,#0d1026,#080a17)}.section-about{background:radial-gradient(circle at 80% 30%,#ffa07a29,#0000 38%),linear-gradient(135deg,#0b0f1e,#0a0c19 45%,#080812)}.section-skills{background:radial-gradient(circle at 20% 20%,#56d3ff24,#0000 45%),radial-gradient(circle at 82% 60%,#8a76ff29,#0000 50%),linear-gradient(160deg,#080a18,#070916 55%,#060713)}.section-projects{background:radial-gradient(circle at 18% 65%,#ffe0921f,#0000 45%),radial-gradient(circle at 75% 20%,#65a0ff33,#0000 52%),linear-gradient(145deg,#0a0c18,#080713 42%,#07060f)}.section-contact{background:radial-gradient(circle at 70% 20%,#78bdff29,#0000 46%),radial-gradient(circle at 18% 78%,#ffc7921f,#0000 45%),linear-gradient(150deg,#090b17,#0a0d1b 45%,#070813)}.section--muted{filter:saturate(.7) brightness(.9)}.section--focused{box-shadow:0 32px 80px #00000061;filter:saturate(1.1) brightness(1.02)}.hero{text-align:center}.hero-typed{font-family:Fira Code,Roboto Mono,Consolas,monospace;font-size:clamp(1.8rem,4vw,3.4rem);line-height:1.25;margin:0;min-height:1.6em}.hero-caret{animation:caretBlink 1s steps(2) infinite;background:#f5f7ff;border-radius:2px;display:inline-block;height:1em;margin-left:6px;vertical-align:bottom;width:7px}.section-heading{font-size:clamp(1.4rem,2.5vw,2.2rem);letter-spacing:.4px;margin:0 0 16px}.section-body{font-size:1rem;line-height:1.6;margin:0;opacity:.92}.skills{grid-gap:30px;display:grid;gap:30px}.skills-header{grid-gap:8px;display:grid;gap:8px}.skills-marquee{mask-image:linear-gradient(90deg,#0000,#000 15%,#000 85%,#0000);-webkit-mask-image:linear-gradient(90deg,#0000,#000 15%,#000 85%,#0000);overflow:hidden;position:relative}.skills-track{animation:marquee 22s linear infinite;display:flex;gap:16px;padding:12px 4px;width:-webkit-max-content;width:max-content}.skill-chip{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:16px;box-shadow:0 10px 28px #00000047;display:inline-flex;gap:10px;min-width:140px;padding:12px 18px}.skill-chip img{filter:drop-shadow(0 4px 10px rgba(0,0,0,.35));height:38px;object-fit:contain;width:38px}.skill-chip span{font-weight:600;letter-spacing:.2px}.projects{grid-gap:24px;display:grid;gap:24px;grid-template-rows:auto 1fr;height:100%;min-height:0}.section-content.projects{align-items:stretch}.projects-header{grid-gap:8px;display:grid;gap:8px}.projects-panel{grid-gap:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;box-shadow:0 20px 55px #00000059;display:grid;gap:16px;grid-template-rows:auto 1fr;height:100%;min-height:0;padding:20px 22px 18px}.projects-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));min-height:0;overflow-y:auto;padding-bottom:8px;padding-right:6px;padding-top:6px}.projects-grid::-webkit-scrollbar{width:8px}.projects-grid::-webkit-scrollbar-thumb{background:#fff3;border-radius:999px}.project-card{background:linear-gradient(140deg,#ffffff3d,#ffffff05);border-radius:18px;box-shadow:0 18px 42px #00000059;color:inherit;display:flex;flex-direction:column;isolation:isolate;max-height:420px;overflow:hidden;padding:1px;position:relative;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:hover{box-shadow:0 24px 55px #00000073;transform:translateY(-6px)}.project-card__glass{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff0f;border-radius:18px;inset:0;position:absolute;z-index:0}.project-card__content{grid-gap:10px;display:grid;flex:1 1;gap:10px;max-height:400px;min-height:0;overflow-y:auto;padding:18px 8px 10px 20px;position:relative;scrollbar-width:none;z-index:1}.project-card__content::-webkit-scrollbar{height:0;width:0}.project-card__thumb{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;display:grid;height:160px;margin-top:6px;overflow:hidden;place-items:center;width:100%}.project-card__thumb img{display:block;height:100%;object-fit:cover;width:100%}.project-card__header h3{font-size:1.2rem;letter-spacing:.3px;margin:0}.project-card__tagline{color:#f2f6ffcc;display:block;font-size:.95rem;margin-top:2px}.project-card__desc{color:#f2f6ffe6;line-height:1.5;margin:0}.project-card__stack{display:flex;flex-wrap:wrap;gap:8px}.project-card__stack span{background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;font-size:.9rem;padding:6px 10px}.project-card__cta{color:#b0c5ff;font-weight:700;letter-spacing:.2px;margin-top:4px}.about{grid-gap:clamp(20px,4vw,36px);align-items:center;display:grid;gap:clamp(20px,4vw,36px);grid-template-columns:minmax(240px,320px) 1fr}.about-media img{border-radius:14px;box-shadow:0 18px 50px #00000061;height:auto;object-fit:cover;transition:transform .45s ease,filter .45s ease;width:100%}.about-media{border-radius:14px;overflow:hidden;position:relative}.about-media:hover img{filter:saturate(1.05);transform:scale(1.05)}.about-text{grid-gap:12px;display:grid;gap:12px}.about-badges{align-items:center;display:flex;gap:12px}.about-badges img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));height:48px;object-fit:contain;width:auto}.contact{grid-gap:20px;display:grid;gap:20px;grid-template-rows:auto 1fr;height:100%;min-height:0}.contact-header{grid-gap:10px;display:grid;gap:10px}.contact-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:minmax(280px,1fr) minmax(260px,320px);height:100%;min-height:0}.contact-form,.contact-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;box-shadow:0 16px 44px #00000052;box-sizing:border-box;padding:16px 18px}.contact-form{grid-gap:14px;align-content:start;display:grid;gap:14px;overflow:hidden;width:100%}.contact-field{grid-gap:8px;display:grid;font-size:.95rem;gap:8px}.contact-field span{color:#f2f6ffe6;font-weight:600}.contact-field input,.contact-field textarea{background:#00000059;border:1px solid #ffffff1a;border-radius:10px;box-sizing:border-box;color:#f5f7ff;font-size:.95rem;max-width:100%;outline:none;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.contact-field textarea{max-height:200px;min-height:110px;resize:vertical}.contact-field input:focus,.contact-field textarea:focus{border-color:#b0c5ffcc;box-shadow:0 0 0 3px #b0c5ff2e}.contact-submit{align-items:center;background:linear-gradient(135deg,#6ea8ff,#4d7bff);border:none;border-radius:12px;color:#060713;cursor:pointer;display:inline-flex;font-weight:700;gap:6px;justify-content:center;min-height:44px;padding:12px 14px;transition:transform .15s ease,box-shadow .15s ease}.contact-submit:hover{box-shadow:0 12px 28px #00000059;transform:translateY(-1px)}.contact-info{grid-gap:12px;align-content:start;display:grid;gap:12px}.contact-label{color:#f2f6ffd1;display:block;font-weight:700;margin-bottom:4px}.contact-info a{color:#c8d6ff;text-decoration:none;transition:color .15s ease}.contact-info a:hover{color:#fff}.contact-links{grid-gap:8px;display:grid;gap:8px}.contact-link{align-items:center;display:inline-flex;gap:8px}.contact-link img{filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));height:20px;object-fit:contain;width:20px}.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}.revealed{opacity:1;transform:translateY(0)}@media (max-width:900px){.about{grid-template-columns:1fr;text-align:center}.about-text{text-align:left}}@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}@media (max-width:640px){.navbar{padding:14px 18px}.section{padding:110px 20px 80px}}@keyframes caretBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.footer{background:#060710c7;border-top:1px solid #ffffff1f;bottom:0;box-sizing:border-box;display:none;flex-shrink:0;font-size:.95rem;left:0;padding:18px 24px;position:fixed;right:0;text-align:center;z-index:900}
/*# sourceMappingURL=main.1da98d15.css.map*/