.tech-stack,.cta-section{--ts-bg:var(--dark2,#100910);--ts-border:var(--border,#eb3c8a29);--ts-text-faint:var(--text-faint,#b9a8b2)}.tech-stack{--ts-bg:#fdf9fb;--ts-card-bg:#fff;--ts-border:#5b31451f;--ts-text:#241019;--ts-text-faint:#7a6470}.reveal{transition-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion:reduce){.reveal,.zoomFocus,.magAssemble,.ctaFlash,.ctaOrbitDraw,.ctaOrbitDraw-ring1,.ctaOrbitDraw-ring2,.ctaOrbitDraw-ring3,.ctaBurst{opacity:1!important;filter:none!important;stroke-dashoffset:0!important;transition:none!important;animation:none!important;transform:none!important}}.zoomFocus{opacity:0;filter:blur(6px);transition:opacity .6s,filter .6s,transform .7s cubic-bezier(.16,1,.3,1);transform:scale(1.25)}.zoomFocus.is-visible{opacity:1;filter:blur();transform:scale(1)}.magAssemble{opacity:0;transition:opacity .5s,transform .65s cubic-bezier(.34,1.56,.64,1)}.magAssemble.mag1{transform:translate(-70px,-50px)rotate(-18deg)scale(.6)}.magAssemble.mag2{transform:translate(70px,-50px)rotate(18deg)scale(.6)}.magAssemble.mag3{transform:translate(-70px,50px)rotate(14deg)scale(.6)}.magAssemble.mag4{transform:translate(70px,50px)rotate(-14deg)scale(.6)}.magAssemble.is-visible{opacity:1;transform:translate(0)rotate(0)scale(1)}.magAssemble .tech-icon-ring{transition:opacity .4s,transform .4s}.magAssemble.is-visible .tech-icon-ring{animation:.6s ease-out .35s magRingPulse}@keyframes magRingPulse{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}50%{opacity:.22;transform:translate(-50%,-50%)scale(1.3)}to{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.ctaFlash{opacity:0;transition:opacity .6s,transform .9s cubic-bezier(.22,.9,.3,1);transform:scale(.92)}.ctaFlash.is-visible{opacity:1;animation:.8s ease-out ctaFlashPulse;transform:scale(1)}@keyframes ctaFlashPulse{0%{filter:brightness()}35%{filter:brightness(1.35)}to{filter:brightness()}}.ctaOrbitDraw{opacity:0;transition:opacity .4s}.ctaOrbitDraw.is-visible{opacity:.8}.ctaOrbitDraw-ring1,.ctaOrbitDraw-ring2,.ctaOrbitDraw-ring3{stroke-dasharray:900;stroke-dashoffset:900px;transition:stroke-dashoffset 1.1s cubic-bezier(.65,0,.35,1)}.ctaOrbitDraw.is-visible .ctaOrbitDraw-ring1{stroke-dashoffset:0;transition-delay:50ms}.ctaOrbitDraw.is-visible .ctaOrbitDraw-ring2{stroke-dashoffset:0;transition-delay:.2s}.ctaOrbitDraw.is-visible .ctaOrbitDraw-ring3{stroke-dashoffset:0;transition-delay:.35s}.ctaBurst{opacity:0;transition:opacity .5s .15s,transform .6s cubic-bezier(.34,1.56,.64,1) .15s;transform:scale(.7)}.ctaBurst.is-visible{opacity:1;transform:scale(1)}.tech-stack{background:var(--ts-bg);isolation:isolate;padding:2% 0% 4%;position:relative;overflow:hidden}.tech-stack:before,.tech-stack:after{content:"";z-index:-1;filter:blur(90px);opacity:.3;border-radius:50%;width:46vw;max-width:620px;height:46vw;max-height:620px;animation:22s ease-in-out infinite tech-drift;position:absolute}.tech-stack:before{background:radial-gradient(circle, var(--secondary), transparent 70%);top:-14%;left:-12%}.tech-stack:after{background:radial-gradient(circle, var(--primary), transparent 70%);animation-name:tech-drift-reverse;animation-duration:26s;bottom:-18%;right:-10%}@keyframes tech-drift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(4%,5%)scale(1.12)}}@keyframes tech-drift-reverse{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-5%,-4%)scale(1.1)}}@media (prefers-reduced-motion:reduce){.tech-stack:before,.tech-stack:after{animation:none}}.tech-header{text-align:center;max-width:840px;margin:0 auto 3.5em}.section-tag{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--secondary);align-items:center;gap:.6em;font-size:.75em;font-weight:700;display:inline-flex}.section-tag:before{content:"";background:var(--secondary);width:22px;height:1px}.tech-stack .section-title{font-family:var(--font-display);text-align:center;margin:.4em 0 0;font-size:2.6em;font-weight:700;line-height:1.15}.section-title em{color:var(--secondary);font-style:italic}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.1em;margin:0 auto;padding:0% 8%;display:grid}.tech-item{border:1px solid var(--ts-border);background:var(--ts-card-bg);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:.9em;padding:2em 1em;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .35s,box-shadow .35s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px -14px #5b314538}.tech-icon-ring{background:radial-gradient(circle, var(--secondary) 0%, transparent 70%);opacity:0;pointer-events:none;border-radius:50%;width:70px;height:70px;transition:opacity .4s,transform .4s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.6)}.tech-item:hover,.tech-item:focus-within{border-color:var(--secondary);transform:translateY(-6px);box-shadow:0 16px 32px -14px #eb3c8a52}.tech-item:hover .tech-icon-ring{opacity:.12;transform:translate(-50%,-50%)scale(1.15)}.tech-logo{object-fit:contain;z-index:1;filter:grayscale()opacity(.55);width:80px;height:80px;transition:transform .4s cubic-bezier(.16,1,.3,1),filter .35s;position:relative}.tech-item:hover .tech-logo{filter:grayscale(0)opacity();transform:scale(1.08)rotate(-4deg)}.tech-name{z-index:1;font-family:var(--font-body);letter-spacing:.02em;color:var(--ts-text);font-size:.85em;font-weight:600;position:relative}@media (prefers-reduced-motion:reduce){.tech-item,.tech-logo,.tech-icon-ring{transition:none!important;transform:none!important}}@media (max-width:560px){.tech-stack .section-title{font-size:2em}.tech-grid{grid-template-columns:repeat(2,1fr)}.tech-item{padding:1.6em .8em}}.cta-section{text-align:center;isolation:isolate;padding:4% 0%;position:relative;overflow:hidden}.cta-bg{z-index:-2;background:radial-gradient(ellipse 60% 70% at 50% 0%, #eb3c8a38, transparent 65%), var(--primary);position:absolute;top:0;bottom:0;left:0;right:0}.cta-deco{z-index:-1;opacity:.8;animation:40s linear infinite cta-spin;position:absolute}.cta-deco.left{top:-60px;left:-60px}.cta-deco.right{animation-direction:reverse;bottom:-60px;right:-60px}@keyframes cta-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.cta-deco{animation:none}}.cta-content{max-width:880px;margin:0 auto;position:relative}.cta-tag{justify-content:center;margin-bottom:1.4em}.cta-tag:before{background:#fff}.cta-title{font-family:var(--font-display);color:#fff;margin:0;font-size:2.8em;font-weight:700;line-height:1.15}.cta-title em{color:var(--secondary);font-style:italic}.cta-sub{font-family:var(--font-body);color:#ffffffc7;max-width:48ch;margin:1em auto 2.2em;font-size:1.05em;line-height:1.6}.cta-row{justify-content:center;display:flex}.cta-btn{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--primary);cursor:pointer;background:#fff;border:none;border-radius:50px;align-items:center;gap:.6em;padding:1em 2.2em;font-size:.85em;font-weight:700;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,background .3s,color .3s;display:inline-flex;box-shadow:0 12px 30px -8px #eb3c8a8c}.cta-btn:hover{background:var(--secondary);color:#fff;transform:translateY(-3px);box-shadow:0 16px 36px -6px #eb3c8ab3}.cta-btn span{transition:transform .25s}.cta-btn:hover span{transform:translate(4px)}.cta-btn:focus-visible{outline-offset:3px;outline:2px solid #fff}@media (max-width:560px){.cta-title{font-size:2em}.cta-deco{width:180px;height:180px}}
