.page-module__JZa57W__pageHero{padding:calc(var(--header-height) + var(--space-4xl)) 0 var(--space-4xl);background:var(--gradient-hero);text-align:center;position:relative}.page-module__JZa57W__pageHero:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.page-module__JZa57W__pageHero h1{font-size:var(--fs-5xl);margin-bottom:var(--space-md);z-index:1;position:relative}.page-module__JZa57W__pageHero p{font-size:var(--fs-lg);color:var(--text-secondary);z-index:1;max-width:600px;margin:0 auto;position:relative}.page-module__JZa57W__filters{padding:var(--space-2xl) 0;background:var(--bg-surface);border-bottom:1px solid var(--border-color);top:var(--header-height);z-index:10;position:sticky}.page-module__JZa57W__filterButtons{gap:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}.page-module__JZa57W__filterBtn{font-size:var(--fs-sm);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:8px 20px;font-weight:500}.page-module__JZa57W__filterBtn:hover{color:var(--text-primary);border-color:var(--border-light)}.page-module__JZa57W__filterBtn.page-module__JZa57W__active{color:#fff;background:var(--accent-primary);border-color:var(--accent-primary)}.page-module__JZa57W__portfolioSection{padding:var(--space-4xl) 0}.page-module__JZa57W__grid{gap:var(--space-xl);grid-template-columns:repeat(2,1fr);display:grid}.page-module__JZa57W__card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);color:inherit;display:block;overflow:hidden}.page-module__JZa57W__card:hover{box-shadow:var(--shadow-glow);border-color:#fff3;transform:translateY(-6px)}.page-module__JZa57W__cardImage{background:var(--bg-elevated);justify-content:center;align-items:center;width:100%;height:220px;font-size:64px;display:flex;position:relative;overflow:hidden}.page-module__JZa57W__cardImage:after{content:"";background:linear-gradient(#0000 40%,#12121ae6 100%);position:absolute;inset:0}.page-module__JZa57W__cardBody{padding:var(--space-xl)}.page-module__JZa57W__cardTag{font-size:var(--fs-xs);color:var(--accent-primary);border-radius:var(--radius-full);margin-bottom:var(--space-sm);background:#ffffff1a;padding:4px 12px;font-weight:600;display:inline-block}.page-module__JZa57W__cardBody h3{font-size:var(--fs-xl);margin-bottom:var(--space-sm);font-weight:600}.page-module__JZa57W__cardBody p{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);margin-bottom:var(--space-md)}.page-module__JZa57W__techTags{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.page-module__JZa57W__tech{font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-primary);border-radius:var(--radius-full);border:1px solid var(--border-color);padding:4px 10px}.page-module__JZa57W__cardLink{font-size:var(--fs-sm);color:var(--accent-primary);align-items:center;gap:var(--space-xs);transition:gap var(--transition-fast);font-weight:600;display:inline-flex}.page-module__JZa57W__cardLink:hover{gap:var(--space-sm)}.page-module__JZa57W__cta{padding:var(--space-4xl) 0;background:var(--bg-surface);text-align:center}.page-module__JZa57W__cta h2{font-size:var(--fs-3xl);margin-bottom:var(--space-md)}.page-module__JZa57W__cta p{font-size:var(--fs-lg);color:var(--text-secondary);margin-bottom:var(--space-2xl);max-width:500px;margin-left:auto;margin-right:auto}.page-module__JZa57W__ctaBtn{align-items:center;gap:var(--space-sm);font-size:var(--fs-base);color:#09090b;background:var(--text-primary);border-radius:var(--radius-full);transition:transform var(--transition-fast), box-shadow var(--transition-fast);padding:16px 32px;font-weight:600;display:inline-flex}.page-module__JZa57W__ctaBtn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #ffffff1a}@media (max-width:768px){.page-module__JZa57W__grid{grid-template-columns:1fr}}
