:root{color-scheme:dark;--bg: #0b0f1a;--surface: #111827;--surface-2: #162033;--text: #f8fafc;--muted: #a8b3c7;--border: #334155;--accent: #a82a51;--accent-strong: #c33b66;--secondary: #f8d66d;--terminal: #32ff7e;--shadow: #000000;--danger: #ff5c77;--radius: 4px;--step-1: 4px;--step-2: 8px;--step-3: 12px;--step-4: 16px;--step-5: 24px;--step-6: 32px;--step-7: 48px;--container: 1180px;--title-font: "Press Start 2P", monospace;--body-font: "Pixelify Sans", monospace, system-ui}[data-accent=terminal]{--accent: #148f52;--accent-strong: #32ff7e;--secondary: #f8d66d}[data-accent=purple]{--accent: #7c3aed;--accent-strong: #a78bfa;--secondary: #f8d66d}[data-accent=light],[data-theme=light]{color-scheme:light;--bg: #f4f1e8;--surface: #fffaf0;--surface-2: #ece6d3;--text: #101827;--muted: #445166;--border: #40506a;--accent: #8b1e3f;--accent-strong: #a82a51;--secondary: #765000;--terminal: #087a42;--shadow: #1f2937}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:linear-gradient(rgba(248,214,109,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(248,214,109,.025) 1px,transparent 1px),radial-gradient(circle at 18% 10%,rgba(168,42,81,.2),transparent 30%),radial-gradient(circle at 85% 20%,rgba(50,255,126,.09),transparent 28%),var(--bg);background-size:24px 24px,24px 24px,auto,auto,auto;color:var(--text);font-family:var(--body-font);font-size:19px;line-height:1.55}main,section,article,div{min-width:0}body.is-loading{overflow:hidden}[data-lang=fr] .lang-en,[data-lang=en] .lang-fr{display:none!important}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,select,a,input,textarea{outline-offset:4px}:focus-visible{outline:2px solid var(--secondary)}main{position:relative;z-index:1}p{margin:0 0 var(--step-4);color:var(--muted)}h1,h2,h3{margin:0;color:var(--text);line-height:1.2}h1,h2{font-family:var(--title-font);letter-spacing:0}h1{max-width:760px;font-size:clamp(2rem,6vw,4.3rem);text-shadow:4px 4px 0 var(--shadow);overflow-wrap:anywhere}h2{margin-bottom:var(--step-5);font-size:clamp(1rem,2vw,1.55rem)}h3{margin-bottom:var(--step-3);font-size:1.25rem}.eyebrow{margin-bottom:var(--step-3);color:var(--secondary);font-family:var(--title-font);font-size:.64rem;line-height:1.75;text-transform:uppercase}.loader{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:var(--bg);transition:opacity .22s ease,visibility .22s ease}.loader.is-hidden{visibility:hidden;opacity:0}.loader-box{width:min(360px,calc(100vw - 40px));padding:var(--step-5);border:2px solid var(--border);background:var(--surface);box-shadow:8px 8px 0 var(--shadow)}.loader-title{display:block;margin-bottom:var(--step-4);color:var(--secondary);font-family:var(--title-font);font-size:.8rem}.loader-bar{display:block;height:18px;border:2px solid var(--border);background:var(--bg)}.loader-bar i{display:block;width:72%;height:100%;background:repeating-linear-gradient(90deg,var(--accent) 0 12px,var(--accent-strong) 12px 20px);animation:boot .9s steps(6) infinite alternate}@keyframes boot{0%{width:22%}to{width:94%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.pixel-window,.hero-panel,.project-card,.service-card,.timeline-card{border:2px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,white 8%),var(--surface));box-shadow:8px 8px 0 var(--shadow)}.pixel-window{max-width:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.hero-panel{max-width:100%;transition:box-shadow .18s ease,border-color .18s ease}.pixel-window.is-closed{display:none}.pixel-window.is-floating{position:fixed;top:clamp(74px,10vh,104px);left:50%;z-index:42;width:min(1120px,calc(100vw - 32px));max-height:calc(100svh - 120px);overflow:hidden;transform:translate(-50%)}.pixel-window.is-floating:hover{transform:translate(-50%)}.pixel-window.is-focused{z-index:44;border-color:var(--secondary)}.pixel-window.is-maximized{inset:68px 16px 16px;width:auto;max-height:none;transform:none}.pixel-window.is-maximized:hover{transform:none}.pixel-window.is-minimized{top:auto;right:auto;bottom:var(--step-4);left:var(--step-4);width:min(340px,calc(100vw - 32px));max-height:42px;transform:none}.pixel-window.is-minimized:hover{transform:none}.pixel-window.is-minimized .window-body{display:none}.pixel-window:hover,.hero-panel:hover{border-color:color-mix(in srgb,var(--accent-strong) 65%,var(--border));box-shadow:10px 10px 0 var(--shadow)}.window-titlebar{display:flex;align-items:center;gap:var(--step-3);min-height:38px;padding:0 var(--step-3);border-bottom:2px solid var(--border);background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--surface-2) 72%,var(--accent)));color:var(--text)}.window-controls{display:flex;gap:7px;flex:0 0 auto}.control{display:block;width:12px;height:12px;padding:0;border:2px solid var(--shadow);background:var(--secondary);box-shadow:2px 2px 0 var(--shadow);cursor:pointer}.control.close{background:var(--danger)}.control.minimize{background:var(--secondary)}.control.maximize{background:var(--terminal)}.control:hover{filter:brightness(1.18)}.window-file{overflow:hidden;color:#fff;font-family:var(--title-font);font-size:.6rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.window-body{overflow:hidden;padding:var(--step-5)}.is-floating .window-body{max-height:calc(100svh - 172px);overflow:auto}.is-maximized .window-body{max-height:calc(100svh - 122px)}.pixel-button,.project-actions a,.project-action-static,.contact-buttons a,.contact-form button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 var(--step-4);border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);box-shadow:4px 4px 0 var(--shadow);cursor:pointer;font-family:var(--title-font);font-size:.62rem;line-height:1.45;text-align:center;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.pixel-button:hover,.project-actions a:hover,.project-action-static:hover,.contact-buttons a:hover,.contact-form button:hover{transform:translate(-2px,-2px);border-color:var(--secondary);box-shadow:6px 6px 0 var(--shadow)}.pixel-button:active,.project-actions a:active,.project-action-static:active,.contact-buttons a:active,.contact-form button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--shadow)}.pixel-button.primary,.contact-form button{background:var(--accent);color:#fff}.project-action-static{cursor:default}.pixel-button.ghost{background:transparent}.pixel-button.is-disabled{opacity:.58;cursor:not-allowed}.skill-badge,.badge-row span,.tech-stack span,.stats-grid span{display:inline-flex;align-items:center;min-height:32px;padding:var(--step-1) var(--step-2);border:2px solid color-mix(in srgb,var(--border) 80%,var(--accent));background:color-mix(in srgb,var(--surface-2) 86%,var(--accent));color:var(--text);box-shadow:3px 3px 0 var(--shadow);font-size:.96rem;line-height:1.15}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;inset:0;pointer-events:none;opacity:.22}.glitch:before{color:var(--terminal);transform:translate(3px)}.glitch:after{color:var(--danger);transform:translate(-3px,2px)}.reference-cube-scene{--cube-size: clamp(130px, 14vw, 185px);position:absolute;top:50%;right:clamp(2.5rem,10vw,9rem);z-index:1;width:var(--cube-size);height:var(--cube-size);overflow:visible;background:transparent!important;pointer-events:none;transform:translateY(-50%);perspective:900px;contain:layout paint}.reference-cube-scene,.reference-cube-scene *{box-sizing:border-box;background-clip:padding-box}.reference-cube{position:relative;width:100%;height:100%;background:transparent!important;transform:rotateX(-22deg) rotateY(-35deg);transform-style:preserve-3d;filter:drop-shadow(8px 8px 0 rgba(0,0,0,.45));animation:reference-cube-spin 7s ease-in-out infinite}.reference-cube-face{position:absolute;inset:0;width:var(--cube-size);height:var(--cube-size);max-width:var(--cube-size);max-height:var(--cube-size);overflow:hidden;border:4px solid #94a3b8;background-color:transparent;background-image:linear-gradient(rgba(255,255,255,.2) 2px,transparent 2px),linear-gradient(90deg,rgba(255,255,255,.2) 2px,transparent 2px);background-size:24px 24px;backface-visibility:visible;image-rendering:pixelated;transform-style:preserve-3d}.reference-cube-face-front{background-color:#8b1e3f;transform:rotateY(0) translateZ(calc(var(--cube-size) / 2))}.reference-cube-face-back{background-color:#111827;transform:rotateY(180deg) translateZ(calc(var(--cube-size) / 2))}.reference-cube-face-right{background-color:#32ff7e;transform:rotateY(90deg) translateZ(calc(var(--cube-size) / 2))}.reference-cube-face-left{background-color:#8b1e3f;transform:rotateY(-90deg) translateZ(calc(var(--cube-size) / 2))}.reference-cube-face-top{background-color:#f8d66d;transform:rotateX(90deg) translateZ(calc(var(--cube-size) / 2))}.reference-cube-face-bottom{background-color:#0b0f1a;transform:rotateX(-90deg) translateZ(calc(var(--cube-size) / 2))}.reference-cube-pixel{position:absolute;top:35%;left:35%;display:block;width:14px;height:14px;border:3px solid #94a3b8;background:#f8d66d;box-shadow:0 0 0 2px #00000040}.reference-cube-face-right .reference-cube-pixel{top:50%;left:55%;background:#8b1e3f}.reference-cube-face-top .reference-cube-pixel{top:30%;left:48%;background:#32ff7e}@keyframes reference-cube-spin{0%{transform:rotateX(-22deg) rotateY(-35deg) rotate(0) translateY(0)}25%{transform:rotateX(-18deg) rotateY(35deg) rotate(1deg) translateY(-6px)}50%{transform:rotateX(-24deg) rotateY(130deg) rotate(-1deg) translateY(0)}75%{transform:rotateX(-18deg) rotateY(220deg) rotate(1deg) translateY(-6px)}to{transform:rotateX(-22deg) rotateY(325deg) rotate(0) translateY(0)}}@media (prefers-reduced-motion: reduce){.reference-cube{animation:none;transform:rotateX(-22deg) rotateY(-35deg)}}.menu-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--step-4);min-height:56px;padding:var(--step-2) var(--step-4);border-bottom:2px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);box-shadow:0 4px 0 var(--shadow)}.menu-panel{display:flex;align-items:center;gap:var(--step-4);flex:1 1 auto;min-width:0}.menu-toggle{display:none}.os-brand{display:inline-flex;align-items:center;gap:var(--step-2);flex:0 0 auto;color:var(--secondary);font-family:var(--title-font);font-size:.72rem}.brand-dot{width:14px;height:14px;border:2px solid var(--shadow);background:var(--terminal);box-shadow:2px 2px 0 var(--shadow)}.menu-nav{display:flex;align-items:center;gap:var(--step-1);flex:1 1 auto;overflow-x:auto;scrollbar-width:none}.menu-nav::-webkit-scrollbar{display:none}.menu-nav a{padding:var(--step-2);border:1px solid transparent;color:var(--muted);font-size:1rem;white-space:nowrap}.menu-nav a:hover,.menu-nav a.is-active{border-color:var(--border);background:var(--surface-2);color:var(--text)}.menu-actions{display:flex;align-items:center;gap:var(--step-2);flex:0 0 auto}.language-switcher{display:inline-flex;align-items:center;gap:var(--step-1);min-height:36px;padding:0 var(--step-2);border:2px solid var(--border);background:var(--surface-2);color:var(--muted);box-shadow:3px 3px 0 var(--shadow)}.language-switcher button{border:0;background:transparent;color:inherit;cursor:pointer;font-family:var(--title-font);font-size:.56rem}.language-switcher button[aria-pressed=true]{color:var(--secondary)}.system-time{color:var(--terminal);font-variant-numeric:tabular-nums}.icon-button,.accent-select{min-height:36px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text)}.icon-button{width:38px;cursor:pointer}.accent-select{max-width:118px;padding:0 var(--step-2)}.desktop-zone{position:relative;display:grid;grid-template-columns:168px minmax(0,1fr);gap:var(--step-6);min-height:calc(100svh - 56px);max-width:var(--container);margin:0 auto;padding:var(--step-7) var(--step-5) var(--step-6)}.desktop-icons{display:grid;align-content:start;gap:var(--step-4);padding-top:var(--step-3)}.desktop-icon{display:grid;justify-items:center;gap:var(--step-2);min-height:92px;padding:var(--step-2);border:1px solid transparent;color:var(--text);overflow:hidden;overflow-wrap:anywhere;text-align:center;transition:transform .14s ease,background .14s ease}.desktop-icon:hover{transform:translateY(-3px);border-color:var(--border);background:color-mix(in srgb,var(--surface-2) 84%,transparent)}.file-icon{display:grid;place-items:center;width:44px;height:48px;border:2px solid var(--border);background:var(--surface);box-shadow:4px 4px 0 var(--shadow);color:var(--secondary);font-size:1.35rem}.hero-panel{align-self:center;isolation:isolate;overflow:hidden;transform-style:flat}.hero-content{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:var(--step-6);padding:clamp(24px,5vw,56px)}.hero-copy{position:relative;z-index:3}.role{margin-top:var(--step-4);color:var(--secondary);font-family:var(--title-font);font-size:clamp(.72rem,1.6vw,1rem)}.hero-text{max-width:680px;color:var(--text);font-size:clamp(1.22rem,2.3vw,1.6rem)}.badge-row,.hero-actions,.tech-stack,.project-actions,.contact-buttons{display:flex;flex-wrap:wrap;gap:var(--step-3)}.hero-actions{margin-top:var(--step-5)}.window-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-6);max-width:var(--container);margin:0 auto;padding:0 var(--step-5) var(--step-7);overflow:hidden}.wide-window{grid-column:1 / -1}.stats-grid{display:flex;flex-wrap:wrap;gap:var(--step-3);margin-top:var(--step-5)}.skills-grid,.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-4)}.skill-group{padding:var(--step-4);border:2px solid var(--border);background:color-mix(in srgb,var(--surface-2) 78%,transparent)}.skill-group div{display:flex;flex-wrap:wrap;gap:var(--step-2)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-5);max-width:100%}.project-card{position:relative;display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--step-4);min-height:100%;padding:var(--step-4);overflow:hidden}.project-screen{display:grid;align-content:start;gap:var(--step-2);min-height:180px;padding:var(--step-3);border:2px solid var(--border);background:linear-gradient(135deg,var(--bg),var(--surface-2))}.screen-dot{width:28px;height:28px;background:var(--secondary);box-shadow:32px 0 0 var(--accent),64px 0 0 var(--terminal)}.project-screen strong,.project-screen em{display:block;color:var(--text);font-style:normal;line-height:1.15}.project-screen strong{margin-top:var(--step-4);color:var(--secondary);font-family:var(--title-font);font-size:.56rem}.project-screen em{color:var(--terminal);font-size:.9rem}.screen-line{display:block;width:68%;height:12px;margin-top:var(--step-2);background:var(--border)}.screen-line.wide{width:92%}.screen-grid{height:72px;margin-top:auto;background:linear-gradient(var(--border) 2px,transparent 2px),linear-gradient(90deg,var(--border) 2px,transparent 2px);background-size:18px 18px;opacity:.7}.project-label,.project-type,.project-impact{color:var(--secondary);font-weight:700}.project-label{margin-bottom:var(--step-2);color:var(--terminal)}.status-row{display:flex;flex-wrap:wrap;gap:var(--step-2);margin-bottom:var(--step-3)}.status-badge{display:inline-flex;min-height:26px;align-items:center;padding:2px var(--step-2);border:2px solid var(--border);background:var(--surface-2);color:var(--text);box-shadow:2px 2px 0 var(--shadow);font-size:.82rem;line-height:1.1}.status-delivered,.status-live{border-color:color-mix(in srgb,var(--terminal) 70%,var(--border));color:var(--terminal)}.status-coming-soon,.status-personal-saas{border-color:color-mix(in srgb,var(--secondary) 78%,var(--border));color:var(--secondary)}.status-internal-app,.status-internship,.status-client-project{border-color:color-mix(in srgb,var(--accent-strong) 72%,var(--border))}.project-content p{margin-bottom:var(--step-3)}.feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-2) var(--step-4);margin:var(--step-4) 0;padding:0;list-style:none}.feature-list li{position:relative;padding-left:var(--step-4);color:var(--muted);font-size:.96rem;line-height:1.25}.feature-list li:before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;background:var(--terminal);box-shadow:2px 2px 0 var(--shadow)}.card-number{position:absolute;right:var(--step-3);bottom:var(--step-2);color:color-mix(in srgb,var(--muted) 45%,transparent);font-family:var(--title-font);font-size:.8rem}.service-card,.timeline-card{padding:var(--step-4)}.service-index{display:inline-block;margin-bottom:var(--step-3);color:var(--terminal);font-family:var(--title-font);font-size:.7rem}.timeline{display:grid;gap:var(--step-4)}.timeline-card{border-left:6px solid var(--accent)}.terminal-window .window-body{background:#060b10}.terminal-output{min-height:260px;color:var(--terminal);font-family:VT323,Pixelify Sans,monospace;font-size:1.35rem}.terminal-line{display:grid;gap:var(--step-1);margin-bottom:var(--step-4)}.prompt{color:var(--secondary)}.cursor{display:inline-block;width:12px;height:22px;background:var(--terminal);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:var(--step-6)}.cv-layout{display:grid;grid-template-columns:minmax(240px,.55fr) minmax(320px,1.45fr);gap:var(--step-5)}.cv-frame{width:100%;min-height:min(68vh,720px);border:2px solid var(--border);background:var(--bg);box-shadow:6px 6px 0 var(--shadow)}.contact-buttons{margin-top:var(--step-5);max-width:100%}.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-4);max-width:100%}.contact-form label{display:grid;gap:var(--step-2);color:var(--secondary);font-weight:700}.contact-form .full,.form-status,.contact-form button{grid-column:1 / -1}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:var(--step-3);box-shadow:inset 3px 3px 0 var(--shadow)}.contact-form textarea{resize:vertical}.form-status{min-height:24px;margin:0;color:var(--terminal)}.site-footer{position:relative;z-index:1;padding:var(--step-5);border-top:2px solid var(--border);background:var(--surface);text-align:center}.site-footer p{margin:0}@media (max-width: 1040px){.desktop-zone{grid-template-columns:1fr;min-height:auto}.desktop-icons{display:flex;gap:var(--step-3);overflow-x:auto;padding-bottom:var(--step-2)}.desktop-icon{min-width:104px}.hero-content{grid-template-columns:1fr}.reference-cube-scene{--cube-size: 120px;position:relative;top:auto;right:auto;width:var(--cube-size);height:var(--cube-size);margin:var(--step-5) auto 0;z-index:1;transform:none}.window-grid,.project-grid,.contact-layout,.cv-layout{grid-template-columns:1fr}}@media (max-width: 760px){body{font-size:18px}.menu-bar{align-items:center;flex-wrap:wrap;gap:var(--step-3);padding:var(--step-2)}.os-brand{min-height:36px}.menu-toggle{display:inline-grid;place-items:center;gap:4px;width:44px;height:40px;margin-left:auto;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-2);box-shadow:4px 4px 0 var(--shadow);cursor:pointer}.menu-toggle span{display:block;width:20px;height:3px;background:var(--secondary);box-shadow:1px 1px 0 var(--shadow)}.menu-panel{display:none;order:3;width:100%;flex:1 1 100%;padding:var(--step-3);border:2px solid var(--border);background:var(--surface);box-shadow:6px 6px 0 var(--shadow)}.menu-bar.is-menu-open .menu-panel{display:grid;gap:var(--step-3)}.menu-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--step-2);width:100%;overflow:visible}.menu-nav a{min-height:42px;display:grid;place-items:center;border:2px solid var(--border);background:var(--surface-2);text-align:center}.menu-actions{display:grid;grid-template-columns:auto 42px minmax(0,1fr);width:100%;margin-left:0}.system-time{display:none}.accent-select{width:100%;max-width:none}.window-controls{gap:5px}.control{width:10px;height:10px;box-shadow:1px 1px 0 var(--shadow)}.desktop-zone{padding:var(--step-5) var(--step-3)}.hero-content,.window-body{padding:var(--step-4)}.hero-actions .pixel-button{flex:1 1 100%}.window-grid{gap:var(--step-5);padding:0 var(--step-3) var(--step-6);overflow:clip}.skills-grid,.service-grid,.contact-form{grid-template-columns:1fr}.project-grid{display:flex;gap:var(--step-4);margin-inline:calc(var(--step-4) * -1);max-width:calc(100% + var(--step-6));overflow-x:auto;overflow-y:hidden;padding:0 var(--step-4) var(--step-3);scroll-snap-type:x mandatory;scrollbar-width:thin}.project-card{grid-template-columns:1fr;flex:0 0 min(88vw,420px);max-width:min(88vw,420px);scroll-snap-align:start}.project-screen{min-height:132px}.cv-frame{min-height:560px}.feature-list{grid-template-columns:1fr}.contact-buttons a,.project-actions a,.project-action-static{flex:1 1 100%;max-width:100%}}@media (max-width: 430px){h1{font-size:1.72rem}h2{font-size:.92rem}.eyebrow,.role,.pixel-button,.project-actions a,.contact-buttons a,.contact-form button,.window-file{font-size:.55rem}.badge-row span,.skill-badge,.tech-stack span,.stats-grid span{font-size:.88rem}.menu-actions{width:100%;margin-left:0}.accent-select{flex:1;max-width:none}.project-card{flex-basis:84vw;max-width:84vw}}
