:root{--bg: #0f172a;--bg-card: rgba(30, 41, 59, .45);--text-head: #f1f5f9;--text-body: #94a3b8;--text-muted: #64748b;--accent: #ff5722;--accent-light: #ff9800;--accent-tint: rgba(255, 87, 34, .14);--border: rgba(148, 163, 184, .1);--border-hover: rgba(255, 112, 67, .35);--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: "Fraunces", Georgia, serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.2) transparent}body{background-color:var(--bg);color:var(--text-body);font-family:var(--font-sans);line-height:1.625;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::selection{background-color:#ff57224d;color:#ffb74d}a{color:inherit;text-decoration:none}button{font-family:inherit}.cursor-spotlight{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:radial-gradient(600px circle at var(--mouse-x, 0px) var(--mouse-y, 0px),rgba(255,87,34,.18),rgba(255,152,0,.08) 40%,transparent 80%);transition:opacity .3s ease}.skip-to-content{position:absolute;left:0;top:0;display:block;transform:translate(-100%);background:linear-gradient(135deg,#ff5722,#ff9800);color:#0f172a;padding:12px 20px;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;border-radius:0 0 6px;z-index:999;transition:transform .2s ease}.skip-to-content:focus{transform:translate(0)}.portfolio-app{position:relative;min-height:100vh}.portfolio-container{margin-left:auto;margin-right:auto;min-height:100vh;max-width:1280px;padding-left:clamp(24px,5vw,48px);padding-right:clamp(24px,5vw,48px);padding-top:48px;padding-bottom:48px}@media (min-width: 1024px){.portfolio-container{padding-top:0;padding-bottom:0}.portfolio-layout{display:flex;justify-content:space-between;gap:32px}.portfolio-sidebar-col{position:sticky;top:0;display:flex;max-height:100vh;width:48%;flex-direction:column;justify-content:space-between;padding-top:96px;padding-bottom:96px}.portfolio-content-col{width:52%;padding-top:96px;padding-bottom:96px}}.sidebar-header{display:flex;flex-direction:column;justify-content:space-between;height:100%}.sidebar-name{font-size:clamp(2.2rem,4vw,3rem);font-weight:700;letter-spacing:-.025em;color:var(--text-head);line-height:1.1;margin:0}.sidebar-name a{color:inherit;transition:color .2s ease}.sidebar-name a:hover{color:#fff}.sidebar-role{margin-top:12px;font-size:clamp(1.1rem,2vw,1.25rem);font-weight:500;letter-spacing:-.015em;color:var(--text-head)}.sidebar-pitch{margin-top:16px;max-width:320px;font-size:.95rem;line-height:1.55;color:var(--text-body)}.sidebar-nav{display:none}@media (min-width: 1024px){.sidebar-nav{display:block;margin-top:64px}}.sidebar-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;width:max-content}.sidebar-nav-link{display:flex;align-items:center;padding:10px 0;text-decoration:none;cursor:pointer}.nav-indicator{margin-right:16px;height:1px;width:32px;background-color:var(--text-muted);transition:width .3s cubic-bezier(.16,1,.3,1),background-color .3s ease,box-shadow .3s ease}.nav-text{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);transition:color .3s ease}.sidebar-nav-link:hover .nav-indicator,.sidebar-nav-link:focus-visible .nav-indicator{width:64px;background-color:var(--accent-light);box-shadow:0 0 10px #ff980080}.sidebar-nav-link:hover .nav-text,.sidebar-nav-link:focus-visible .nav-text{color:var(--text-head)}.sidebar-nav-link.active .nav-indicator{width:64px;background-color:var(--accent-light);box-shadow:0 0 14px #ff5722bf,0 0 22px #ff980066}.sidebar-nav-link.active .nav-text{color:var(--text-head)}.sidebar-resume-block{margin-top:36px;display:none}@media (min-width: 1024px){.sidebar-resume-block{display:block}}.sidebar-resume-cta{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:9999px;background:var(--accent-tint);border:1px solid var(--border-hover);color:var(--accent-light);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;transition:all .25s ease;box-shadow:0 2px 10px #0003}.sidebar-resume-cta:hover{background:var(--accent);color:#0f172a;border-color:var(--accent);box-shadow:0 4px 16px #ff572266;transform:translateY(-2px)}.sidebar-resume-cta:hover .inline-arrow{color:#0f172a;transform:translate(3px,-3px)}.sidebar-resume-cta .btn-icon{width:15px;height:15px;flex-shrink:0}.sidebar-socials{display:flex;align-items:center;gap:20px;list-style:none;margin:32px 0 0;padding:0}.social-icon-link{display:block;color:var(--text-body);transition:color .2s ease,transform .2s ease}.social-icon-link:hover{color:var(--accent-light);transform:translateY(-2px)}.social-icon-link svg{width:22px;height:22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.section-block{margin-bottom:96px;scroll-margin-top:96px}@media (min-width: 1024px){.section-block{margin-bottom:144px}}.section-heading-mobile{position:sticky;top:0;z-index:20;margin-left:-24px;margin-right:-24px;margin-bottom:20px;padding:16px 24px;background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.section-heading-mobile h2{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-head)}@media (min-width: 1024px){.section-heading-mobile{display:none}}.about-content p{margin-bottom:18px;font-size:1rem;line-height:1.65;color:var(--text-body)}.inline-link{font-weight:600;color:var(--text-head);transition:color .2s ease;position:relative}.inline-link:hover{color:var(--accent-light)}.about-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}.stat-card{display:flex;flex-direction:column;padding:14px 16px;border-radius:8px;background:#1e293b59;border:1px solid var(--border);transition:all .2s ease}.stat-card:hover{background:#1e293b8c;border-color:var(--border-hover)}.stat-value{font-size:1.4rem;font-weight:800;color:var(--text-head);line-height:1.1}.stat-label{margin-top:6px;font-size:.72rem;color:var(--text-muted);line-height:1.35}.group-list{list-style:none;margin:0;padding:0}.card-item-wrap{margin-bottom:48px}.card-item-wrap:last-child{margin-bottom:0}@media (min-width: 1024px){.group-list:hover .card-item{opacity:.45;transition:opacity .25s ease}.group-list .card-item-wrap:hover .card-item{opacity:1!important}}.card-item{position:relative;transition:all .25s cubic-bezier(.16,1,.3,1);border-radius:8px}@media (min-width: 640px){.card-item{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:24px}}.card-highlight{position:absolute;top:-16px;right:-16px;bottom:-16px;left:-16px;z-index:0;border-radius:10px;transition:background-color .25s ease,box-shadow .25s ease,border-color .25s ease;pointer-events:none;display:none}@media (min-width: 1024px){.card-highlight{display:block}.card-item-wrap:hover .card-highlight{background-color:var(--bg-card);box-shadow:inset 0 1px #ff980026,0 10px 30px -10px #00000080;border:1px solid rgba(255,112,67,.28)}}.card-timeline{position:relative;z-index:10;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:4px;margin-bottom:8px}@media (min-width: 640px){.card-timeline{grid-column:span 2}}.card-main{position:relative;z-index:10}@media (min-width: 640px){.card-main{grid-column:span 6}}.card-title{font-size:1rem;font-weight:600;line-height:1.35;color:var(--text-head);margin:0}.card-link{color:inherit;text-decoration:none;display:inline-block}.card-click-target{position:absolute;top:-16px;right:-16px;bottom:-16px;left:-16px;z-index:20;display:none}@media (min-width: 1024px){.card-click-target{display:block}}.company-name{color:var(--text-head);white-space:nowrap}.inline-arrow{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-left:4px;line-height:1;transition:transform .2s cubic-bezier(.16,1,.3,1),color .2s ease}.inline-arrow svg{display:block}.card-link:hover{color:var(--accent-light)}.card-item-wrap:hover .inline-arrow{transform:translate(3px,-3px);color:var(--accent-light)}.card-desc{margin-top:10px;margin-bottom:0;font-size:.88rem;line-height:1.55;color:var(--text-body)}.tech-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}.tech-tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:9999px;background:var(--accent-tint);color:var(--accent-light);font-size:.75rem;font-weight:600;line-height:1.25;letter-spacing:.02em;border:1px solid var(--border-hover);transition:all .2s ease}.tech-tag:hover{border-color:var(--accent-light);box-shadow:0 0 8px #ff57224d}.section-footer-link{position:relative;z-index:30;margin-top:48px}.text-link-bold{position:relative;z-index:30;display:inline-flex;align-items:center;gap:8px;font-size:.95rem;font-weight:700;color:var(--text-head);cursor:pointer;transition:color .2s ease}.text-link-bold:hover{color:var(--accent-light)}.text-link-bold:hover .inline-arrow{transform:translate(3px,-3px);color:var(--accent-light)}.project-card-layout{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 640px){.project-card-layout{grid-template-columns:repeat(8,minmax(0,1fr));gap:24px}.project-thumbnail-col{grid-column:span 2;order:1}.project-card-layout .card-main{grid-column:span 6;order:2}}.project-thumbnail-wrapper{width:100%;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;border:1px solid rgba(148,163,184,.18);background:#0f172ad9;box-shadow:0 4px 14px #00000059;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.card-item-wrap:hover .project-thumbnail-wrapper{border-color:#ff704399;box-shadow:0 0 20px #ff572259;transform:translateY(-2px)}.project-thumbnail-img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .35s cubic-bezier(.16,1,.3,1),filter .35s ease;filter:brightness(.95)}.card-item-wrap:hover .project-thumbnail-img{transform:scale(1.05);filter:brightness(1.05)}.project-demo-pill{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:4px 10px;border-radius:6px;background:#ff57221a;border:1px solid rgba(255,112,67,.3);font-size:.74rem;color:#ffcc80}.demo-pill-label{color:var(--accent-light);font-weight:700}.project-demo-pill code{font-family:monospace;color:#fff}.project-extra-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;position:relative;z-index:25}.project-sublink{font-size:.78rem;font-weight:600;color:var(--accent-light);transition:color .2s ease,text-decoration .2s ease}.project-sublink:hover{text-decoration:underline}.skills-grid{display:flex;flex-direction:column;gap:20px}.skill-card-item{padding:20px 24px;border-radius:10px;background:#1e293b59;border:1px solid var(--border);transition:background .2s ease,border-color .2s ease}.skill-card-item:hover{background:#1e293b8c;border-color:var(--border-hover)}.skill-domain-title{margin:0;font-size:.95rem;font-weight:700;color:var(--text-head)}.skill-domain-desc{margin-top:8px;margin-bottom:0;font-size:.85rem;color:var(--text-body);line-height:1.5}.contact-box{padding:32px;border-radius:12px;background:#1e293b66;border:1px solid var(--border)}.contact-headline{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-head)}.contact-copy{margin-top:12px;margin-bottom:0;font-size:.92rem;line-height:1.6;color:var(--text-body)}.contact-cta-wrap{margin-top:24px;margin-bottom:28px}.contact-primary-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:8px;background:linear-gradient(135deg,#ff5722,#ff9800);color:#0f172a;font-size:.85rem;font-weight:800;letter-spacing:.02em;transition:all .2s ease;box-shadow:0 4px 16px #ff572259;text-decoration:none}.contact-primary-btn:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 6px 24px #ff57228c;color:#0f172a}.btn-icon{width:18px;height:18px}.contact-meta-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.contact-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-meta-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;background:#0f172a99;border:1px solid var(--border);color:var(--text-body);text-decoration:none;transition:all .2s ease}.contact-meta-card:not(.contact-meta-card--static):hover{border-color:var(--accent-light);background:#1e293b80;transform:translateY(-2px);color:var(--text-head)}.meta-icon svg{width:20px;height:20px;fill:var(--accent-light)}.meta-text{display:flex;flex-direction:column;overflow:hidden;line-height:1.3}.meta-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:.85rem;font-weight:600;color:var(--text-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-arrow{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--text-muted);transition:transform .2s ease,color .2s ease}.meta-arrow svg{display:block}.contact-meta-card:hover .meta-arrow{transform:translate(2px,-2px);color:var(--accent-light)}.colophon-footer{max-width:480px;margin-top:64px;font-size:.85rem;line-height:1.6;color:var(--text-muted)}.colophon-footer strong{color:var(--text-head)}.colophon-link{color:var(--text-head);font-weight:600;transition:color .2s ease}.colophon-link:hover{color:var(--accent-light)}.resume-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background-color:#0a0f1ed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:16px;animation:modalFadeIn .2s ease forwards}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.resume-modal-container{width:100%;max-width:1000px;height:90vh;max-height:900px;background:#0f172a;border:1px solid rgba(255,112,67,.35);border-radius:16px;box-shadow:0 20px 50px -10px #000000b3,0 0 30px #ff572233;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1) forwards}@keyframes modalSlideUp{0%{transform:translateY(20px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.resume-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;background:#1e293ba6;border-bottom:1px solid rgba(148,163,184,.12);flex-shrink:0}.resume-modal-title-wrap{display:flex;align-items:center;gap:12px}.resume-badge-icon{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:6px;background:#ff572226;border:1px solid rgba(255,112,67,.4);color:var(--accent-light);font-size:.72rem;font-weight:800;letter-spacing:.05em}.resume-modal-title{font-size:1rem;font-weight:700;color:var(--text-head);margin:0;line-height:1.2}.resume-modal-subtitle{font-size:.75rem;color:var(--text-muted);margin:2px 0 0}.resume-modal-actions{display:flex;align-items:center;gap:10px}.resume-modal-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-decoration:none;transition:all .2s ease}.resume-modal-btn--primary{background:linear-gradient(135deg,#ff5722,#ff9800);color:#0f172a;box-shadow:0 2px 10px #ff57224d}.resume-modal-btn--primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 16px #ff572273}.resume-modal-btn--secondary{background:#ffffff0d;border:1px solid rgba(148,163,184,.2);color:var(--text-head)}.resume-modal-btn--secondary:hover{border-color:var(--accent-light);color:var(--accent-light);transform:translateY(-1px)}.btn-svg{width:14px;height:14px}.resume-modal-close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ffffff0d;border:1px solid rgba(148,163,184,.15);color:var(--text-muted);font-size:1rem;cursor:pointer;transition:all .2s ease}.resume-modal-close-btn:hover{background:#ef444426;border-color:#ef444466;color:#fca5a5}.resume-modal-body{flex:1;width:100%;height:100%;background:#1e293b;position:relative}.resume-iframe{width:100%;height:100%;border:none;display:block}
