:root{--bg: #1c232d;--bg2: #1d2533;--panel: rgba(255, 255, 255, .78);--panel-2: rgba(255, 255, 255, .88);--text: #F6F6F6;--muted: rgba(11, 18, 32, .62);--hairline: rgba(11, 18, 32, .1);--shadow: 0 18px 60px rgba(11, 18, 32, .1);--radius: 18px;--radius-sm: 12px;--accent: #6d28d9;--accent2: #0284c7;--focus: rgba(59, 130, 246, .45);color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1.55;font-weight:450;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--text);background:#0b1220}img,svg,video,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}::selection{background:#6d28d92e}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}.app{min-height:100vh}.container{width:100%;margin:0 auto;padding:0 4em}.skip{position:absolute;left:12px;top:12px;padding:10px 12px;border-radius:12px;background:#0b1220db;border:1px solid var(--hairline);box-shadow:var(--shadow);transform:translateY(-140%);transition:transform .18s ease;z-index:1000}.skip:focus{transform:translateY(0)}.siteHeader{position:sticky;top:0;z-index:100;padding-top:18px}.navShell{display:flex;justify-content:center;align-items:center;gap:20px;min-height:74px;padding:12px 18px;border-radius:24px;background:#0a0f1894;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 50px #00000047,inset 0 1px #ffffff0a}.brand{display:inline-flex;align-items:center;gap:12px;min-width:0;font-weight:700;letter-spacing:-.02em;color:#f8fafc}.brandText{white-space:nowrap}.brandDot{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,#8b5cf6,#38bdf8);box-shadow:0 0 0 6px #8b5cf624,0 0 24px #38bdf840}.navLinks{display:flex;justify-content:center;align-items:center;gap:10px;color:#e2e8f0d1;font-size:15px}.navLinks a{position:relative;padding:10px 14px;border-radius:14px;border:1px solid transparent;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}.navLinks a:hover{color:#fff;background:#ffffff0d;border-color:#ffffff14;transform:translateY(-1px)}.navLinks a:after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:999px;background:linear-gradient(90deg,#8b5cf6,#38bdf8);transform:scaleX(0);transform-origin:center;transition:transform .18s ease;opacity:.9}.navLinks a:hover:after{transform:scaleX(1)}.navCta{min-height:48px;padding-inline:18px;white-space:nowrap;box-shadow:0 10px 24px #6d28d93d,0 4px 18px #0284c729}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(11,18,32,.12);background:#fff9;color:var(--muted);font-size:13px;white-space:nowrap}.pillDot{width:7px;height:7px;border-radius:999px;background:#0284c7f2;box-shadow:0 0 0 4px #0284c724}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 14px;border-radius:14px;border:1px solid rgba(11,18,32,.12);background:#ffffffa8;color:var(--text);font-weight:620;letter-spacing:-.01em;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px);background:#ffffffd1;border-color:#0b12202e}.btn:active{transform:translateY(0)}.btnPrimary{color:#fff;border:1px solid rgba(167,139,250,.28);background:linear-gradient(135deg,#6d28d9f2,#0284c7e0)}.btnPrimary:hover{background:linear-gradient(135deg,#7c3aed,#0ea5e9f0);border-color:#ffffff1f}.hero{display:grid;grid-template-columns:1.35fr .65fr;gap:26px;align-items:start;padding-top:22px}.hero:before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(120,119,198,.35) 0%,rgba(120,119,198,.15) 30%,transparent 70%);right:10%;top:50%;transform:translateY(-50%);filter:blur(60px);z-index:0}.heroTitle{margin:10px 0;letter-spacing:-.04em;line-height:1.05;font-size:clamp(38px,5.2vw,64px)}.gradientText{background:linear-gradient(135deg,var(--text),rgba(255,255,255,.75));-webkit-background-clip:text;background-clip:text;color:transparent}.heroKicker{color:var(--muted);font-weight:600;letter-spacing:-.01em}.heroLead{margin:12px 0 18px;color:var(--muted);font-size:16px;max-width:62ch}.heroCtas{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}.avatarRow{display:flex;align-items:center;gap:12px;padding:10px 10px 12px;border-radius:16px;background:#ffffff8c;border:1px solid rgba(11,18,32,.1);margin-bottom:12px}.avatarWrap{width:50%;border-radius:50%;background:linear-gradient(135deg,#6d28d938,#0284c72e);border:1px solid rgba(11,18,32,.12);overflow:hidden;flex:0 0 auto}.avatar{width:50%;object-fit:cover;opacity:1;transition:opacity .16s ease}.avatarMeta{display:grid;gap:2px;min-width:0}.avatarName{font-weight:720;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatarRole{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{border-radius:var(--radius);border:1px solid rgba(11,18,32,.1);background:linear-gradient(180deg,var(--panel),rgba(255,255,255,.55));box-shadow:var(--shadow)}.heroSide{padding:18px}.heroSideTitle{margin:0 0 10px;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:#0b12209e}.kv{display:grid;grid-template-columns:1fr;gap:10px}.kvRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;background:#ffffff9e;border:1px solid rgba(11,18,32,.1)}.kvKey{color:#0f172a99;font-size:13px}.kvVal{font-weight:620;letter-spacing:-.01em;font-size:13px}.section{height:100vh;display:flex;flex-direction:column;justify-content:center}.sectionHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.h2{margin:0;letter-spacing:-.03em;font-size:24px}.sectionSub{margin:0;color:var(--muted);max-width:60ch;font-size:14px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.project{grid-column:span 6;padding:18px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.project:hover{transform:translateY(-2px);border-color:#ffffff38;background:linear-gradient(180deg,var(--panel-2),rgba(255,255,255,.03))}.projectTitle{margin:0 0 8px;letter-spacing:-.02em;color:#8289b1}.projectMedia{aspect-ratio:16 / 9;position:relative;overflow:hidden;background:#000;display:flex;justify-content:center}.projectMedia:before{content:"";position:absolute;inset:0;background:inherit;filter:blur(20px);transform:scale(1.2)}.projectVideo{position:relative;width:auto;height:100%;object-fit:contain}.projectDesc{margin:0 0 12px;color:var(--muted);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;list-style:none}.tag{padding:6px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.09);background:#ffffffe6;color:#0f172ac7;font-size:12px}.projectLinks{display:flex;flex-wrap:wrap;gap:10px}.mutedLink{color:#0b1220c2;font-weight:600;font-size:13px;padding:8px 10px;border-radius:12px;background:#ffffffa8;border:1px solid rgba(11,18,32,.12)}.mutedLink:hover{background:#ffffffd1;border-color:#0b12202e}.aboutGrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:56px;align-items:center}.about{padding:0;background:none;border:none;box-shadow:none}#apropos{height:100vh}.heroTitle{margin:0 0 18px;letter-spacing:-.05em;line-height:.98;font-size:clamp(48px,7vw,84px);color:#f8fafc}.p{margin:0;max-width:58ch;color:--text;font-size:18px;line-height:1.8}.aboutImageWrapper{position:relative;display:flex;justify-content:center}.aboutImageWrapper:before{content:"";position:absolute;inset:5%;background:radial-gradient(circle,rgba(99,102,241,.24),transparent 70%);filter:blur(42px);z-index:0}.aboutImage{position:relative;z-index:1;width:min(100%,620px);aspect-ratio:16 / 10;object-fit:cover;border-radius:44px;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px #00000061,0 0 50px #6366f124;transition:transform .35s ease,box-shadow .35s ease}.aboutImage:hover{transform:translateY(-6px);box-shadow:0 28px 70px #00000070,0 0 70px #6366f133}.sectionBg{height:110vh;margin-top:6em}.skillsHeader{margin-bottom:24px}.skillsSectionCard{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:32px;align-items:center;padding:32px;border-radius:28px;overflow:hidden;background-color:#c3c4c8;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 60px #00000047,inset 0 1px #ffffff08}.skillsSectionCard:before{content:"";position:absolute;width:320px;height:320px;top:-120px;right:-80px;background:radial-gradient(circle,#C3C4C8,transparent 70%);filter:blur(50px);pointer-events:none}.skillsSectionCard:after{content:"";position:absolute;width:260px;height:260px;bottom:-100px;left:-70px;background:radial-gradient(circle,#C3C4C8,transparent 70%);filter:blur(50px);pointer-events:none}.skillsSectionCard>*{position:relative;z-index:1}.skillsIntro{display:flex;flex-direction:column;gap:14px}.skillsEyebrow{display:inline-flex;align-self:flex-start;padding:8px 12px;border-radius:999px;background:#ebeced;border:1px solid rgba(255,255,255,.08);color:#2b3546;font-size:13px;font-weight:600}.skillsTitle{margin:0;font-size:clamp(26px,3vw,38px);line-height:1.1;letter-spacing:-.03em;color:#f8fafc;max-width:18ch}.skillsText{margin:0;max-width:56ch;color:#2b3546;font-size:16px;line-height:1.8}.skillsCloud{display:flex;flex-wrap:wrap;gap:14px;align-content:flex-start}.skillChip{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border-radius:999px;background:#0f172ae0;border:1px solid rgba(255,255,255,.08);color:#f8fafc;font-size:14px;font-weight:600;letter-spacing:-.01em;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.skillChip:hover{transform:translateY(-2px);background:#1e293beb;border-color:#6366f152;box-shadow:0 10px 24px #0003,0 0 20px #6366f11f}.badgeGrid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.badge{padding:8px 10px;border-radius:12px;background:#ffffffe6;border:1px solid rgba(15,23,42,.09);font-weight:600;font-size:13px}#contact{height:70vh;margin-top:5em}.projets{height:100vh;margin-top:8em}.contactCard{grid-column:span 12;padding:28px;position:relative;overflow:hidden}.contactCardSplit{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:28px;align-items:center}.contactCard:before{content:"";position:absolute;width:280px;height:280px;right:-60px;top:50%;transform:translateY(-50%);background:radial-gradient(circle,rgba(109,40,217,.16) 0%,rgba(2,132,199,.12) 35%,transparent 70%);filter:blur(24px);pointer-events:none}.contactLeft{display:flex;flex-direction:column;align-items:flex-start;gap:14px;position:relative;z-index:1}.contactBadge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(11,18,32,.1);background:#ffffffb3;color:var(--muted);font-size:13px;font-weight:600}.contactTitle{margin:0;letter-spacing:-.03em;line-height:1.05;font-size:clamp(28px,3vw,40px)}.contactMeta{margin:0;color:var(--muted);font-size:15px;line-height:1.7;max-width:58ch}.contactPoints{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.contactPoint{padding:8px 12px;border-radius:999px;background:#ffffffb8;border:1px solid rgba(11,18,32,.08);color:#0f172ac7;font-size:13px;font-weight:600}.contactActions{display:flex;flex-direction:column;gap:12px;align-items:stretch;justify-self:end;width:100%;max-width:340px;position:relative;z-index:1}.contactMainBtn{min-height:56px;font-size:15px}.contactSecondaryActions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btnSecondary{background:#1c2431;border:1px solid rgba(11,18,32,.1);color:var(--text)}.btnSecondary:hover{background:#ffffffe0;border-color:#0b122029;color:#1c2431}@media(max-width:860px){.contactCard{padding:22px}.contactCardSplit{grid-template-columns:1fr;gap:20px}.contactActions{justify-self:stretch;max-width:none}.contactSecondaryActions,.hero{grid-template-columns:1fr}.project,.about,.skills{grid-column:span 12}.navLinks{display:none}}@media(max-width:960px){.skillsSectionCard{grid-template-columns:1fr;gap:24px;padding:24px}.skillsTitle{max-width:none}}@media(max-width:640px){.skillsCloud{gap:10px}.skillChip{min-height:42px;padding:9px 14px;font-size:13px}.skillsText{font-size:15px}}.footer{display:flex;justify-content:center;width:50%;margin:0 auto;padding:26px 0 34px;color:#bdbfc3;font-size:13px}.footer-text{display:flex;justify-content:center}
