:root{--primary-color:#fafafa;--bg-color:#0a0a0a;--accent:#f5f5f7;--accent-muted:#8e8e93;--ink:#1d1d1f;--beige:#f4f4f0;--dock-clearance:calc(5.5rem + env(safe-area-inset-bottom))}html{scroll-snap-type:y mandatory}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--accent);color:#0a0a0a}.main-content ::selection{background:var(--ink);color:var(--beige)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{border:2px solid var(--bg-color);background:#2e2e2e;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#6e6e73}:focus-visible{outline-offset:3px;outline:2px solid #f5f5f7e6}.main-content :focus-visible,.dock.is-light :focus-visible{outline-color:var(--ink)}body{background-color:var(--bg-color);color:#222;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Newsreader,serif;overflow-x:hidden}a,button{-webkit-tap-highlight-color:transparent}body:after{content:"";z-index:9000;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;position:fixed;inset:0}#webgl-canvas{z-index:-1;pointer-events:none;opacity:0;width:100vw;height:100vh;transition:opacity .9s;position:fixed;top:0;left:0}#webgl-canvas.is-ready{opacity:1}.screen-video-source{opacity:0;pointer-events:none;z-index:-10;width:2px;height:2px;position:fixed;top:0;left:0}.side-text{color:#1a1a1a;z-index:-2;pointer-events:none;width:45vw;font-family:Newsreader,serif;font-size:2.5vw;font-weight:400;line-height:1.6;position:fixed;top:50%;transform:translateY(-50%)}.left-side{text-align:left;left:5vw}.scroll-char{color:#1a1a1a}.content{z-index:2;position:relative}.scroll-indicator{bottom:calc(var(--dock-clearance) + .75rem);color:#fafafa;opacity:.55;pointer-events:none;animation:2s ease-in-out infinite bounce;position:absolute;left:calc(5vw + 16px);transform:translate(-50%)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)translate(-50%)}40%{transform:translateY(-4px)translate(-50%)}60%{transform:translateY(-2px)translate(-50%)}}.name{color:var(--primary-color);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-family:Newsreader,serif;font-size:8rem;font-style:italic;font-weight:500}.subtitle{letter-spacing:.3em;color:#222;opacity:.7;font-family:Newsreader,serif;font-size:1.5rem}.animation-track{scroll-snap-align:start;height:395vh;position:relative}.hero-frame{pointer-events:none;width:100%;height:100svh;position:absolute;top:0;left:0}.track-haze{pointer-events:none;background:linear-gradient(to bottom, #f4f4f000 0%, #f4f4f038 45%, #f4f4f0bf 82%, var(--beige) 100%);height:38vh;position:absolute;bottom:0;left:0;right:0}.main-content{box-sizing:border-box;background-color:var(--beige);color:#222;z-index:10;scroll-snap-align:start;flex-direction:column;align-items:center;width:100vw;height:100svh;padding:3rem 2rem 0;display:flex;position:relative;overflow:hidden}.main-content h2{text-align:center;margin-bottom:1rem;font-family:EB Garamond,Garamond,serif;font-style:italic;font-weight:500;line-height:1}.first-name{font-size:clamp(3.4rem,13vw,7rem)}.last-name{opacity:.8;font-size:clamp(2.2rem,8.5vw,4.5rem)}.main-content p{opacity:.8;text-align:center;max-width:600px;margin-bottom:4rem;font-family:Newsreader,serif;font-size:1.4rem}.main-content .hero-tagline{letter-spacing:.34em;text-transform:uppercase;opacity:.5;max-width:none;margin-bottom:1.4rem;font-family:Inter,sans-serif;font-size:.72rem;font-weight:600}.profile-container{flex:1 1 0;justify-content:center;min-height:0;display:inline-flex;position:relative}.profile-img{object-fit:contain;object-position:bottom;z-index:2;pointer-events:none;border-radius:12px 12px 0 0;width:auto;max-width:100%;height:100%;transition:transform .4s cubic-bezier(.25,1,.5,1);position:relative}.hover-hitbox{z-index:0;position:absolute;inset:0}.popout-btn{opacity:0;color:#fff;z-index:1;pointer-events:none;border-radius:50px;align-items:center;gap:.75rem;padding:1rem 1.5rem;font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700;text-decoration:none;transition:transform .5s cubic-bezier(.25,1,.5,1),opacity .5s cubic-bezier(.25,1,.5,1);display:flex;position:absolute;top:40%;left:50%}.linkedin-popout{--lg-tint:#0a66c2f0;--lg-shadow:0 15px 35px #0a66c259;transform:translate(-50%,-50%)scale(.8)}.instagram-popout{--lg-tint:#dc2743b3;--lg-shadow:0 15px 35px #dc274359;transform:translate(-50%,-50%)scale(.8);display:none!important}.profile-container:hover .profile-img{transform:scale(1.02)}.profile-container:hover .popout-btn{pointer-events:auto}.profile-container:hover .linkedin-popout{opacity:1;transform:translate(60%,-150%)scale(1.1)rotate(5deg)}.profile-container:focus-within .linkedin-popout{opacity:1;pointer-events:auto;transform:translate(60%,-150%)scale(1.1)rotate(5deg)}.profile-container.is-popped .linkedin-popout{opacity:1;pointer-events:auto;animation:.95s cubic-bezier(.34,1.56,.64,1) both connect-pop;transform:translate(60%,-150%)scale(1.1)rotate(5deg)}@keyframes connect-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)rotate(0)}55%{opacity:1;transform:translate(68%,-165%)scale(1.22)rotate(9deg)}78%{transform:translate(57%,-145%)scale(1.04)rotate(3.5deg)}to{opacity:1;transform:translate(60%,-150%)scale(1.1)rotate(5deg)}}.profile-container:hover .instagram-popout{opacity:1;transform:translate(-180%,-150%)scale(1.1)rotate(-9deg)}.research-page{background-color:var(--bg-color);z-index:10;scroll-snap-align:start;min-height:100svh;padding:3rem 4rem var(--dock-clearance);justify-content:flex-start;align-items:center;display:flex;position:relative;overflow:hidden}.research-container{z-index:1;flex-direction:row;justify-content:space-between;align-items:center;gap:4rem;width:100%;max-width:1200px;display:flex;position:relative}.eyebrow{letter-spacing:.38em;text-transform:uppercase;color:var(--accent-muted);margin-bottom:1.1rem;font-family:Inter,sans-serif;font-size:.72rem;font-weight:600}.section-title{color:#fafafa;margin:0;font-family:EB Garamond,Garamond,serif;font-size:clamp(3.4rem,10vw,8rem);font-style:italic;font-weight:500;line-height:1}.research-container .title-block{margin-left:10vw}.research-links{flex-direction:column;flex-grow:1;align-items:flex-end;gap:1.5rem;display:flex}.research-btn{--lg-tint:#ffffff0d;color:#fafafa;cursor:pointer;letter-spacing:.02em;border:none;border-radius:100px;justify-content:space-between;align-items:center;gap:3rem;width:320px;padding:1.2rem 3rem;font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700;text-decoration:none;transition:transform .45s cubic-bezier(.34,1.4,.5,1),--lg-tint .3s;display:flex}.btn-label{align-items:baseline;gap:.9rem;display:flex}.btn-index{letter-spacing:.08em;color:var(--accent-muted);font-family:Inter,sans-serif;font-size:.7rem;font-weight:600}.research-btn .arrow{font-size:1.3rem;transition:transform .3s,color .3s}.research-btn:hover{--lg-tint:#ffffff1a;--lg-rim-accent:#fff9;transform:translateY(-4px)scale(1.015)}.research-btn:active{transform:translateY(-1px)scale(.985)}.research-btn:hover .arrow{color:#fff;transform:translate(4px,-4px)}.resume-page{background-color:var(--bg-color);z-index:10;scroll-snap-align:start;min-height:100svh;padding:4rem 10vw calc(4rem + var(--dock-clearance));color:#fafafa;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.resume-page>:not(.ambient){z-index:1;position:relative}.bento-grid{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(150px,auto);gap:1.5rem;width:100%;max-width:1200px;display:grid}.resume-header{justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin-bottom:2rem;display:flex}.view-resume-btn{--lg-tint:#ffffff12;color:var(--primary-color);z-index:20;cursor:pointer;border:none;border-radius:50px;padding:.8rem 1.6rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .45s cubic-bezier(.34,1.4,.5,1),--lg-tint .3s;position:relative}.view-resume-btn:hover{--lg-tint:#ffffff24;transform:translateY(-2px)scale(1.02)}.view-resume-btn:active{transform:scale(.97)}.bento-tile{-webkit-backdrop-filter:blur(24px)saturate(160%);background:linear-gradient(#ffffff0d,#ffffff04 60%);border:1px solid #ffffff14;border-radius:24px;padding:2.5rem;transition:transform .3s cubic-bezier(.25,.46,.45,.94),border-color .3s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 20px 50px #00000040}.bento-tile:before{content:"";background:linear-gradient(90deg,#0000,#ffffff47,#0000);height:1px;position:absolute;top:0;left:1.5rem;right:1.5rem}.bento-tile:hover{border-color:#fff3;transform:translateY(-5px)}.bento-large{grid-row:span 2}.resume-item+.resume-item{margin-top:2rem}.bento-glow{background:radial-gradient(800px circle at var(--mouse-x) var(--mouse-y), #ffffff0f, transparent 40%);pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.bento-tile:hover .bento-glow{opacity:1}.bento-content{z-index:2;position:relative}.bento-content h3{color:var(--primary-color);opacity:.9;margin-bottom:1.5rem;font-family:EB Garamond,serif;font-size:2rem;font-style:italic}.resume-item h4{margin-bottom:.5rem;font-family:Newsreader,serif;font-size:1.25rem;font-weight:500}.resume-item .role{color:#a0a0a0;justify-content:space-between;margin-bottom:1rem;font-size:.9rem;display:flex}.resume-item ul{color:#ccc;padding-left:1.2rem;font-size:.95rem;line-height:1.6}.resume-item ul li{margin-bottom:.5rem}.resume-item p{color:#ccc;margin-bottom:.5rem;font-size:.95rem;line-height:1.6}.resume-item .stack{color:var(--accent-muted);font-style:italic}.resume-item .gpa{color:#a0a0a0;font-size:.9rem}.resume-item .publication{font-size:1rem}.resume-item .publication a{color:var(--primary-color);border-bottom:1px solid #ffffff40;text-decoration:none;transition:border-color .2s}.resume-item .publication a:hover{border-color:#ffffffb3}.skills-group+.skills-group{margin-top:1.1rem}.skills-label{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-muted);margin-bottom:.55rem;font-family:Inter,sans-serif;font-size:.66rem;font-weight:600}.skills-cluster{flex-wrap:wrap;gap:.75rem;display:flex}.skill-tag{color:#e0e0e0;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50px;padding:.5rem 1rem;font-size:.9rem;transition:background .2s,transform .2s}.skill-tag:hover{background:#ffffff26;border-color:#ffffff59;transform:scale(1.05)}@media (width<=900px){.bento-grid{grid-template-columns:1fr}.bento-large{grid-row:span 1}}.project-header{z-index:100;justify-content:space-between;align-items:center;width:100%;padding:2rem 5vw;display:flex;position:fixed;top:0;left:0}.project-header:before{content:"";z-index:-1;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#0a0a0ae0 25%,#0000);position:absolute;inset:0 0 -1.5rem;-webkit-mask-image:linear-gradient(#000 45%,#0000);mask-image:linear-gradient(#000 45%,#0000)}.back-btn{--lg-tint:#ffffff12;color:#fafafa;border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.3rem .7rem 1rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:700;text-decoration:none;transition:color .2s,transform .45s cubic-bezier(.34,1.4,.5,1);display:flex}.back-btn svg{width:20px;height:20px}.back-btn:hover{--lg-tint:#ffffff24;transform:translate(-2px)}.back-btn:active{transform:scale(.96)}.collage-container{padding:8rem 5vw calc(3rem + var(--dock-clearance));max-width:1400px;margin:0 auto}.collage-header{text-align:center;margin-bottom:4rem}.project-title{color:var(--primary-color);margin-bottom:1rem;font-family:EB Garamond,serif;font-size:clamp(2.8rem,9vw,4.5rem);font-style:italic}.project-subtitle{color:#ccc;max-width:800px;margin:0 auto;font-family:Newsreader,serif;font-size:1.3rem;line-height:1.6}.collage-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-auto-rows:minmax(250px,auto);grid-auto-flow:dense;gap:1.5rem;width:100%;display:grid}.collage-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border:1px solid #ffffff14;border-radius:20px;position:relative;overflow:hidden}.image-item img{object-fit:cover;width:100%;height:100%;min-height:250px;transition:transform .5s}.image-item:hover img{transform:scale(1.05)}.image-caption{color:#fafafa;background:linear-gradient(#0000,#000c);width:100%;padding:1rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500;position:absolute;bottom:0;left:0}.image-caption:before{content:"";background:#ffffffd9;width:7px;height:7px;margin-right:.55rem;display:inline-block}.text-item{flex-direction:column;justify-content:center;padding:2rem;display:flex}.text-item h3{color:var(--primary-color);margin-bottom:1rem;font-family:EB Garamond,serif;font-size:1.8rem;font-style:italic}.text-item p{color:#ccc;font-family:Newsreader,serif;font-size:1.05rem;line-height:1.6}.abstract-box{grid-area:span 1/span 2}.tall-image{grid-row:span 2}.wide-image{grid-column:span 2}.highlight-box{background:#ffffff0b;border-color:#ffffff29;grid-area:span 2/span 1}.results-box{grid-column:span 2}@media (width<=900px){.collage-grid{grid-template-columns:1fr;grid-auto-rows:auto}.collage-item{min-height:250px;grid-area:auto/span 1!important}}@media (aspect-ratio<=4/5){.scroll-indicator{left:50%;bottom:calc(var(--dock-clearance) + .25rem)}.side-text{width:86vw;top:auto;left:7vw;bottom:calc(var(--dock-clearance) + 3.25rem);font-size:clamp(1.05rem,4.8vw,1.5rem);line-height:1.55;transform:none}}@media (width<=768px){html{scroll-snap-type:y proximity}.main-content{padding:2.5rem 1.25rem 0}.main-content .hero-tagline{letter-spacing:.26em;font-size:.66rem}.research-page{padding:3rem 1.5rem var(--dock-clearance)}.research-container{flex-direction:column;align-items:flex-start;gap:2.75rem}.research-container .title-block{margin-left:0}.research-links{flex-grow:0;align-items:stretch;width:100%}.research-btn{gap:1rem;width:100%;padding:1.1rem 1.5rem}.resume-page{padding:4.5rem 1.25rem calc(3rem + var(--dock-clearance))}.resume-header{flex-wrap:wrap;gap:1.25rem;margin-bottom:1.5rem}.bento-grid{gap:1rem}.bento-tile{border-radius:20px;padding:1.6rem 1.35rem}.resume-item .role{flex-wrap:wrap;gap:.15rem 1rem}.project-header{padding:1.15rem 1.25rem}.collage-container{padding:6.5rem 1.25rem calc(2rem + var(--dock-clearance))}.collage-header{margin-bottom:2.5rem}.project-subtitle{font-size:1.05rem}.text-item{padding:1.5rem}.collage-grid{gap:1rem}}@media (hover:none) and (pointer:coarse){.linkedin-popout,.profile-container:hover .linkedin-popout{opacity:1;pointer-events:auto;top:auto;left:auto;right:4%;bottom:calc(var(--dock-clearance) + .5rem);z-index:3;gap:.5rem;padding:.75rem 1.1rem;font-size:.9rem;transform:rotate(-3deg)}.linkedin-popout svg:first-of-type{width:18px;height:18px}.linkedin-popout svg:last-of-type{width:13px;height:13px}.profile-container:hover .profile-img{transform:none}.profile-container.is-popped .linkedin-popout{animation:.9s cubic-bezier(.34,1.56,.64,1) both connect-pop-touch;transform:rotate(-3deg)}@keyframes connect-pop-touch{0%{transform:rotate(-3deg)scale(1)}35%{transform:rotate(-9deg)scale(1.28)}60%{transform:rotate(1deg)scale(.94)}80%{transform:rotate(-4deg)scale(1.06)}to{transform:rotate(-3deg)scale(1)}}}@media (prefers-reduced-motion:reduce){.scroll-indicator{animation:none}}@property --lg-tint{syntax:"<color>";inherits:true;initial-value:#ffffff0f}:where(.lg){--lg-blur:10px;--lg-saturate:185%;--lg-rim:#ffffff8c;--lg-rim-accent:#ffffff47;--lg-shadow:0 12px 32px #0000004d, 0 2px 6px #0000002e;position:relative}.lg{background:linear-gradient(180deg, #ffffff17, #fff0 55%), var(--lg-tint);-webkit-backdrop-filter:blur(10px)saturate(185%);backdrop-filter:blur(10px)saturate(185%);box-shadow:inset 0 1px .5px #ffffff59, inset 0 -1px .5px #ffffff14, inset 0 0 20px #ffffff0d, var(--lg-shadow);isolation:isolate}.lg.lg-refract{-webkit-backdrop-filter:var(--lg-refract) blur(var(--lg-blur)) saturate(var(--lg-saturate));backdrop-filter:var(--lg-refract) blur(var(--lg-blur)) saturate(var(--lg-saturate))}.lg:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg, var(--lg-rim) 0%, #ffffff1a 30%, #fff0 52%, #ffffff14 72%, var(--lg-rim-accent) 100%);-webkit-mask-composite:xor;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.lg:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(140px circle at var(--lg-mx,50%) var(--lg-my,-30%), #fff3, #fff0 65%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.lg:hover:after{opacity:1}.lg-tinted{--lg-rim:#fff9;--lg-saturate:160%;-webkit-backdrop-filter:blur(10px)saturate(160%);backdrop-filter:blur(10px)saturate(160%)}.dock{--lg-tint:#18181b61;--lg-blur:8px;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:1000;-webkit-backdrop-filter:blur(8px)saturate(185%);backdrop-filter:blur(8px)saturate(185%);opacity:0;border-radius:999px;align-items:center;gap:.15rem;padding:.3rem;font-family:Inter,sans-serif;transition:transform .7s cubic-bezier(.34,1.3,.5,1),opacity .5s,--lg-tint .45s;display:flex;position:fixed;transform:translate(-50%,1.5rem)}.dock.is-mounted{opacity:1;transform:translate(-50%)}.dock-item{z-index:1;color:#f5f5f7a8;letter-spacing:.01em;white-space:nowrap;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:.5rem;padding:.72rem 1.15rem;font-size:.86rem;font-weight:600;text-decoration:none;transition:color .3s,transform .4s cubic-bezier(.34,1.5,.5,1);display:flex;position:relative}.dock-item:hover{color:#fff}.dock-item:active{transform:scale(.94)}.dock-item:focus-visible{outline-offset:-2px}.dock-item.is-active{color:#fff}.dock-icon{flex-shrink:0;width:18px;height:18px}.dock-lens{pointer-events:none;opacity:0;background:linear-gradient(#fff3,#ffffff14);border-radius:999px;width:0;transition:transform .55s cubic-bezier(.34,1.25,.5,1),width .55s cubic-bezier(.34,1.25,.5,1),opacity .3s;position:absolute;top:.3rem;bottom:.3rem;left:0;box-shadow:inset 0 1px #ffffff59,inset 0 0 0 .5px #ffffff1f,0 2px 10px #0000002e}.dock.has-active .dock-lens{opacity:1}.dock.is-light{--lg-tint:#fafaf8c7;--lg-rim:#fffffff2;--lg-rim-accent:#fff9;--lg-shadow:0 12px 30px #3c321e29, 0 2px 6px #3c321e1a}.dock.is-light .dock-item{color:#1d1d1fc7}.dock.is-light .dock-item:hover,.dock.is-light .dock-item.is-active{color:var(--ink)}.dock.is-light .dock-lens{background:linear-gradient(#fffffff2,#fff9);box-shadow:inset 0 1px #fff,0 2px 10px #3c321e1f}.dock-label-short{display:none}@media (width<=768px){.dock{left:.75rem;right:.75rem;bottom:calc(.6rem + env(safe-area-inset-bottom));justify-content:space-between;padding:.25rem;transform:translateY(1.5rem)}.dock.is-mounted{transform:none}.dock-item{letter-spacing:.015em;flex-direction:column;flex:1 1 0;justify-content:center;gap:.2rem;padding:.5rem .25rem .45rem;font-size:.66rem}.dock-icon{width:21px;height:21px}.dock-label-full{display:none}.dock-label-short{display:inline}.dock-lens{top:.25rem;bottom:.25rem}}.ambient{z-index:0;pointer-events:none;background:radial-gradient(38vmax 38vmax at 80% 40%,#ffffff13,#0000 70%),radial-gradient(30vmax 30vmax at 12% 85%,#ffffff09,#0000 70%);position:absolute;inset:0}.ambient-alt{background:radial-gradient(40vmax 40vmax at 15% 22%,#ffffff0f,#0000 70%),radial-gradient(34vmax 34vmax at 88% 88%,#ffffff0a,#0000 70%)}#hero:focus,#main-content:focus,#research-page:focus,#github-page:focus,#resume-page:focus{outline:none}.no-3d .scroll-char{color:var(--primary-color)}@media (forced-colors:active){.lg{border:1px solid buttontext}.dock-item.is-active{outline-offset:-2px;outline:2px solid highlight}.gh-hm-cell{forced-color-adjust:none;border:1px solid canvastext}.gh-seg button[aria-pressed=true]{outline-offset:-2px;outline:2px solid highlight}.gh-model-bar{border:1px solid canvastext}.gh-model-bar span{forced-color-adjust:none;background:highlight}.gh-lang-dot{border:1px solid canvastext}}@media (prefers-reduced-transparency:reduce){.lg,.lg.lg-refract{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1c1c1ef5}.linkedin-popout{background:#0a66c2}.dock.is-light{background:#fafaf8f7}}@media (prefers-contrast:more){.lg{--lg-rim:#ffffffe6;--lg-rim-accent:#ffffffb3}.dock-item{color:#fff}.dock.is-light .dock-item{color:#000}.gh-card-updated,.gh-stat-label,.gh-model-meta,.gh-repo-meta{color:#b5b5ba}}@media (prefers-reduced-motion:reduce){.profile-container.is-popped .linkedin-popout,.gh-sk-line{animation:none}.dock,.dock-lens,.dock-item,.research-btn,.view-resume-btn,.back-btn,.gh-seg button,.gh-hm-cell,.github-grid .bento-tile,.gh-repo .arrow{transition-duration:.01ms}.github-grid .bento-tile:hover,.gh-repo:hover .arrow{transform:none}}.github-page{background-color:var(--bg-color);z-index:10;scroll-snap-align:start;min-height:100svh;padding:4rem 10vw calc(4rem + var(--dock-clearance));color:#fafafa;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.github-page>:not(.ambient){z-index:1;position:relative}.ambient-gh{background:radial-gradient(36vmax 36vmax at 85% 18%,#ffffff0e,#0000 70%),radial-gradient(32vmax 32vmax at 8% 62%,#ffffff0a,#0000 70%)}.github-header{justify-content:space-between;align-items:center;width:100%;max-width:1200px;margin-bottom:2rem;display:flex}.gh-profile-btn{white-space:nowrap}.github-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(190px,auto);gap:1.5rem;width:100%;max-width:1200px;display:grid}.github-grid .bento-tile{min-width:0;padding:2rem 1.85rem}.gh-claude{grid-area:span 2/span 2}.gh-claude .bento-content{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1fr);height:100%;display:grid}.gh-claude .gh-panel{grid-area:3/1}.gh-claude .gh-panel.is-hidden{visibility:hidden}.gh-claude [hidden]{display:none!important}.gh-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1rem;display:flex}.gh-card-label{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-muted);font-family:Inter,sans-serif;font-size:.66rem;font-weight:600}.gh-card-updated{color:#f5f5f79e;font-family:Inter,sans-serif;font-size:.72rem}.gh-seg-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;margin:1.1rem 0 1.25rem;display:flex}.gh-seg{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:999px;gap:.15rem;padding:.2rem;display:inline-flex}.gh-seg button{letter-spacing:.01em;color:#f5f5f78c;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.38rem .8rem;font-family:Inter,sans-serif;font-size:.78rem;font-weight:600;transition:background .2s,color .2s}.gh-seg button:hover{color:#fff}.gh-seg button[aria-pressed=true]{color:#fff;background:#ffffff1f}.gh-seg button:focus-visible{outline-offset:-2px}.gh-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.gh-stat{background:#ffffff09;border:1px solid #ffffff0f;border-radius:14px;min-width:0;padding:.9rem 1rem}.gh-stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-muted);margin-bottom:.4rem;font-family:Inter,sans-serif;font-size:.68rem;font-weight:500}.gh-stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#fafafa;overflow-wrap:anywhere;font-family:Inter,sans-serif;font-size:1.35rem;font-weight:600}.gh-heatmap-wrap{--hm-cell:20px;--hm-gap:4px;min-width:0;margin-top:1.25rem;overflow:hidden}.gh-heatmap{grid-template-rows:repeat(7, var(--hm-cell));grid-auto-flow:column;grid-auto-columns:var(--hm-cell);gap:var(--hm-gap);width:max-content;max-width:100%;display:grid}.gh-hm-cell{width:var(--hm-cell);height:var(--hm-cell);background:#ffffff0f;border-radius:4px;transition:opacity .3s}.gh-hm-cell.is-blank{visibility:hidden}.gh-hm-cell[data-level="1"]{background:#a9c4f2}.gh-hm-cell[data-level="2"]{background:#7fa3e8}.gh-hm-cell[data-level="3"]{background:#5a86db}.gh-hm-cell[data-level="4"]{background:#3b64c8}.gh-hm-cell.is-dim{opacity:.35}.gh-models{flex-direction:column;gap:.9rem;display:flex}.gh-model-row{grid-template-columns:1fr auto auto;align-items:baseline;gap:.45rem 1rem;font-family:Inter,sans-serif;display:grid}.gh-model-name{color:#fafafa;font-size:.9rem;font-weight:600}.gh-model-meta{color:var(--accent-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.gh-model-bar{background:#ffffff14;border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.gh-model-bar span{border-radius:inherit;background:#ffffff59;height:100%;display:block}.gh-empty{color:var(--accent-muted);font-family:Newsreader,serif;font-size:.95rem}.gh-repo{color:inherit;flex-direction:column;text-decoration:none;display:flex}.gh-repo .bento-content{flex-direction:column;gap:.75rem;height:100%;display:flex}.gh-repo-head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.gh-repo-name{color:#fafafa;overflow-wrap:anywhere;font-family:Inter,sans-serif;font-size:1.05rem;font-weight:600}.gh-repo .arrow{width:18px;height:18px;color:var(--accent-muted);flex-shrink:0;margin-top:.15rem;transition:transform .3s,color .3s}.gh-repo:hover .arrow{color:#fff;transform:translate(3px,-3px)}.gh-repo-desc{color:#ccc;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-family:Newsreader,serif;font-size:.95rem;line-height:1.6;display:-webkit-box;overflow:hidden}.gh-repo-meta{color:var(--accent-muted);flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-top:auto;padding-top:.5rem;font-family:Inter,sans-serif;font-size:.75rem;display:flex}.gh-lang{align-items:center;gap:.4rem;display:inline-flex}.gh-lang-dot{background:var(--lang-color,#ffffff4d);filter:saturate(.45)brightness(1.1);border-radius:50%;flex-shrink:0;width:10px;height:10px}.gh-skeleton{pointer-events:none}.gh-sk-line{background:linear-gradient(90deg,#ffffff0d 0%,#ffffff1c 50%,#ffffff0d 100%) 0 0/200% 100%;border-radius:6px;height:.85rem;animation:2.4s ease-in-out infinite gh-shimmer}.gh-sk-line+.gh-sk-line{margin-top:.8rem}.gh-sk-line.is-title{width:55%;height:1.1rem;margin-bottom:1.2rem}.gh-sk-line.is-short{width:70%}.gh-sk-line.is-meta{width:40%;margin-top:1.6rem}@keyframes gh-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.gh-error{color:var(--accent-muted);grid-column:1/-1;font-family:Newsreader,serif;font-size:.95rem}.gh-error a{color:var(--primary-color);border-bottom:1px solid #ffffff40;text-decoration:none;transition:border-color .2s}.gh-error a:hover{border-color:#ffffffb3}@media (width<=900px){.github-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gh-claude{grid-area:auto/span 2}}@media (width<=768px){.github-page{padding:4.5rem 1.25rem calc(3rem + var(--dock-clearance))}.github-header{flex-wrap:wrap;gap:1.25rem;margin-bottom:1.5rem}.github-grid{grid-template-columns:1fr;gap:1rem}.github-grid .bento-tile{padding:1.6rem 1.35rem}.gh-claude{grid-column:auto}.gh-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.gh-stat-value{font-size:1.2rem}.gh-heatmap-wrap{--hm-cell:12px;--hm-gap:3px}}
