@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/poppins-300-latin.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400-latin.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500-latin.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600-latin.woff2)format("woff2")}:root{color-scheme:light;--ink:#18293c;--accent:#ad3300;--glass:#ffffff40;--edge:#fff6}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:24px}body{min-width:0;min-height:100svh;color:var(--ink);background:linear-gradient(135deg,#d6a3ad,#98dfe3) fixed;margin:0;padding:35px 15px;font-family:Poppins,Arial,sans-serif;font-size:1rem;font-weight:300;line-height:1.5}body.menu-open{overflow:hidden}button,input{font:inherit}button,summary{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}button{color:inherit}img,svg{max-width:100%;display:block}p,h1,h2,h3,h4,ol,ul{margin:0}h1,h2{font-weight:600}h3,h4{font-weight:500}p,h1,h2,h3,a,button{overflow-wrap:anywhere}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{color:#fff;background:var(--accent)}.page-shell{max-width:1200px;margin:0 auto;position:relative}.skip-link{z-index:50;color:#fff;background:var(--ink);border-radius:24px;padding:10px 20px;position:fixed;top:8px;left:15px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.background-shapes{pointer-events:none;z-index:-1;width:calc(100% - 30px);max-width:1200px;position:fixed;inset:0 auto 0 50%;transform:translate(-50%)}.background-shapes span{filter:blur(5px);border-radius:50%;position:absolute}.background-shapes span:first-child{opacity:.35;background:#5555e7;width:60px;height:60px;top:10%;left:5%}.background-shapes span:nth-child(2){opacity:.4;background:#ff743a;width:80px;height:80px;top:50%;left:30%}.background-shapes span:nth-child(3){opacity:.55;background:#fff;width:120px;height:120px;top:40%;right:-60px}.background-shapes span:nth-child(4){opacity:.65;background:#ffb500;width:50px;height:50px;top:82%;left:-25px}.background-shapes span:nth-child(5){opacity:.35;background:#0d98ba;width:70px;height:70px;top:70%;right:100px}.background-shapes span:nth-child(6){opacity:.45;background:#efa2b4;width:40px;height:40px;top:20%;left:30%}.view-panel,.not-found{border:1px solid var(--edge);background:#e4e6e5;border-radius:30px;min-height:calc(100svh - 70px)}@supports (backdrop-filter:blur(5px)){.view-panel,.not-found{background:var(--glass);backdrop-filter:blur(5px)}}.view-panel+.view-panel{margin-top:30px}.js .view-panel{margin-top:0;display:none}.js[data-view=home] #home{display:grid}.js[data-view=about] #about,.js[data-view=projects] #projects,.js[data-view=contact] #contact{display:block}.view-panel:focus,#experience:focus,#main:focus{outline:none}.site-header{z-index:30;pointer-events:none;justify-content:space-between;align-items:center;padding:20px 55px 0;display:flex;position:absolute;inset:0 0 auto}.home-control,.site-menu{pointer-events:auto}.home-control,.site-menu summary{border:1px solid var(--edge);background:var(--glass);width:50px;height:50px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.home-control{z-index:32;text-decoration:none;position:relative}.home-control:hover{background:#ffffff80}.site-menu summary{z-index:32;list-style:none;position:relative}.site-menu summary::-webkit-details-marker{display:none}.menu-lines,.menu-lines:before,.menu-lines:after{background:var(--accent);width:24px;height:2px;display:block;position:relative}.menu-lines:before,.menu-lines:after{content:"";position:absolute;left:0}.menu-lines:before{top:-8px}.menu-lines:after{top:8px}.site-menu[open] .menu-lines{background:0 0}.site-menu[open] .menu-lines:before{top:0;transform:rotate(45deg)}.site-menu[open] .menu-lines:after{top:0;transform:rotate(-45deg)}.site-menu nav{z-index:31;border:1px solid var(--edge);background:var(--glass);backdrop-filter:blur(8px);border-radius:30px;flex-direction:column;justify-content:safe center;align-items:center;min-height:300px;padding:75px 20px;display:flex;position:fixed;inset:35px max(15px,50vw - 600px);overflow-y:auto}.site-menu nav a{min-height:44px;padding:8px 15px;font-size:2.5rem;font-weight:500;line-height:1.5;text-decoration:none}.site-menu nav a:hover{color:var(--accent)}.menu-open main{visibility:hidden}.button{border:1px solid var(--edge);min-height:46px;color:var(--accent);background:var(--glass);border-radius:30px;justify-content:center;align-items:center;gap:8px;padding:10px 28px;font-size:1rem;font-weight:500;line-height:1.5;text-decoration:none;display:inline-flex}.button:hover{color:#fff;background:var(--accent);border-color:var(--accent)}.pdf-label{border:1px solid;border-radius:3px;padding:0 3px;font-size:.625rem}.home-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;padding:120px 40px;display:grid}.home-copy,.home-picture{min-width:0;padding:15px}.hello{font-size:1.375rem}.home-copy h1{letter-spacing:0;margin:10px 0;font-size:3.4375rem;line-height:1.3}.home-role{justify-content:flex-start;align-items:center;gap:6px;margin:20px 0 30px;font-size:1.4375rem;display:flex}.home-role strong{color:var(--accent);font-size:1.25rem;font-weight:600}.role-line{min-width:0;display:grid}.role-line>p{grid-area:1/1}.role-reserve{visibility:hidden;pointer-events:none}.role-caret{color:var(--accent);margin-left:2px;font-weight:500}.typing-role[data-state=running] .role-visual .role-caret{animation:1s step-end infinite role-blink}@keyframes role-blink{50%{opacity:0}}.home-actions{flex-wrap:wrap;gap:15px;display:flex}.social-links{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.social-links a{border:1px solid var(--edge);width:44px;height:44px;color:var(--accent);background:var(--glass);border-radius:50%;place-items:center;display:grid}.social-links a:hover{color:#fff;background:var(--accent)}.social-links svg{width:17px;height:17px}.portrait-hover{width:min(360px,100%);margin-inline:auto}.portrait-circle{aspect-ratio:1;border:8px solid var(--glass);background:var(--glass);isolation:isolate;border-radius:50%;width:100%;position:relative;overflow:hidden}.portrait-circle img{object-fit:cover;width:100%;height:100%;display:block}.hero-photo{transform-origin:0 43%;transform:scale(2)}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.portrait-circle{transition:transform .4s,box-shadow .4s}.hero-photo{transition:transform .45s}.portrait-circle:after{content:"";z-index:1;pointer-events:none;opacity:0;background:linear-gradient(115deg,#0000 35%,#ffffff3d 50%,#0000 65%);position:absolute;inset:-40%;transform:translate(-100%)}.portrait-hover:hover .portrait-circle{transform:perspective(900px) translate3d(var(--portrait-shift-x,0px), var(--portrait-shift-y,0px), 0) rotateX(var(--portrait-rotate-x,0deg)) rotateY(var(--portrait-rotate-y,0deg));transition:transform .16s ease-out,box-shadow .4s;box-shadow:0 16px 36px #18293c29}.portrait-hover:hover .hero-photo{transform:scale(2.04)}.portrait-hover:hover .portrait-circle:after{animation:.75s ease-out portrait-sheen}}@keyframes portrait-sheen{0%{opacity:0;transform:translate(-100%)}20%{opacity:1}to{opacity:0;transform:translate(100%)}}.content-panel{padding:80px 40px}.section-title{text-align:center;margin:0 0 40px;font-size:2.5rem;line-height:1.5}.about-layout{grid-template-columns:minmax(0,40%) minmax(0,60%);display:grid}.about-picture,.about-copy{min-width:0;padding:0 15px}.about-photo-frame{aspect-ratio:1;border:1px solid var(--edge);background:var(--glass);border-radius:50%;max-width:380px;margin-inline:auto;overflow:hidden}.about-photo-frame img{object-fit:cover;width:100%;height:100%}.about-location{text-align:center;margin-top:20px}.about-location strong{font-weight:500}.about-copy>p+p{margin-top:15px}.about-copy>h3{margin:22px 0 18px;font-size:1.25rem}.skills,.tags{flex-wrap:wrap;gap:10px;padding:0;list-style:none;display:flex}.skills li,.tags li{border:1px solid var(--edge);background:var(--glass);border-radius:24px;padding:5px 15px}.career{margin-top:25px}.career-tabs{flex-wrap:wrap;gap:12px 30px;margin-bottom:26px;display:flex}.career-tabs button{background:0 0;border:0;border-bottom:1px solid #0000;align-items:center;gap:10px;min-height:44px;padding:2px 0;font-size:1.25rem;font-weight:500;display:inline-flex}.career-tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.career-tabs button:hover{border-bottom-color:currentColor}.career-panel{padding:10px 0}.timeline{border-left:1px solid var(--accent);margin:0 0 0 5px;padding:0 0 0 35px;list-style:none}.timeline>li{padding-top:7px;position:relative}.timeline>li+li{margin-top:30px}.timeline>li:before{content:"";background:var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:14px;left:-41px}.timeline-meta{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.timeline-meta>span:first-child{color:var(--accent);font-size:1rem;font-weight:400}.timeline-meta>span:last-child{font-weight:500}.timeline h3{margin-bottom:8px;font-size:1.125rem;line-height:1.5}.timeline p{font-size:.9375rem}.career-highlights{margin-top:12px;padding-left:18px;font-size:.875rem;line-height:1.7}.career-highlights li{margin-bottom:8px}.fallback-heading{margin-bottom:20px;font-size:1.25rem}.career-panel+.career-panel:not([hidden]){margin-top:25px}.about-actions{flex-wrap:wrap;gap:15px;margin-top:25px;display:flex}.projects-intro{text-align:center;margin:0 0 35px}.projects-intro p{margin-bottom:15px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;display:grid}.project-card{flex-direction:column;min-width:0;display:flex}.project-image{flex-shrink:0;position:relative}.project-image-button{background:0 0;border:0;border-radius:10px;width:100%;height:100%;padding:0;position:absolute;inset:0}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project-image{transition:transform .22s}.project-image:has(.project-image-button:hover){transform:translateY(-2px)scale(1.025)}}.project-art{border:1px solid var(--edge);border-radius:10px;height:220px;padding:24px;position:relative;overflow:hidden}.project-copy{flex-direction:column;flex:1;padding-top:20px;display:flex}.project-category{justify-content:space-between;gap:10px;margin-bottom:10px;font-size:.8125rem;display:flex}.project-copy h3{margin-bottom:16px;font-size:1.25rem}.project-copy>p{font-size:.9375rem}.project-copy>.tags{gap:6px;margin-top:18px}.project-copy>.tags li{padding:5px 10px;font-size:.75rem}.project-actions{flex-direction:column;align-items:flex-start;gap:10px;margin-top:auto;padding-top:20px;display:flex}.project-actions a{align-items:center;min-height:44px;font-size:.875rem;display:inline-flex}.project-fallback{margin-top:15px;font-size:.9375rem}.project-fallback summary{cursor:pointer;min-height:44px}.project-fallback p{margin-bottom:15px}.project-dialog{width:min(850px,100% - 30px);max-height:calc(100dvh - 60px);color:var(--ink);border:1px solid var(--edge);background:#e1e9e8;border-radius:30px;padding:40px;position:fixed}.project-dialog::backdrop{backdrop-filter:blur(5px);background:#18293c40}.project-dialog h2{margin:15px 0 20px;font-size:1.875rem}.project-dialog p{margin:15px 0 20px}.project-dialog .button{margin-top:25px}.dialog-close{border:1px solid var(--edge);width:44px;height:44px;color:var(--accent);background:var(--glass);border-radius:50%;font-size:1.75rem;position:absolute;top:10px;right:10px}.eyebrow{font-size:.875rem}.art-sre-agent{background:#d6ecdc99}.art-window{align-items:center;gap:5px;display:flex}.art-window>span:not(:last-child){border:1px solid #45635d;border-radius:50%;width:5px;height:5px}.art-window-label{margin-left:auto;font:9px monospace}.signal-line{color:#42674e;margin-top:30px}.art-pipeline{justify-content:space-between;align-items:center;gap:5px;margin-top:18px;font:10px monospace;display:flex}.art-pipeline span{background:#f2f8ef80;border:1px solid #829f87;border-radius:6px;padding:10px 12px}.art-pipeline i{font-style:normal}.art-caption{align-items:center;gap:5px;margin-top:20px;font-size:.5rem;display:flex}.status-dot{background:#42674e;border-radius:50%;width:5px;height:5px;display:inline-block}.art-vocabulaire{background:#e0d7f1b3}.word{background:#f6f4ed;border:1px solid #fff;border-radius:12px;padding:10px 20px;font-family:Georgia,serif;font-size:1.75rem;line-height:1.1;display:block;position:absolute}.word span{margin-top:6px;font-family:Poppins,sans-serif;font-size:.5625rem;display:block}.word-one{top:22px;left:20px;transform:rotate(-8deg)}.word-two{top:75px;right:18px;transform:rotate(7deg)}.word-three{background:#cdc2df;font-style:italic;bottom:30px;left:20px;transform:rotate(-5deg)}.art-small{font-size:.5rem;position:absolute;bottom:10px;left:20px}.art-awards{background:#f2d8bdb3}.film-stripe{opacity:.3;background:repeating-linear-gradient(0deg,#ad7b51 0 6px,#0000 6px 13px);width:12px;height:150%;position:absolute;top:-20%;right:20px;transform:rotate(18deg)}.award-mark{color:#845430;font-size:3.75rem;line-height:1;position:absolute;top:20px;right:40px}.award-type{letter-spacing:-.04em;margin-top:55px;font:38px/1 Georgia,serif;display:block}.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:60px;max-width:950px;margin:80px auto 0;display:grid}.contact-intro{text-align:center}.contact-intro h3{margin-bottom:20px;font-size:1.5625rem}.contact-intro p{margin-bottom:25px}.contact-socials{text-align:center;border:1px solid var(--edge);background:var(--glass);border-radius:24px;padding:48px 20px}.contact-socials h3{margin-bottom:24px;font-size:2rem}.contact-socials .social-links{justify-content:center;gap:16px;margin-top:0}.contact-socials .social-links a{width:72px;height:72px}.contact-socials .social-links svg{width:28px;height:28px}.not-found{text-align:center;padding:120px 55px}.not-found h1{margin:25px 0;font-size:3.4375rem}.not-found .button{margin-top:25px}@media (width<=991px){.home-panel{grid-template-columns:minmax(0,1fr);padding:105px 25px 55px}.home-picture{order:-1}.home-copy{text-align:center}.home-role{justify-content:center}.portrait-hover{max-width:300px}.home-actions,.home-copy .social-links{justify-content:center}.home-copy h1{font-size:3rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header,.content-panel{padding-inline:25px}}@media (width<=767px){.about-layout{grid-template-columns:minmax(0,1fr);gap:30px}.about-photo-frame{max-width:380px}.about-copy,.about-picture{padding:0}.project-grid{grid-template-columns:minmax(0,1fr)}.project-art{height:260px}.contact-layout{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:30px}.contact-socials{padding:36px 12px}.contact-socials .social-links{gap:12px}.contact-socials .social-links a{width:64px;height:64px}.site-menu nav a{font-size:2.1875rem}}@media (width<=575px){.site-header{padding:20px 15px 0}.home-panel{padding:120px 15px}.home-copy,.home-picture{padding:15px 0}.portrait-hover{max-width:300px}.home-copy h1{margin-block:8px;font-size:1.875rem}.home-role{margin:14px 0 25px;font-size:1.125rem}.home-role strong{font-size:1.25rem}.content-panel{padding:80px 15px 40px}.section-title{margin-bottom:30px;font-size:2.1875rem}.skills{gap:8px}.skills li{padding:5px 12px;font-size:.875rem}.career-tabs{gap:20px}.career-tabs button{font-size:1.125rem}.career-tabs svg{width:16px;height:16px}.timeline{padding-left:25px}.timeline>li:before{left:-31px}.project-dialog{padding:45px 25px 30px}.project-dialog h2{font-size:1.5625rem}.not-found{padding:100px 20px 50px}.not-found h1{font-size:2.25rem}}@media (width<=360px){.home-copy h1{font-size:1.875rem}.portrait-hover{max-width:300px}.button{padding-inline:18px}.home-role strong{display:inline}.career-tabs{gap:12px}.career-tabs button{font-size:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
