:root{color-scheme:dark;--scroll-y: 0;--scroll-progress: 0;--bg-shift: 0;--bg-hue: 222;--color-bg: #0b111f;--color-bg-soft: #121a2d;--color-surface: #151f34;--color-surface-alt: #1b263d;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .16);--color-text: #f4f7ff;--color-text-soft: #bac4da;--color-text-muted: #7f879d;--color-accent: #7aa2ff;--color-accent-soft: rgba(122, 162, 255, .14);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-pill: 999rem;--shadow-soft: 0 12px 32px rgba(5, 8, 14, .4);--max-width: 1100px}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;background:var(--color-bg);color:var(--color-text)}body{min-height:100vh;background:radial-gradient(1400px 900px at 50% -10%,rgba(122,162,255,.12),transparent),var(--color-bg);color:var(--color-text);line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--color-accent)}:focus-visible{outline:2px solid rgba(122,162,255,.85);outline-offset:3px}img{max-width:100%;display:block}ul{list-style:none}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-4)}@media (min-width: 768px){.container{padding:0 var(--space-6)}}main{display:grid;gap:var(--space-12);padding:var(--space-12) 0 var(--space-12)}.topNav{position:fixed;top:0;left:0;right:0;z-index:1000;background:#0b111feb;border-bottom:1px solid var(--color-border);backdrop-filter:blur(12px)}.topNav--scrolled{background:#0b111fc7;border-bottom-color:var(--color-border-strong);backdrop-filter:blur(16px)}.topNavLinks{display:flex;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4)}@media (min-width: 640px){.topNavLinks{gap:var(--space-3);padding:var(--space-4) 0}}.topNavLink{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);border-radius:var(--radius-pill)}.topNavLink:hover,.topNavLink--active{color:var(--color-text);background:var(--color-accent-soft)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-soft)}@media (min-width: 768px){.card{padding:var(--space-8)}}.card--compact{padding:var(--space-4)}@media (min-width: 768px){.card--compact{padding:var(--space-5)}}.sectionHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}.sectionTitle{font-size:var(--text-2xl);font-weight:600}.sectionSubtitle{font-size:var(--text-sm);color:var(--color-text-soft)}.hero{margin-top:88px;display:grid;gap:var(--space-10)}.routeFrame{animation:routeEnter .42s cubic-bezier(.2,.8,.2,1) both;will-change:transform,opacity}@keyframes routeEnter{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:translateZ(0)}}.heroContent{display:grid;gap:var(--space-6)}.aboutMePhotos{display:grid;justify-items:start}.aboutMePhotoStack{position:relative;width:min(260px,100%);aspect-ratio:1;border:0;padding:0;background:transparent;cursor:pointer;border-radius:var(--radius-xl)}.aboutMePhotoCard{position:absolute;inset:0;border-radius:var(--radius-xl);transform:translateZ(0);will-change:transform}.aboutMePhotoLabel{position:absolute;left:var(--space-3);bottom:var(--space-3);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:#0b111f8c;border:1px solid var(--color-border);backdrop-filter:blur(10px)}.aboutMePhotoCard--github{transform:translate3d(-6px,6px,0) rotate(-2.2deg) scale(.985);z-index:1}.aboutMePhotoCard--linkedin,.aboutMePhotoStack--swap .aboutMePhotoCard--github{transform:translate3d(6px,-6px,0) rotate(2.2deg);z-index:2}.aboutMePhotoStack--swap .aboutMePhotoCard--linkedin{transform:translate3d(-6px,6px,0) rotate(-2.2deg) scale(.985);z-index:1}.aboutMePhotoStack .aboutMePhotoCard{transition:transform .72s cubic-bezier(.2,.8,.2,1)}@media (hover: hover) and (pointer: fine){.aboutMePhotoStack:hover .aboutMePhotoCard--linkedin{transform:translate3d(8px,-10px,0) rotate(2.6deg)}}.heroKicker{font-size:var(--text-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent)}.heroTitle{font-size:clamp(var(--text-2xl),5vw,var(--text-3xl));font-weight:700;letter-spacing:-.02em}.heroAbout{max-width:700px;font-size:var(--text-lg);color:var(--color-text-soft)}.heroActions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.heroStatus{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-alt);padding:var(--space-4);color:var(--color-text-soft)}.heroContacts{display:flex;flex-wrap:wrap;gap:var(--space-3)}.heroSocials{border-top:1px solid var(--color-border);padding-top:var(--space-6);display:grid;gap:var(--space-5)}.heroSocialsTitle{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-muted)}.heroSocialsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.aboutMe{display:grid;gap:var(--space-6)}@media (min-width: 900px){.aboutMe{grid-template-columns:1.6fr 1fr;gap:var(--space-8)}}.techMarqueeBlock{display:grid;gap:var(--space-2)}.techMarquee{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#151f34b8}.techMarqueeTrack{display:inline-flex;gap:var(--space-2);padding:var(--space-3);width:max-content;animation:techMarquee 22s linear infinite;will-change:transform}.techMarquee--fast .techMarqueeTrack,.techMarquee--slow .techMarqueeTrack{animation-duration:22s}@keyframes techMarquee{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.techMarquee:hover .techMarqueeTrack,.techMarquee:focus-within .techMarqueeTrack{animation-play-state:paused}.techMarqueeSrOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.techCategoryLabel{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-muted)}.techPill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text-soft);transition:transform .16s ease,border-color .2s ease,background .2s ease,color .2s ease}.techPill:hover{transform:translate3d(0,-1px,0);border-color:var(--color-border-strong);color:var(--color-text)}.techPill:active{transform:scale(.98)}.techPillIcon{font-size:1.35rem;color:var(--color-accent)}.techPillLabel{font-size:var(--text-sm);font-weight:600}.techPill--compact{padding:var(--space-2) var(--space-3)}.techPillIcon--compact{font-size:1.15rem}.techPillLabel--compact{font-size:.8rem;font-weight:600}.aboutMeIntro{display:grid;gap:var(--space-4)}.aboutMeKicker{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-muted)}.aboutMeTitle{font-size:var(--text-2xl);font-weight:600}.aboutMeBody{display:grid;gap:var(--space-3);color:var(--color-text-soft)}.aboutMeSide{display:grid;gap:var(--space-4)}.aboutMeAvatar{width:100%;height:100%;border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-surface-alt);object-fit:cover}.aboutMeAvatar--empty{display:grid;place-items:center;color:var(--color-text-muted)}.aboutMeStackLabel{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-muted)}.aboutMeName{font-size:var(--text-lg);font-weight:700}.projectsGrid{display:grid;gap:var(--space-4)}@media (min-width: 700px){.projectsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}}@media (min-width: 1100px){.projectsGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}.featuredProjectsGrid{display:flex;gap:var(--space-4);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;padding-bottom:var(--space-2)}.featuredProjectsGrid::-webkit-scrollbar{height:8px}.featuredProjectsGrid::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-pill)}.featuredProjectsGrid::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill);transition:background .2s ease}.featuredProjectsGrid::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}.featuredProjectItem{display:flex;flex-direction:column;flex-shrink:0;scroll-snap-align:start;width:100%}@media (min-width: 640px){.featuredProjectItem{width:calc(50% - var(--space-2))}}@media (min-width: 1024px){.featuredProjectItem{width:calc(33.333% - var(--space-3))}}.featuredProjectViewMore .viewMoreCard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:linear-gradient(135deg,var(--color-surface),var(--color-surface-alt));border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-8);min-height:470px;transition:all .2s ease;cursor:pointer;text-align:center}.featuredProjectViewMore .viewMoreCard:hover{border-color:var(--color-accent);background:linear-gradient(135deg,var(--color-surface-alt),var(--color-surface));transform:translateY(-2px)}.featuredProjectViewMore .viewMoreIcon{font-size:3rem;color:var(--color-accent);transition:transform .2s ease}.featuredProjectViewMore .viewMoreCard:hover .viewMoreIcon{transform:scale(1.1)}.featuredProjectViewMore .viewMoreText{font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.projectCard{display:flex;flex-direction:column;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);height:470px;box-shadow:var(--shadow-soft)}a.projectCard,button.projectCard{cursor:pointer}.projectsEmpty{grid-column:1 / -1;padding:var(--space-12)}.projectCardTop{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-soft);border:1px solid var(--color-border)}.projectCardCover{width:100%;aspect-ratio:16 / 9;object-fit:cover}.projectCardCover--empty{display:grid;place-items:center;color:var(--color-text-muted);font-size:var(--text-2xl)}.projectCardTopOverlay{position:absolute;top:var(--space-3);left:var(--space-3);right:var(--space-3);display:flex;justify-content:space-between;gap:var(--space-2);pointer-events:none}.statusPill,.metaPill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:#0b111feb;backdrop-filter:blur(8px);border:1px solid var(--color-border);font-size:var(--text-xs);font-weight:600}.statusPill--progress{background:#7aa2ff47;backdrop-filter:blur(8px);border-color:var(--color-accent);color:var(--color-accent)}.statusPill--done{background:#6edab940;backdrop-filter:blur(8px);border-color:#6edab999;color:#93f5d8}.projectCardBody{display:flex;flex-direction:column;gap:var(--space-3);flex:1;min-height:0}.projectCardBadges{max-height:calc(var(--space-2) * 8);overflow:hidden}.projectCardTitle{font-size:var(--text-lg);font-weight:600}.projectCardDescription{font-size:var(--text-sm);color:var(--color-text-soft)}.projectCardFooter{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:auto}.projectCardActions{display:inline-flex;gap:var(--space-2)}.lineClamp2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.btn,.iconBtn,.socialBtn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text);font-weight:500;font-family:inherit}.btn,.socialBtn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.btn.primary{background:var(--color-accent);border-color:transparent;color:#0a1020}.btn:disabled{opacity:.5;cursor:not-allowed}.iconBtn{width:40px;height:40px;display:grid;place-items:center}.socialBtn{justify-content:flex-start}.badges{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--text-xs);background:var(--color-surface-alt);color:var(--color-text-soft)}.badge--selected{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-text)}.badge--more{background:linear-gradient(180deg,#7aa2ff1f,#7aa2ff0f);border-color:#7aa2ff47;color:var(--color-accent);font-weight:600}.badge--more:hover{background:linear-gradient(180deg,#7aa2ff2e,#7aa2ff14);border-color:var(--color-accent);color:#fff}.input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text);font-size:var(--text-sm)}.input--compact{width:auto;min-width:140px;padding-top:var(--space-2);padding-bottom:var(--space-2)}.input::placeholder{color:var(--color-text-muted)}.fieldLabel{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600}.modalOverlay{animation:modalOverlayEnter .22s ease both}.modal{animation:modalEnter .24s cubic-bezier(.2,.8,.2,1) both;will-change:transform,opacity}@keyframes modalOverlayEnter{0%{opacity:0}to{opacity:1}}@keyframes modalEnter{0%{opacity:0;transform:translate3d(0,10px,0) scale(.985)}to{opacity:1;transform:translateZ(0) scale(1)}}.modalOverlay{position:fixed;inset:0;background:radial-gradient(circle at 50% 40%,#060a12c7,#04080fd1 58%,#020408e6),#000000b8;backdrop-filter:blur(10px) saturate(92%);display:grid;place-items:center;padding:var(--space-4);z-index:1200;overscroll-behavior:contain}.modal{width:min(960px,100%);max-height:90vh;overflow-y:auto;overscroll-behavior:contain;background:var(--color-bg-soft);border:1px solid var(--color-border);box-shadow:0 22px 90px #0000008c,0 8px 34px #00000047;border-radius:var(--radius-xl);padding:var(--space-6);display:grid;gap:var(--space-6)}.modal--lg{width:min(1140px,100%)}.modalHeader{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);animation:modalHeaderEnter .26s cubic-bezier(.2,.8,.2,1) both}@keyframes modalHeaderEnter{0%{opacity:0;transform:translate3d(0,-6px,0)}to{opacity:1;transform:translateZ(0)}}.modalHeaderColumn{display:flex;flex-direction:column;gap:6px;min-width:0}.modalSubtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modalBody{display:grid;gap:var(--space-6)}.projectDetailsRoot,.projectDetailsMain,.projectDetailsSide{display:grid;gap:var(--space-4)}.projectDetailsMain>.card,.projectDetailsSide>.card{animation:modalSectionEnter .42s cubic-bezier(.2,.8,.2,1) both;will-change:transform,opacity}.projectDetailsMain>.card{animation-delay:60ms}.projectDetailsSide>.card{animation-delay:.12s}@keyframes modalSectionEnter{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}.projectDetailsLayout{display:grid;row-gap:var(--space-6);column-gap:var(--space-6);align-items:start}@media (min-width: 960px){.projectDetailsLayout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);column-gap:var(--space-6)}}@media (min-width: 1200px){.projectDetailsLayout{grid-template-columns:minmax(0,1fr) minmax(320px,400px);column-gap:var(--space-8)}}.projectDetailsMain,.projectDetailsSide{min-width:0}.projectDetailsText{color:var(--color-text-soft);line-height:1.65;overflow-wrap:anywhere;word-break:break-word}@media (min-width: 960px){.projectDetailsText{max-width:76ch}}.projectRepoSubtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);line-height:1.45}.projectDetailsActions{display:grid;gap:var(--space-3)}.projectMetaCard{margin-top:var(--space-2)}.tabsRow{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tabBtn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);font-size:var(--text-sm)}.tabBtn--active{background:var(--color-accent);border-color:transparent;color:#0a1020}.techBadges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.techBadge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-alt);font-size:var(--text-xs);transition:transform .16s ease,border-color .2s ease,background .2s ease}.techBadge:hover{transform:translate3d(0,-1px,0);border-color:var(--color-border-strong)}.techBadgeIcon{font-size:1rem;color:var(--color-accent);transition:transform .22s ease}.techBadge:hover .techBadgeIcon{transform:rotate(-6deg) scale(1.05)}.miniStatRow{display:flex;flex-wrap:wrap;gap:var(--space-3)}.miniStat{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:transform .16s ease,background .2s ease}.miniStat:hover{transform:translate3d(0,-1px,0);background:#ffffff08}.mediaImg,.mediaVideo{width:100%;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-alt);transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .2s ease}.mediaThumbRow{display:flex;gap:var(--space-2);overflow-x:auto;overflow-y:hidden;padding-bottom:var(--space-2);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.mediaThumbRow::-webkit-scrollbar{height:6px}.mediaThumbRow::-webkit-scrollbar-track{background:transparent}.mediaThumbRow::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}.mediaThumbRow::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.mediaThumbBtn{flex:0 0 auto;width:110px;aspect-ratio:16 / 10;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-alt);overflow:hidden;position:relative;cursor:pointer;transition:transform .18s ease,border-color .2s ease}.mediaThumbBtn:focus-visible{outline:2px solid rgba(122,162,255,.85);outline-offset:3px}@media (hover: hover) and (pointer: fine){.mediaThumbBtn:hover{transform:translate3d(0,-1px,0);border-color:var(--color-border-strong)}}.mediaThumbImg{width:100%;height:100%;object-fit:cover;display:block}.mediaThumbMore{position:absolute;inset:0;display:grid;place-items:center;background:#00000094;backdrop-filter:blur(2px);color:var(--color-text);font-weight:700;font-size:var(--text-md);text-shadow:0 2px 8px rgba(0,0,0,.6);pointer-events:none}.lightboxOverlay{position:fixed;inset:0;background:#000000d1;backdrop-filter:blur(12px) saturate(96%);display:grid;place-items:center;padding:var(--space-4);z-index:1300;overscroll-behavior:contain}.lightbox{width:min(1140px,100%);max-height:92vh;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 22px 90px #0009,0 10px 40px #0000004d;padding:var(--space-4);display:grid;grid-template-rows:auto 1fr auto;gap:var(--space-3)}.lightboxTopBar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.lightboxActions{display:inline-flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.lightboxMain{position:relative;min-height:0}.lightboxImageWrap{width:100%;height:min(58vh,580px);display:grid;place-items:center;overflow:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-alt)}.lightboxImg{max-width:100%;max-height:100%;transform-origin:center;transition:transform .12s ease;cursor:zoom-in}.lightboxNav{position:absolute;top:50%;transform:translate3d(0,-50%,0);border:1px solid var(--color-border);background:#00000059;backdrop-filter:blur(8px);color:var(--color-text);border-radius:var(--radius-pill);width:44px;height:44px;display:grid;place-items:center;cursor:pointer}.lightboxNav--left{left:var(--space-2)}.lightboxNav--right{right:var(--space-2)}.lightboxThumbRow{display:flex;gap:var(--space-2);overflow-x:auto;overflow-y:hidden;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;max-height:72px}.lightboxThumbRow::-webkit-scrollbar{height:5px}.lightboxThumbRow::-webkit-scrollbar-track{background:transparent}.lightboxThumbRow::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}.lightboxThumbRow::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.lightboxThumbBtn{flex:0 0 auto;width:68px;aspect-ratio:16 / 10;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-alt);overflow:hidden;opacity:.65;cursor:pointer;transition:opacity .18s ease,border-color .18s ease,transform .16s ease}@media (hover: hover) and (pointer: fine){.lightboxThumbBtn:hover{opacity:.85;transform:translate3d(0,-1px,0)}}.lightboxThumbBtn--active{opacity:1;border-color:#7aa2ffe6;border-width:2px}.lightboxThumbImg{width:100%;height:100%;object-fit:cover;display:block}@media (hover: hover) and (pointer: fine){.mediaImg:hover,.mediaVideo:hover{transform:scale(1.01);border-color:var(--color-border-strong)}}.authorCard{display:grid;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.authorCard--flush{padding:0;border:none;background:transparent}@media (min-width: 720px){.authorCard{grid-template-columns:auto 1fr;align-items:start}}.authorPhoto{width:56px;height:56px;border-radius:50%;border:1px solid var(--color-border);object-fit:cover;background:var(--color-bg)}.authorPhoto--empty{display:grid;place-items:center;color:var(--color-text-muted)}.authorActions{display:flex;gap:var(--space-2);flex-wrap:wrap}.authorActions .btn.primary{flex:1 1 100%;justify-content:center}@media (min-width: 720px){.authorActions{grid-column:1 / -1;margin-top:var(--space-2)}}.authorHeaderRow{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.authorHeaderRow .fwBlack{white-space:nowrap}@media (max-width: 420px){.authorHeaderRow .fwBlack{white-space:normal}}.projectGithubInfoRow{display:flex;gap:var(--space-3);align-items:flex-start;justify-content:space-between}.projectGithubInfoStats{flex:1 1 auto;min-width:0}.projectGithubInfoActions{display:flex;flex-direction:row;gap:var(--space-2);flex:0 0 auto;margin-top:var(--space-3)}@media (max-width: 520px){.projectGithubInfoRow{flex-direction:column}.projectGithubInfoActions{width:100%;flex-direction:row;flex-wrap:wrap}.projectGithubInfoActions .btn{flex:1 1 180px;justify-content:center}}.projectGithubInfoActions .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1 1 0;min-width:0}@media (max-width: 420px){.projectGithubInfoActions .btn{flex-basis:48%}}.githubStatsRow{display:flex;flex-direction:column;gap:var(--space-2)}.githubStatsRow .miniStatRow{display:flex;gap:var(--space-3);align-items:center}.githubStatsRow .metaRow{display:flex;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-xs);align-items:center}@media (min-width: 720px) and (max-width: 959px){.projectDetailsSide{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.projectDetailsSide .projectDetailsSideSection{margin-top:0}}.ctaCard{display:grid;gap:var(--space-4);text-align:center;padding:var(--space-10) var(--space-6);background:linear-gradient(135deg,#7aa2ff29,#0b111fe0);border:1px solid rgba(122,162,255,.38)}@media (min-width: 768px){.ctaCard{padding:var(--space-12) var(--space-16)}}.ctaContent{max-width:560px;margin:0 auto;display:grid;gap:var(--space-4)}.ctaTitle{font-size:clamp(var(--text-2xl),4vw,var(--text-3xl));font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3)}.ctaTitleIcon{color:var(--color-accent)}.ctaActions{display:flex;justify-content:center;gap:var(--space-3);flex-wrap:wrap}.muted{color:var(--color-text-muted)}.grid,.gridCols{display:grid;gap:var(--space-4)}.gridCols>.col-12,.gridCols>.col-6{grid-column:1 / -1;display:flex;flex-direction:column}@media (min-width: 720px){.gridCols{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:1fr}.gridCols>.col-12{grid-column:span 12}.gridCols>.col-6{grid-column:span 6}}.pageStack{display:grid;gap:var(--space-12)}.stackSm{display:grid;gap:var(--space-3)}.mt-space-1{margin-top:var(--space-1)}.mt-space-2{margin-top:var(--space-2)}.mt-space-3{margin-top:var(--space-3)}.mt-space-4{margin-top:var(--space-4)}.mt-space-6{margin-top:var(--space-6)}.mt-space-8{margin-top:var(--space-8)}.mb-space-1{margin-bottom:var(--space-1)}.mb-space-2{margin-bottom:var(--space-2)}.mb-space-3{margin-bottom:var(--space-3)}.mb-space-4{margin-bottom:var(--space-4)}.gap-space-2{gap:var(--space-2)}.gap-space-3{gap:var(--space-3)}.gap-space-6{gap:var(--space-6)}.textCenter{text-align:center}.textXs{font-size:var(--text-xs)}.textSm{font-size:var(--text-sm)}.textLg{font-size:var(--text-lg)}.fwBold{font-weight:700}.fwExtraBold{font-weight:800}.fwBlack{font-weight:900}.minWidth0{min-width:0}.flexRow{display:flex;gap:var(--space-2)}.flexRowCenter{display:flex;align-items:center;gap:var(--space-2)}.flexWrap{flex-wrap:wrap}.filtersContainer{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-surface-alt) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);will-change:transform,opacity}.filtersTopBar{display:flex;align-items:center;gap:var(--space-2)}.filtersTopBar .filterSearchBox{flex:1}.filterSearchBox{position:relative;display:flex;align-items:center}.filterSearchBox:focus-within .filterSearchIcon{transform:translate3d(0,-1px,0);filter:brightness(1.1)}.filterSearchIcon{position:absolute;left:var(--space-3);color:var(--color-accent);pointer-events:none;font-size:1.1em;transition:transform .18s ease,filter .22s ease}.filterSearchInput{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text);font-size:var(--text-sm);transition:border-color .2s ease,box-shadow .22s ease,transform .2s ease,background .2s ease}.filterSearchInput:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);transform:translate3d(0,-1px,0)}.filterSearchInput::placeholder{color:var(--color-text-muted)}.filtersGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4)}.filtersTwoCol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.filterSection{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:#ffffff05;border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform .22s ease,background .22s ease,border-color .22s ease;transform:translateZ(0)}.filterSection:hover{background:#ffffff0a;border-color:var(--color-accent-soft);transform:translate3d(0,-2px,0)}.filterSection:focus-within{border-color:var(--color-accent-soft);box-shadow:0 0 0 3px var(--color-accent-soft)}.filterSectionHeader{display:flex;align-items:center;gap:var(--space-2);color:var(--color-accent)}.filterSectionHeader svg{font-size:1.1em;transition:transform .22s ease}.filterSection:hover .filterSectionHeader svg{transform:translate3d(0,-1px,0) rotate(-4deg)}.filterSectionTitle{margin:0;font-size:var(--text-xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-soft)}.filterSectionContent{display:flex;flex-direction:column;gap:var(--space-2)}.filterBadges,.filterBadgesWrap{display:flex;flex-wrap:wrap;gap:var(--space-1)}.filterBadge{padding:var(--space-1) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-soft);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:transform .16s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;white-space:nowrap;transform:translateZ(0)}.filterBadge:hover{background:var(--color-surface);border-color:var(--color-accent-soft);color:var(--color-accent);transform:translate3d(0,-1px,0)}.filterBadge:active{transform:scale(.98)}.filterBadge:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft);border-color:var(--color-accent)}.filterBadge--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg);font-weight:600;box-shadow:0 10px 24px #0000002e;animation:filterBadgePop .22s cubic-bezier(.2,.8,.2,1) both}.filterBadge--active:hover{background:#7aa2ffe6;border-color:#7aa2ffe6;color:#fff;transform:translate3d(0,-1px,0);box-shadow:0 12px 28px #7aa2ff40}@keyframes filterBadgePop{0%{transform:scale(.98)}to{transform:scale(1)}}.filterSelect{padding:var(--space-2) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;transition:all .2s ease}.filterSelect:hover{border-color:var(--color-accent-soft);background:var(--color-surface)}.filterSelect:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.filterClearBtn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#ff64641a;border:1px solid rgba(255,100,100,.3);border-radius:var(--radius-md);color:#ff6464;font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:var(--space-2)}.filterClearBtn:hover{background:#ff646433;border-color:#ff646480}.filterClearAllBtn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-bg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.filterClearAllBtn:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 12px #7aa2ff4d}.iconCircleBtn{width:32px;height:32px;min-width:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;transition:transform .16s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.iconCircleBtn--mobile{display:none}.iconCircleBtn svg{transition:transform .22s ease}.iconCircleBtn:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);transform:translate3d(0,-1px,0)}.iconCircleBtn:hover svg{transform:rotate(-12deg)}.iconCircleBtn:active{transform:scale(.98)}@media (max-width: 768px){.filtersContainer{padding:var(--space-3);gap:var(--space-3)}.filtersGrid,.filtersTwoCol{grid-template-columns:1fr;gap:var(--space-3)}.filtersTopBar{gap:var(--space-2)}.filtersTopBar .filterSearchBox{width:100%}.iconCircleBtn--desktop{display:none}.iconCircleBtn--mobile{display:flex;width:100%;height:auto;min-height:44px;border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);font-size:var(--text-sm);font-weight:600}.filterSearchInput{padding:var(--space-3) var(--space-3) var(--space-3) 2.75rem;font-size:var(--text-sm)}.filterSearchIcon{left:var(--space-3)}.filterSection{padding:var(--space-2);gap:var(--space-2)}.filterBadges,.filterBadgesWrap{gap:var(--space-1)}.filterBadge{padding:var(--space-2) var(--space-2);font-size:var(--text-xs)}}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-6);padding:var(--space-4)}.pagination .btn{min-width:40px;padding:var(--space-2)}.pagination .btn:disabled{opacity:.4;cursor:not-allowed}.paginationInfo{padding:0 var(--space-3);color:var(--color-text-soft);font-size:var(--text-sm);white-space:nowrap}.paginationInfo strong{color:var(--color-accent);font-weight:600}.paginationLabel{display:inline}@media (max-width: 520px){.pagination{gap:var(--space-1);padding:var(--space-3)}.pagination .btn{min-width:36px;padding:var(--space-2)}.paginationLabel{display:none}.paginationInfo{padding:0 var(--space-2);font-size:var(--text-xs)}}.footer{padding:var(--space-8) 0;text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.footerContent{display:inline-flex;gap:var(--space-2);align-items:center}.globalBg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.globalBg:before{content:"";position:absolute;inset:-30vmax;background:radial-gradient(900px 700px at 20% 20%,rgba(122,162,255,calc(.1 + var(--bg-shift) * .1)),transparent 62%),radial-gradient(800px 650px at 80% 40%,rgba(110,218,185,calc(.06 + var(--bg-shift) * .08)),transparent 60%),radial-gradient(1200px 900px at 50% 90%,rgba(122,162,255,.06),transparent 65%);filter:saturate(1.05) hue-rotate(calc(var(--scroll-progress) * 54deg));transform:translateZ(0);animation:bgFloat 12s ease-in-out infinite}@keyframes bgFloat{0%{transform:translate3d(-1.2%,-.8%,0) scale(1.02)}50%{transform:translate3d(1.2%,.8%,0) scale(1.02)}to{transform:translate3d(-1.2%,-.8%,0) scale(1.02)}}.globalBgLayer{position:absolute;inset:-10vmax;opacity:.9;transform:translateZ(0);will-change:transform}.globalBgLayer--a{background:radial-gradient(1200px 700px at 10% 10%,rgba(122,162,255,.14),transparent 60%);transform:translate3d(0,calc(var(--scroll-progress) * -28px),0)}.globalBgLayer--b{background:radial-gradient(900px 650px at 80% 30%,rgba(110,218,185,.1),transparent 62%);transform:translate3d(0,calc(var(--scroll-progress) * -18px),0);opacity:.7}.globalBgLayer--c{background:radial-gradient(900px 900px at 50% 95%,rgba(0,0,0,.35),transparent 65%);transform:translate3d(0,calc(var(--scroll-progress) * -10px),0);opacity:.6}.reveal{opacity:0;transform:translate3d(0,18px,0);transition:transform .64s cubic-bezier(.2,.8,.2,1),opacity .64s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}.reveal.is-visible{opacity:1;transform:translateZ(0)}.interactiveSurface{position:relative;transform-style:preserve-3d;will-change:transform;transition:transform var(--tilt-reset-ms, .22s) cubic-bezier(.2,.8,.2,1),box-shadow var(--tilt-reset-ms, .22s) cubic-bezier(.2,.8,.2,1)}.interactiveSurface:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(700px circle at calc(var(--spot-x, .5) * 100%) calc(var(--spot-y, .35) * 100%),rgba(122,162,255,.22),transparent 60%);transition:opacity .24s ease;mix-blend-mode:screen}.interactiveSurface[data-tilt=true][data-tilt-active=true]:before{opacity:1}@media (hover: hover) and (pointer: fine){.interactiveSurface[data-tilt=true]{transform:perspective(900px) rotateX(calc(var(--tilt-y, 0) * var(--tilt-max, 8) * 1deg)) rotateY(calc(var(--tilt-x, 0) * var(--tilt-max, 8) * 1deg));box-shadow:0 16px 44px #05080e8c,calc(var(--tilt-x, 0) * -12px) calc(var(--tilt-y, 0) * -14px) 40px #7aa2ff1f}.interactiveSurface:hover{transform:translate3d(0,-1px,0) perspective(900px) rotateX(calc(var(--tilt-y, 0) * var(--tilt-max, 8) * 1deg)) rotateY(calc(var(--tilt-x, 0) * var(--tilt-max, 8) * 1deg))}}@media (hover: none),(pointer: coarse){.interactiveSurface{transform:none!important}a.interactiveSurface:active,button.interactiveSurface:active{transform:scale(.99)!important}}@media (prefers-reduced-motion: reduce){.globalBg:before{animation:none}.reveal{opacity:1;transform:none;transition:none}.interactiveSurface{transition:none;transform:none!important}.interactiveSurface:before{opacity:0!important;transition:none}.modalHeader,.modalOverlay,.modal,.projectDetailsMain>.card,.projectDetailsSide>.card{animation:none}.modalOverlay,.modal{backdrop-filter:none}.filterSection,.filterBadge,.iconCircleBtn,.techBadge,.mediaImg,.mediaVideo{transition:none}.filterBadge--active{animation:none}}.topNav{animation:navEnter .52s cubic-bezier(.2,.8,.2,1) both}@keyframes navEnter{0%{transform:translate3d(0,-8px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.topNavLink{transition:background .22s ease,color .22s ease,transform .22s ease}.topNavLink:hover{transform:translate3d(0,-1px,0)}.btn,.iconBtn,.socialBtn{transition:transform .16s ease,background .2s ease,border-color .2s ease,color .2s ease}.btn:hover,.socialBtn:hover{transform:translate3d(0,-1px,0);border-color:var(--color-border-strong)}.btn:active,.socialBtn:active{transform:translateZ(0) scale(.98)}.iconBtn:hover{transform:translate3d(0,-1px,0) scale(1.02);border-color:var(--color-border-strong)}.iconBtn:active{transform:scale(.96)}
