.mouse-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.layout{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:0 2rem;display:block}@media (min-width: 1024px){.layout{display:grid;grid-template-columns:minmax(380px,46%) 1fr;gap:3rem;padding:0 3rem}}.sidebar{padding:4.5rem 0 2rem;display:flex;flex-direction:column;justify-content:space-between;gap:2.5rem}@media (min-width: 1024px){.sidebar{position:sticky;top:0;height:100vh;padding:6rem 0}}.hero-hello{margin-bottom:1.2rem}.hero-name{font-size:clamp(2.6rem,6.5vw,4.2rem);font-weight:700}.hero-role{font-size:clamp(1.3rem,3vw,1.7rem);font-weight:600;color:var(--muted);margin-top:.6rem}.hero-tagline{color:var(--muted);max-width:34ch;margin-top:1.2rem}.side-nav{display:none}@media (min-width: 1024px){.side-nav{display:block;margin-top:4rem}}.side-nav ul{list-style:none;display:flex;flex-direction:column;gap:.9rem}.nav-link{display:inline-flex;align-items:center;gap:.8rem;color:var(--faint);transition:color .2s ease}.nav-line{width:2rem;height:1px;background:var(--faint);transition:width .25s ease,background .25s ease}.nav-num{font-size:.72rem;color:inherit}.nav-label{font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.nav-link:hover,.nav-link.active{color:var(--text-strong)}.nav-link:hover .nav-line,.nav-link.active .nav-line{width:3.6rem;background:var(--accent)}.side-footer{display:flex;align-items:center;gap:1.6rem}.socials{display:flex;gap:1.1rem}.socials a{color:var(--muted);transition:color .2s ease,transform .2s ease;display:inline-flex}.socials a:hover{color:var(--accent);transform:translateY(-3px)}.resume-btn{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:.55rem 1.1rem;transition:background .2s ease}.resume-btn:hover{background:var(--accent-dim)}.content{padding-bottom:2rem}.section{padding:4.5rem 0}@media (min-width: 1024px){.section{padding:6rem 0}.section:first-child{padding-top:6.5rem}}.section-eyebrow{display:block;text-transform:uppercase;letter-spacing:.18em;margin-bottom:2rem}.about-para{color:var(--muted);max-width:62ch;margin-bottom:1.2rem}.stats-row{display:flex;gap:2.8rem;margin:2.4rem 0;flex-wrap:wrap}.stat{display:flex;flex-direction:column}.stat-value{font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--accent)}.stat-label{color:var(--faint);font-size:.75rem}.skills-block{border:1px solid var(--card-border);background:var(--card);border-radius:10px;padding:1.4rem 1.6rem;display:flex;flex-direction:column;gap:.7rem}.skill-group{display:grid;grid-template-columns:130px 1fr;gap:1rem;align-items:baseline}.skill-group-name{color:var(--accent);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.skill-items{color:var(--muted);font-size:.92rem}@media (max-width: 560px){.skill-group{grid-template-columns:1fr;gap:.15rem}}.xp-list{list-style:none;display:flex;flex-direction:column}.xp-row{display:grid;grid-template-columns:1fr;gap:.4rem;padding:1.4rem 1.2rem;margin:0 -1.2rem;border-radius:10px;transition:background .25s ease}@media (min-width: 720px){.xp-row{grid-template-columns:150px 1fr;gap:1.4rem}}.xp-row:hover{background:var(--card)}.xp-dates{color:var(--faint);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding-top:.28rem}.xp-title{font-size:1.05rem;font-weight:600}.xp-company-link{display:inline-flex;align-items:center;gap:.3rem;transition:color .2s ease}.xp-company-link:hover{color:var(--accent)}.arrow{transition:transform .2s ease}.xp-company-link:hover .arrow,.case-link:hover .arrow{transform:translate(2px,-2px)}.xp-location{color:var(--faint);font-size:.72rem;margin-top:.2rem}.xp-summary{color:var(--muted);font-size:.95rem;margin-top:.6rem}.xp-points{margin:.7rem 0 0 1.1rem;color:var(--muted);font-size:.92rem;display:flex;flex-direction:column;gap:.4rem}.xp-points li::marker{color:var(--accent)}.tech-list{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;margin-top:1rem;color:var(--accent);font-size:.76rem}.tech-list.small{font-size:.72rem;gap:.3rem .9rem}.edu-card{display:grid;grid-template-columns:1fr;gap:.4rem;border:1px solid var(--card-border);background:var(--card);border-radius:10px;padding:1.4rem 1.6rem;margin-top:1.6rem}@media (min-width: 720px){.edu-card{grid-template-columns:150px 1fr;gap:1.4rem}}.edu-school{color:var(--muted);margin-top:.3rem}.edu-coursework{color:var(--faint);font-size:.74rem;margin-top:.6rem}.featured-list{display:flex;flex-direction:column;gap:4.5rem;margin-bottom:5rem}.featured{position:relative;display:grid;grid-template-columns:1fr;gap:1.2rem;align-items:center}@media (min-width: 860px){.featured{grid-template-columns:repeat(12,1fr)}.featured-media{grid-column:1 / 8;grid-row:1}.featured-info{grid-column:7 / 13;grid-row:1;text-align:right;z-index:2}.featured.flip .featured-media{grid-column:6 / 13}.featured.flip .featured-info{grid-column:1 / 7;text-align:left}}.featured-media{display:block;padding:0;border-radius:10px;overflow:hidden;border:1px solid var(--card-border);background:var(--bg-raise);aspect-ratio:16 / 10;cursor:pointer}.featured-media img{width:100%;height:100%;object-fit:cover;object-position:top;filter:saturate(.85) brightness(.82);transition:filter .3s ease,transform .3s ease}.featured:hover .featured-media img{filter:none;transform:scale(1.025)}.media-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#13203a,#0d2b2b)}.media-placeholder span{font-family:var(--font-display);font-size:4rem;font-weight:700;color:var(--accent);opacity:.35}.featured-eyebrow{font-size:.72rem;margin-bottom:.5rem}.featured-title{font-size:clamp(1.35rem,3vw,1.75rem);margin-bottom:1rem}.featured-title button{font:inherit;color:inherit;transition:color .2s ease}.featured-title button:hover{color:var(--accent)}.featured-desc{background:#131c31;border:1px solid var(--card-border);border-radius:8px;padding:1.1rem 1.3rem;color:var(--muted);font-size:.95rem;box-shadow:0 10px 30px -12px #020617b3}.featured-info .tech-list{justify-content:flex-start}@media (min-width: 860px){.featured-info .tech-list{justify-content:flex-end}.featured.flip .featured-info .tech-list{justify-content:flex-start}}.featured-links{display:flex;align-items:center;gap:1rem;margin-top:1rem}@media (min-width: 860px){.featured-links{justify-content:flex-end}.featured.flip .featured-links{justify-content:flex-start}}.featured-links a{color:var(--muted);display:inline-flex;transition:color .2s ease,transform .2s ease}.featured-links a:hover{color:var(--accent);transform:translateY(-2px)}.case-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--accent);border-bottom:1px solid transparent;transition:border-color .2s ease}.case-link:hover{border-color:var(--accent)}.other-heading{font-size:1.25rem;margin-bottom:1.8rem}.other-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}.other-card{display:flex;flex-direction:column;background:#111a2e;border:1px solid var(--card-border);border-radius:10px;padding:1.5rem 1.6rem;cursor:pointer;transition:transform .25s ease,border-color .25s ease}.other-card:hover{transform:translateY(-6px);border-color:#5eead459}.other-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.2rem}.folder{opacity:.9}.other-card-links{display:flex;gap:.7rem}.other-card-links a{color:var(--muted);display:inline-flex;transition:color .2s ease}.other-card-links a:hover{color:var(--accent)}.other-title{font-size:1.08rem;margin-bottom:.5rem}.other-title button{font:inherit;color:inherit;text-align:left;transition:color .2s ease}.other-card:hover .other-title button{color:var(--accent)}.other-desc{color:var(--muted);font-size:.9rem;flex-grow:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#020617c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1.2rem;overflow-y:auto}.modal{position:relative;width:min(860px,100%);max-height:90vh;overflow-y:auto;background:#0f1729;border:1px solid var(--card-border);border-radius:14px;box-shadow:0 30px 80px -20px #000000b3}.modal-close{position:absolute;top:.9rem;right:.9rem;z-index:3;color:var(--text);background:#02061799;border-radius:50%;width:2.4rem;height:2.4rem;display:grid;place-items:center;transition:color .2s ease,background .2s ease}.modal-close:hover{color:var(--accent);background:#020617d9}.modal-gallery{position:relative;background:#060b16;border-bottom:1px solid var(--card-border)}.modal-gallery img{width:100%;max-height:56vh;object-fit:contain;margin:0 auto}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);color:var(--text);background:#02061799;border-radius:50%;width:2.6rem;height:2.6rem;display:grid;place-items:center;transition:background .2s ease,color .2s ease}.gallery-nav:hover{color:var(--accent);background:#020617e6}.gallery-nav.prev{left:.8rem}.gallery-nav.next{right:.8rem}.gallery-dots{position:absolute;bottom:.7rem;left:0;right:0;display:flex;justify-content:center;gap:.45rem}.dot{width:8px;height:8px;border-radius:50%;background:#e2e8f059;transition:background .2s ease,transform .2s ease}.dot.active{background:var(--accent);transform:scale(1.25)}.modal-body{padding:1.8rem 2rem 2.2rem}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.modal-head h3{font-size:1.5rem}.modal-links{display:flex;align-items:center;gap:.9rem}.modal-links a{color:var(--muted);display:inline-flex;transition:color .2s ease}.modal-links a:hover{color:var(--accent)}.visit-btn{display:inline-flex!important;align-items:center;gap:.4rem;font-size:.78rem;color:var(--accent)!important;border:1px solid var(--accent);border-radius:6px;padding:.45rem .9rem;transition:background .2s ease}.visit-btn:hover{background:var(--accent-dim)}.modal-meta{display:flex;gap:1.4rem;flex-wrap:wrap;color:var(--faint);font-size:.75rem;margin-top:.5rem}.modal-overview{color:var(--muted);margin-top:1.2rem}.modal-subhead{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;margin-top:1.6rem;margin-bottom:.7rem}.modal-highlights{margin-left:1.1rem;color:var(--muted);font-size:.94rem;display:flex;flex-direction:column;gap:.45rem}.modal-highlights li::marker{color:var(--accent)}.contact{text-align:left;max-width:560px}.contact-title{font-size:clamp(2rem,5vw,2.8rem);margin-bottom:1rem}.contact-text{color:var(--muted)}.contact-actions{display:flex;align-items:center;gap:1.4rem;margin-top:2rem;flex-wrap:wrap}.cta-btn{font-family:var(--font-mono);font-size:.9rem;color:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:.9rem 1.8rem;transition:background .2s ease}.cta-btn:hover{background:var(--accent-dim)}.email-copy{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted);transition:color .2s ease}.email-copy:hover{color:var(--accent)}.site-footer{margin-top:6rem;color:var(--faint)}.site-footer p{font-size:.72rem}:root{--bg: #0a0f1c;--bg-raise: #111827;--card: rgba(148, 163, 184, .06);--card-border: rgba(148, 163, 184, .12);--text: #e2e8f0;--text-strong: #f1f5f9;--muted: #94a3b8;--faint: #64748b;--accent: #5eead4;--accent-dim: rgba(94, 234, 212, .1);--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Space Grotesk", var(--font-body);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#5eead440;color:var(--text-strong)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);line-height:1.15;letter-spacing:-.02em}.mono{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em}.accent{color:var(--accent)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#1e293b;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#334155}:focus-visible{outline:2px dashed var(--accent);outline-offset:3px;border-radius:2px}
