:root{--clr-bg:#101c33;--clr-surface:#172540;--clr-surface2:#1e3050;--clr-surface3:#263c62;--clr-border:#304f78;--clr-border-dim:#213660;--clr-red:#da3b38;--clr-red-dim:rgba(218,59,56,.12);--clr-red-glow:rgba(218,59,56,.35);--clr-red-soft:rgba(218,59,56,.06);--clr-blue:#416dbd;--clr-blue-dim:rgba(65,109,189,.12);--clr-blue-glow:rgba(65,109,189,.3);--clr-cyan:#00d4aa;--clr-cyan-dim:rgba(0,212,170,.10);--clr-violet:#7c5cfc;--clr-violet-dim:rgba(124,92,252,.12);--clr-green:#28c840;--clr-amber:#febc2e;--clr-text:#eaf2fc;--clr-text-dim:#b8cce0;--clr-muted:#8da9c4;--clr-muted-dim:#4a6280;--gradient-brand:linear-gradient(135deg,#da3b38 0%,#1f93ff 100%);--gradient-brand-h:linear-gradient(135deg,#da3b38 0%,#1f93ff 100%);--gradient-subtle:linear-gradient(135deg,rgba(218,59,56,.08),rgba(124,92,252,.06));--gradient-hero-bg:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(218,59,56,.13) 0%,transparent 65%),radial-gradient(ellipse 50% 40% at 70% 30%,rgba(124,92,252,.10) 0%,transparent 55%);--ff-sans:'Syne',system-ui,sans-serif;--ff-mono:'JetBrains Mono','Courier New',monospace;--ff-display:'Raleway',system-ui,sans-serif;--fs-xs:.72rem;--fs-sm:.88rem;--fs-md:1rem;--fs-lg:1.2rem;--fs-xl:clamp(1.8rem,4vw,2.8rem);--fs-2xl:clamp(2.2rem,5.5vw,3.4rem);--fs-hero:clamp(4.5rem,14vw,10.5rem);--sp-1:.5rem;--sp-2:1rem;--sp-3:1.5rem;--sp-4:2rem;--sp-5:2.5rem;--sp-6:3rem;--sp-8:4rem;--sp-10:5rem;--sp-12:6rem;--sp-section:8.5rem;--nav-h:4.5rem;--radius:4px;--radius-lg:10px;--transition:.2s ease;--transition-med:.35s ease;--ease-spring:cubic-bezier(.34,1.56,.64,1);--ease-out:cubic-bezier(.16,1,.3,1);--max-w:1200px;--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 28px rgba(0,0,0,.45);--shadow-lg:0 8px 56px rgba(0,0,0,.55);--shadow-lift:0 16px 48px rgba(0,0,0,.55),0 4px 12px rgba(0,0,0,.3);--glow-red:0 0 28px var(--clr-red-glow);--glow-blue:0 0 28px var(--clr-blue-glow);--glow-brand:0 0 40px rgba(218,59,56,.2),0 0 80px rgba(124,92,252,.08)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 1rem)}body{background-color:var(--clr-bg);color:var(--clr-text);font-family:var(--ff-sans);font-size:var(--fs-md);line-height:1.65;overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--clr-bg)}::-webkit-scrollbar-thumb{background:var(--clr-red);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b52e2c}*{scrollbar-width:thin;scrollbar-color:var(--clr-red) var(--clr-bg)}.container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--sp-4)}.section-tag{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--clr-blue);margin-bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;background:rgba(65,109,189,.08);border:1px solid rgba(65,109,189,.28);padding:.28rem .9rem;border-radius:3px;width:fit-content}.section-tag::before{display:none}.section-title{font-family:var(--ff-display);font-size:var(--fs-2xl);font-weight:200;letter-spacing:-.01em;line-height:1.1;margin-bottom:1.2rem;text-shadow:0 2px 8px rgba(0,0,0,.6)}.section-desc{font-size:var(--fs-md);color:var(--clr-muted);max-width:560px;line-height:1.75}.section__header{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:end;padding-bottom:var(--sp-6);margin-bottom:3rem;border-bottom:1px solid var(--clr-border);position:relative}.section__header::after{content:'';position:absolute;bottom:-1px;left:0;width:3rem;height:3px;background:var(--clr-blue)}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;padding:.9rem 2.2rem;border:none;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition),color var(--transition),background var(--transition);white-space:nowrap;position:relative;overflow:hidden}.btn--primary{color:#fff;background:var(--clr-red);clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);isolation:isolate}.btn--primary::before{content:'';position:absolute;inset:0;background:var(--gradient-brand-h);opacity:0;z-index:-1;transition:opacity var(--transition)}.btn--primary:hover,.btn--primary:focus-visible{box-shadow:var(--glow-red);transform:translateY(-2px)}.btn--primary:hover::before,.btn--primary:focus-visible::before{opacity:1}.btn--ghost{color:var(--clr-text-dim);background:transparent;border:1px solid var(--clr-border)}.btn--ghost:hover,.btn--ghost:focus-visible{border-color:var(--clr-red);color:var(--clr-red);background:var(--clr-red-soft)}.btn--sm{padding:.55rem 1.3rem;font-size:calc(var(--fs-xs) * .95);clip-path:polygon(7px 0%,100% 0%,calc(100% - 7px) 100%,0% 100%)}:focus-visible{outline:2px solid var(--clr-red);outline-offset:3px;border-radius:2px}.logo-w,.logo-u{color:#bdc8d4}.logo-4{color:var(--clr-red)}.logo--white-bg .logo-w,.logo--white-bg .logo-u{color:#1a1a1a;text-shadow:2px 2px 2px rgba(0,0,0,.35)}.logo--white-bg .logo-4{color:var(--clr-red);text-shadow:2px 2px 2px rgba(0,0,0,.35)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 3rem;transition:padding .3s,box-shadow .3s}.nav::before{content:'';position:absolute;inset:0;background:rgba(16,28,51,.88);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);z-index:-1;pointer-events:none;opacity:0;transition:opacity .3s}.nav::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--clr-red-glow) 25%,var(--clr-blue-glow) 75%,transparent 100%);opacity:0;transition:opacity .4s;pointer-events:none}.nav.is-scrolled{box-shadow:0 1px 40px rgba(0,0,0,.45);padding-top:.9rem;padding-bottom:.9rem}.nav.is-scrolled::before{opacity:1}.nav.is-scrolled::after{opacity:1}.nav__logo-h1{margin:0;padding:0;font-size:0;line-height:0;flex-shrink:0}.nav__logo{display:flex;align-items:center;flex-shrink:0;position:relative;z-index:101}.nav__logo img{display:block;height:44px;width:auto;border-radius:4px}.nav__links{display:flex;gap:2rem}.nav__mobile-footer{display:none}.nav__links a{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);letter-spacing:.08em;text-transform:uppercase;transition:color var(--transition);position:relative;padding-bottom:2px}.nav__links a::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:1px;background:var(--gradient-brand);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-med)}.nav__text{display:block;clip-path:inset(0 0 0 0);transition:clip-path .38s var(--ease-out);will-change:clip-path}.nav__text--alt{position:absolute;left:0;top:0;color:var(--clr-text);white-space:nowrap;pointer-events:none;clip-path:inset(100% 0 0 0);transition:clip-path .38s var(--ease-out);will-change:clip-path}.nav__links a:hover .nav__text:not(.nav__text--alt),.nav__links a:focus-visible .nav__text:not(.nav__text--alt){clip-path:inset(0 0 100% 0)}.nav__links a:hover .nav__text--alt,.nav__links a:focus-visible .nav__text--alt{clip-path:inset(0 0 0 0)}.nav__links a:hover::after,.nav__links a:focus-visible::after{transform:scaleX(1)}.nav__links a[aria-current="page"]::after{transform:scaleX(1)}.nav__links a[aria-current="page"] .nav__text--alt{display:none}.nav__burger{display:none;flex-direction:column;gap:5px;padding:6px;position:relative;z-index:101}.nav__burger span{display:block;width:22px;height:2px;background:var(--clr-text);transition:transform .3s,opacity .3s,background .3s;border-radius:1px}.nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}.nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav__overlay{display:none;position:fixed;inset:0;background:rgba(7,9,15,.85);backdrop-filter:blur(6px);z-index:98;opacity:0;transition:opacity .3s}.nav__overlay.is-open{display:block;opacity:1}.nav__tel{display:flex;align-items:center;gap:.45rem;font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);letter-spacing:.04em;border-left:1px solid var(--clr-border);padding-left:var(--sp-3);transition:color var(--transition);white-space:nowrap}.nav__tel:hover{color:var(--clr-text)}.nav__cta{display:flex}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem var(--sp-4) var(--sp-4);overflow:hidden}.hero::before{content:'';position:absolute;inset:0;background:var(--gradient-hero-bg);pointer-events:none;z-index:0}.hero__canvas{position:absolute;inset:0;opacity:.55;z-index:0;pointer-events:none}.hero>*:not(.hero__canvas):not(.hero__scroll){position:relative;z-index:1}.hero__status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--clr-green);border:1px solid rgba(40,200,64,.25);background:rgba(40,200,64,.07);padding:.3rem .9rem;border-radius:20px;margin-bottom:var(--sp-2);animation:fadeUp .5s .1s both}.hero__status-dot{width:6px;height:6px;border-radius:50%;background:var(--clr-green);animation:statusPulse 2s ease-in-out infinite;flex-shrink:0}.hero__badge{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--clr-muted);border:1px solid var(--clr-border);background:rgba(13,17,23,.6);padding:.35rem 1rem;border-radius:var(--radius);margin-bottom:var(--sp-4);animation:fadeUp .6s .2s both}.hero__brand{animation:fadeUp .6s .3s both;margin-bottom:1.2rem}.hero__brand-bg{background:#fff;display:inline-block;padding:.5rem 2.4rem .45rem 2rem;position:relative;border-radius:10px;overflow:hidden;box-shadow:4px 4px 0 rgba(0,0,0,.45),0 8px 32px rgba(0,0,0,.35),0 20px 28px -8px rgba(218,59,56,.2);transition:transform .25s ease,box-shadow .25s ease}.hero__brand-bg:hover{transform:scale(1.04) translateY(-2px);box-shadow:6px 6px 0 rgba(0,0,0,.6),0 24px 48px rgba(0,0,0,.4),0 28px 36px -8px rgba(218,59,56,.32)}.hero__brand-bg::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg,transparent 20%,rgba(218,59,56,.10) 36%,rgba(175,195,245,.50) 50%,rgba(65,109,189,.10) 64%,transparent 80%);background-size:300% 100%;animation:shimmer 5s 2s linear infinite;pointer-events:none;z-index:0}.hero__brand-text{font-family:'Arial',sans-serif;font-weight:bold;font-style:italic;font-size:var(--fs-hero);line-height:1;letter-spacing:-.03em;text-shadow:2px 2px 2px #000;position:relative;z-index:1}.hero__brand-text .logo-w,.hero__brand-text .logo-4,.hero__brand-text .logo-u{display:inline-block;animation:letterDrop .72s cubic-bezier(0.22,1,0.36,1) both}.hero__brand-text .logo-w{animation-delay:.7s}.hero__brand-text .logo-4{animation-delay:.9s}.hero__brand-text .logo-u{animation-delay:1.1s}.hero__tagline{font-family:var(--ff-display);font-size:clamp(1.1rem,2.2vw,1.4rem);font-weight:100;letter-spacing:.22em;text-transform:uppercase;color:var(--clr-muted);text-shadow:0 2px 6px rgba(0,0,0,.7);margin-bottom:.5rem;animation:fadeUp .6s .45s both}.hero__typewriter{font-family:var(--ff-mono);font-size:clamp(.82rem,1.8vw,1rem);color:var(--clr-muted);margin-bottom:var(--sp-6);min-height:1.8em;animation:fadeUp .6s .5s both}.hero__typewriter span{color:var(--clr-cyan)}.cursor-blink{display:inline-block;width:2px;height:1em;background:var(--clr-cyan);margin-left:2px;vertical-align:middle;animation:blink 1s step-end infinite}.hero__actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center;animation:fadeUp .6s .65s both}.hero__scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-family:var(--ff-mono);font-size:.6rem;color:rgba(65,109,189,.65);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;animation:fadeUp .6s 1.5s both;transition:color .2s ease,opacity .2s ease}.hero__scroll:hover{color:var(--clr-blue);opacity:.85}.hero__scroll-line{width:2px;height:56px;background:rgba(65,109,189,.15);position:relative;overflow:hidden;border-radius:2px}.hero__scroll-line::after{content:'';position:absolute;left:0;top:0;width:100%;height:40%;background:linear-gradient(to bottom,rgba(65,109,189,0),#416dbd,rgba(65,109,189,0));transform:translateY(-110%);animation:scrollDrop 2s 1.8s ease-in-out infinite}@keyframes scrollDrop{0%{transform:translateY(-110%);opacity:0}20%{opacity:1}80%{opacity:1}100%{transform:translateY(260%);opacity:0}}.section{padding:var(--sp-section) 0}.section--surface{background:var(--clr-surface);border-top:1px solid var(--clr-border);border-bottom:1px solid var(--clr-border)}.section--border-b{position:relative}.section--border-b::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(1000px,92%);height:1px;background:linear-gradient(90deg,transparent 0%,var(--clr-border) 15%,var(--clr-border) 85%,transparent 100%);pointer-events:none}.mosaic{display:grid;gap:1.5px;background:var(--clr-border)}.mosaic--2{grid-template-columns:repeat(2,1fr)}.mosaic--3{grid-template-columns:repeat(3,1fr)}.mosaic--4{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.mosaic--4-txt{grid-template-columns:repeat(4,1fr)}.mosaic--4-txt .service-card:nth-child(4n+3):last-child{grid-column:span 2}.mosaic--4-txt .service-card:nth-child(4n+2):last-child{grid-column:span 3}.mosaic--4-txt .service-card:nth-child(4n+1):last-child{grid-column:span 4}.service-card{background:var(--clr-surface);padding:2.5rem var(--sp-4);position:relative;overflow:hidden;transition:background var(--transition),transform .4s var(--ease-spring),box-shadow .35s ease}.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-brand);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}.service-card::after{content:'';position:absolute;top:-60px;left:-60px;width:260px;height:260px;background:radial-gradient(circle,rgba(218,59,56,.09) 0%,transparent 65%);opacity:0;transition:opacity .5s ease;pointer-events:none}.service-card:hover{background:var(--clr-surface2);transform:translateY(-6px);box-shadow:var(--shadow-lift)}.service-card:hover::before{transform:scaleX(1)}.service-card:hover::after{opacity:1}.service-card__num{position:absolute;top:1.5rem;right:1.5rem;font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-border);letter-spacing:.1em;transition:color var(--transition),opacity var(--transition)}.service-card:hover .service-card__num{color:var(--clr-red);opacity:.6}.service-card__icon{width:50px;height:50px;background:var(--clr-red-dim);border:1px solid var(--clr-red-glow);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;transition:background var(--transition),border-color var(--transition),box-shadow .35s ease,transform .4s var(--ease-spring)}.service-card:hover .service-card__icon{background:rgba(218,59,56,.2);border-color:rgba(218,59,56,.5);box-shadow:0 0 20px rgba(218,59,56,.25),0 0 0 4px rgba(218,59,56,.06);transform:scale(1.1) rotate(-4deg)}.service-card__icon svg{width:22px;height:22px;stroke:var(--clr-red);fill:none;stroke-width:1.8}.service-card__title{font-size:var(--fs-lg);font-weight:700;margin-bottom:.8rem;letter-spacing:-.01em}.service-card__text{font-size:var(--fs-sm);color:var(--clr-muted);line-height:1.75}.offres__header{margin-bottom:var(--sp-6)}.offres-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:var(--clr-border);margin-bottom:var(--sp-8)}.offre-card{background:var(--clr-surface2);padding:2.5rem var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);position:relative;overflow:hidden;transition:background var(--transition),transform .38s var(--ease-out),box-shadow .35s ease}.offre-card:hover{background:var(--clr-surface3);transform:translateY(-6px);box-shadow:var(--shadow-lift)}.offre-card--featured{background:var(--clr-surface2);box-shadow:inset 0 0 0 1.5px var(--clr-red-glow),0 0 24px rgba(218,59,56,.08)}.offre-card--featured:hover{box-shadow:inset 0 0 0 1.5px rgba(218,59,56,.7),0 0 40px rgba(218,59,56,.18),var(--shadow-lift);background:radial-gradient(ellipse at 50% 0%,rgba(218,59,56,.07) 0%,transparent 55%),var(--clr-surface3)}.offre-card--featured::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-brand);pointer-events:none}.offre-card--featured::after{content:'Recommandé';position:absolute;top:var(--sp-2);right:var(--sp-2);font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-red);background:var(--clr-red-dim);border:1px solid var(--clr-red-glow);padding:.2rem .7rem;border-radius:20px;z-index:1}.offre-card__icon{width:44px;height:44px;background:var(--clr-surface3);border:1px solid var(--clr-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease-spring),box-shadow .35s ease,border-color .2s ease,background .2s ease}.offre-card:hover .offre-card__icon{transform:scale(1.1) rotate(-4deg);background:var(--clr-red-dim);border-color:var(--clr-red-glow);box-shadow:0 0 16px rgba(218,59,56,.2)}.offre-card__icon svg{width:20px;height:20px;stroke:var(--clr-muted);fill:none;stroke-width:1.8;transition:stroke .2s ease}.offre-card:hover .offre-card__icon svg{stroke:var(--clr-red)}.offre-card__name{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--clr-muted)}.offre-card__tag{font-family:var(--ff-mono);font-size:.7rem;color:var(--clr-cyan);letter-spacing:.05em;margin-bottom:var(--sp-1)}.offre-features{flex:1;display:flex;flex-direction:column;gap:.55rem}.offre-features li{font-size:var(--fs-sm);color:var(--clr-text-dim);display:flex;gap:.7rem;align-items:flex-start}.offre-features li::before{content:'✓';color:var(--clr-cyan);flex-shrink:0;margin-top:1px;font-family:var(--ff-mono);font-size:.78rem}@keyframes vtl-slide-left{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}@keyframes vtl-slide-right{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}@keyframes vtl-pop{0%{opacity:0;transform:scale(.80)}65%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:none}}@keyframes vtl-flip{0%{opacity:0;transform:perspective(700px) rotateY(45deg)}70%{opacity:1;transform:perspective(700px) rotateY(-4deg)}100%{opacity:1;transform:none}}@keyframes vtl-skew{0%{opacity:0;transform:skewX(-15deg) translateX(32px)}70%{opacity:1;transform:skewX(2deg) translateX(-2px)}100%{opacity:1;transform:none}}@keyframes vtl-bounce{0%{opacity:0;transform:translateY(48px) scale(.93)}58%{opacity:1;transform:translateY(-9px) scale(1.025)}100%{opacity:1;transform:none}}@keyframes vtl-focus{from{opacity:0;filter:blur(10px);transform:scale(1.06)}to{opacity:1;filter:blur(0);transform:none}}@keyframes vtl-rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.vtimeline{padding:var(--sp-4) 0 var(--sp-4)}.vtimeline__tag{margin-bottom:var(--sp-6)}.vtimeline__list{list-style:none;padding:0;margin:0;position:relative}.vtimeline__list::before{content:'';position:absolute;left:calc(50% - 1px);top:30px;bottom:30px;width:2px;background:linear-gradient(to bottom,var(--clr-red) 0%,var(--clr-border) 65%,transparent 100%);pointer-events:none}.vtl-step{display:grid;grid-template-columns:1fr 64px 1fr;align-items:center;gap:0 var(--sp-5);margin-bottom:var(--sp-6);opacity:0}.vtl-step:nth-child(1).is-visible{animation:vtl-slide-left .55s var(--ease-out) both}.vtl-step:nth-child(2).is-visible{animation:vtl-slide-right .55s var(--ease-out) both}.vtl-step:nth-child(3).is-visible{animation:vtl-pop .60s var(--ease-spring) both}.vtl-step:nth-child(4).is-visible{animation:vtl-flip .60s var(--ease-out) both}.vtl-step:nth-child(5).is-visible{animation:vtl-skew .60s var(--ease-out) both}.vtl-step:nth-child(6).is-visible{animation:vtl-bounce .65s var(--ease-spring) both}.vtl-step:nth-child(7).is-visible{animation:vtl-focus .65s var(--ease-out) both}.vtl-step:nth-child(8).is-visible{animation:vtl-rise .55s var(--ease-out) both}.vtl-step__badge{grid-column:2;grid-row:1;width:64px;height:64px;border-radius:50%;background:var(--clr-surface2);border:2px solid var(--clr-red);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;justify-self:center;box-shadow:0 0 0 5px var(--clr-bg),0 0 16px rgba(218,59,56,.14);transition:background .3s ease,box-shadow .3s ease;flex-shrink:0}.vtl-step__badge::before{content:'';position:absolute;top:50%;height:1px;width:var(--sp-5);background:var(--clr-border);transition:background .25s ease}.vtl-step:nth-child(odd) .vtl-step__badge::before{right:100%}.vtl-step:nth-child(even) .vtl-step__badge::before{left:100%}.vtl-step:nth-child(1):hover .vtl-step__badge::before,.vtl-step:nth-child(2):hover .vtl-step__badge::before{background:var(--clr-red)}.vtl-step:nth-child(3):hover .vtl-step__badge::before,.vtl-step:nth-child(4):hover .vtl-step__badge::before{background:var(--clr-blue)}.vtl-step:nth-child(5):hover .vtl-step__badge::before,.vtl-step:nth-child(6):hover .vtl-step__badge::before{background:var(--clr-violet)}.vtl-step:nth-child(7):hover .vtl-step__badge::before,.vtl-step:nth-child(8):hover .vtl-step__badge::before{background:var(--clr-cyan)}.vtl-step__num{font-family:var(--ff-mono);font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--clr-red)}.vtl-step__body{grid-row:1;position:relative;overflow:hidden;background:#ffffff;border:1px solid #d8e2ef;border-radius:10px;padding:var(--sp-4) var(--sp-5);box-shadow:0 2px 12px rgba(0,0,0,.07);transition:border-color .28s ease,box-shadow .28s ease,transform .35s var(--ease-spring)}.vtl-step__body::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;opacity:0;transition:opacity .28s ease}.vtl-step:hover .vtl-step__body::before{opacity:1}.vtl-step:nth-child(1) .vtl-step__body::before,.vtl-step:nth-child(2) .vtl-step__body::before{background:var(--clr-red)}.vtl-step:nth-child(3) .vtl-step__body::before,.vtl-step:nth-child(4) .vtl-step__body::before{background:var(--clr-blue)}.vtl-step:nth-child(5) .vtl-step__body::before,.vtl-step:nth-child(6) .vtl-step__body::before{background:var(--clr-violet)}.vtl-step:nth-child(7) .vtl-step__body::before,.vtl-step:nth-child(8) .vtl-step__body::before{background:var(--clr-cyan)}.vtl-step:nth-child(1):hover .vtl-step__body{transform:translateY(-4px) rotate(-1.5deg)}.vtl-step:nth-child(2):hover .vtl-step__body{transform:translateY(-4px) rotate(1.5deg)}.vtl-step:nth-child(3):hover .vtl-step__body{transform:translateY(-4px) scale(1.03)}.vtl-step:nth-child(4):hover .vtl-step__body{transform:translateY(-4px) perspective(600px) rotateX(5deg)}.vtl-step:nth-child(5):hover .vtl-step__body{transform:translateY(-4px) skewX(-2.5deg)}.vtl-step:nth-child(6):hover .vtl-step__body{transform:translateY(-6px) scale(1.02)}.vtl-step:nth-child(7):hover .vtl-step__body{transform:translateY(-4px) perspective(600px) rotateY(4deg)}.vtl-step:nth-child(8):hover .vtl-step__body{transform:translateY(-4px)}.vtl-step:nth-child(1):hover .vtl-step__body,.vtl-step:nth-child(2):hover .vtl-step__body{border-color:rgba(218,59,56,.35);box-shadow:0 10px 32px rgba(218,59,56,.16)}.vtl-step:nth-child(3):hover .vtl-step__body,.vtl-step:nth-child(4):hover .vtl-step__body{border-color:rgba(65,109,189,.35);box-shadow:0 10px 32px rgba(65,109,189,.16)}.vtl-step:nth-child(5):hover .vtl-step__body,.vtl-step:nth-child(6):hover .vtl-step__body{border-color:rgba(124,92,252,.35);box-shadow:0 10px 32px rgba(124,92,252,.16)}.vtl-step:nth-child(7):hover .vtl-step__body,.vtl-step:nth-child(8):hover .vtl-step__body{border-color:rgba(0,212,170,.35);box-shadow:0 10px 32px rgba(0,212,170,.16)}.vtl-step:hover .vtl-step__badge{background:var(--clr-surface3);box-shadow:0 0 0 5px var(--clr-bg),0 0 28px var(--clr-red-glow)}.vtl-step:nth-child(odd) .vtl-step__body{grid-column:1;text-align:right}.vtl-step:nth-child(even) .vtl-step__body{grid-column:3}.vtl-step__title{display:block;font-family:var(--ff-syne);font-size:1rem;font-weight:700;color:#111827;margin-bottom:.3rem;transition:color .25s ease}.vtl-step:nth-child(1):hover .vtl-step__title,.vtl-step:nth-child(2):hover .vtl-step__title{color:var(--clr-red)}.vtl-step:nth-child(3):hover .vtl-step__title,.vtl-step:nth-child(4):hover .vtl-step__title{color:var(--clr-blue)}.vtl-step:nth-child(5):hover .vtl-step__title,.vtl-step:nth-child(6):hover .vtl-step__title{color:var(--clr-violet)}.vtl-step:nth-child(7):hover .vtl-step__title,.vtl-step:nth-child(8):hover .vtl-step__title{color:var(--clr-cyan)}.vtl-step__desc{font-family:var(--ff-mono);font-size:.78rem;line-height:1.6;color:#6b7280;margin:0}.vtl-step:nth-child(1) .vtl-step__badge,.vtl-step:nth-child(2) .vtl-step__badge{border-color:var(--clr-red)}.vtl-step:nth-child(1) .vtl-step__num,.vtl-step:nth-child(2) .vtl-step__num{color:var(--clr-red)}.vtl-step:nth-child(3) .vtl-step__badge,.vtl-step:nth-child(4) .vtl-step__badge{border-color:var(--clr-blue)}.vtl-step:nth-child(3) .vtl-step__num,.vtl-step:nth-child(4) .vtl-step__num{color:var(--clr-blue)}.vtl-step:nth-child(3):hover .vtl-step__badge,.vtl-step:nth-child(4):hover .vtl-step__badge{box-shadow:0 0 0 5px var(--clr-bg),0 0 28px var(--clr-blue-glow)}.vtl-step:nth-child(5) .vtl-step__badge,.vtl-step:nth-child(6) .vtl-step__badge{border-color:var(--clr-violet)}.vtl-step:nth-child(5) .vtl-step__num,.vtl-step:nth-child(6) .vtl-step__num{color:var(--clr-violet)}.vtl-step:nth-child(5):hover .vtl-step__badge,.vtl-step:nth-child(6):hover .vtl-step__badge{box-shadow:0 0 0 5px var(--clr-bg),0 0 28px rgba(124,92,252,.45)}.vtl-step:nth-child(7) .vtl-step__badge,.vtl-step:nth-child(8) .vtl-step__badge{border-color:var(--clr-cyan)}.vtl-step:nth-child(7) .vtl-step__num,.vtl-step:nth-child(8) .vtl-step__num{color:var(--clr-cyan)}.vtl-step:nth-child(7):hover .vtl-step__badge,.vtl-step:nth-child(8):hover .vtl-step__badge{box-shadow:0 0 0 5px var(--clr-bg),0 0 28px rgba(0,212,170,.45)}.vtimeline__note{text-align:center;font-family:var(--ff-mono);font-size:.72rem;color:var(--clr-muted);margin-top:var(--sp-4)}.timeline{display:flex;flex-direction:column;max-width:800px}.timeline__item{display:grid;grid-template-columns:32px 1fr;gap:0 2rem;padding-bottom:var(--sp-8);position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__item:not(:last-child)::after{content:'';position:absolute;left:15px;top:20px;bottom:0;width:1px;background:linear-gradient(to bottom,var(--clr-border),transparent);pointer-events:none}.timeline__marker{width:14px;height:14px;border-radius:50%;background:var(--clr-red);border:2px solid var(--clr-bg);box-shadow:0 0 0 2px var(--clr-red-glow);margin:4px auto 0;position:relative;z-index:1}.timeline__item--edu .timeline__marker{background:var(--clr-cyan);box-shadow:0 0 0 2px rgba(0,212,170,.35)}.timeline__item--past .timeline__marker{background:var(--clr-blue);box-shadow:0 0 0 2px var(--clr-blue-glow)}.timeline__item--base .timeline__marker{background:var(--clr-violet);box-shadow:0 0 0 2px rgba(124,92,252,.35)}.timeline__date{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-red);margin-bottom:.4rem}.timeline__item--edu .timeline__date{color:var(--clr-cyan)}.timeline__item--past .timeline__date{color:var(--clr-blue)}.timeline__item--base .timeline__date{color:var(--clr-violet)}.timeline__title{font-family:var(--ff-display);font-size:1.25rem;font-weight:300;margin-bottom:.2rem}.timeline__org{font-family:var(--ff-mono);font-size:.72rem;color:var(--clr-muted);letter-spacing:.06em;margin-bottom:.6rem}.timeline__desc{font-size:var(--fs-sm);color:var(--clr-text-dim);line-height:1.75}.stack__header{text-align:center;margin-bottom:var(--sp-8)}.stack__header .section-desc,.stack__header .section-tag{justify-content:center;margin-inline:auto}.stack__header .section-tag::before{display:none}.stack-item{background:var(--clr-surface);padding:1.8rem var(--sp-2);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;transition:background var(--transition),transform .4s var(--ease-spring),box-shadow .3s ease;position:relative;overflow:hidden}.stack-item::before{content:'';position:absolute;bottom:0;left:0;right:0;height:1.5px;background:var(--gradient-brand);transform:scaleX(0);transition:transform .4s var(--ease-out)}.stack-item:hover{background:var(--clr-surface2);transform:translateY(-5px);box-shadow:0 10px 32px rgba(0,0,0,.45)}.stack-item:hover::before{transform:scaleX(1)}.stack-item:hover .stack-item__name{color:var(--clr-text)}.stack-item:hover .stack-item__icon{opacity:1;filter:drop-shadow(0 0 8px var(--clr-red-glow));transform:scale(1.25) rotate(-8deg)}.stack-item__icon{width:34px;height:34px;opacity:.55;transition:opacity .3s ease,filter .3s ease,transform .45s var(--ease-spring)}.stack-item__name{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);transition:color var(--transition)}.real__header{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:var(--sp-8);gap:var(--sp-4)}.real-card{background:var(--clr-surface2);padding:2.5rem;display:flex;flex-direction:column;gap:var(--sp-2);transition:background var(--transition),transform .42s var(--ease-out),box-shadow .4s ease;position:relative;overflow:hidden;box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,0 2px 8px rgba(0,0,0,.22),0 0 0 rgba(0,0,0,0),0 0 0 rgba(0,0,0,0)}.real-card::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:var(--gradient-brand);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out),width .25s ease,filter .3s ease}.real-card:hover{background:var(--clr-surface3);transform:translateY(-6px) translateX(-4px);z-index:2;box-shadow:14px 16px 0 1px rgba(18,25,45,.95),14px 16px 0 0 rgba(10,14,22,.98),0 22px 52px rgba(0,0,0,.65),-4px 0 18px rgba(218,59,56,.08),0 4px 12px rgba(0,0,0,.3)}.real-card:hover::before{transform:scaleY(1);width:3px;filter:brightness(1.5)}.real-card__tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .65rem;border-radius:20px;transition:opacity var(--transition),box-shadow .25s ease}.tag--cyan{color:var(--clr-cyan);background:var(--clr-cyan-dim);border:1px solid rgba(0,212,170,.22)}.tag--red{color:var(--clr-red);background:var(--clr-red-dim);border:1px solid var(--clr-red-glow)}.tag--violet{color:var(--clr-violet);background:var(--clr-violet-dim);border:1px solid rgba(124,92,252,.28)}.real-card:hover .tag--cyan{box-shadow:0 0 10px rgba(0,212,170,.2)}.real-card:hover .tag--red{box-shadow:0 0 10px rgba(218,59,56,.2)}.real-card:hover .tag--violet{box-shadow:0 0 10px rgba(124,92,252,.2)}.real-card__title{font-size:1.2rem;font-weight:700;letter-spacing:-.01em;transition:letter-spacing .25s ease}.real-card:hover .real-card__title{letter-spacing:.005em}.real-card__desc{font-size:var(--fs-sm);color:var(--clr-muted);line-height:1.7;flex:1}.real-card__link{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--clr-red);display:inline-flex;align-items:center;gap:.45rem;transition:gap var(--transition),opacity var(--transition);width:fit-content}.real-card__link:hover{gap:.8rem}.real-card__link svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}.about__text p{font-size:var(--fs-md);color:var(--clr-muted);line-height:1.82;margin-bottom:1.2rem}.about__text p strong{color:var(--clr-text)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5px;background:var(--clr-border);margin-top:var(--sp-4)}.stat{background:var(--clr-surface2);padding:1.6rem;position:relative;overflow:hidden;transition:background var(--transition),transform .35s var(--ease-out),box-shadow .3s ease}.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--gradient-brand);opacity:0;transition:opacity .3s ease}.stat:hover{background:var(--clr-surface3);transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,.4)}.stat:hover::before{opacity:1}.stat__num{font-family:var(--ff-mono);font-size:2.2rem;font-weight:700;line-height:1;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat__label{font-size:.78rem;color:var(--clr-muted);margin-top:.35rem;line-height:1.4}.terminal{background:#080d14;border:1px solid var(--clr-border);border-radius:var(--radius-lg);overflow:hidden;font-family:var(--ff-mono);font-size:.8rem;box-shadow:var(--shadow-md),inset 0 1px 0 rgba(255,255,255,.03)}.terminal__bar{background:var(--clr-surface2);border-bottom:1px solid var(--clr-border);padding:.7rem var(--sp-2);display:flex;align-items:center;gap:.5rem}.terminal__dot{width:10px;height:10px;border-radius:50%;transition:opacity var(--transition)}.terminal__dot--r{background:#ff5f57}.terminal__dot--y{background:#febc2e}.terminal__dot--g{background:#28c840}.terminal:hover .terminal__dot--r{box-shadow:0 0 6px #ff5f57}.terminal:hover .terminal__dot--g{box-shadow:0 0 6px #28c840}.terminal__title{font-size:.68rem;color:var(--clr-muted);margin-left:.5rem}.terminal__body{padding:1.5rem;line-height:2.1}.t-prompt{color:var(--clr-red)}.t-cmd{color:var(--clr-text)}.t-out{color:#3d6b3d}.t-ok{color:#28c840}.t-path{color:var(--clr-cyan)}.faq__header{margin-bottom:var(--sp-8)}.faq__header>*{background:var(--clr-bg);padding:var(--sp-6) var(--sp-5)}.faq__header>* + *{padding-left:var(--sp-6);border-left:1px solid var(--clr-border)}@media (max-width:900px){.faq__header>* + *{padding-left:0;border-left:none;border-top:1px solid var(--clr-border)}}.faq-list{margin-top:var(--sp-6)}.faq-item{border-bottom:1px solid var(--clr-border)}.faq-item:first-child{border-top:1px solid var(--clr-border)}.faq-item__question{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:1.4rem 0;background:none;border:none;text-align:left;font-family:var(--ff-sans);font-size:1.05rem;font-weight:600;color:var(--clr-text);transition:color var(--transition);cursor:pointer}.faq-item__question:hover{color:var(--clr-red)}.faq-item.is-open .faq-item__question{color:var(--clr-red)}.faq-item__icon{flex-shrink:0;width:22px;height:22px;border:1px solid var(--clr-border);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--transition),border-color var(--transition),transform .3s}.faq-item__icon svg{width:12px;height:12px;stroke:var(--clr-muted);fill:none;stroke-width:2;transition:transform .3s}.faq-item.is-open .faq-item__icon{background:var(--clr-red-dim);border-color:var(--clr-red-glow)}.faq-item.is-open .faq-item__icon svg{transform:rotate(45deg);stroke:var(--clr-red)}.faq-item__answer{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.4,0,.2,1)}.faq-item.is-open .faq-item__answer{max-height:300px}.faq-item__body{padding:0 0 1.4rem 0;font-size:var(--fs-sm);color:var(--clr-muted);line-height:1.8}.contact__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:6rem;margin-top:var(--sp-6)}.contact-info{display:flex;flex-direction:column;gap:var(--sp-3)}.contact-item{display:flex;gap:var(--sp-2);align-items:flex-start;padding:1.2rem;border:1px solid var(--clr-border);border-radius:var(--radius);background:var(--clr-surface2);transition:background var(--transition),border-color var(--transition)}.contact-item:hover{background:var(--clr-surface3);border-color:rgba(218,59,56,.2)}.contact-item__icon{flex-shrink:0;width:40px;height:40px;background:var(--clr-red-dim);border:1px solid var(--clr-red-glow);border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.contact-item__icon svg{width:17px;height:17px;stroke:var(--clr-red);fill:none;stroke-width:1.8}.contact-item__label{font-family:var(--ff-mono);font-size:.62rem;color:var(--clr-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.2rem}.contact-item__val{font-size:.95rem;color:var(--clr-text)}.contact-item__val a{transition:color var(--transition)}.contact-item__val a:hover{color:var(--clr-red)}.contact-item__val small{color:var(--clr-muted);font-size:.82rem}.map-link{color:inherit;text-decoration:none;border-bottom:1px dashed var(--clr-border);transition:color .2s,border-color .2s}.map-link:hover{color:var(--clr-blue);border-color:var(--clr-blue)}@keyframes tel-ring{0%,100%{box-shadow:0 0 0 0 rgba(218,59,56,.5)}50%{box-shadow:0 0 0 7px rgba(218,59,56,0)}}.tel-cta{display:inline-flex;align-items:center;gap:.45rem;background:rgba(218,59,56,.1);border:1px solid rgba(218,59,56,.35);color:var(--clr-red);border-radius:100px;padding:.28rem .85rem .28rem .65rem;font-family:var(--ff-mono);font-size:.88em;font-weight:700;letter-spacing:.04em;text-decoration:none;vertical-align:middle;animation:tel-ring 2.8s ease-in-out infinite;transition:background .25s,border-color .25s,box-shadow .25s,color .25s}.tel-cta svg{flex-shrink:0;stroke:var(--clr-red);transition:transform .3s var(--ease-spring)}.tel-cta:hover{background:rgba(218,59,56,.18);border-color:var(--clr-red);box-shadow:0 0 20px rgba(218,59,56,.3);color:var(--clr-red)}.tel-cta:hover svg{transform:rotate(-12deg) scale(1.15)}.contact-form{display:flex;flex-direction:column;gap:1.2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.field{display:flex;flex-direction:column;gap:.4rem}.field__label{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-muted);transition:color var(--transition)}.field:focus-within .field__label{color:var(--clr-text)}.field__input,.field__textarea,.field__select{background:var(--clr-surface2);border:1px solid var(--clr-border);color:var(--clr-text);padding:.85rem var(--sp-2);font-family:var(--ff-sans);font-size:.92rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);-webkit-appearance:none;border-radius:0;width:100%}.field__input:focus,.field__textarea:focus,.field__select:focus{border-color:var(--clr-red);box-shadow:0 0 0 3px var(--clr-red-dim);background:var(--clr-surface3)}.field__input::placeholder,.field__textarea::placeholder{color:var(--clr-muted-dim)}.field__textarea{resize:vertical;min-height:140px}.field__select{cursor:pointer}.field__select option{background:var(--clr-surface2)}.field__error{font-family:var(--ff-mono);font-size:var(--fs-xs);color:#ff5f57;display:none;align-items:center;gap:.3rem}.field__error::before{content:'✗'}.field__input:invalid:not(:placeholder-shown) + .field__error{display:flex}.form-status{font-family:var(--ff-mono);font-size:.8rem;padding:.9rem var(--sp-2);display:none;border-radius:var(--radius)}.form-status--ok{color:var(--clr-green);background:rgba(40,200,64,.07);border:1px solid rgba(40,200,64,.22);display:block}.form-status--err{color:#ff5f57;background:rgba(255,95,87,.07);border:1px solid rgba(255,95,87,.22);display:block}.footer{border-top:1px solid var(--clr-border);background:var(--clr-surface)}.footer__top{padding:var(--sp-8) 0 var(--sp-6);display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-6);align-items:start}.footer__brand-logo{font-family:var(--ff-mono);font-size:1.8rem;font-weight:700;letter-spacing:.02em;margin-bottom:.8rem}.footer__brand-desc{font-size:var(--fs-sm);color:var(--clr-muted);line-height:1.7;max-width:240px}.footer__brand-contact{margin-top:1.2rem;display:flex;flex-direction:column;gap:.4rem}.footer__brand-contact a{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);letter-spacing:.06em;transition:color var(--transition)}.footer__brand-contact a:hover{color:var(--clr-red)}.footer__brand-addr{font-style:normal;font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);letter-spacing:.04em;line-height:1.5}.footer__social{display:flex;gap:1rem;align-items:center;margin-top:1.4rem}.footer__social a{color:var(--clr-muted);display:flex;align-items:center;transition:color var(--transition),transform var(--transition)}.footer__social a:hover{color:var(--clr-blue);transform:translateY(-2px)}.footer__social a:last-child:hover{color:#fbbc04}.footer__col-title{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--clr-text);margin-bottom:1.2rem}.footer__links-list{display:flex;flex-direction:column;gap:.65rem}.footer__links-list a{font-size:var(--fs-sm);color:var(--clr-muted);transition:color var(--transition),padding-left var(--transition);display:inline-block}.footer__links-list a:hover{color:var(--clr-text);padding-left:4px}.footer__bottom{border-top:1px solid var(--clr-border-dim);padding:1.5rem 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2)}.footer__copy{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);line-height:1.6}.footer__legal{display:flex;gap:1.5rem}.footer__legal a{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted-dim);transition:color var(--transition)}.footer__legal a:hover{color:var(--clr-text)}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:42px;height:42px;background:var(--clr-surface2);border:1px solid var(--clr-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s,background var(--transition),border-color var(--transition);z-index:50}.back-to-top.is-visible{opacity:1;transform:none}.back-to-top:hover{background:var(--clr-red-dim);border-color:var(--clr-red-glow)}.back-to-top svg{width:18px;height:18px;stroke:var(--clr-muted);fill:none;stroke-width:2}.back-to-top:hover svg{stroke:var(--clr-red)}.legal-page{max-width:860px;margin-inline:auto;padding:5rem var(--sp-4) 6rem}.legal-page h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-.03em;margin-bottom:3rem;line-height:1.08}.legal-page h2{font-size:var(--fs-lg);font-weight:700;margin:2.5rem 0 .8rem;color:var(--clr-red);font-family:var(--ff-mono);letter-spacing:.02em}.legal-page p{font-size:.95rem;color:var(--clr-muted);margin-bottom:.8rem;line-height:1.75}.legal-page strong{color:var(--clr-text)}.legal-page a{color:var(--clr-red)}.legal-page a:hover{text-decoration:underline}.info-box{background:var(--clr-surface);border:1px solid var(--clr-border);border-left:3px solid var(--clr-red);padding:1.3rem 1.6rem;margin:var(--sp-4) 0;font-family:var(--ff-mono);font-size:var(--fs-sm);color:var(--clr-muted);border-radius:0 var(--radius) var(--radius) 0;line-height:1.8}.breadcrumb{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--clr-muted);margin-bottom:var(--sp-4);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.breadcrumb a{color:var(--clr-muted);transition:color var(--transition)}.breadcrumb a:hover{color:var(--clr-red)}.breadcrumb__sep{opacity:.35}.js-reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.js-reveal.is-visible{opacity:1;transform:none}.js-reveal-stagger>*{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}.js-reveal-stagger.is-visible>*{opacity:1;transform:none}@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes letterDrop{0%{transform:translateY(-320%);opacity:0}40%{opacity:1}78%{transform:translateY(5%)}90%{transform:translateY(-2%)}100%{transform:translateY(0);opacity:1}}@keyframes shimmer{0%{background-position:200% center}100%{background-position:-200% center}}@keyframes statusPulse{0%,100%{box-shadow:0 0 0 0 rgba(40,200,64,.5)}50%{box-shadow:0 0 0 5px rgba(40,200,64,.0)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@media (max-width:1100px){.footer__top{grid-template-columns:1fr 1fr}}@media (max-width:900px){.nav{padding:1rem 1.5rem}.nav__links{display:none;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:min(82vw,320px);background:var(--clr-surface);border-left:1px solid var(--clr-border);align-items:flex-start;justify-content:flex-start;padding:5rem 1.8rem 1.8rem;gap:.25rem;font-size:1rem;z-index:99;overflow-y:auto;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.nav__links.is-open{display:flex;transform:translateX(0)}.nav__links>li>a{font-size:.92rem;padding:.7rem 0;width:100%;display:block;border-bottom:1px solid var(--clr-border-dim)}.nav__links a::after{display:none}.nav__burger{display:flex}.nav__cta{display:none}.nav__tel{display:none}.nav__mobile-footer{display:flex;flex-direction:column;gap:1.2rem;margin-top:auto;padding-top:1.8rem;border-top:1px solid var(--clr-border);border-bottom:none !important;width:100%;list-style:none}.nav__mobile-cta{display:flex;justify-content:center;width:100%}.nav__mobile-tel{display:flex;align-items:center;gap:.55rem;font-family:var(--ff-mono);font-size:.88rem;color:var(--clr-text);border-bottom:none !important;padding:0 !important;width:auto !important;text-decoration:none}.nav__mobile-tel:hover{color:var(--clr-blue)}.nav__mobile-addr{font-style:normal;font-size:.78rem;color:var(--clr-muted);display:flex;align-items:flex-start;gap:.5rem;line-height:1.6}.nav__mobile-addr svg{margin-top:.2rem;flex-shrink:0}.nav__mobile-social{display:flex;gap:1.2rem;align-items:center;padding-bottom:.25rem}.nav__mobile-social a{color:var(--clr-muted);display:flex;align-items:center;border-bottom:none !important;padding:0 !important;width:auto !important;transition:color .2s ease}.nav__mobile-social a:hover{color:var(--clr-blue)}.mosaic--2{grid-template-columns:1fr}.mosaic--4-txt{grid-template-columns:repeat(2,1fr)}.offres-grid{grid-template-columns:repeat(2,1fr)}.section__header{grid-template-columns:1fr;gap:var(--sp-4);margin-bottom:1.5rem;padding-bottom:var(--sp-4)}.about__grid{grid-template-columns:1fr;gap:var(--sp-6)}.contact__grid{grid-template-columns:1fr;gap:var(--sp-6)}.real__header{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.footer__top{grid-template-columns:1fr;gap:var(--sp-4)}.footer__bottom{flex-direction:column;align-items:flex-start}.mosaic--4-txt .service-card:nth-child(4n+3):last-child,.mosaic--4-txt .service-card:nth-child(4n+2):last-child,.mosaic--4-txt .service-card:nth-child(4n+1):last-child{grid-column:auto}.mosaic--4-txt .service-card:nth-child(2n+1):last-child{grid-column:span 2}}@media (max-width:768px){.mosaic--3{grid-template-columns:repeat(2,1fr)}.mosaic--3>*:nth-child(odd):last-child{grid-column:span 2}.vtimeline__list::before{left:31px;top:0;bottom:0}.vtl-step,.vtl-step:nth-child(odd),.vtl-step:nth-child(even){grid-template-columns:64px 1fr;gap:0 var(--sp-3)}.vtl-step__badge{grid-column:1;box-shadow:0 0 0 4px var(--clr-bg),0 0 10px rgba(218,59,56,.12)}.vtl-step:nth-child(odd) .vtl-step__body,.vtl-step:nth-child(even) .vtl-step__body{grid-column:2;text-align:left}.vtl-step__badge::before{display:none}}@media (max-width:600px){:root{--sp-section:5rem}.hero__actions{flex-direction:column;align-items:center}.btn{width:100%;justify-content:center}.btn--ghost{clip-path:none}.mosaic--3{grid-template-columns:1fr}.mosaic--4-txt{grid-template-columns:1fr}.offres-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.back-to-top{bottom:1.2rem;right:1.2rem}.footer__top{gap:var(--sp-3)}.mosaic--4-txt .service-card:nth-child(4n+3):last-child,.mosaic--4-txt .service-card:nth-child(4n+2):last-child,.mosaic--4-txt .service-card:nth-child(4n+1):last-child,.mosaic--4-txt .service-card:nth-child(2n+1):last-child,.mosaic--3>*:nth-child(odd):last-child{grid-column:auto}.service-card{padding:1.8rem var(--sp-3)}.promise-strip__badges li{white-space:normal}}.page-hero{padding:calc(var(--nav-h) + 5rem) 0 5rem;background:var(--clr-surface);border-bottom:1px solid var(--clr-border);position:relative;overflow:hidden}.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 20% 50%,rgba(218,59,56,.05) 0%,transparent 70%);pointer-events:none}.page-hero .container{position:relative}.page-hero .section-tag{margin-bottom:var(--sp-3)}.page-hero__title{font-family:var(--ff-display);font-size:clamp(2.8rem,6vw,4.5rem);font-weight:100;letter-spacing:-.02em;line-height:1.06;margin-bottom:var(--sp-3);text-shadow:0 2px 8px rgba(0,0,0,.7)}.page-hero__desc{font-size:var(--fs-md);color:var(--clr-muted);max-width:680px;line-height:1.75}.page-hero__desc a{color:var(--clr-red)}.about-hero__inner{display:grid;grid-template-columns:1fr auto;gap:var(--sp-8);align-items:center}.about-hero__logo img{border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}@media (max-width:768px){.about-hero__inner{grid-template-columns:1fr}.about-hero__logo{display:none}}.cta-block{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4rem;padding:4rem;background:var(--clr-surface2);border:1px solid var(--clr-border);position:relative;overflow:hidden}.cta-block::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 0% 50%,rgba(218,59,56,.05) 0%,transparent 60%);pointer-events:none}.cta-block .section-title{margin-bottom:.5rem}.cta-block__actions{display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}.tag--dim{color:var(--clr-muted);background:rgba(255,255,255,.04);border:1px solid var(--clr-border)}.real-card__tech{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}@media (max-width:900px){.cta-block{grid-template-columns:1fr;gap:2rem;padding:2.5rem}.cta-block__actions{flex-direction:row}}@media (max-width:600px){.page-hero{padding-top:calc(var(--nav-h) + 3rem);padding-bottom:3rem}.cta-block__actions{flex-direction:column}}.promise-strip{background:var(--clr-surface);border-top:1px solid var(--clr-border);border-bottom:3px solid var(--clr-blue);padding:2rem 0}.promise-strip__inner{display:flex;align-items:center;gap:var(--sp-8)}.promise-strip__text{font-family:var(--ff-display);font-weight:200;font-size:clamp(.95rem,1.6vw,1.1rem);line-height:1.65;color:var(--clr-muted);flex:1}.promise-strip__text strong{font-weight:600;color:var(--clr-text)}.promise-strip__badges{display:flex;gap:var(--sp-4);flex-shrink:0}.promise-strip__badges li{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.1em;color:var(--clr-muted);white-space:nowrap;display:flex;align-items:center;gap:.4rem}.promise-strip__badges li::before{content:'✓';color:var(--clr-blue);font-weight:700}.page-hero__bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}.page-hero__bg svg{width:100%;height:100%;opacity:.32;color:var(--clr-blue)}@keyframes svgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes svgPulse{0%,100%{opacity:.28}50%{opacity:.50}}.page-hero__bg .f1{animation:svgFloat 6s ease-in-out infinite;opacity:.5}.page-hero__bg .f2{animation:svgFloat 8s 2s ease-in-out infinite}.page-hero__bg .f3{animation:svgFloat 7s 4s ease-in-out infinite}.page-hero__bg .p1{animation:svgPulse 4s ease-in-out infinite;animation-fill-mode:backwards}.page-hero__bg .p2{animation:svgPulse 5s 1s ease-in-out infinite;animation-fill-mode:backwards}.page-hero__bg .p3{animation:svgPulse 6s 3s ease-in-out infinite;animation-fill-mode:backwards}.google-badge{display:flex;align-items:center;gap:var(--sp-3)}.google-badge__score{font-family:var(--ff-display);font-weight:100;font-size:3rem;line-height:1;color:var(--clr-text)}.google-badge__stars{color:#fbbc04;font-size:1.1rem;letter-spacing:.05em;line-height:1.4}.google-badge__link{font-size:var(--fs-xs);color:var(--clr-red);font-family:var(--ff-mono);letter-spacing:.05em}.google-badge__link:hover{text-decoration:underline}.reviews-swiper{overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:1.2rem;cursor:grab;margin-inline:calc(-1 * var(--sp-4));padding-inline:var(--sp-4)}.reviews-swiper:active{cursor:grabbing}.reviews-swiper::-webkit-scrollbar{height:3px}.reviews-swiper::-webkit-scrollbar-track{background:var(--clr-border);border-radius:2px}.reviews-swiper::-webkit-scrollbar-thumb{background:var(--clr-red);border-radius:2px}.reviews-track{display:flex;gap:var(--sp-3);width:max-content;padding-bottom:2px}.review-card{flex:0 0 min(360px,82vw);scroll-snap-align:start;background:#ffffff;border:1px solid #d8e2ef;border-radius:var(--radius);padding:1.8rem var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);transition:border-color .25s ease,transform .38s var(--ease-out),box-shadow .35s ease;position:relative;overflow:hidden}.review-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--clr-red) 0%,var(--clr-blue) 100%);opacity:0;transition:opacity .35s ease;pointer-events:none}.review-card:hover{border-color:#b8c9de;transform:translateY(-5px);box-shadow:0 12px 36px rgba(0,0,0,.14),0 2px 8px rgba(0,0,0,.06)}.review-card:hover::before{opacity:1}.review-card__head{display:flex;align-items:center;gap:var(--sp-3)}.review-card__avatar{width:2.2rem;height:2.2rem;border-radius:50%;background:rgba(218,59,56,.1);border:1px solid rgba(218,59,56,.25);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--clr-red);flex-shrink:0;transition:transform .4s var(--ease-spring),box-shadow .3s ease}.review-card:hover .review-card__avatar{transform:scale(1.1);box-shadow:0 0 0 3px rgba(218,59,56,.12)}.review-card__name{font-size:var(--fs-sm);font-weight:600;line-height:1.3;color:#111827}.review-card__date{font-size:.72rem;color:#6b7280}.review-card__g{margin-left:auto;flex-shrink:0}.review-card__stars{color:#fbbc04;font-size:.95rem;letter-spacing:.05em;transition:text-shadow .3s ease}.review-card:hover .review-card__stars{text-shadow:0 0 14px rgba(251,188,4,.55)}.review-card__body{font-size:var(--fs-sm);color:#374151;line-height:1.7;font-style:italic;flex:1}@media (max-width:900px){.promise-strip__inner{flex-direction:column;align-items:flex-start;gap:var(--sp-4)}.promise-strip__badges{flex-wrap:wrap;gap:var(--sp-3)}}.captcha-block{margin-top:var(--sp-2)}.captcha-block .field__label{font-family:var(--ff-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--clr-muted);display:block;margin-bottom:.7rem}.captcha-terminal{background:#060b12;border:1px solid var(--clr-border);border-radius:var(--radius-lg);overflow:hidden;font-family:var(--ff-mono);box-shadow:0 4px 24px rgba(0,0,0,.4)}.captcha-terminal__bar{background:var(--clr-surface2);border-bottom:1px solid var(--clr-border);padding:.55rem var(--sp-2);display:flex;align-items:center;gap:.45rem}.captcha-terminal__dot{width:11px;height:11px;border-radius:50%;display:inline-block}.captcha-terminal__dot:nth-child(1){background:#da3b38}.captcha-terminal__dot:nth-child(2){background:#febc2e}.captcha-terminal__dot:nth-child(3){background:#28c840}.captcha-terminal__title{font-size:.68rem;color:var(--clr-muted);letter-spacing:.06em;margin-left:.3rem}.captcha-terminal__body{padding:1.1rem var(--sp-2) 1.3rem;display:flex;flex-direction:column;gap:.85rem}.captcha-terminal__prompt-line{display:flex;align-items:center;gap:.6rem;color:var(--clr-muted);font-size:.82rem}.captcha-terminal__ps1{color:var(--clr-red)}.captcha-terminal__path{color:var(--clr-blue)}.captcha-terminal__cmd{color:var(--clr-cyan)}.captcha-terminal__input-row{display:flex;align-items:center;gap:.65rem}.captcha-terminal__arrow{color:var(--clr-red);font-size:1rem;flex-shrink:0}.captcha-terminal__input{flex:1;background:rgba(255,255,255,.03);border:1px solid var(--clr-border);color:var(--clr-green);font-family:var(--ff-mono);font-size:.95rem;letter-spacing:.1em;padding:.45rem .9rem;border-radius:var(--radius);transition:border-color .2s,box-shadow .2s;width:auto}.captcha-terminal__input:focus{outline:none;border-color:var(--clr-cyan);box-shadow:0 0 0 3px var(--clr-cyan-dim);background:rgba(0,212,170,.04)}.captcha-terminal__input::placeholder{color:var(--clr-muted-dim);letter-spacing:.05em}.captcha-block .field__error{margin-top:.5rem;display:none}.captcha-block .field__error.is-visible{display:block}@media (hover:none){.service-card:hover{transform:none;box-shadow:none;background:var(--clr-surface)}.offre-card:hover{transform:none;box-shadow:none}.review-card:hover{transform:none;box-shadow:none}.vtl-step:nth-child(1):hover .vtl-step__body,.vtl-step:nth-child(2):hover .vtl-step__body,.vtl-step:nth-child(3):hover .vtl-step__body,.vtl-step:nth-child(4):hover .vtl-step__body,.vtl-step:nth-child(5):hover .vtl-step__body,.vtl-step:nth-child(6):hover .vtl-step__body,.vtl-step:nth-child(7):hover .vtl-step__body,.vtl-step:nth-child(8):hover .vtl-step__body{transform:none;box-shadow:0 2px 12px rgba(0,0,0,.07)}}@media print{.nav,.hero__canvas,.hero__scroll,.back-to-top{display:none !important}body{background:#fff;color:#000;cursor:auto}.hero{min-height:auto;padding:2rem 1rem}*{animation:none !important;transition:none !important}}