*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafafa;--fg:#111;--fg-secondary:#616161;--fg-description:#343434;--fg-tertiary:#9e9e9e;--border:#e2e2e2;--border-hover:#d2d2d2;--accent:#4f46e5}body[data-theme=dark]{--bg:#000;--fg:#ededed;--fg-secondary:#7c7c7c;--fg-description:#cfcfcf;--fg-tertiary:#4c4c4c;--border:#1e1e1e;--border-hover:#2e2e2e;--accent:#4f46e5}html,body{height:auto}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:15px;font-weight:400;line-height:1.6;position:relative}.page{z-index:10;flex-direction:column;gap:1.5rem;max-width:760px;min-height:100vh;margin:0 auto;padding:2rem 2rem 3rem;display:flex;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}main,footer{position:relative}.header-identity{color:var(--accent);align-items:center;gap:.5rem;display:flex}.header-right{align-items:center;gap:.875rem;display:flex}.status-indicator{color:var(--fg-tertiary);letter-spacing:.06em;align-items:center;gap:.375rem;font-size:.6875rem;display:flex}.status-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:5px;height:5px;animation:2.5s ease-in-out infinite statusPulse}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.3}}.avatar{object-fit:cover;border:1px solid var(--border-hover);border-radius:50%;flex-shrink:0;width:26px;height:26px}header span{letter-spacing:-.02em;font-size:.9375rem;font-weight:600}.theme{cursor:pointer;width:28px;height:28px;color:var(--fg-secondary);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.875rem;transition:color .15s;display:flex}.theme:hover{color:var(--fg)}.theme-icon{display:block;position:relative}.sun-icon{transform-origin:50%;opacity:0;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s;transform:scale(.6)rotate(90deg)}.moon-icon{transform-origin:50%;opacity:1;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s;position:absolute;top:0;left:0;transform:scale(1)rotate(0)}body[data-theme=dark] .sun-icon{opacity:1;transform:scale(1)rotate(0)}body[data-theme=dark] .moon-icon{opacity:0;transform:scale(.6)rotate(-45deg)}main{flex-direction:column;flex:1;gap:2.5rem;min-height:0;display:flex}h1{letter-spacing:-.05em;color:var(--fg);max-width:640px;font-size:clamp(1.65rem,4vw,2.5rem);font-weight:700;line-height:1.1}.hero{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(156px,220px);align-items:start;gap:1.5rem;padding-bottom:1.5rem;display:grid}.hero-copy{flex-direction:column;grid-area:1/1;gap:1rem;padding:.5rem 0;display:flex}.hero-portrait{grid-area:1/2;justify-content:flex-end;padding-top:.5rem;display:flex}.hero-portrait-button{border:1px solid var(--border-hover);cursor:zoom-in;background:0 0;border-radius:6px;width:100%;max-width:220px;padding:0;overflow:hidden}.hero-portrait-button img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:transform .25s;display:block}.hero-portrait-button:hover img,.hero-portrait-button:focus-visible img{transform:scale(1.04)}.hero-portrait-button.is-zoomed{z-index:100;background:color-mix(in srgb, var(--bg) 92%, transparent);cursor:zoom-out;border:none;border-radius:0;justify-content:center;align-items:center;width:100%;max-width:none;padding:2rem;display:flex;position:fixed;inset:0}.hero-portrait-button.is-zoomed img{border:1px solid var(--border-hover);border-radius:6px;width:auto;max-width:min(86vw,520px);height:auto;max-height:86vh;transform:none}.subtitle{color:var(--fg-secondary);letter-spacing:-.02em;font-size:clamp(.9375rem,1.5vw,1.125rem);font-weight:400;line-height:1.4}.education{color:var(--fg-secondary);letter-spacing:-.01em;margin-top:.25rem;font-size:.875rem;line-height:1.5}section{flex-direction:column;gap:.625rem;display:flex}h2{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-secondary);flex-shrink:0;font-size:.6875rem;font-weight:600}h2:before{content:"# ";color:var(--accent);letter-spacing:0}.experience-list{flex-direction:column;gap:0;display:flex}.experience-item{border-bottom:1px solid var(--border);grid-template-columns:.8fr 1.25fr minmax(0,1.6fr) auto;align-items:start;column-gap:1rem;padding:.625rem 0;display:grid}.experience-item:last-child{border-bottom:none}.experience-company,.experience-title{letter-spacing:-.01em;font-size:.875rem;font-weight:500}.experience-years{color:var(--fg-tertiary);font-size:.75rem}.experience-description{color:var(--fg-secondary);font-size:.75rem}.experience-years{font-variant-numeric:tabular-nums;white-space:nowrap}.projects{flex-direction:column;gap:.5rem;display:flex}.project{color:var(--fg);border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:start;column-gap:1rem;padding:.625rem 0;text-decoration:none;transition:padding .2s,color .15s;display:grid}.project:last-child{border-bottom:none}.project:hover{padding-left:.5rem}.project:hover .project-name{color:var(--accent)}.project-info{align-items:center;gap:.75rem;display:flex}.project-name{letter-spacing:-.01em;font-size:.875rem;font-weight:500}.project-tag{color:var(--fg-tertiary);font-size:.75rem;font-style:italic}.project-stars{color:var(--fg-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:.1em;font-size:.75rem}.media{flex-direction:column;gap:0;display:flex}.media-item{color:var(--fg);border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:start;column-gap:1rem;padding:.625rem 0;text-decoration:none;transition:padding .2s,color .15s;display:grid}.media-item:last-child{border-bottom:none}.media-item:hover{color:var(--fg);padding-left:.5rem}.media-item:hover .media-title{color:var(--accent)}.media-title{letter-spacing:-.01em;font-size:.875rem;font-weight:500}.media-source{color:var(--fg-tertiary);flex-shrink:0;padding-top:.1em;font-size:.75rem}.potpourri{flex-direction:column;gap:0;display:flex}.potpourri-item{color:var(--fg);border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:start;column-gap:1rem;padding:.625rem 0;text-decoration:none;transition:padding .2s,color .15s;display:grid}.potpourri-item:last-child{border-bottom:none}.potpourri-item:hover{color:var(--fg);padding-left:.5rem}.potpourri-item:hover .potpourri-title{color:var(--accent)}.potpourri-title{letter-spacing:-.01em;font-size:.875rem;font-weight:500}.potpourri-source{color:var(--fg-tertiary);flex-shrink:0;padding-top:.1em;font-size:.75rem}.github-contributions{background:0 0;border:none;min-height:0;padding:0;overflow:auto hidden}.activity-section{border-top:1px solid var(--border);min-height:0;padding-top:.5rem;overflow:hidden}.github-contributions::-webkit-scrollbar{height:6px}.github-contributions::-webkit-scrollbar-track{background:0 0}.github-contributions::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}.github-contributions::-webkit-scrollbar-thumb:hover{background:var(--fg-tertiary)}.github-contributions img{border-radius:4px;max-width:100%;height:auto;display:block}body[data-theme=dark] .github-contributions img{filter:invert()}footer{border-top:1px solid var(--border);flex-shrink:0;gap:1.5rem;padding-top:.75rem;display:flex}footer a{color:var(--fg-secondary);letter-spacing:-.01em;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s;position:relative}footer a:after{content:"";background:var(--fg);width:0;height:1px;transition:width .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:0}footer a:hover{color:var(--fg)}footer a:hover:after{width:100%}@media (width<=640px){.page{gap:1.25rem;padding:1.5rem 1.25rem 2rem}.status-indicator{display:none}main{gap:0}.hero{grid-template-columns:1fr;gap:1rem;padding-bottom:1rem}.hero-copy,.hero-portrait{grid-area:auto}.hero-portrait{justify-content:flex-start}.hero-portrait-button{max-width:180px}section{border-top:1px solid var(--border);gap:.75rem;padding-top:.75rem}.experience-item{grid-template-columns:1fr;row-gap:.25rem}.experience-description,.experience-years{font-size:.8125rem}.activity-section{padding-top:.75rem}footer{flex-wrap:wrap;gap:1rem;padding-bottom:1rem}}:not(.page){transition:background-color .2s,color .15s}
