*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-accent: #38bdf8;--color-accent-hover: #7dd3fc;--color-border: #334155;--color-card: #1e293b;--color-header-bg: rgba(15, 23, 42, .85);--color-tech-tag-bg: rgba(56, 189, 248, .1);--color-tech-tag-border: rgba(56, 189, 248, .2);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-width: 1100px;--radius: 8px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-hover)}img{max-width:100%;display:block}.skip-link{position:absolute;top:-100%;left:0;background:var(--color-accent);color:var(--color-bg);padding:.5rem 1rem;z-index:200;font-weight:600}.skip-link:focus{top:0}.header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--color-header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between}.header-logo{font-size:1.25rem;font-weight:700;color:var(--color-text)}.header-logo:hover{color:var(--color-accent)}.nav-list{display:flex;list-style:none;gap:2rem}.nav-link{color:var(--color-text-secondary);font-size:.9rem;font-weight:500;transition:color .2s}.nav-link:hover{color:var(--color-accent)}.header-right{display:flex;align-items:center;gap:1.5rem}.shader-hero{min-height:100vh;width:100%;position:relative;overflow:hidden}.shader-hero-svg-filters{position:absolute;inset:0;width:0;height:0}.shader-hero-bg{position:absolute;inset:0;width:100%;height:100%}.shader-hero-bg-wireframe{opacity:.6}.shader-hero-content{position:absolute;bottom:2.5rem;left:2.5rem;z-index:20;max-width:32rem;text-align:left}.shader-hero-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;background:#ffffff0d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);margin-bottom:1rem;position:relative}.shader-hero-badge-line{position:absolute;top:0;left:.25rem;right:.25rem;height:1px;background:linear-gradient(to right,transparent,rgba(255,255,255,.2),transparent);border-radius:9999px}.shader-hero-badge-text{color:#ffffffe6;font-size:.75rem;font-weight:300;position:relative;z-index:10}.shader-hero-heading{font-size:clamp(2.5rem,6vw,3.75rem);line-height:1.15;letter-spacing:-.02em;font-weight:300;color:#fff;margin-bottom:1rem}.shader-hero-heading-accent{font-weight:500;font-style:italic}.shader-hero-heading-title{font-weight:600;background:linear-gradient(135deg,#38bdf8,#7dd3fc 40%,#a5f3fc,#38bdf8);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 4s ease infinite}@keyframes gradient-shift{0%{background-position:0% center}50%{background-position:100% center}to{background-position:0% center}}.shader-hero-desc{font-size:.8rem;font-weight:300;color:#ffffffb3;margin-bottom:1.5rem;line-height:1.7}.shader-hero-buttons{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.shader-hero-btn-outline{padding:.6rem 1.75rem;border-radius:9999px;background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:400;font-size:.8rem;transition:background .2s,border-color .2s;cursor:pointer}.shader-hero-btn-outline:hover{background:#ffffff1a;border-color:#ffffff80;color:#fff}.shader-hero-btn-primary{padding:.6rem 1.75rem;border-radius:9999px;background:#fff;color:#000;font-weight:400;font-size:.8rem;transition:background .2s;cursor:pointer}.shader-hero-btn-primary:hover{background:#ffffffe6;color:#000}.pulsing-circle-wrap{position:absolute;bottom:2.5rem;right:2.5rem;z-index:30}.pulsing-circle-inner{position:relative;width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}.pulsing-circle-svg{position:absolute;inset:0;width:100%;height:100%}.pulsing-circle-text{font-size:.55rem;fill:#fffc}.section{max-width:var(--max-width);margin:0 auto;padding:5rem 1.5rem}.section-title{font-size:2rem;font-weight:700;margin-bottom:2.5rem;text-align:center;position:relative}.section-title:after{content:"";display:block;width:60px;height:3px;background:var(--color-accent);margin:.75rem auto 0;border-radius:2px}.about-content{display:flex;align-items:center;gap:3.5rem;max-width:960px;margin:0 auto}.about-body{flex:1}.about-text{font-size:1.05rem;color:var(--color-text-secondary);line-height:1.8;text-align:left}.about-text p{margin-bottom:1rem}.about-text p:last-child{margin-bottom:0}.about-photo-wrapper{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1rem;position:relative;padding:2.5rem}.about-photo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,var(--color-accent) 0%,transparent 70%);opacity:.12;filter:blur(30px);pointer-events:none}.about-photo{width:180px;height:180px;border-radius:50%;overflow:hidden;border:3px solid var(--color-border);position:relative;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-card) 100%);box-shadow:0 0 0 5px var(--color-bg),0 0 0 6px var(--color-border);transition:border-color .3s,box-shadow .3s}.about-photo:hover{border-color:var(--color-accent);box-shadow:0 0 0 5px var(--color-bg),0 0 0 6px var(--color-accent),0 0 30px #38bdf826}.about-photo img{width:100%;height:100%;object-fit:contain;object-position:center top}.about-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-card) 100%)}.about-photo-initials{font-size:3.5rem;font-weight:700;color:var(--color-accent);letter-spacing:.05em;opacity:.5}.about-photo-info{display:flex;flex-direction:column;align-items:center;gap:.2rem}.about-photo-name{font-size:1rem;font-weight:700;color:var(--color-text);letter-spacing:.15em}.about-photo-role{font-size:.7rem;font-weight:400;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase}.about-stats{display:flex;gap:2rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.about-stat{display:flex;flex-direction:column;align-items:center;gap:.2rem}.about-stat-value{font-size:1.5rem;font-weight:700;color:var(--color-accent)}.about-stat-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tool-badges{padding-bottom:1rem}.badge-group{margin-bottom:1.5rem}.badge-group-title{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.badge-count{display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;font-size:.65rem;font-weight:700;width:1.4rem;height:1.4rem;border-radius:50%}.badge-list{display:flex;flex-wrap:wrap;gap:.5rem}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:.35rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;border:1px solid var(--color-border);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:default}.badge-icon{width:20px;height:20px;border-radius:3px;object-fit:contain;flex-shrink:0}.badge-icon-fallback{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;background:var(--color-accent);color:#fff;font-size:.65rem;font-weight:700;flex-shrink:0}.badge-label{white-space:nowrap}.badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.badge-vibecoding{background:#38bdf814;color:var(--color-accent);border-color:#38bdf840}.badge-vibecoding:hover{border-color:var(--color-accent)}.badge-program{background:#f59e0b14;color:#f59e0b;border-color:#f59e0b40}.badge-program:hover{border-color:#f59e0b}.badge-platform{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}.badge-platform:hover{border-color:var(--color-accent);color:var(--color-accent)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.skill-category{background:var(--color-card);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--color-border)}.skill-category-title{font-size:1rem;font-weight:600;color:var(--color-accent);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.skill-item{margin-bottom:.75rem}.skill-info{display:flex;justify-content:space-between;margin-bottom:.25rem;font-size:.9rem}.skill-name{color:var(--color-text)}.skill-level{color:var(--color-text-secondary);font-size:.8rem}.skill-bar{height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden}.skill-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));border-radius:3px;transition:width .6s ease}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.project-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-4px);border-color:var(--color-accent)}.project-title{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.project-description{color:var(--color-text-secondary);font-size:.95rem;margin-bottom:1rem;line-height:1.6}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag{font-size:.8rem;padding:.2rem .6rem;background:var(--color-tech-tag-bg);color:var(--color-accent);border-radius:4px;border:1px solid var(--color-tech-tag-border)}.project-card[role=button]{cursor:pointer}.project-links{display:flex;gap:1rem}.project-link{font-size:.9rem;font-weight:500}.modal-overlay{position:fixed;inset:0;z-index:200;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .2s ease}.modal-content{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:2rem;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;position:relative;animation:slideUp .25s ease}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;transition:color .2s}.modal-close:hover{color:var(--color-text)}.modal-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem;padding-right:2rem}.modal-description{color:var(--color-text-secondary);line-height:1.7;margin-bottom:1.25rem}.modal-details{background:var(--color-bg);padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem}.modal-details-title{font-size:.9rem;font-weight:600;color:var(--color-accent);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.modal-details p{color:var(--color-text-secondary);font-size:.95rem;line-height:1.7;margin-bottom:.15rem}.modal-details-spacer{height:.5rem}.modal-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.modal-links{display:flex;gap:.75rem}.modal-link{display:inline-block;padding:.5rem 1.25rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:border-color .2s,background .2s}.modal-link:hover{border-color:var(--color-accent)}.modal-link-primary{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent)}.modal-link-primary:hover{background:var(--color-accent-hover);color:var(--color-bg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.contact-content{text-align:center;max-width:600px;margin:0 auto}.contact-text{color:var(--color-text-secondary);font-size:1.1rem;margin-bottom:1.5rem}.contact-email{display:inline-block;font-size:1.5rem;font-weight:600;margin-bottom:2rem}.social-links{display:flex;justify-content:center;gap:1.5rem}.social-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);transition:border-color .2s,color .2s}.social-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.social-icon{font-size:1.2rem}.footer{text-align:center;padding:2rem 1.5rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.85rem}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.scroll-revealed{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}@media(max-width:768px){.nav-list{gap:1rem}.nav-link{font-size:.8rem}.shader-hero-content{bottom:1.5rem;left:1.5rem;right:1.5rem;max-width:none}.shader-hero-heading{font-size:2.5rem}.hero-title-br{display:none}.pulsing-circle-wrap{bottom:1.5rem;right:1.5rem}.pulsing-circle-inner{width:4rem;height:4rem}.about-content{flex-direction:column;align-items:center;gap:2rem}.about-text{text-align:center}.about-stats{justify-content:center}.about-photo{width:180px;height:180px}.about-photo-glow{width:240px;height:240px}.about-photo-wrapper{padding:1.5rem}.section{padding:3rem 1rem}.skills-grid{grid-template-columns:repeat(2,1fr)}.projects-grid{grid-template-columns:1fr}.social-links{flex-direction:column;align-items:center}}
