:root{--white:#ffffff;--bg-light:#f7f4ff;--bg-section:#f0ebff;--bg-card:#ffffff;--purple:#6d28d9;--purple-mid:#7c3aed;--purple-light:#8b5cf6;--purple-pale:#ede9fe;--purple-xpale:#f5f3ff;--coral:#ea580c;--coral-light:#fb923c;--coral-pale:#fff7ed;--text-h:#1e1b4b;--text-body:#4b5563;--text-muted:#9ca3af;--border:rgba(109,40,217,0.12);--border-h:rgba(109,40,217,0.35);--shadow-sm:0 2px 16px rgba(109,40,217,0.08);--shadow-md:0 8px 40px rgba(109,40,217,0.13);--shadow-lg:0 20px 60px rgba(109,40,217,0.18);--shadow-card:0 4px 24px rgba(0,0,0,0.07);--grad-main:linear-gradient(135deg,var(--purple) 0%,var(--purple-light) 100%);--grad-warm:linear-gradient(135deg,var(--coral) 0%,var(--coral-light) 100%);--grad-hero:linear-gradient(135deg,#f5f3ff,#fff7ed);--grad-text:linear-gradient(135deg,var(--coral),var(--purple));--font-serif:"Playfair Display",Georgia,serif;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--radius:12px;--radius-lg:20px;--radius-xl:32px;--t:0.3s ease;--mw:1200px;--nav-h:78px}@layer base{*,:after,:before{margin:0;padding:0;box-sizing:border-box}}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--white);color:var(--text-body);line-height:1.65;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{text-decoration:none;color:inherit;transition:var(--t)}ul{list-style:none}h1,h2,h3,h4,h5{font-family:var(--font-serif);line-height:1.2;color:var(--text-h)}h1{font-size:clamp(1.9rem,3.5vw,3rem);font-weight:900}h2{font-size:clamp(1.5rem,2.8vw,2.2rem)}h2,h3{font-weight:700}h3{font-size:clamp(1rem,1.8vw,1.25rem)}h4{font-size:clamp(.95rem,1.4vw,1.05rem);font-weight:600}p{color:var(--text-body);font-size:.95rem;line-height:1.8}.container{max-width:var(--mw);margin:0 auto;padding:0 24px}.section{padding:96px 0}.section-header{text-align:center;margin-bottom:60px}.tag{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--purple);padding:6px 18px;border-radius:100px;background:var(--purple-pale);border:1px solid var(--border);margin-bottom:14px}.section-title{color:var(--text-h);margin-bottom:14px}.section-sub{color:var(--text-body);font-size:.95rem;max-width:580px;margin:0 auto}.grad-text{background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.purple{color:var(--purple)}.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 32px;border-radius:100px;font-family:var(--font-sans);font-size:.95rem;font-weight:600;cursor:pointer;border:none;white-space:nowrap;transition:all .3s ease}.btn-primary{background:var(--grad-main);color:#fff;box-shadow:0 4px 18px rgba(109,40,217,.3)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(109,40,217,.4);filter:brightness(1.06)}.btn-outline{background:transparent;color:var(--purple);border:2px solid var(--purple)}.btn-outline:hover{background:var(--purple);color:#fff;transform:translateY(-3px);box-shadow:var(--shadow-md)}.btn-white{background:#fff;color:var(--purple);box-shadow:0 4px 18px rgba(0,0,0,.12)}.btn-white:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.18)}.btn-coral{background:var(--grad-warm);color:#fff;box-shadow:0 4px 18px rgba(234,88,12,.3)}.btn-coral:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(234,88,12,.4)}.btn-lg{padding:18px 42px;font-size:1rem}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);transition:all .35s ease;background:rgba(255,255,255,0)}.navbar.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:0;box-shadow:0 2px 24px rgba(109,40,217,.08)}.nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--mw);margin:0 auto;padding:0 24px}.nav-logo{font-family:var(--font-serif);font-size:1.3rem;font-weight:900;color:var(--text-h)}.nav-logo.has-logo{display:flex;align-items:center;min-width:0}.nav-logo.has-logo img{display:block;width:auto;max-width:170px;height:52px;object-fit:contain}.nav-logo span{color:var(--purple)}.nav-menu{position:absolute;top:50%;left:50%;display:flex;align-items:center;gap:36px;transform:translate(-50%,-50%)}.nav-link{font-size:.96rem;font-weight:500;color:var(--text-body);position:relative;white-space:nowrap}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--purple);border-radius:2px;transition:width .3s ease}.nav-link.is-active,.nav-link:hover{color:var(--purple)}.nav-link.is-active:after,.nav-link:hover:after{width:100%}.nav-cta{padding:10px 24px;border-radius:100px;background:var(--grad-main);color:#fff!important;font-weight:600;font-size:.85rem;box-shadow:0 4px 14px rgba(109,40,217,.3)}.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(109,40,217,.4);filter:brightness(1.06)}.nav-cta:after{display:none!important}.nav-contact{position:absolute;top:50%;right:24px;translate:0 -50%;animation:nav-contact-pulse 2.8s ease-in-out infinite}.nav-mobile-cta{display:none}@keyframes nav-contact-pulse{0%,to{box-shadow:0 4px 14px rgba(109,40,217,.24)}50%{box-shadow:0 6px 22px rgba(109,40,217,.48)}}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}.hamburger span{display:block;width:25px;height:2px;background:var(--text-h);border-radius:2px;transition:all .3s ease}.hamburger.open span:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.hero{min-height:80vh;position:relative;display:flex;align-items:center;overflow:hidden;background:var(--white)}.hero-blob{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;animation:floatBlob 14s ease-in-out infinite}.hero-blob-1{width:600px;height:600px;background:rgba(109,40,217,.12);top:-200px;right:-100px;animation-delay:0s}.hero-blob-2{width:500px;height:500px;background:rgba(234,88,12,.09);bottom:-150px;left:-100px;animation-delay:-5s;animation-direction:reverse}.hero-blob-3{width:350px;height:350px;background:rgba(139,92,246,.1);top:40%;left:45%;animation-delay:-8s}@keyframes floatBlob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-25px) scale(1.04)}66%{transform:translate(-18px,18px) scale(.97)}}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(109,40,217,.04) 1px,transparent 0),linear-gradient(90deg,rgba(109,40,217,.04) 1px,transparent 0);background-size:52px 52px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%)}.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--mw);margin:0 auto;padding:70px 24px 20px;display:grid;grid-template-columns:1fr 420px;gap:70px;align-items:center}.hero-badge{display:inline-flex;align-items:center;gap:9px;padding:8px 20px;border-radius:100px;background:var(--purple-pale);border:1px solid rgba(109,40,217,.2);color:var(--purple);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:26px}.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--coral);animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.hero-title{font-size:clamp(1.8rem,3.2vw,2.8rem);font-weight:900;color:var(--text-h);margin-bottom:18px;line-height:1.15}.hero-title .line-grad{display:block}.hero-sub{font-size:.95rem;color:var(--text-body);max-width:510px;margin-bottom:32px;line-height:1.8}.hero-phone{display:inline-flex;align-items:center;gap:13px;padding:15px 30px;border-radius:100px;background:var(--grad-main);color:#fff;font-size:1rem;font-weight:700;margin-bottom:28px;box-shadow:0 8px 28px rgba(109,40,217,.35);transition:all .3s ease}.hero-phone:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(109,40,217,.45);filter:brightness(1.05)}.hero-phone i{animation:ringBell 3s ease-in-out infinite}@keyframes ringBell{0%,70%,to{transform:rotate(0)}72%{transform:rotate(-18deg)}76%{transform:rotate(18deg)}80%{transform:rotate(-12deg)}84%{transform:rotate(12deg)}88%{transform:rotate(-6deg)}}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.hero-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:36px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-main)}.hero-card-heading{font-family:var(--font-serif);font-size:1.1rem;color:var(--text-h);margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}.svc-mini{display:flex;flex-direction:column;gap:11px}.svc-mini li{display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--text-body)}.svc-mini li i{color:var(--purple);font-size:.75rem;width:14px;flex-shrink:0}.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;padding-top:22px;border-top:1px solid var(--border)}.hstat{text-align:center;padding:14px 8px;background:var(--purple-xpale);border-radius:var(--radius)}.hstat-n{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--purple);line-height:1;display:block}.hstat-l{font-size:.7rem;margin-top:4px;letter-spacing:.07em}.hstat-l,.scroll-hint{color:var(--text-muted);text-transform:uppercase}.scroll-hint{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.72rem;letter-spacing:.12em;z-index:2}.scroll-mouse{width:24px;height:40px;border:2px solid rgba(109,40,217,.3);border-radius:12px;display:flex;justify-content:center;position:relative}.scroll-mouse:after{content:"";width:4px;height:8px;background:var(--purple);border-radius:2px;position:absolute;top:6px;animation:scrollDot 2.2s ease-in-out infinite}@keyframes scrollDot{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(18px)}}.stats-bar{background:var(--bg-light);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stats-bar-inner{display:grid;grid-template-columns:repeat(4,1fr)}.stat-item{text-align:center;padding:36px 20px;position:relative}.stat-item:not(:last-child):after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--border)}.stat-n{font-family:var(--font-serif);font-size:2.2rem;font-weight:700;color:var(--purple);line-height:1;display:block;margin-bottom:6px}.stat-l{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.about{background:var(--white)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:stretch}.about-visual{position:relative;display:flex}.about-photo{border:4px solid var(--purple)}.about-placeholder{width:100%;min-height:100%;background:var(--bg-light);border-radius:var(--radius-xl);border:2px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;padding:40px}.about-placeholder:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(109,40,217,.07),rgba(234,88,12,.05))}.about-deco-circle{position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:var(--grad-main);opacity:.12}.about-deco-circle-2{position:absolute;bottom:-20px;left:-20px;width:80px;height:80px;border-radius:50%;background:var(--grad-warm);opacity:.15}.about-placeholder-icon{font-size:3.5rem;color:var(--purple);opacity:.4;margin-bottom:14px;z-index:1;position:relative}.about-placeholder-name{font-family:var(--font-serif);font-size:1.4rem;color:var(--text-h);z-index:1;position:relative;margin-bottom:6px}.about-placeholder-role{font-size:.85rem;color:var(--purple);font-weight:600;z-index:1;position:relative}.about-badge-box{position:absolute;bottom:-22px;right:-22px;background:var(--grad-main);border-radius:var(--radius-lg);padding:18px 22px;text-align:center;box-shadow:0 12px 36px rgba(109,40,217,.4)}.badge-n{font-family:var(--font-serif);font-size:1.9rem;font-weight:700;color:#fff;line-height:1;display:block}.badge-l{font-size:.72rem;color:rgba(255,255,255,.85);letter-spacing:.08em}.about-tag,.badge-l{font-weight:700;text-transform:uppercase}.about-tag{font-size:.78rem;letter-spacing:.15em;color:var(--purple);margin-bottom:14px;display:block}.about-title{color:var(--text-h);margin-bottom:20px}.about-text{margin-bottom:14px;font-size:1rem}.about-list{list-style:disc;padding-left:1.25rem}.about-list li{margin-bottom:8px}.skills-wrap{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px;margin-bottom:36px}.skill-tag{padding:6px 16px;border-radius:100px;background:var(--purple-xpale);border:1px solid var(--border);color:var(--purple);font-size:.84rem;font-weight:500;transition:var(--t)}.skill-tag:hover{background:var(--purple);color:#fff;border-color:var(--purple)}.skills-sec{background:var(--bg-light);padding:96px 0}.skills-sec-header{text-align:center;margin-bottom:56px}.skills-sec-tag{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--purple);padding:6px 18px;border-radius:100px;background:var(--purple-pale);border:1px solid var(--border);margin-bottom:20px}.skills-sec-quote{text-wrap:balance;font-weight:700;color:var(--text-h);max-width:100%;margin:0 auto}.skill-cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.skill-card{position:relative;display:flex;align-items:center;gap:16px;background:var(--white);border:1px solid var(--border);border-radius:50px;padding:12px 20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t)}.skill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.skill-icon-wrap{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:var(--purple-pale);align-items:center;justify-content:center;font-size:1.45rem}.skill-card-info,.skill-icon-wrap{display:flex;position:relative;z-index:1}.skill-card-info{flex:1;min-width:0;flex-direction:column}.skill-bar{width:100%;min-width:0;flex:0 0 auto;height:4px;background:rgba(109,40,217,.18);margin-top:6px;overflow:hidden}.skill-bar,.skill-bar-fill{display:block;border-radius:4px}.skill-bar-fill{max-width:100%;height:100%;background:var(--purple)}.skill-name{font-size:.95rem;font-weight:600;color:var(--text);margin-top:2px}.advantages{background:#1e1b4b;padding:80px 0 70px}.adv-heading{color:#fff;text-align:center;margin:0 0 36px}.adv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.adv-card{background:rgba(139,92,246,.07);border-top:3px solid var(--purple-light);border-radius:var(--radius-lg);padding:48px 28px 40px;text-align:center;transition:background .3s ease}.adv-card:hover{background:rgba(139,92,246,.15)}.adv-icon{font-size:3.2rem;color:var(--purple-light);margin-bottom:26px;display:block}.adv-title{font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:18px}.adv-text{color:rgba(255,255,255,.6);font-size:.88rem;line-height:1.85}.adv-tagline{font-family:var(--font-serif);font-style:italic;font-size:1.9rem;color:#fff;text-align:center;margin-top:60px}.services-section{background:var(--white)}.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.svc-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:36px;transition:all .4s ease;box-shadow:var(--shadow-card);display:flex;flex-direction:column;position:relative;overflow:hidden}.svc-card:before{content:"";position:absolute;top:0;left:0;width:3px;bottom:0;background:var(--grad-main);transform:scaleY(0);transition:transform .4s ease;transform-origin:top}.svc-card:hover,.svc-grid .svc-card:nth-child(2){transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:rgba(109,40,217,.25)}.svc-card:hover:before,.svc-grid .svc-card:nth-child(2):before{transform:scaleY(1)}.svc-icon{width:60px;height:60px;border-radius:var(--radius);background:var(--purple-pale);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--purple);margin-bottom:22px;transition:all .4s ease;flex-shrink:0}.svc-icon i{animation:svc-icon-bob 2.4s ease-in-out infinite}.svc-card:nth-child(2) .svc-icon i{animation-delay:.3s}.svc-card:nth-child(3) .svc-icon i{animation-delay:.6s}.svc-card:nth-child(4) .svc-icon i{animation-delay:.9s}.svc-card:nth-child(5) .svc-icon i{animation-delay:1.2s}.svc-card:nth-child(6) .svc-icon i{animation-delay:1.5s}@keyframes svc-icon-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.svc-card:hover .svc-icon,.svc-grid .svc-card:nth-child(2) .svc-icon{background:var(--grad-main);color:#fff;box-shadow:0 6px 20px rgba(109,40,217,.3)}.svc-title{font-family:var(--font-serif);font-size:1.12rem;color:var(--text-h);margin-bottom:10px}.svc-desc{color:var(--text-body);font-size:.88rem;line-height:1.75;flex:1;margin-bottom:22px}.svc-link{display:inline-flex;align-items:center;gap:8px;color:var(--purple);font-size:.84rem;font-weight:600;transition:gap .3s ease}.svc-link:hover{gap:13px}.realisations-section{background:var(--white)}.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.real-all-action{display:flex;justify-content:center;margin-top:36px}.real-card{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);transition:all .4s ease;background:var(--white);box-shadow:var(--shadow-card)}.real-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-md);border-color:rgba(109,40,217,.25)}.real-thumb{--real-thumb-height:260px;height:var(--real-thumb-height);position:relative;overflow:hidden;display:block}.real-thumb-button{width:100%;padding:0;border:0;background:transparent;cursor:pointer;text-align:left}.real-thumb-img{width:100%;height:auto;display:block;transition:transform 4s linear}.real-card:focus-within .real-thumb-img,.real-card:hover .real-thumb-img{transform:translateY(min(0px,calc(var(--real-thumb-height) - 100%)))}@keyframes real-thumb-mobile-scroll{0%{transform:translateY(0)}to{transform:translateY(min(0px,calc(var(--real-thumb-height) - 100%)))}}@media (max-width:768px) and (prefers-reduced-motion:no-preference){.real-thumb-img.real-thumb-auto-scroll{animation:real-thumb-mobile-scroll 7s ease-in-out infinite alternate}}.real-thumb-inner{text-align:center;z-index:1}.real-thumb-icon{font-size:3.5rem;color:rgba(255,255,255,.9);display:block;margin-bottom:6px}.real-thumb-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.75)}.real-overlay{position:absolute;inset:0;background:rgba(109,40,217,.75);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease}.real-card:hover .real-overlay{opacity:1}.real-overlay-text{color:#fff;font-size:.88rem;font-weight:700;letter-spacing:.05em}.real-info{padding:22px}.real-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--purple);font-weight:700;margin-bottom:6px;display:block}.real-name{font-family:var(--font-serif);font-size:1rem;color:var(--text-h);margin-bottom:6px}.real-subtitle{color:var(--text-body);font-size:.82rem;margin:0 0 4px}.real-desc{color:var(--text-body);font-size:.95rem;margin-top:10px}.real-technologies{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.real-technologies li{padding:4px 10px;border-radius:100px;background:var(--purple-pale);color:var(--purple);font-size:.78rem;font-weight:600;overflow-wrap:anywhere}.real-project-button{margin-top:16px;padding:10px 18px;border:1px solid var(--purple);border-radius:999px;background:var(--purple);color:#fff;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;transition:background .2s ease,color .2s ease}.real-project-button:focus-visible,.real-project-button:hover{background:transparent;color:var(--purple)}.cta{position:relative;overflow:hidden;padding:96px 0}.cta-1{background:linear-gradient(135deg,#f5f3ff,#ede9fe 50%,#faf5ff);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.cta-1:before{content:"";position:absolute;top:-100px;right:-100px;width:400px;height:400px;border-radius:50%;background:rgba(109,40,217,.08);filter:blur(60px);pointer-events:none}.cta-2{background:linear-gradient(rgba(43,13,84,.82),rgba(43,13,84,.82)),url(/images/developpeur.png) center 45% /cover no-repeat}.cta-2:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='1' fill='rgba(255,255,255,0.08)'/%3E%3C/svg%3E") repeat}.cta-inner{text-align:center;position:relative;z-index:1}.cta-title{font-family:var(--font-serif);font-size:clamp(1.5rem,2.8vw,2.2rem);color:var(--text-h);margin-bottom:14px}.cta-2 .cta-title{color:#fff}.cta-sub{font-size:1.05rem;color:var(--text-body);max-width:940px;margin:0 auto 40px}.cta-2 .cta-sub{color:rgba(255,255,255,.85)}.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.cta-phone-link{display:inline-flex;align-items:center;gap:10px;padding:14px 30px;border-radius:100px;border:2px solid var(--purple);color:var(--purple);font-size:.98rem;font-weight:700;transition:all .3s ease;background:transparent}.cta-phone-link:hover{background:var(--purple);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-3px)}.cta-2 .cta-phone-link{border-color:rgba(255,255,255,.6);color:#fff}.cta-2 .cta-phone-link:hover{background:rgba(255,255,255,.15);border-color:#fff}.faq-section{background:var(--white)}.faq-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,80px);align-items:start}.faq-intro{position:sticky;top:calc(var(--nav-h) + 24px);align-self:start;padding-top:8px}.faq-tag{display:inline-block;color:var(--purple);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--purple);padding-bottom:8px;margin-bottom:30px}.faq-title{color:var(--text-h);font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.16;margin-bottom:22px}.faq-intro-text{color:var(--text-body);font-size:1rem;line-height:1.75;margin-bottom:32px}.faq-contact{background:var(--grad-main);color:#fff;padding:30px;border-radius:8px;animation:faq-contact-glow 3s ease-in-out infinite}@keyframes faq-contact-glow{0%,to{box-shadow:0 8px 24px rgba(109,40,217,.12)}50%{box-shadow:0 12px 32px rgba(109,40,217,.3)}}.faq-contact p{color:#fff;margin-bottom:18px;line-height:1.65}.faq-contact a{display:inline-block;color:var(--purple);background:#fff;padding:12px 18px;font-weight:700;border-radius:999px;animation:faq-call-bob 2.4s ease-in-out infinite}@keyframes faq-call-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.faq-wrap{min-width:0;display:flex;flex-direction:column;gap:4px}.faq-col{display:contents}.faq-item{background:var(--white);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .3s ease}.faq-item.active{border-color:var(--purple)}.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 26px;background:none;border:none;cursor:pointer;text-align:left;color:var(--text-h);font-family:var(--font-sans);font-size:.98rem;font-weight:600;transition:color .3s ease}.faq-q:hover{color:var(--purple)}.faq-item.active .faq-q{color:#fff;background:var(--grad-main)}.faq-q-icon{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--purple-pale);display:flex;align-items:center;justify-content:center;transition:all .3s ease}.faq-q-icon i{font-size:.75rem;color:var(--purple);transition:transform .35s ease}.faq-item.active .faq-q-icon{background:rgba(255,255,255,.18)}.faq-item.active .faq-q-icon i{transform:rotate(45deg);color:#fff}.faq-a{max-height:0;overflow:hidden;transition:max-height .42s ease}.faq-item.active .faq-a{max-height:280px}.faq-a-inner{padding:20px 26px 24px;color:var(--text-body);font-size:.94rem;line-height:1.8}.reviews-section{background:var(--bg)}.reviews-shortcode{text-align:center;padding:20px 0}.whatsapp-float{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:999;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;font-size:32px;box-shadow:0 4px 16px rgba(0,0,0,.2);transition:background .2s ease;animation:whatsapp-blink 1.8s ease-in-out infinite}@keyframes whatsapp-blink{0%,to{opacity:1}50%{opacity:.55}}.whatsapp-float:hover{background:#128c7e}.whatsapp-float:focus-visible,.whatsapp-float:hover{animation:none}@media (prefers-reduced-motion:reduce){.svc-icon i,.whatsapp-float{animation:none}}.whatsapp-float:focus-visible{outline:3px solid var(--purple);outline-offset:4px}.footer{background:#1e1b4b;padding:80px 0 40px}main.personal-portfolio~footer.footer .footer-cookie-settings,main.personal-portfolio~footer.footer .footer-grid{display:none}main.personal-portfolio~footer.footer{padding:24px 0}main.personal-portfolio~footer.footer .footer-bottom{justify-content:center;border-top:0;padding-top:0}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px;margin-bottom:56px}.footer-logo{font-family:var(--font-serif);font-size:1.35rem;font-weight:900;color:#fff;margin-bottom:14px}.footer-logo img{display:block;width:auto;max-width:190px;height:58px;object-fit:contain;object-position:left center}.footer-logo span{color:var(--purple-light)}.footer-about{color:#fff;font-size:.88rem;line-height:1.75;margin-bottom:24px}.socials{display:flex;gap:10px}.social-btn{width:40px;height:40px;border-radius:var(--radius);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);font-size:.88rem;transition:all .3s ease}.social-btn:hover{background:var(--grad-main);color:#fff;border-color:transparent;transform:translateY(-2px)}.footer-head{font-family:var(--font-sans);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--purple-light);margin-bottom:22px}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-links a{color:#fff;font-size:.88rem;display:flex;align-items:center;gap:6px;transition:all .3s ease}.footer-links a:hover{color:#fff;padding-left:6px}.footer-links a:before{content:"›";color:var(--purple-light);opacity:0;transition:opacity .3s ease}.footer-links a:hover:before{opacity:1}.footer-contact-row{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.footer-contact-row i{color:var(--purple-light);font-size:.88rem;margin-top:3px;flex-shrink:0}.footer-contact-row a,.footer-contact-row span{color:#fff;font-size:.88rem;line-height:1.55}.footer-contact-row a:hover{color:#fff}.footer-bottom{padding-top:36px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;text-align:center}.footer-copy{color:#fff;font-size:.83rem}.footer-copy span{color:#fff}.footer-legal{display:flex;gap:20px}.footer-legal a{color:#fff;font-size:.8rem}.footer-legal a:hover{color:var(--purple-light)}.page-header{padding:160px 0 90px;text-align:center;position:relative;overflow:hidden;background:var(--bg-light)}.page-header-blob-1{top:-100px;right:-80px;width:450px;height:450px;background:rgba(109,40,217,.1);filter:blur(70px)}.page-header-blob-1,.page-header-blob-2{position:absolute;border-radius:50%;pointer-events:none}.page-header-blob-2{bottom:-80px;left:-60px;width:300px;height:300px;background:rgba(234,88,12,.08);filter:blur(60px)}.breadcrumb{display:flex;width:fit-content;max-width:100%;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:0 auto 16px;padding:6px 18px;border-radius:100px;background:var(--purple-pale);border:1px solid var(--border);font-size:.84rem;color:var(--purple);position:relative;z-index:1}.breadcrumb a{color:var(--purple);font-weight:500}.breadcrumb a:hover{text-decoration:none;font-weight:700}.breadcrumb i{font-size:.6rem}.page-title{font-size:clamp(1.8rem,3.2vw,2.6rem);color:var(--text-h);margin-bottom:14px}.page-sub,.page-title{position:relative;z-index:1}.page-sub{font-size:1.05rem;color:var(--text-body);max-width:940px;margin:0 auto}.svc-detail-section{padding:64px 0;border-bottom:1px solid var(--border);background:#fff}.svc-detail-section:nth-of-type(2n){background:#faf9f6}.svc-detail-grid{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(400px,1.4fr) minmax(230px,.85fr);gap:24px;align-items:center}.svc-num{display:none}.svc-dtag{display:inline-block;padding:0;color:var(--purple);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;margin-bottom:10px}.svc-detail-title{font-family:var(--font-serif);font-size:clamp(1.8rem,2.7vw,2.55rem);line-height:1.12;color:var(--text-h);margin-bottom:20px}.svc-detail-desc{color:var(--text-body);font-size:1rem;line-height:1.85;margin-bottom:22px}.svc-features{display:flex;flex-direction:column;gap:0;margin-bottom:26px;border-top:1px solid var(--border)}.svc-features li{display:flex;align-items:center;gap:12px;min-height:52px;padding:11px 0;border-bottom:1px solid var(--border);color:var(--text-h);font-size:.9rem;font-weight:650}.svc-features li i{display:none}.svc-features li:before{content:"";width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:var(--purple)}.svc-detail-aside .btn{width:100%;justify-content:center}.svc-detail-visual{grid-column:1;grid-row:1}.svc-detail-content{grid-column:2;grid-row:1}.svc-detail-aside{grid-column:3;grid-row:1}#audit-seo .svc-detail-content,#ecommerce .svc-detail-content,#google-ads .svc-detail-content{grid-column:1}#audit-seo .svc-detail-grid,#ecommerce .svc-detail-grid,#google-ads .svc-detail-grid{grid-template-columns:minmax(400px,1.4fr) minmax(230px,.85fr) minmax(260px,.95fr)}#audit-seo .svc-detail-aside,#ecommerce .svc-detail-aside,#google-ads .svc-detail-aside{grid-column:2}#audit-seo .svc-detail-visual,#ecommerce .svc-detail-visual,#google-ads .svc-detail-visual{grid-column:3}.svc-visual-box{width:100%;max-width:300px;margin-inline:auto;border-radius:18px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;text-align:center;position:relative;overflow:hidden;border:0;box-shadow:0 18px 36px rgba(20,30,25,.12)}.svc-detail-section:first-child .svc-visual-box{background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.svc-detail-section:nth-child(2) .svc-visual-box{background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.svc-detail-section:nth-child(3) .svc-visual-box{background:linear-gradient(135deg,#fff7ed,#ffedd5)}.svc-detail-section:nth-child(4) .svc-visual-box{background:linear-gradient(135deg,#ecfeff,#cffafe)}.svc-detail-section:nth-child(5) .svc-visual-box{background:linear-gradient(135deg,#fdf4ff,#fae8ff)}.svc-detail-section:nth-child(6) .svc-visual-box{background:linear-gradient(135deg,#fff1f2,#ffe4e6)}.svc-visual-icon{font-size:3.8rem;color:var(--purple);opacity:.45;position:relative;z-index:1;margin-bottom:18px}.svc-visual-lbl{font-family:var(--font-serif);font-size:1.1rem;color:var(--text-h);opacity:.5;position:relative;z-index:1}.process-section{background:var(--bg-light)}.process-steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative}.process-steps:before{content:"";position:absolute;top:39px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,var(--purple),var(--coral));z-index:0;border-radius:2px}.process-step{text-align:center;padding:0 18px;position:relative;z-index:1}.process-num{width:78px;height:78px;border-radius:50%;background:#fff;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.45rem;font-weight:700;color:var(--purple);margin:0 auto 22px;transition:all .4s ease;box-shadow:var(--shadow-card)}.process-step:hover .process-num{background:var(--grad-main);color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(109,40,217,.35)}.process-step-title{font-family:var(--font-serif);font-size:1.05rem;color:var(--text-h);margin-bottom:8px}.process-step-desc{color:var(--text-muted);font-size:.84rem;line-height:1.65}.personal-portfolio .home-contact{background:var(--bg-light)}.contact-wrap{display:grid;grid-template-columns:1fr 1.35fr;gap:56px;align-items:start}.contact-info-box{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-xl);padding:40px;box-shadow:var(--shadow-card);position:sticky;top:100px}.contact-info-box:before{content:"";display:block;width:100%;height:4px;background:var(--grad-main);border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin:-40px -40px 36px;width:calc(100% + 80px)}.contact-box-title{font-family:var(--font-serif);font-size:1.3rem;color:var(--text-h);margin-bottom:6px}.contact-box-intro{margin-bottom:30px}.contact-box-intro p{line-height:1.7;margin:0}.contact-box-intro p,.contact-box-sub{color:var(--text-muted);font-size:.88rem}.contact-box-sub{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--border)}.contact-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px}.contact-row-icon{width:46px;height:46px;border-radius:var(--radius);flex-shrink:0;background:var(--purple-pale);display:flex;align-items:center;justify-content:center;color:var(--purple);font-size:.96rem}.contact-row-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:3px}.contact-row-value{font-size:.94rem;font-weight:500}.contact-row-value,.contact-row-value a{color:var(--text-h)}.contact-row-value a:hover{color:var(--purple)}.contact-info-box .social-btn{background:var(--purple-pale);border:1.5px solid var(--border);color:var(--purple)}.contact-info-box .social-btn:hover{background:var(--grad-main);color:#fff;border-color:transparent}.available-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:100px;background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;font-size:.84rem;font-weight:600;margin-top:28px}.available-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;animation:blink 2s ease infinite}.contact-form-box{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-xl);padding:48px;box-shadow:var(--shadow-card)}.contact-form-box:before{content:"";display:block;width:calc(100% + 96px);height:4px;background:var(--grad-main);border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin:-48px -48px 40px}.contact-form-title{font-family:var(--font-serif);font-size:1.3rem;color:var(--text-h);margin-bottom:18px}.contact-form-sub{color:var(--text-muted);font-size:.88rem;margin-bottom:36px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-details-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.contact-details-row .form-group{display:flex;flex-direction:column;justify-content:flex-end;min-width:0}.form-group{margin-bottom:20px}.form-group:has(textarea){grid-column:1/-1}.form-consent{grid-column:1/-1;display:flex;align-items:flex-start;gap:10px;margin:0 0 20px;color:var(--text-body);font-size:.88rem;line-height:1.6;cursor:pointer}.form-consent input{flex:0 0 auto;width:17px;height:17px;margin-top:2px;accent-color:var(--purple)}.contact-fields>.form-submit,.form-fields>.form-submit{grid-column:1/-1}.form-label{display:block;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-body);margin-bottom:8px}.form-control{width:100%;padding:13px 18px;border-radius:var(--radius);background:var(--bg-light);border:1.5px solid var(--border);color:var(--text-h);font-family:var(--font-sans);font-size:.94rem;outline:none;transition:all .3s ease;-webkit-appearance:none;appearance:none}.form-control:focus{border-color:var(--purple);background:#fff;box-shadow:0 0 0 4px rgba(109,40,217,.08)}.form-control::placeholder{color:var(--text-muted)}textarea.form-control{resize:vertical;min-height:130px}select.form-control option{background:#fff;color:var(--text-h)}.form-submit{width:100%;padding:16px;font-size:.98rem;justify-content:center;border-radius:var(--radius)}.form-note{text-align:center;color:var(--text-muted);font-size:.78rem;margin-top:14px}.form-note i{color:var(--purple)}.form-success{display:none;text-align:center;padding:20px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius);color:#16a34a;font-size:.94rem;margin-top:14px}.form-success.show{display:block}.map-placeholder{background:var(--bg-light);border:1.5px solid var(--border);border-radius:var(--radius-xl);min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;margin-top:56px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.map-placeholder:before{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:rgba(109,40,217,.06);filter:blur(40px)}.map-icon{font-size:3rem;color:var(--purple);opacity:.5;margin-bottom:14px}.map-icon,.map-title{position:relative;z-index:1}.map-title{font-family:var(--font-serif);font-size:1.2rem;color:var(--text-h);margin-bottom:6px}.map-sub{color:var(--text-muted);font-size:.88rem;position:relative;z-index:1}.contact-required{color:#dc2626;font-weight:700}.reveal{opacity:1;transform:none}@keyframes home-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes home-card-float{0%,to{translate:0 0}50%{translate:0 -10px}}@keyframes home-button-glow{0%,to{box-shadow:0 4px 18px rgba(109,40,217,.3)}50%{box-shadow:0 6px 30px rgba(109,40,217,.5),0 0 0 5px rgba(109,40,217,.07)}}@keyframes home-card-shine{0%,65%{transform:translateX(-160%) skewX(-18deg)}to{transform:translateX(500%) skewX(-18deg)}}.home-page .hero-card{border-color:rgba(109,40,217,.24);background:linear-gradient(145deg,#fff 35%,#f5f3ff);box-shadow:0 16px 45px rgba(109,40,217,.15)}.home-page .hero-card:after{content:"";position:absolute;inset:0 auto 0 0;width:35%;background:linear-gradient(90deg,transparent,rgba(139,92,246,.09),transparent);pointer-events:none;transform:translateX(-160%) skewX(-18deg)}.home-page .hero-card-heading,.home-page .svc-mini{position:relative;z-index:1}.home-page .svc-mini li{transition:translate .25s ease}@media (prefers-reduced-motion:no-preference){.home-page .hero-title{animation:home-enter .65s ease both}.home-page .hero-sub{animation:home-enter .65s ease .12s both}.home-page .hero-actions{animation:home-enter .65s ease .24s both}.home-page .hero-card{animation:home-enter .75s ease .2s both,home-card-float 4.5s ease-in-out 1s infinite}.home-page .hero-card:after{animation:home-card-shine 6s ease-in-out 1s infinite}.home-page .hero-actions .btn-primary{animation:home-button-glow 3s ease-in-out infinite}.home-page .skill-icon-wrap{transition:transform .25s ease}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.home-page .skill-card:hover .skill-icon-wrap{transform:rotate(-7deg) scale(1.08)}.home-page .hero-card:hover{animation-play-state:paused}.home-page .svc-mini li:hover{translate:5px 0}}@media (prefers-reduced-motion:reduce){.home-page *,.home-page :after,.home-page :before{animation:none!important;transition:none!important}}@media (max-width:1024px){.hero-inner{grid-template-columns:1fr}.home-page .hero-card{display:none}.hero-inner{text-align:center}.hero-badge,.hero-phone,.hero-sub{justify-content:center}.hero-sub{margin:0 auto 36px}.hero-actions{justify-content:center}.about-grid{grid-template-columns:1fr;gap:50px}.about-content{order:1}.about-visual{order:2;display:flex;max-width:460px;margin:0 auto}.skill-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.adv-grid{grid-template-columns:repeat(2,1fr)}.adv-card:nth-child(2){border-right:none}.adv-card:nth-child(3){border-right:1px solid rgba(139,92,246,.2)}.adv-card:nth-child(3),.adv-card:nth-child(4){border-top:3px solid var(--purple-light)}.real-grid,.stats-bar-inner,.svc-grid{grid-template-columns:repeat(2,1fr)}.stat-item:nth-child(2):after{display:none}.footer-grid{grid-template-columns:1fr 1fr;gap:40px}.svc-detail-grid{gap:28px}#audit-seo .svc-detail-grid,#ecommerce .svc-detail-grid,#google-ads .svc-detail-grid,.svc-detail-grid{grid-template-columns:1fr}.svc-detail-aside,.svc-detail-content,.svc-detail-visual{grid-column:1}.svc-detail-visual{grid-row:1}.svc-detail-content{grid-row:2}.svc-detail-aside{grid-row:3}#audit-seo .svc-detail-aside,#audit-seo .svc-detail-content,#audit-seo .svc-detail-visual,#ecommerce .svc-detail-aside,#ecommerce .svc-detail-content,#ecommerce .svc-detail-visual,#google-ads .svc-detail-aside,#google-ads .svc-detail-content,#google-ads .svc-detail-visual{grid-column:1}.process-steps{grid-template-columns:repeat(2,1fr);gap:40px}.process-steps:before{display:none}.contact-wrap{grid-template-columns:1fr}.contact-info-box{position:static}}@media (max-width:768px){:root{--nav-h:68px}.section{padding:68px 0}.section-header{margin-bottom:44px}.nav-menu{position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(255,255,255,.98);backdrop-filter:blur(16px);flex-direction:column;padding:24px;gap:0;transform:translateY(calc(-100% - var(--nav-h)));transition:transform .4s ease;border-bottom:1px solid var(--border);box-shadow:0 10px 40px rgba(109,40,217,.1)}.nav-menu.open{transform:translateY(0)}.nav-menu li{width:100%;border-bottom:1px solid var(--border)}.nav-link{display:block;padding:14px 0;font-size:1.04rem}.nav-cta{display:block;text-align:center}.nav-contact{display:none}.nav-menu .nav-mobile-cta{display:block;padding:12px 0 0;border-bottom:0}.nav-mobile-cta .nav-link{padding:12px 14px;text-align:center;font-size:.85rem}.hamburger{display:flex}.hero-inner{padding:calc(var(--nav-h) + 28px) 20px 40px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{justify-content:center}.adv-grid,.footer-grid,.real-grid,.svc-grid{grid-template-columns:1fr}.footer-grid{gap:36px}.footer-bottom{flex-direction:column;text-align:center}.cta-actions{flex-direction:column;align-items:center}.cta-actions .btn,.cta-actions .cta-phone-link{width:100%;max-width:340px;justify-content:center}.process-steps{grid-template-columns:1fr}.contact-form-box,.contact-info-box{padding:28px 20px}.contact-details-row,.form-row{grid-template-columns:1fr;gap:0}.contact-form-box:before{margin:-28px -20px 32px;width:calc(100% + 40px)}.contact-info-box:before{margin:-28px -20px 28px;width:calc(100% + 40px)}}@media (max-width:480px){.container{padding:0 16px}.hero-inner{padding:calc(var(--nav-h) + 40px) 16px 36px}.stats-bar-inner{grid-template-columns:1fr 1fr}.stat-item:after{display:none}.adv-card,.svc-card{padding:24px 18px}.skill-cards-grid{grid-template-columns:minmax(0,1fr)}}.section-sub{max-width:940px}.about-photo{width:100%;height:auto;object-fit:cover;border-radius:var(--radius-xl);display:block}.mp-section{background:var(--bg-light)}@keyframes mp-fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.mp-section .section-header>*{animation:mp-fade-up .6s ease both}.mp-section .section-header>:nth-child(2){animation-delay:.1s}.mp-section .section-header>:nth-child(3){animation-delay:.2s}.mp-step{animation:mp-fade-up .6s ease both}.mp-step:first-child{animation-delay:.35s}.mp-step:nth-child(2){animation-delay:.5s}.mp-step:nth-child(3){animation-delay:.65s}.mp-step:nth-child(4){animation-delay:.8s}@media (prefers-reduced-motion:reduce){.mp-section .section-header>*,.mp-step{animation:none}}.mp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}.mp-step{text-align:center;padding:0 12px;position:relative}.mp-step:not(:last-child):after{content:"";position:absolute;top:44px;left:calc(50% + 60px);right:calc(-50% + 60px);height:2px;background:linear-gradient(to right,var(--purple-light),var(--purple-pale));z-index:0}.mp-num-wrap{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,var(--purple-xpale),var(--purple-pale));border:2px solid var(--purple);box-shadow:var(--shadow-card);margin-bottom:24px;position:relative;z-index:1;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}.mp-step:hover .mp-num-wrap{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--coral)}.mp-num{display:block;width:100%;font-family:var(--font-serif);font-size:40px;font-weight:700;color:var(--purple);line-height:1;text-align:center;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}.mp-title{font-size:20px;font-weight:600;color:var(--text-h);margin-bottom:12px}.mp-desc{color:var(--text-body);font-size:15px;line-height:1.6}@media (max-width:900px){.mp-grid{grid-template-columns:repeat(2,1fr);gap:48px 24px}.mp-step:not(:last-child):after{display:none}}@media (max-width:640px){.mp-grid{grid-template-columns:1fr;gap:40px}.mp-step{display:grid;grid-template-columns:64px 1fr;column-gap:16px;row-gap:6px;text-align:left;padding:0;align-items:start}.mp-num-wrap{grid-column:1;grid-row:1/span 2;width:64px;height:64px;margin:0;align-self:start}.mp-num{font-size:30px}.mp-title{grid-column:2;grid-row:1;margin-bottom:0;align-self:center}.mp-desc{grid-column:2;grid-row:2}.mp-step:not(:last-child):after{content:"";display:block;position:absolute;top:64px;bottom:-40px;left:31px;right:auto;width:2px;height:auto;background:linear-gradient(to bottom,var(--purple-light),var(--purple-pale));z-index:0}}.contact-page{--text-muted:#000000}[id]{scroll-margin-top:var(--nav-h)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.real-thumb-img{transition:none;transform:none!important}.faq-contact,.faq-contact a,.nav-contact{animation:none}}.faq-heading{margin:0;font:inherit}.service-summary{width:min(100% - 40px,1080px);margin:24px auto 44px;padding:0 0 14px;border-bottom:1px solid var(--border)}.service-summary-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:0;row-gap:8px}.service-summary a{display:inline-block;padding:4px 14px;color:#000;font-size:.86rem;font-weight:500;text-decoration:none;line-height:1.4;transition:color .18s ease}.service-summary a+a{border-left:1px solid var(--border)}.service-summary a:focus-visible,.service-summary a:hover{color:var(--purple)}.service-summary a:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.faq-a-inner a,.hero-sub a,.page-sub a,.svc-detail-desc a{text-decoration:none;font-weight:700}.contact-fields{border:0;padding:0;margin:0;min-width:0}.contact-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form-submit:disabled{opacity:.7;cursor:wait}.svc-visual-box:has(.svc-visual-img){padding:0;min-height:0;background:#faf9fc}.svc-visual-img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:18px}@media (max-width:1024px){.svc-visual-box{max-width:420px}.svc-detail-section{padding:32px 0}.svc-detail-grid{gap:24px}}@media (max-width:900px){.faq-layout{grid-template-columns:1fr;gap:38px}.faq-intro{position:static;max-width:640px}}@media (max-width:600px){.service-summary{width:calc(100% - 40px);margin:18px auto 32px;padding-bottom:10px}.service-summary-links{row-gap:6px}.service-summary a{padding:3px 9px;font-size:.82rem}.svc-detail-section{padding:38px 0}.svc-detail-grid{gap:24px}.svc-detail-title{font-size:clamp(1.7rem,8vw,2.1rem)}.svc-features li{min-height:48px;font-size:.87rem}.faq-contact{padding:24px 20px}.faq-q{padding:17px 16px;font-size:.92rem}.faq-a-inner{padding:16px}}@media (prefers-reduced-motion:reduce){.service-summary a{transition:none}}.projects-page{padding-top:150px;min-height:65vh}.real-project-button{display:inline-block;text-decoration:none}.real-placeholder{height:100%;display:grid;place-items:center;background:var(--lavender);color:var(--purple);font-size:3rem}.project-detail{max-width:1000px}.project-description{white-space:pre-wrap;line-height:1.8;margin-bottom:32px}.project-gallery{display:grid;gap:24px;margin-bottom:32px}.project-gallery img{width:100%;height:auto;border-radius:16px}.real-desc{white-space:pre-line;overflow-wrap:anywhere}.blog-page .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}.blog-page{background:#fff}.blog-header{padding-bottom:120px;text-align:center}.blog-header .breadcrumb{justify-content:center}.blog-header .tag{margin-bottom:20px}.blog-header .page-title{max-width:none;margin-inline:auto;font-size:clamp(1.5rem,3vw,2.7rem)}.blog-header .page-title span{color:var(--purple)}.blog-header .page-sub{max-width:660px;margin-inline:auto}.blog-featured-wrap{position:relative;margin-top:-64px}.blog-featured{display:grid;grid-template-columns:1.05fr 1fr;background:var(--white);border:1px solid var(--border);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-md)}.blog-featured-image{position:relative;min-height:360px;background:var(--bg-section);overflow:hidden}.blog-featured-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:top;transition:transform .4s ease}.blog-card-image:hover img,.blog-featured-image:hover img{transform:scale(1.03)}.blog-featured-label{position:absolute;top:24px;left:24px;padding:8px 16px;border-radius:100px;background:white;color:var(--purple);font-size:.8rem;font-weight:700;box-shadow:var(--shadow-sm)}.blog-featured-label i{margin-right:6px;color:var(--coral)}.blog-featured-content{padding:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px}.blog-featured-content h2{font-size:clamp(1.6rem,2.7vw,2.3rem)}.blog-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:.76rem;color:var(--text-body)}.blog-category{border-radius:100px;background:var(--purple-pale);color:var(--purple);padding:5px 12px;font-weight:600}.blog-library{padding-top:80px;padding-bottom:80px}.blog-library-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:28px}.blog-eyebrow{display:block;color:var(--purple);text-transform:uppercase;letter-spacing:.15em;font-weight:700;font-size:.72rem;margin-bottom:12px}.blog-search{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:100px;padding:12px 20px;background:var(--bg-light);width:310px;color:var(--purple)}.blog-search:focus-within{outline:2px solid var(--purple);outline-offset:3px}.blog-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.86rem;color:var(--text-h)}.blog-filters{display:flex;flex-wrap:wrap;gap:10px}.blog-filters button{border:1px solid var(--border);background:white;padding:9px 18px;border-radius:100px;color:var(--text-body);font:inherit;font-size:.84rem;cursor:pointer;transition:background .2s ease}.blog-filters button[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:white}.blog-filters button:hover{border-color:var(--purple)}.blog-results{margin:22px 0;font-size:.8rem}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.blog-card{border:1px solid var(--border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .3s ease,transform .3s ease}.blog-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.blog-card-image{display:block;height:220px;overflow:hidden;background:var(--bg-section)}.blog-card-image img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s ease}.blog-card-body{display:flex;flex-direction:column;flex:1;gap:18px;padding:26px}.blog-card h3{font-size:1.3rem;line-height:1.4}.blog-card h3 a:hover,.blog-featured h2 a:hover{color:var(--purple)}.blog-card-body p{font-size:.88rem}.blog-read{display:inline-flex;align-items:center;gap:12px;font-size:.86rem;font-weight:700;color:var(--purple);margin-top:auto}.blog-read:hover{color:var(--coral)}.blog-empty{text-align:center;padding:64px 24px;background:var(--bg-light);border-radius:20px}.blog-empty>i{color:var(--purple);font-size:2rem;margin-bottom:20px}.blog-empty p{margin:12px 0 24px}.blog-cta-wrap{padding-bottom:80px}.blog-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:44px;border-radius:24px;background:var(--grad-hero);border:1px solid var(--border)}.blog-cta p{max-width:620px;margin-top:14px}.blog-cta .btn{flex-shrink:0}.blog-article-header{text-align:center}.blog-article-header .breadcrumb{justify-content:center}.blog-article-header .page-title{max-width:850px;margin:20px auto}.blog-article-header .page-sub{max-width:700px;margin-inline:auto}.blog-article-meta{margin-top:24px;font-size:.82rem;color:var(--purple)}.blog-article{max-width:1000px;padding-top:48px;padding-bottom:80px}.blog-article-cover{width:100%;max-height:480px;object-fit:cover;object-position:top;border-radius:24px}.blog-article-body{max-width:720px;margin:48px auto 0}.blog-article-body section{margin-bottom:36px}.blog-article-body h2{margin-bottom:18px}.blog-article-body p{font-size:1rem;line-height:1.9}.blog-article-end{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:28px;border-top:1px solid var(--border)}.blog-article-end .blog-read{margin:0}@media (max-width:1024px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-featured-content{padding:32px}.blog-cta{flex-direction:column;align-items:flex-start}}@media (max-width:640px){.blog-featured{grid-template-columns:1fr}.blog-featured-image{min-height:240px}.blog-featured-content{padding:28px 24px}.blog-library{padding-top:56px;padding-bottom:48px}.blog-library-heading{align-items:stretch;flex-direction:column}.blog-search{width:100%}.blog-grid{grid-template-columns:1fr}.blog-cta{padding:28px 24px}.blog-cta-wrap{padding-bottom:56px}.blog-article-end{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.blog-card-image:hover img,.blog-card:hover,.blog-featured-image:hover img{transform:none}}.blog-page:has(.blog-reference-layout){background:#faf9fc}.blog-page:has(.blog-reference-layout) .blog-header{padding-bottom:64px}.blog-reference-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;align-items:start;padding-top:56px}.blog-reference-layout .blog-results{margin:0 0 18px}.blog-reference-layout .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.blog-reference-layout .blog-card{background:white;border-radius:24px;box-shadow:0 2px 4px rgba(30,27,75,.06)}.blog-card-visual{position:relative}.blog-reference-layout .blog-card-image{height:230px}.blog-image-category{position:absolute;bottom:20px;right:20px;left:20px;width:fit-content;padding:8px 14px;border-radius:10px;background:white;color:var(--purple);font-size:.7rem;text-transform:uppercase;font-weight:700;box-shadow:var(--shadow-sm)}.blog-reference-layout .blog-card-body{padding:28px;gap:22px}.blog-reference-layout .blog-meta{color:var(--purple);gap:12px}.blog-reference-layout .blog-meta i{margin-right:5px}.blog-reference-layout .blog-card h3{font-size:1.35rem}.blog-card-action{margin-top:auto;width:100%;justify-content:center;border-radius:12px}.blog-sidebar{position:sticky;top:calc(var(--nav-h) + 20px);display:grid;gap:22px;margin-top:39px;max-height:calc(100dvh - var(--nav-h) - 40px);overflow-y:auto;padding:4px;scrollbar-width:thin;scrollbar-color:var(--purple-pale) transparent}.blog-sidebar-search{display:flex;align-items:center;padding:8px;border:1px solid var(--border);border-radius:22px;background:white;box-shadow:0 2px 4px rgba(30,27,75,.05)}.blog-sidebar-search input{width:100%;min-width:0;border:0;background:transparent;padding:12px;font:inherit;font-size:.9rem;outline:none}.blog-sidebar-search:focus-within{outline:2px solid var(--purple);outline-offset:3px}.blog-sidebar-search button{width:44px;height:44px;flex-shrink:0;border:0;border-radius:14px;background:var(--purple);color:white;font-size:1rem;cursor:pointer}.blog-sidebar-panel{padding:22px;background:white;border:1px solid var(--border);border-radius:24px;box-shadow:0 2px 4px rgba(30,27,75,.05)}.blog-sidebar-panel>h2{display:flex;align-items:center;gap:12px;font-family:var(--font-sans);font-size:.86rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:22px}.blog-sidebar-panel>h2 i{color:var(--purple);font-size:1.1rem}.blog-sidebar-categories{display:grid;gap:8px}.blog-sidebar-categories button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;background:#faf9fc;color:var(--text-h);border:1px solid transparent;border-radius:12px;font:inherit;text-align:left;font-size:.8rem;cursor:pointer}.blog-sidebar-categories button[aria-pressed=true]{background:var(--purple-pale);color:var(--purple);border-color:var(--border);font-weight:600}.blog-sidebar-categories button:hover{color:var(--purple)}.blog-recent-list{display:grid;gap:22px}.blog-recent{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px}.blog-recent img{width:72px;height:72px;object-fit:cover;object-position:top;border-radius:12px}.blog-recent h3{font-size:.88rem;line-height:1.45;overflow-wrap:anywhere}.blog-recent:hover h3{color:var(--purple)}.blog-sidebar-contact{text-align:center;padding:30px 20px;border-radius:24px;display:flex;flex-direction:column;align-items:center;gap:22px;background:radial-gradient(ellipse at top,#382957,#1e1b32);color:white}.blog-contact-icon{display:grid;place-items:center;width:70px;height:70px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:50%;font-size:1.7rem}.blog-sidebar-contact h2{font-family:var(--font-sans);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:#d9d0e8}.blog-contact-phone{font-size:1.14rem;font-weight:700}.blog-sidebar-contact .btn{padding:12px 20px;font-size:.88rem;width:100%;justify-content:center}@media (max-width:1024px){.blog-reference-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.blog-reference-layout .blog-grid{grid-template-columns:1fr}}@media (max-width:768px){.blog-reference-layout{grid-template-columns:1fr;padding-top:36px}.blog-sidebar{position:static;margin-top:0;max-height:none;overflow-y:visible;padding:0}.blog-reference-layout .blog-card-image{height:240px}}@keyframes site-reveal-in{0%{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}@media (prefers-reduced-motion:no-preference){main .motion-pending{opacity:0;translate:0 30px}main .motion-visible{animation:site-reveal-in .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0s) both}.page-header .page-title{animation:site-reveal-in .75s cubic-bezier(.22,1,.36,1) both}.page-header .page-sub{animation:site-reveal-in .75s cubic-bezier(.22,1,.36,1) .12s both}main .btn:not(.blog-cta .btn) i{transition:translate .25s ease}.about-photo,.blog-recent img,.svc-detail-img{transition:scale .6s cubic-bezier(.22,1,.36,1)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){main .btn:not(.blog-cta .btn):hover i{translate:3px 0}.blog-recent:hover img{scale:1.05}.about-visual:hover .about-photo{scale:1.025}}@media (prefers-reduced-motion:reduce){main .motion-pending,main .motion-visible{opacity:1;translate:none;animation:none}}.blog-detail-page{background:#faf9fc;padding-top:var(--nav-h)}.blog-detail-breadcrumb{border-bottom:1px solid var(--border);padding:24px 0}.blog-detail-breadcrumb .breadcrumb{margin:0;justify-content:flex-start;border-radius:20px}.blog-detail-layout{padding-top:48px;padding-bottom:80px}.blog-detail-layout .blog-sidebar{margin-top:0}.blog-detail-article{min-width:0}.blog-detail-cover{position:relative;overflow:hidden;border-radius:24px;box-shadow:var(--shadow-sm)}.blog-detail-cover>img{width:100%;aspect-ratio:2.15;object-fit:cover;object-position:top}.blog-detail-cover .blog-image-category{left:auto;right:20px}.blog-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin:28px 0;font-size:.86rem}.blog-detail-meta i{color:var(--purple);margin-right:8px}.blog-detail-author{background:white;padding:10px 16px;border:1px solid var(--border);border-radius:12px;color:var(--purple);font-weight:600}.blog-detail-article>h1{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:20px}.blog-detail-intro{font-size:1.04rem}.blog-detail-article .blog-article-body{max-width:none;margin-top:36px}.blog-sidebar-categories a{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;background:#faf9fc;color:var(--text-h);border:1px solid transparent;border-radius:12px;font-size:.8rem}.blog-sidebar-categories a.is-active{background:var(--purple);color:white;font-weight:600}.blog-sidebar-categories a:hover{background:var(--purple-pale);color:var(--purple)}@media (max-width:768px){.blog-detail-layout{padding-top:32px;padding-bottom:56px}.blog-detail-cover>img{aspect-ratio:1.5}.blog-detail-meta{gap:14px}}.blog-rich-content{overflow-wrap:anywhere}.blog-rich-content blockquote,.blog-rich-content ol,.blog-rich-content p,.blog-rich-content pre,.blog-rich-content ul{margin-bottom:22px}.blog-rich-content h2,.blog-rich-content h3,.blog-rich-content h4{margin:32px 0 18px}.blog-rich-content ul{list-style:disc;padding-left:24px}.blog-rich-content ol{padding-left:24px}.blog-rich-content a{color:var(--purple);text-decoration:underline}.blog-rich-content img{max-width:100%;height:auto;border-radius:16px;margin:24px 0}.blog-rich-content blockquote{border-left:3px solid var(--purple);padding:16px 24px;background:var(--purple-pale)}.blog-rich-content pre{overflow-x:auto;padding:20px;background:var(--bg-section);border-radius:12px}.blog-rich-content table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse}.blog-rich-content td,.blog-rich-content th{padding:10px;border:1px solid var(--border)}.cookie-banner{position:fixed;left:24px;bottom:24px;z-index:1100;width:min(460px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow-y:auto;padding:26px;background:white;border:1px solid var(--border);border-radius:24px;box-shadow:0 12px 60px rgba(30,27,75,.22)}.cookie-heading{display:flex;align-items:center;gap:14px;margin-bottom:16px}.cookie-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:14px;background:var(--purple-pale);color:var(--purple);font-size:1.3rem}.cookie-heading h2{font-size:1.2rem;line-height:1.35}.cookie-banner p{font-size:.86rem;line-height:1.7}.cookie-details-toggle{display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;border:0;background:transparent;color:var(--purple);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.cookie-details{margin-top:14px;padding:14px;background:var(--purple-xpale);border-radius:12px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.cookie-actions button{padding:12px 16px;border:1px solid var(--purple);border-radius:12px;background:white;color:var(--purple);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}.cookie-actions button:last-child{background:var(--purple);color:white}.cookie-actions button:hover{box-shadow:var(--shadow-sm)}.cookie-banner button:focus-visible,.footer-cookie-settings:focus-visible{outline:2px solid var(--purple-light);outline-offset:4px}.footer-cookie-settings{border:0;background:transparent;color:white;font:inherit;font-size:.83rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.cookie-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (prefers-reduced-motion:no-preference){.cookie-banner{animation:site-reveal-in .35s ease both}}@media (max-width:640px){.cookie-banner{left:12px;bottom:12px;width:calc(100vw - 24px);padding:22px;max-height:calc(100dvh - 24px)}}.personal-portfolio .about-visual{align-self:center;width:100%;aspect-ratio:.95;overflow:hidden;border:4px solid var(--purple);border-radius:var(--radius-xl)}.personal-portfolio .about-visual .about-photo{height:100%;object-fit:cover;object-position:center top;border:0;border-radius:0}.personal-portfolio .hero-inner{padding-top:calc(var(--nav-h) + clamp(64px, 7vw, 104px))}@media (max-width:768px){.personal-portfolio .hero-inner{padding-top:calc(var(--nav-h) + 40px)}}@keyframes portfolio-reveal{0%{opacity:0;translate:0 24px;scale:.98}to{opacity:1;translate:0 0;scale:1}}@keyframes portfolio-hero-drift{0%,to{translate:0 0}50%{translate:18px -14px}}@keyframes portfolio-title-reflection{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:no-preference){.personal-portfolio .hero-title{background:linear-gradient(110deg,var(--text-h) 15%,var(--purple) 38%,#a78bfa 48%,var(--purple) 58%,var(--text-h) 80%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:home-enter .9s cubic-bezier(.22,1,.36,1) both,portfolio-title-reflection 2.8s ease-out .2s both}.personal-portfolio .hero-sub{animation-duration:.9s;animation-delay:.18s}.personal-portfolio .hero-actions{animation-duration:.9s;animation-delay:.32s}.personal-portfolio .hero-card{animation:portfolio-reveal 1s cubic-bezier(.22,1,.36,1) .25s both,home-card-float 6s ease-in-out 1.3s infinite}.personal-portfolio .hero-blob{animation:portfolio-hero-drift 16s ease-in-out infinite}.personal-portfolio .hero-blob-2{animation-delay:-6s;animation-direction:reverse}.personal-portfolio .hero-blob-3{animation-delay:-10s}.personal-portfolio .personal-resume-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.personal-portfolio .real-project-button i,.personal-portfolio .resume-arrow,.personal-portfolio .svc-icon{transition:transform .3s ease}.personal-portfolio .svc-icon i{animation:none}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.personal-portfolio .about-visual,.personal-portfolio .hero-card{transform:perspective(1100px) rotateX(var(--depth-x,0deg)) rotateY(var(--depth-y,0deg));transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease}.personal-portfolio .about-visual:hover,.personal-portfolio .hero-card:hover{box-shadow:0 24px 60px rgba(109,40,217,.18)}.personal-portfolio .personal-resume-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(109,40,217,.3)}.personal-portfolio .personal-resume-card:hover .resume-arrow{transform:translateX(4px)}.personal-portfolio .svc-card:hover .svc-icon{transform:rotate(-5deg) scale(1.06)}.personal-portfolio .real-project-button:hover i{transform:translate(2px,-2px)}}.about-availability{position:absolute;right:20px;bottom:24px;display:inline-flex;align-items:center;gap:12px;max-width:calc(100% - 40px);padding:12px 16px 12px 20px;border-radius:999px;background:#bbf7d0;color:#14532d;font-size:clamp(.75rem,1.15vw,1rem);font-weight:700;line-height:1.3;z-index:1}.about-availability-dot{position:relative;width:14px;height:14px;flex-shrink:0;border-radius:50%;background:#174d20;box-shadow:0 0 0 7px rgba(23,77,32,.22);margin:5px}.about-availability-dot:after,.about-availability-dot:before{content:"";position:absolute;inset:-3px;border:2px solid rgba(23,77,32,.65);border-radius:50%;pointer-events:none;opacity:0}@keyframes about-availability-pulse{0%{transform:scale(.7);opacity:.9}80%,to{transform:scale(2.1);opacity:0}}@media (prefers-reduced-motion:no-preference){.about-availability-dot:after,.about-availability-dot:before{animation:about-availability-pulse 2s ease-out infinite}.about-availability-dot:after{animation-delay:1s}}.personal-resume{background:var(--bg-light);color:var(--text-body)}.personal-resume .section-header{margin-bottom:64px}.resume-eyebrow{display:block;margin-bottom:24px;color:var(--purple);font-weight:600}.personal-resume .section-title{max-width:1050px;margin-inline:auto;color:var(--text-h)}.personal-resume .section-title span{color:var(--purple)}.personal-resume-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:56px;background:var(--purple-pale);color:var(--text-h);border-radius:24px}.personal-resume-column{min-width:0;padding-right:48px}.personal-resume-column+.personal-resume-column{border-left:1px solid rgba(109,40,217,.25);padding:0 0 0 48px}.personal-resume-column>h3{display:flex;gap:12px;align-items:center;margin-bottom:32px;font-family:var(--font-sans);font-size:1rem;color:var(--text-h)}.personal-resume-card{position:relative;padding:0 0 0 64px;margin-bottom:40px}.personal-resume-card:last-child{margin-bottom:0}.resume-arrow{position:absolute;left:0;top:0;display:grid;place-items:center;width:42px;height:42px;background:var(--purple);color:white;border-radius:50%}.resume-arrow i{transform:rotate(-45deg)}.personal-resume-card h4{font-family:var(--font-sans);font-size:clamp(1.1rem,1.45vw,1.3rem);line-height:1.4;margin-bottom:10px;color:var(--text-h)}.personal-period{display:inline-block;font-size:.95rem;margin-bottom:20px}.personal-resume-subtitle{font-size:1rem;margin-bottom:14px;color:var(--text-h)}.personal-resume-card p:last-child,.personal-resume-description{font-size:.9rem;color:var(--text-body)}.personal-resume-description{line-height:1.7}.personal-resume-description p{margin:0 0 10px}.personal-resume-description ol,.personal-resume-description ul{margin:0 0 10px;padding-left:22px}.personal-resume-description li+li{margin-top:5px}.personal-cv-note{margin-top:28px;text-align:center;font-size:.88rem;color:var(--text-body)}.personal-cv-note a{color:var(--purple);font-weight:600}.personal-section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px}.personal-section-heading .blog-read{margin-top:0}.personal-journal{background:var(--bg-light)}@media (max-width:768px){.personal-resume-grid{grid-template-columns:1fr;gap:32px;padding:32px 24px}.personal-resume-column{padding:0}.personal-resume-column+.personal-resume-column{border-left:0;border-top:1px solid rgba(109,40,217,.25);padding:32px 0 0}.personal-section-heading{flex-direction:column;align-items:flex-start}}@media (max-width:420px){.personal-resume-card{padding-left:52px}.resume-arrow{width:36px;height:36px}}.auto-carousel{min-width:0}.auto-carousel .carousel-track{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 4px 24px}.carousel-track::-webkit-scrollbar{display:none}.auto-carousel .carousel-track>article{flex:0 0 calc((100% - (var(--carousel-columns, 2) - 1) * 28px) / var(--carousel-columns, 2));min-width:0;scroll-snap-align:start}.carousel-controls{display:flex;justify-content:center;gap:12px;margin-top:12px}.carousel-controls button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--purple);border-radius:50%;background:white;color:var(--purple);cursor:pointer}.carousel-controls button:hover{background:var(--purple-pale)}.carousel-controls button:focus-visible{outline:2px solid var(--purple);outline-offset:4px}@media (max-width:640px){.auto-carousel .carousel-track>article{flex-basis:100%}}.portfolio-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:32px}.portfolio-filters button{padding:10px 20px;border:1px solid var(--purple);border-radius:999px;background:white;color:var(--purple);font:inherit;cursor:pointer}.portfolio-filters button[aria-pressed=true]{background:var(--purple);color:white}.portfolio-filters button:focus-visible{outline:2px solid var(--purple);outline-offset:4px}@media (min-width:641px) and (max-width:900px){.auto-carousel{--carousel-columns:2!important}}