:root{color-scheme:dark;--bg:#090a0d;--surface:#15181e;--surface-2:#1d2129;--surface-3:#252a34;--text:#f6f7f9;--muted:#aeb5c0;--line:#ffffff21;--blue:#1670ed;--blue-hover:#2d82f2;--purple:#9d4bb4;--cyan:#37b9ce;--green:#38a67a;--orange:#e88a32;--gold:#d2a346;--red:#cf5361;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Noto Sans SC,Microsoft YaHei,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.content-width{width:min(var(--max), calc(100% - 40px));margin:0 auto}.site-header{z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(14px);background:#090a0de6;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;min-height:68px;padding:0 28px;display:grid;position:sticky;top:0}.brand{align-items:center;gap:11px;font-weight:850;display:inline-flex}.brand-mark{object-fit:contain;flex:none;width:38px;height:38px;display:block}.site-nav{justify-content:center;gap:24px;display:flex}.site-nav a,.resume-link{color:var(--muted);font-size:.84rem;font-weight:750;transition:color .16s}.site-nav a:hover,.resume-link:hover{color:var(--text)}.resume-link{border:1px solid var(--line);padding:8px 12px}.header-actions,.language-switch{align-items:center;display:flex}.header-actions{justify-self:end;gap:10px}.language-switch{border:1px solid var(--line);background:#0d0f13;border-radius:6px;gap:2px;padding:2px}.language-option{width:36px;height:30px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;font-size:.74rem;font-weight:800;transition:background .16s,color .16s}.language-option:hover,.language-option.is-active{background:var(--surface-3);color:var(--text)}.hero{flex-direction:column;justify-content:center;min-height:72svh;padding:80px 0 70px;display:flex}.availability{color:#78dbaa;letter-spacing:0;text-transform:uppercase;align-self:flex-start;align-items:center;gap:9px;margin:0 0 20px;font-size:.76rem;font-weight:800;display:inline-flex}.availability-dot{background:#78dbaa;flex:none;width:8px;height:8px;display:inline-block;box-shadow:0 0 14px #78dbaa80}h1,h2,h3,p,dd{overflow-wrap:break-word}h1{letter-spacing:0;margin:0;font-size:7.2rem;line-height:.95}.hero-role{color:#77b7ff;margin:20px 0 0;font-size:1.45rem;font-weight:800}.hero-summary{max-width:800px;color:var(--muted);margin:18px 0 0;font-size:1.2rem}.hero-actions,.contact-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.button{border:1px solid var(--line);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.86rem;font-weight:850;transition:transform .16s,border-color .16s,background .16s;display:inline-flex}.button:hover{background:#ffffff0d;border-color:#ffffff57;transform:translateY(-2px)}.button-primary{border-color:var(--blue);background:var(--blue)}.button-primary:hover{border-color:var(--blue-hover);background:var(--blue-hover)}.section-space{padding:92px 0}.about-section,.experience-section,.contact-section{background:#0e1014}.about-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:start;gap:68px;display:grid}.section-heading{max-width:820px;margin-bottom:38px}.eyebrow{color:#77b7ff;letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.75rem;font-weight:900}.section-heading h2,.contact-section h2,.dialog-content h2{letter-spacing:0;text-wrap:balance;margin:0;font-size:4.2rem;line-height:1.02}.section-heading>p:last-child{color:var(--muted);margin:14px 0 0}.about-copy>p{color:var(--muted);margin:0;font-size:1.04rem}.about-copy>p+p{margin-top:18px}.about-facts{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px;display:grid}.about-facts div{border-top:3px solid var(--blue);background:var(--surface);padding:16px}.about-facts strong,.about-facts span{display:block}.about-facts strong{font-size:1.2rem}.about-facts span{color:var(--muted);margin-top:5px;font-size:.82rem}.featured-grid,.showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.showcase-heading{margin:78px 0 28px}.showcase-heading h2{letter-spacing:0;margin:0;font-size:3.25rem}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.project-card:hover{border-color:#77b7ffb3;transform:translateY(-5px);box-shadow:0 24px 60px #00000052}.project-media{place-items:center;min-height:260px;display:grid;position:relative;overflow:hidden}.featured-card .project-media{min-height:330px}.project-media:after{content:"";background:linear-gradient(#0000,#090a0deb);position:absolute;inset:42% 0 0}.project-media h3{z-index:2;letter-spacing:0;margin:0;font-size:3rem;line-height:1;position:absolute;bottom:20px;left:24px;right:24px}.media-placeholder{z-index:1;text-align:center;background:#090a0d75;border:1px solid #ffffff47;flex-direction:column;align-items:center;padding:15px 18px;display:flex;position:relative}.media-placeholder span{letter-spacing:0;font-size:1.2rem;font-weight:900}.media-placeholder small{color:#ffffffb8;margin-top:5px}.media-rift{background:linear-gradient(135deg,#873e3b,#281822 75%)}.media-dx12{background:linear-gradient(135deg,#176bd3,#16243e 75%)}.media-rasterizer{background:linear-gradient(135deg,#2ca8ba,#17363b 75%)}.media-vehicle{background:linear-gradient(135deg,#c97930,#422b2d 75%)}.project-content{flex-direction:column;flex:1;padding:22px;display:flex}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag{color:#fff;white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:4px 10px;font-size:.72rem;font-weight:850;display:inline-flex}.tag-cpp,.tag-dx{background:#205fa4}.tag-ue,.tag-solo,.tag-team{background:#050608;box-shadow:inset 0 0 0 1px #ffffff2e}.tag-gas,.tag-net,.tag-thread{background:#267f70}.tag-hlsl,.tag-niagara{background:#b55d2e}.tag-simd,.tag-blueprint,.tag-swift{background:#7e458f}.tag-python{background:#9c7834}.project-content>p{color:var(--muted);flex:1;margin:18px 0 0}.project-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.github-button span{background:#050608;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.62rem;display:inline-grid}.experience-list{gap:12px;display:grid}.experience-item{border:1px solid var(--line);background:var(--surface);border-radius:7px;grid-template-columns:130px minmax(0,1fr) auto;align-items:start;gap:24px;padding:22px;display:grid}.experience-item time{color:#77b7ff;font-weight:800}.experience-item h3{margin:0;font-size:1.22rem}.experience-item p{color:var(--muted);margin:7px 0 0}.experience-item>span{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:.7rem}.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.skill-group{border:1px solid var(--line);background:var(--surface);border-radius:7px;min-height:148px;padding:20px}.skill-group h3{margin:0 0 16px}.contact-section{text-align:center;align-items:center;min-height:70svh;display:flex}.contact-section .content-width{flex-direction:column;align-items:center;display:flex}.contact-section h2{max-width:880px}.contact-section>div>p:not(.eyebrow):not(.footer-note){color:var(--muted);margin:18px 0 0}.footer-note{color:#69717c;letter-spacing:0;text-transform:uppercase;margin:80px 0 0;font-size:.72rem}.project-dialog{background:var(--surface);width:min(920px,100% - 28px);max-height:88vh;color:var(--text);border:1px solid #ffffff38;border-radius:8px;padding:0;overflow:auto;box-shadow:0 40px 120px #000000a8}.project-dialog::backdrop{backdrop-filter:blur(5px);background:#000000c7}.dialog-close{z-index:4;float:right;width:38px;height:38px;color:var(--text);cursor:pointer;background:#090a0dd6;border:1px solid #ffffff47;border-radius:50%;margin:14px 14px -52px 0;font-weight:900;position:sticky;top:14px}.dialog-media{color:#fffc;text-transform:uppercase;place-items:center;min-height:310px;font-weight:850;display:grid}.dialog-content{padding:30px}.project-meta{background:var(--line);grid-template-columns:repeat(2,1fr);gap:1px;margin:26px 0;display:grid}.project-meta div{background:var(--surface-2);padding:14px}.project-meta dt{color:#77b7ff;letter-spacing:0;text-transform:uppercase;font-size:.68rem;font-weight:900}.project-meta dd{margin:5px 0 0}.dialog-content h3{margin:28px 0 0}.dialog-content ul{color:var(--muted);padding-left:20px}.dialog-content li+li{margin-top:8px}.dialog-content>.button{margin-top:12px}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transition:opacity .48s,transform .48s;transform:translateY(16px)}.js .reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}.reveal{opacity:1;transform:none}}@media (width<=960px){h1{font-size:5.4rem}.section-heading h2,.contact-section h2,.dialog-content h2{font-size:3.6rem}.about-layout,.featured-grid,.showcase-grid{grid-template-columns:1fr}.about-facts{grid-template-columns:repeat(3,1fr)}.experience-item{grid-template-columns:110px 1fr}.experience-item>span{grid-column:2;justify-self:start}}@media (width<=720px){.site-header{grid-template-columns:1fr auto;gap:12px;padding:13px 18px}.site-nav{grid-area:2/1/auto/-1;justify-content:flex-start;gap:18px;overflow-x:auto}.site-nav a{white-space:nowrap}.header-actions{justify-self:end}.content-width{width:min(100% - 28px, var(--max))}.hero{min-height:auto;padding:66px 0 72px}h1{font-size:3.8rem}.section-heading h2,.contact-section h2,.dialog-content h2{font-size:3rem}.showcase-heading h2{font-size:2.4rem}.section-space{padding:68px 0}.about-facts,.skill-groups,.project-meta{grid-template-columns:1fr}.featured-card .project-media,.project-media{min-height:260px}.project-media h3{font-size:2rem}.project-actions .button,.hero-actions .button,.contact-actions .button{width:100%}.experience-item{grid-template-columns:1fr}.experience-item>span{grid-column:1}.dialog-media{min-height:220px}.dialog-content{padding:22px}}@media (width<=380px){.site-header{gap:8px;padding:12px 14px}.brand{gap:8px}.brand-mark{width:34px;height:34px}.header-actions{gap:6px}.language-option{width:31px}.resume-link{padding:7px 8px;font-size:.76rem}}
