*{box-sizing:border-box;margin:0;padding:0}html{background-color:#020617}.three-bg-root{contain:strict}.three-bg-root canvas{vertical-align:middle;width:100%;height:100%}main.no-scrollbar::-webkit-scrollbar{display:none}main.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}#main-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:100dvh;min-height:100dvh;scroll-padding-block:clamp(2rem,8vh,5rem);overflow-y:auto}@media (width<=767px){#main-scroll{padding-bottom:max(5.5rem, calc(env(safe-area-inset-bottom,0px) + 4.25rem))}}.portfolio-section{width:100%;scroll-margin-block:clamp(1rem,4vh,3rem);position:relative}.portfolio-section:not(#accueil){padding-block:clamp(2.25rem,10vw,6rem)}@media (width<=767px){#projets.portfolio-section{padding-block:clamp(3rem,11vw,5.75rem)}}@media (width>=768px){.portfolio-section:not(#accueil){padding-block:clamp(4rem,14vh,10rem)}.portfolio-section{min-height:100vh}}.projects-showcase{position:relative}.projects-mosaic{grid-template-columns:1fr;gap:clamp(1.75rem,5vw,2.25rem);display:grid}@media (width>=768px){.projects-mosaic{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(72px,auto);gap:clamp(1rem,2vw,1.75rem)}.projects-dynamic{grid-area:1/1/span 4/span 12;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:auto;align-items:stretch;gap:clamp(1rem,2vw,1.75rem);min-height:0;display:grid}#slot-featured{flex-direction:column;grid-area:1/1/span 2/span 8;min-height:0;display:flex}#slot-sidebar{display:contents}#slot-sidebar>.project-swappable:first-child{grid-area:1/9/span 2/span 4;min-width:0}#slot-sidebar>.project-swappable:nth-child(2){grid-area:3/1/auto/span 4;min-width:0}#slot-sidebar>.project-swappable:nth-child(3){grid-area:3/5/auto/span 4;min-width:0}#slot-sidebar>.project-swappable:nth-child(4){grid-area:4/1/auto/span 4;min-width:0}#slot-sidebar>.tile-filler{grid-area:4/1/auto/span 8;min-height:clamp(72px,12vw,100px)}#slot-sidebar>.project-swappable:nth-child(4)~.tile-filler{grid-row:5}.projects-dynamic:has(#slot-sidebar>.project-swappable:nth-child(4)){grid-row:1/span 5}.tile-crud{grid-area:5/1/span 6/-1}.projects-mosaic:has(#slot-sidebar>.project-swappable:nth-child(4)) .tile-crud{grid-row:6/span 6}#slot-sidebar>.project-swappable:nth-child(2):nth-last-child(2){grid-column:1/span 8}}.projects-dynamic{flex-direction:column;gap:clamp(1.75rem,5vw,2.25rem);display:flex}@media (width<=767px){#slot-sidebar{flex-direction:column;gap:clamp(1.75rem,5vw,2.25rem);display:flex}}@media (width>=768px){.projects-dynamic{display:grid}}#slot-sidebar .project-swappable{cursor:pointer;min-height:0;transition:transform .2s,border-color .2s}@media (width<=767px){#slot-sidebar .project-swappable{flex:none}}#slot-sidebar .project-swappable:hover{border-color:#94a3b838;transform:translateY(-2px)}#slot-sidebar .project-swappable:focus-visible{outline-offset:3px;outline:2px solid #60a5fa}@media (width>=768px){#slot-sidebar>.project-swappable[data-layout=compact]{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;justify-content:center;height:100%;min-height:0;display:flex;overflow-y:auto;text-align:center!important;border-radius:1rem!important;align-items:center!important;gap:.35rem!important;padding:.65rem .78rem!important}#slot-sidebar>.project-swappable[data-layout=compact]::-webkit-scrollbar{display:none}#slot-sidebar>.project-swappable[data-layout=compact]>span:first-child{letter-spacing:.28em!important;font-size:9px!important}#slot-sidebar>.project-swappable[data-layout=compact] h3{font-size:clamp(.82rem,1.35vw,.98rem)!important;font-weight:600!important;line-height:1.2!important}#slot-sidebar>.project-swappable[data-layout=compact] h3+p{font-size:.62rem!important;line-height:1.3!important}#slot-sidebar>.project-swappable[data-layout=compact] p.text-slate-500{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;display:-webkit-box;overflow:hidden;font-size:.65rem!important;line-height:1.35!important}#slot-sidebar>.project-swappable[data-layout=compact] .flex.flex-wrap{opacity:.85;gap:.2rem .45rem!important;font-size:9px!important}#slot-sidebar>.project-swappable[data-layout=compact] .proj-gh-link{word-break:break-all;gap:.35rem!important;padding-top:.15rem!important;font-size:.58rem!important;line-height:1.3!important}#slot-sidebar>.project-swappable[data-layout=compact] .proj-gh-link svg{flex-shrink:0;width:.72rem!important;height:.72rem!important}#slot-sidebar>.project-swappable[data-layout=compact]:after{content:"Cliquer pour agrandir";letter-spacing:.14em;text-transform:uppercase;color:#94a3b8a6;border-top:1px solid #ffffff0f;margin-top:.25rem;padding-top:.25rem;font-size:9px;font-weight:600;display:block}}.project-swappable[data-project-id=crypto][data-layout=compact]{flex-direction:column!important;gap:1rem!important;padding:1.25rem 1.35rem!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-visual-crypto{display:none!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-body-crypto{border-left:none!important;gap:.65rem!important;padding-left:0!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-body-crypto>div:first-child{margin-bottom:0}.project-swappable[data-project-id=crypto][data-layout=compact] h3{font-size:1.05rem!important;line-height:1.35!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-body-crypto>p{font-size:.8rem!important;line-height:1.45!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-tags-crypto{gap:.35rem .65rem!important;font-size:.7rem!important}.project-swappable[data-project-id=crypto][data-layout=compact] .proj-gh-link{padding-top:.35rem!important;font-size:.75rem!important}@media (width>=768px){#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact]{border-radius:1rem!important;gap:.3rem!important;padding:.55rem .65rem!important}#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact] .proj-body-crypto{gap:.3rem!important;padding-left:0!important}#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact] h3{font-size:.88rem!important;line-height:1.25!important}#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact] .proj-body-crypto>p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;font-size:.65rem!important}#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact] .proj-tags-crypto{font-size:.6rem!important}#slot-sidebar>.project-swappable[data-project-id=crypto][data-layout=compact] .proj-gh-link{padding-top:.2rem!important;font-size:.58rem!important}}.project-swappable[data-layout=featured]:not([data-project-id=crypto]){min-height:min(380px,52vh);text-align:left!important;border-style:solid!important;border-left-width:2px!important;border-left-color:#60a5fa80!important;justify-content:center!important;align-items:flex-start!important;padding:2.5rem 2.75rem!important}.project-swappable[data-layout=featured]:not([data-project-id=crypto]) h3{font-size:clamp(1.75rem,3.5vw,2.35rem)!important;font-weight:600!important}.project-swappable[data-layout=featured]:not([data-project-id=crypto]) p{max-width:42ch!important;font-size:1rem!important}@media (prefers-reduced-motion:reduce){#slot-sidebar .project-swappable:hover{transform:none}}.tile-surface{-webkit-backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a}.tile-surface:hover{border-color:#94a3b82e}.nav-dot.is-active{background-color:#3b82f6;transform:scale(1.35);box-shadow:0 0 0 3px #3b82f659}.nav-dot:focus-visible{outline-offset:3px;outline:2px solid #60a5fa}.icon-img{object-fit:contain;width:48px;height:48px;transition:transform .3s}.fade-in{animation:.85s cubic-bezier(.19,1,.22,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}#accueil h1{background:linear-gradient(90deg,#fff 20%,#3b82f6 50%,#fff 80%) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;animation:6s linear infinite shine}@keyframes shine{to{background-position:200%}}@media (prefers-reduced-motion:reduce){#accueil h1{background-position:50%;animation:none}.fade-in{opacity:1;animation:none;transform:none}}.hover-insta:hover{background:radial-gradient(circle at 30% 107%,#fdf497 0% 5%,#fd5949 45%,#d6249f 60%,#285ae1 90%)!important}.hover-email:hover{background:linear-gradient(#5d75f8 0%,#6db3f9 50%,#76e7ff 100%)!important}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#3b82f673;border-radius:10px}
