:root{--bg:#D9D3CB;--fg:#17130E;--muted:#4E4943;--border:#C0B8AC;--accent:#E14E1F;--cream:#F3EEE6}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--bg);color:var(--fg);font-family:Space Grotesk,sans-serif;font-weight:300;line-height:1.6;overflow-x:hidden;touch-action:pan-y pinch-zoom}h1,h2,h3{font-family:Archivo,sans-serif;letter-spacing:-.04em}::selection{background:var(--accent);color:#fff}#scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}#loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:var(--bg);color:var(--fg);display:flex;align-items:center;justify-content:center;transition:transform .55s cubic-bezier(.7,0,.2,1)}#loader svg{height:64px;width:auto}#loader .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:loader-draw 1.5s cubic-bezier(.45,.05,.35,.95) infinite}@keyframes loader-draw{45%,55%{stroke-dashoffset:0}to{stroke-dashoffset:-1}}#loader.done{transform:translateY(-101%)}.hero h1 span,.hero p{animation-play-state:paused}body.loaded .hero h1 span,body.loaded .hero p{animation-play-state:running}header{position:fixed;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:1.4rem 8vw;opacity:1;transform:translateY(0);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}header.is-hidden{opacity:0;transform:translateY(-16px);pointer-events:none}.logo-link{color:var(--fg);display:block;transition:color .25s,transform .25s}.logo-link:hover{color:var(--accent);transform:rotate(8deg)}.logo-link svg{height:46px;width:auto;display:block}header nav a{color:var(--fg);text-decoration:none;font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:.6rem 1.4rem;border:1px solid var(--fg);border-radius:999px;transition:all .25s}header nav a:hover{background:var(--accent);border-color:var(--accent);color:#fff}main{position:relative;z-index:2}section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:12vh 8vw;position:relative}.hero h1{font-size:clamp(3.5rem,10.5vw,5.5rem);font-weight:900;line-height:.95;text-transform:uppercase}.hero h1 span{display:block;opacity:0;transform:translateY(40px);animation:up .9s cubic-bezier(.16,1,.3,1) forwards}.hero h1 span:nth-child(2){animation-delay:.12s;color:#fff;background:var(--accent);width:max-content;padding:0 .1em;margin-left:-.1em}.hero h1 span:nth-child(3){animation-delay:.24s}@keyframes up{to{opacity:1;transform:none}}.scroll-hint{position:absolute;bottom:5vh;left:8vw;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:0 1.2rem 0 0;opacity:0;animation:up .9s .5s cubic-bezier(.16,1,.3,1) forwards}.scroll-hint span{color:var(--accent);font-weight:700;display:inline-block;animation:hint-bounce 1.8s cubic-bezier(.45,.05,.35,.95) infinite}@keyframes hint-bounce{0%,55%,to{transform:translateY(0)}22%{transform:translateY(5px)}40%{transform:translateY(-2px)}}[data-glass]{isolation:isolate;transition:color .45s,text-shadow .45s;text-shadow:0 0 12px rgba(23,19,14,0),0 2px 28px rgba(23,19,14,0)}[data-glass].glass.-t-white{color:#fff;text-shadow:0 0 12px rgba(9,7,5,.91),0 2px 28px rgba(23,19,14,.35)}:where([data-glass]){position:relative}[data-glass]:before{content:"";position:absolute;z-index:-1;top:-.55rem;bottom:-.55rem;left:-20vw;right:-1.2rem;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background .45s,backdrop-filter .45s,-webkit-backdrop-filter .45s}[data-glass=left]:before{left:-1.2rem;right:-20vw}@media(max-width:760px){[data-glass]:before{left:-20vw;right:-20vw}}[data-glass].glass:before{background:color-mix(in srgb,var(--bg) 32%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.projets .more a,.footer-links a,.footer-credits a{position:relative;background:linear-gradient(var(--accent),var(--accent)) no-repeat left bottom/0 1px,linear-gradient(var(--border),var(--border)) no-repeat left bottom/100% 1px;transition:color .25s,background-size .55s cubic-bezier(.3,.9,.3,1)}.projets .more a:hover,.footer-links a:hover,.footer-credits a:hover{color:var(--accent);background-size:100% 1px,100% 1px}.projets .more a:after,.footer-links a:after,.footer-credits a:after{content:"";position:absolute;left:-.6em;right:-.6em;bottom:-.45em;height:.9em;pointer-events:none;background:radial-gradient(closest-side,color-mix(in srgb,#fff 60%,var(--accent)),transparent) no-repeat center/55% 34%,radial-gradient(closest-side,color-mix(in srgb,var(--accent) 65%,transparent),transparent) no-repeat center/100% 100%;opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity .3s,transform .55s cubic-bezier(.3,.9,.3,1)}.projets .more a:hover:after,.footer-links a:hover:after,.footer-credits a:hover:after{opacity:1;transform:scaleX(1)}.label{font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;color:#fff;background:var(--accent);width:max-content;padding:.25em .6em;margin-bottom:1.5rem;font-weight:500}h2{font-size:clamp(2.2rem,6vw,4rem);font-weight:700;margin-bottom:2rem;line-height:1.2}.bio .inner,.fluxite .inner,.contact .inner{max-width:560px}.bio{align-items:flex-end}.bio p{font-size:clamp(1.15rem,2.2vw,1.6rem)}.bio strong{font-weight:500;color:var(--accent)}.bio .cols{margin-top:3rem;display:flex;flex-direction:column;gap:1.6rem}.bio .cols div{font-size:.95rem;color:var(--muted)}.bio .cols b{display:block;width:max-content;color:var(--fg);font-weight:500;font-size:1.05rem;margin-bottom:.3rem;padding:0 0 .22em;background:linear-gradient(var(--accent),var(--accent)) no-repeat 0 100%;background-size:0 3px;transition:background-size .55s cubic-bezier(.3,.9,.3,1) .3s}.bio .cols .rv.in b{background-size:100% 3px}.projets ul{list-style:none;max-width:640px}.projets li{border-top:1px solid var(--border)}.projets li a{display:block;padding:2.6rem 0;text-decoration:none;color:inherit}.projets .row{display:flex;justify-content:space-between;align-items:baseline;gap:2rem}.projets h3{font-size:clamp(1.3rem,3vw,2.2rem);font-weight:700}.projets p{color:var(--muted);max-width:48ch;font-size:.95rem;margin-top:.4rem}.projets li a{position:relative;padding-left:150px}.logo-disc{position:absolute;left:0;top:50%;width:124px;height:124px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 10px 34px #17130e29;transform:translateY(-50%)}.crystals{position:absolute;left:-68px;top:50%;width:260px;height:260px;transform:translateY(-50%);pointer-events:none;overflow:visible}.crystals .f1{fill:color-mix(in srgb,var(--accent) 70%,#17130E)}.crystals .f2{fill:var(--accent)}.crystals .f3{fill:color-mix(in srgb,var(--accent) 42%,#fff)}.crystals .ridge{fill:none;stroke:color-mix(in srgb,var(--accent) 55%,#fff);stroke-width:1;opacity:.6}.crystals .edge{fill:none;stroke:color-mix(in srgb,var(--accent) 16%,#fff);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.crystals .cr{transform:var(--tr) scale(0);transform-origin:0 0;transition:transform .65s cubic-bezier(.25,.9,.3,1.18) var(--d)}.crystals.grow .cr{transform:var(--tr) scale(1)}@media(hover:hover){.projets li:hover .crystals .cr{transform:var(--tr) scale(1)}}.crystals{--amp:0}.crystals .sw{transform-origin:0 0}.crystals.sway-on .sw{animation:cr-sway var(--od) ease-in-out infinite}@keyframes cr-sway{0%,to{transform:scale(1)}50%{transform:scale(calc(1 + .22*var(--amp))) rotate(calc(var(--ra)*var(--amp)))}}.logo-disc img{max-width:70%;max-height:66%;object-fit:contain}.logo-disc img.wide{max-width:88%}@media(max-width:700px){.projets li a{padding-left:100px}.logo-disc{width:84px;height:84px}.crystals{left:-46px;width:176px;height:176px}.scroll-hint{bottom:10vh}}.projets .more{max-width:450px;margin-top:3.5rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem 1.8rem}.projets .more-label{flex-basis:100%;font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}.projets .more a{color:var(--fg);text-decoration:none;font-size:.95rem;font-weight:400;padding-bottom:.15em}.fluxite .inner{--pad:clamp(2rem,4.5vw,4rem);position:relative;background:var(--fg);color:var(--cream);padding:var(--pad);max-width:620px}.fluxite .big{font-size:clamp(1.5rem,3.2vw,2.4rem);font-family:Archivo;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.6rem}.fluxite p{color:#b9b2a6;max-width:46ch}.btn{display:inline-block;margin-top:2.2rem;padding:.8rem 2.2rem;background:var(--accent);border:1px solid var(--accent);border-radius:999px;text-decoration:none;color:var(--cream);font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;transition:all .25s}.btn.-ghost{padding:1rem 2.2rem;border:1px solid var(--cream);color:var(--cream);background-color:transparent}.btn:hover{color:#fff;background:var(--accent);border-color:var(--accent);transform:scale(1.1)}.btn.-ghost:hover{background:var(--accent);border-color:var(--accent)}.btn{position:relative}.btn .crystals{left:50%;right:auto;top:50%;bottom:auto;width:200px;height:170px;transform:translate(-50%,-50%)}@media(hover:hover){.btn:hover .crystals .cr{transform:var(--tr) scale(1)}}:where([data-crystals]){position:relative}.crystals.bloom{left:auto;right:auto;top:auto;bottom:auto;transform:none;z-index:auto}body.loaded .crystals.bloom:not(.on-hover) .cr{transform:var(--tr) scale(1);transition-delay:calc(var(--d) + .7s)}:where([data-crystals]):hover .crystals.bloom.on-hover .cr,:where([data-crystals]):focus-visible .crystals.bloom.on-hover .cr{transform:var(--tr) scale(1)}.fluxite .clients-label{margin-top:2.6rem;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:#8f887c}.fluxite .clients{margin-top:30px;margin-bottom:calc(40px - 96px - var(--pad));display:flex;flex-wrap:wrap;gap:1.6rem}.fluxite .sq{position:relative;width:96px;height:96px;background:#fff;flex:none;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 40px #17130e47;opacity:0;rotate:var(--rot);transition:rotate .6s cubic-bezier(.3,.9,.3,1),scale .4s cubic-bezier(.3,.9,.3,1)}.fluxite .sq:hover,.fluxite .sq:focus-visible{rotate:0deg;scale:1.85;z-index:10}.fluxite .rv.in .sq{opacity:1;animation:sq-pop .65s cubic-bezier(.2,.9,.3,1.25) var(--d) backwards,sq-float var(--fd) ease-in-out calc(var(--d) + .65s) infinite}@keyframes sq-pop{0%{opacity:0;transform:translateY(-22px) scale(.7) rotate(-12deg)}to{opacity:1;transform:none}}@keyframes sq-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.fluxite .sq:nth-of-type(1){--rot:4deg;--d:.15s;--fd:6.4s}.fluxite .sq:nth-of-type(2){--rot:-3deg;--d:.3s;--fd:7.6s}.fluxite .sq:nth-of-type(3){--rot:2deg;--d:.45s;--fd:8.4s}.fluxite .sq:nth-of-type(4){--rot:-4deg;--d:.6s;--fd:7s}.fluxite .sq img{max-width:70%;max-height:66%;object-fit:contain}.fluxite .sq img.wide{max-width:86%}@media(max-width:980px){.fluxite .sq{width:72px;height:72px}.fluxite .clients{margin-bottom:calc(30px - 72px - var(--pad))}}@media(max-width:640px){.fluxite .clients{justify-content:center;gap:.9rem;margin-bottom:0}}.contact{align-items:center;text-align:center}.contact a.mail{font-family:Archivo;font-weight:900;font-size:clamp(1.5rem,5vw,4.2rem);letter-spacing:-.03em;text-decoration:none;color:var(--fg);word-break:break-all;line-height:1.1}.contact a.mail:hover{color:var(--accent)}.contact .tel{margin-top:1.8rem;color:var(--muted);font-size:1.1rem}.contact .tel .tooltip{background:#fff;padding:8px 15px;border-radius:20px;text-decoration:none;color:#000}footer{position:relative;z-index:2;padding:3rem 8vw 2rem;display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:.85rem;flex-wrap:wrap;gap:1rem}.footer-links{display:flex;flex-wrap:wrap;gap:.5rem 1.8rem}.footer-links a,.footer-credits a{color:var(--muted);text-decoration:none;padding-bottom:.1em}dialog.legal{margin:auto;width:min(680px,92vw);max-height:82vh;border:none;background:var(--cream);color:var(--fg);padding:clamp(1.8rem,4vw,3rem);overflow-y:auto;box-shadow:0 30px 80px #17130e59}dialog.legal::backdrop{background:#17130e8c}body:has(dialog[open]){overflow:hidden}.legal .close{position:sticky;top:0;float:right;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--border);background:var(--cream);color:var(--fg);font-size:1.3rem;line-height:1;cursor:pointer;transition:all .25s}.legal .close:hover{background:var(--accent);border-color:var(--accent);color:#fff}.legal h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:1.4rem}.legal h3{font-size:1.05rem;font-weight:700;margin:1.8rem 0 .5rem}.legal h4{font-family:Space Grotesk;font-size:.95rem;font-weight:500;margin:1.1rem 0 .3rem}.legal p,.legal li{font-size:.92rem;color:var(--muted)}.legal p{margin-bottom:.7rem}.legal ul{padding-left:1.2rem;margin:.4rem 0 .9rem}.rv{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.rv.in{opacity:1;transform:none}@media(max-width:760px){.crystals.bloom{z-index:-1}.bio{align-items:flex-start}.bio div:has(>.btn),.projets div:has(>.btn){text-align:right}footer{flex-direction:column;align-items:center;text-align:center;gap:.9rem}.footer-links{flex-direction:column;align-items:center;gap:.9rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv,.hero h1 span,.hero p{opacity:1;transform:none}header.is-hidden{display:none}}
