:root{--card-tech-stack-bg:rgba(255,255,255,.02);--card-tech-stack-bg-hover:rgba(255,255,255,.04);--card-tech-stack-border:rgba(255,255,255,.08);--card-tech-stack-border-hover:var(--primary);--card-tech-stack-padding:3rem 2rem;--card-tech-stack-padding-mobile:2rem 1.5rem;--card-tech-stack-gap:1.5rem;--card-tech-stack-radius:16px;--card-tech-stack-border-width:1px;--card-tech-stack-icon-size:80px;--card-tech-stack-icon-size-mobile:60px;--card-tech-stack-transition:.3s;--card-tech-stack-scale-hover:1.05;--card-tech-stack-glow-size:20px;--card-tech-stack-glow-opacity:.2;--card-tech-stack-title-size:1.6rem;--card-tech-stack-title-size-mobile:1.4rem;--grid-tech-stack-gap:2rem;--grid-tech-stack-gap-tablet:1.5rem;--grid-tech-stack-gap-mobile:1.25rem;--grid-tech-stack-cols-desktop:5;--grid-tech-stack-cols-tablet:3;--grid-tech-stack-cols-mobile:2;--grid-tech-stack-min-width:160px}.card-tech-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--card-tech-stack-gap);text-align:center;position:relative;background:var(--card-tech-stack-bg);border:var(--card-tech-stack-border-width) solid var(--card-tech-stack-border);border-radius:var(--card-tech-stack-radius);padding:var(--card-tech-stack-padding);min-height:180px;transition:all var(--card-tech-stack-transition) cubic-bezier(0.4,0,.2,1);box-shadow:0 2px 8px rgba(0,0,0,.1)}.card-tech-stack::before{content:'';position:absolute;inset:-1px;border-radius:var(--card-tech-stack-radius);padding:1px;background:linear-gradient(135deg,var(--primary) 0,var(--tertiary) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--card-tech-stack-transition) ease;pointer-events:none}.card-tech-stack:hover{transform:scale(var(--card-tech-stack-scale-hover));background:var(--card-tech-stack-bg-hover);border-color:transparent;box-shadow:0 4px 16px rgba(0,0,0,.15),0 0 var(--card-tech-stack-glow-size) hsla(var(--primary-h),var(--primary-s),var(--primary-l),var(--card-tech-stack-glow-opacity))}.card-tech-stack:hover::before{opacity:1}.card-tech-stack:hover .card-tech-stack__icon{transform:scale(1.1)}.card-tech-stack__header{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:none}.card-tech-stack__title{color:var(--light);font-family:var(--heading);font-size:var(--card-tech-stack-title-size);font-weight:600;line-height:1.3;margin:0;transition:color var(--card-tech-stack-transition) ease}.card-tech-stack:hover .card-tech-stack__title{color:hsl(var(--primary-h),var(--primary-s),var(--primary-l))}.card-tech-stack__icon-wrap{display:flex;align-items:center;justify-content:center;width:var(--card-tech-stack-icon-size);height:var(--card-tech-stack-icon-size);order:-1;flex-shrink:0}.card-tech-stack__icon{width:100%;height:100%;object-fit:contain;display:block;transition:transform var(--card-tech-stack-transition) cubic-bezier(0.4,0,.2,1)}.card-tech-stack--large{min-height:220px;padding:4rem 3rem}.card-tech-stack--large .card-tech-stack__icon-wrap{width:100px;height:100px}.card-tech-stack--large .card-tech-stack__title{font-size:1.8rem}.card-tech-stack--compact{min-height:140px;padding:2rem 1.5rem;gap:1rem}.card-tech-stack--compact .card-tech-stack__icon-wrap{width:60px;height:60px}.card-tech-stack--compact .card-tech-stack__title{font-size:1.4rem}@media (max-width:768px){.card-tech-stack{padding:var(--card-tech-stack-padding-mobile);min-height:160px}.card-tech-stack__icon-wrap{width:var(--card-tech-stack-icon-size-mobile);height:var(--card-tech-stack-icon-size-mobile)}.card-tech-stack__title{font-size:var(--card-tech-stack-title-size-mobile)}.card-tech-stack:hover{transform:scale(1.02)}}@media (max-width:480px){.card-tech-stack{min-height:140px;gap:1rem}.card-tech-stack__icon-wrap{width:50px;height:50px}.card-tech-stack__title{font-size:1.3rem}}.grid-tech-stack-cards{display:grid;grid-template-columns:repeat(var(--grid-tech-stack-cols-desktop),1fr);gap:var(--grid-tech-stack-gap);width:100%;margin:0;padding:0;box-sizing:border-box}@media (max-width:1024px){.grid-tech-stack-cards{gap:var(--grid-tech-stack-gap-tablet)}}@media (max-width:768px){.grid-tech-stack-cards{grid-template-columns:repeat(var(--grid-tech-stack-cols-tablet),1fr);gap:var(--grid-tech-stack-gap-tablet)}}@media (max-width:480px){.grid-tech-stack-cards{grid-template-columns:repeat(var(--grid-tech-stack-cols-mobile),1fr);gap:var(--grid-tech-stack-gap-mobile)}}.grid-tech-stack-cards--compact{gap:1.5rem}@media (max-width:768px){.grid-tech-stack-cards--compact{gap:1rem}}.grid-tech-stack-cards--wide{gap:3rem}@media (max-width:768px){.grid-tech-stack-cards--wide{gap:2rem}}.grid-tech-stack-cards--four-col{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-tech-stack-cards--four-col{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.grid-tech-stack-cards--four-col{grid-template-columns:repeat(2,1fr)}}