html,body{color:#212529;background-color:#f8f9fa;height:100%;margin:0;padding:0;font-family:Segoe UI,sans-serif;overflow-x:hidden}.header{color:#fff;text-align:center;background:#1f2937;padding:2rem}.header h1{margin:0;font-size:2.5rem}.header p{color:#d1d5db;margin:.5rem 0 0;font-size:1.2rem}.projects{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto;padding:2rem;display:grid}.card{will-change:transform,box-shadow;contain:layout paint style;background:#fff;border-radius:.75rem;padding:1.5rem;transition:transform .2s;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}.card:hover{transform:translateY(-5px)}.card h3{color:#111827;margin-top:0}.role{margin:.25rem 0}.desc{color:#4b5563;font-size:.95rem}.btnRow{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.btnRow a{color:#2563eb;margin-top:.25rem;font-weight:700;text-decoration:none;display:inline-block}.embedWrap{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-top:1rem;overflow:hidden}.skills,.contact{max-width:800px;margin:2rem auto;padding:0 2rem}.skillGroup h4{margin-bottom:.5rem}.skillList{flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.skillList li{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#e0e7ff;border-radius:1rem;padding:.5rem 1rem;font-size:.85rem;transition:background .3s}.skillList li:hover{background:#c7d2fe}.footer{text-align:center;color:#6b7280;background:#f1f5f9;padding:2rem;font-size:.9rem}.card.outline-blue{z-index:1;background:#eef2ff;outline:3px solid #2563eb}.card.dim{opacity:.4;transform:scale(.98)}@keyframes pulseGlowZoomSpring{0%{outline:4px solid #facc15;transform:scale(1);box-shadow:0 0 #facc15}40%{outline:4px solid #facc15;transform:scale(1.06);box-shadow:0 0 28px #facc15}55%{outline:4px solid #facc15;transform:scale(1.02);box-shadow:0 0 14px #facc15}70%{outline:4px solid #facc15;transform:scale(1.04);box-shadow:0 0 22px #facc15}85%{outline:4px solid #facc15;transform:scale(1.01);box-shadow:0 0 10px #facc15}to{outline:4px solid #facc15;transform:scale(1);box-shadow:0 0 #facc15}}.pulse-highlight{animation:1.1s cubic-bezier(.34,1.56,.64,1) 3 pulseGlowZoomSpring}@media (prefers-reduced-motion:reduce){.card,.pulse-highlight{transition:none!important;animation:none!important}}
