:root{--bg:#f5e4d7;--surface:#fcf4ee;--text:#33403a;--text-muted:#647a6e;--border:#e2d1c6;--accent:#5c7267;--accent-soft:#e5d1d0;--shadow:0 1px 2px #33403a0d, 0 12px 28px -14px #33403a47;--serif:"Fraunces", "Newsreader", Georgia, serif;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"Space Mono", ui-monospace, Consolas, monospace;font:17px/1.55 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--bg:#212722;--surface:#2b322b;--text:#e9e3d8;--text-muted:#a7b2a6;--border:#3a423a;--accent:#a7bbac;--accent-soft:#3a322f;--shadow:0 1px 2px #0000004d, 0 14px 30px -14px #0000008c}}#root{box-sizing:border-box;width:760px;max-width:100%;min-height:100svh;margin:0 auto}body{margin:0}h1,h2{font-family:var(--serif);color:var(--text);font-optical-sizing:auto}p{margin:0}a{color:var(--accent)}code{font-family:var(--mono);background:var(--surface);color:var(--text);border-radius:4px;padding:3px 6px;font-size:14px}.page{padding:0 clamp(20px,5vw,40px) 80px}.hero{grid-template-columns:auto 1fr auto;grid-template-areas:"pfp id social""resume resume resume""lang lang lang";align-items:start;column-gap:24px;padding:56px 0 40px;display:grid}.hero>.hero-pfp{grid-area:pfp;align-self:center}.hero>.hero-id{grid-area:id}.hero>.social{grid-area:social;place-self:start end}.hero>.resume-btn{grid-area:resume;justify-self:start;margin-top:22px}.hero>.lang-block{grid-area:lang;margin:20px 0 0}.hero .avatar{object-fit:cover;border:2px solid var(--accent-soft);border-radius:26px;width:116px;height:116px}.social{flex-direction:column;gap:12px;display:inline-flex}@media (width<=620px){.hero{grid-template-columns:1fr;grid-template-areas:"pfp""id""social""resume""lang"}.hero .avatar{align-self:start}.hero>.social{justify-self:start;margin-top:18px}.social{flex-direction:row}}.social-btn{border:1px solid var(--border);background:var(--surface);width:52px;height:52px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s,transform .15s;display:inline-flex}.social-btn:hover{color:var(--bg);background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.social-btn svg{width:22px;height:22px}@media (prefers-reduced-motion:reduce){.social-btn{transition:color .15s,background .15s,border-color .15s}}.lang-block{margin-bottom:26px}.lang-switch{grid-template-columns:repeat(var(--lang-count), 1fr);border:1px solid var(--border);background:var(--surface,var(--bg));box-shadow:var(--shadow);border-radius:999px;padding:4px;display:inline-grid;position:relative}.lang-note{font:400 11px/1.4 var(--mono);color:var(--text-muted);opacity:.85;align-items:center;gap:6px;margin:9px 2px 0;display:flex}.lang-note-icon{color:#c08a4a;flex:none}.lang-thumb{width:calc((100% - 8px) / var(--lang-count));background:var(--accent);transform:translateX(calc(var(--lang-active) * 100%));border-radius:999px;transition:transform .34s cubic-bezier(.34,1.4,.5,1);position:absolute;top:4px;bottom:4px;left:4px}.lang-btn{z-index:1;cursor:pointer;font:600 12px/1 var(--mono);letter-spacing:.02em;color:var(--text-muted);background:0 0;border:0;border-radius:999px;padding:6px 14px;transition:color .2s;position:relative}.lang-btn:hover:not(.is-active){color:var(--text)}.lang-btn.is-active{color:var(--bg)}@media (prefers-reduced-motion:reduce){.lang-thumb{transition:none}}.hero h1{letter-spacing:-1.5px;margin:0;font-size:clamp(44px,8vw,64px);font-weight:600;line-height:1.03}.hero .role{color:var(--text-muted);margin:12px 0 0;font-size:18px}.hero .role:before{color:var(--accent)}.hero .blurb{max-width:42ch;margin:10px 0 0}.resume-btn{background:var(--surface,var(--bg));color:var(--text);font:500 15px/1 var(--sans);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:12px 18px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.resume-btn:hover{border-color:var(--accent);box-shadow:0 12px 26px -16px var(--accent);transform:translateY(-2px)}.resume-icon{color:var(--accent);flex:none}.resume-meta{border-left:1px solid var(--border);font:400 12px/1 var(--mono);color:var(--text-muted);align-items:center;gap:5px;padding-left:10px;display:inline-flex}.resume-meta svg{width:13px;height:13px}.resume-btn:hover .resume-meta{color:var(--accent)}.edu-section{padding:8px 0 4px}.edu-card{color:inherit;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:20px;padding:20px 24px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.edu-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #33403a0f,0 18px 36px -16px #33403a57}.edu-logo{box-sizing:border-box;background:var(--bg);border:1px solid var(--border);object-fit:contain;border-radius:12px;flex:none;width:60px;height:60px;padding:11px}.edu-logo-fallback{font:700 14px/1 var(--mono);letter-spacing:.04em;color:var(--accent);justify-content:center;align-items:center;padding:0;display:flex}.edu-body{flex-direction:column;gap:3px;min-width:0;display:flex}.edu-degree{font-family:var(--serif);letter-spacing:-.3px;color:var(--text);font-size:clamp(19px,3.2vw,24px);font-weight:600;line-height:1.15}.edu-school{color:var(--text-muted);font-size:15px}.edu-line{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:5px;font-size:14px;display:flex}.edu-honors{color:var(--accent);font-weight:600}.edu-years{font:400 13px/1 var(--mono);color:var(--text-muted)}.edu-years:before{content:"· ";color:var(--text-muted)}@media (width<=480px){.edu-card{gap:16px;padding:18px}}.kicker{font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:22px}.block,.skills-section{border-top:1px solid var(--border);padding:44px 0}.marquee{flex-direction:column;gap:12px;display:flex;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.mq-row{overflow:hidden}.mq-track{gap:12px;width:max-content;animation:30s linear infinite marquee;display:inline-flex}.mq-track.reverse{animation-direction:reverse}.marquee:hover .mq-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.mq-chip{font-family:var(--serif);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:999px;flex:none;padding:8px 18px;font-size:17px}.mq-chip.core{color:var(--accent);border-color:var(--accent);font-style:italic}@media (prefers-reduced-motion:reduce){.mq-track{animation:none}.mq-row{overflow-x:auto}}.experience-list{flex-direction:column;gap:6px;display:flex}.job{border:1px solid #0000;border-radius:12px;transition:background .2s,border-color .2s}.job.open{background:var(--surface);border-color:var(--border)}.job-toggle{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;border-radius:12px;align-items:center;gap:16px;padding:14px 16px;display:flex}.job-toggle:hover .job-head strong{color:var(--accent)}.company-mark{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);object-fit:contain;border-radius:12px;flex:none;width:56px;height:56px;padding:7px}.company-mark-fallback{font:700 16px/1 var(--mono);letter-spacing:.04em;color:var(--accent);justify-content:center;align-items:center;padding:0;display:flex}.job-title{flex:auto;min-width:0}.job-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.job-head strong{font-family:var(--serif);font-size:19px;font-weight:600;transition:color .15s}.job-period{font:400 12px/1.4 var(--mono);color:var(--text-muted);white-space:nowrap;flex:none}.job-company{font:400 12px/1.4 var(--mono);letter-spacing:.01em;color:var(--accent);margin-top:3px}.project-lang{font:400 12px/1.4 var(--mono);color:var(--text-muted);white-space:nowrap}.job-summary{opacity:1;grid-template-rows:1fr;margin-top:8px;transition:grid-template-rows .3s,opacity .22s,margin-top .3s;display:grid}.job.open .job-summary{opacity:0;grid-template-rows:0fr;margin-top:0}.job-summary-inner{min-height:0;color:var(--text-muted);font-size:15px;overflow:hidden}.chevron{width:32px;height:32px;color:var(--accent);background:var(--accent-soft);border-radius:999px;flex:none;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.34,1.4,.5,1),background .2s,color .2s;display:inline-flex}.job-toggle:hover .chevron{background:var(--accent);color:var(--bg)}.job.open .chevron{transform:rotate(90deg)}.job-details{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.job.open .job-details{grid-template-rows:1fr}.job-details-inner{overflow:hidden}.job-details ul{color:var(--text-muted);margin:0;padding:0 16px 16px 84px}.job-details li{max-width:62ch;margin:6px 0}@media (width<=600px){.job-details ul{padding:4px 22px 18px 26px}.job-head{flex-direction:column;align-items:flex-start;gap:4px}.job-head strong{font-size:17px;line-height:1.2}.job-period{order:-1}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.project-card{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:18px;text-decoration:none;transition:box-shadow .2s,transform .2s;display:flex}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.project-card.status-planned{opacity:.65;cursor:default}.project-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.project-card strong{font-family:var(--serif);font-size:18px}.project-card p{color:var(--text-muted);margin-bottom:10px;font-size:15px}.project-foot{align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex}.project-links{color:var(--text-muted);align-items:center;gap:12px;margin-left:auto;display:inline-flex}.proj-icon{transition:color .18s,transform .18s;display:block}.project-card:hover .project-links{color:var(--accent)}.project-card:hover .proj-arrow{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.proj-icon{transition:none}}.badge{font:400 11px/1 var(--mono);text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:4px 9px}.badge-live{background:var(--accent-soft);color:var(--accent)}.badge-building{background:var(--accent);color:var(--bg)}.badge-planned{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.pixel-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:18px;padding:20px}.pixel-heading{font:600 16px/1 var(--mono);color:var(--text);margin:0 0 14px}.art-stage{perspective:1200px;aspect-ratio:3/2;position:relative}.art-card{border:1px solid var(--border);cursor:zoom-in;transform-origin:50%;opacity:0;visibility:hidden;pointer-events:none;background:#14181c;border-radius:12px;padding:0;display:block;position:absolute;inset:0;overflow:hidden}.art-card.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}.art-card img{object-fit:contain;width:100%;height:100%;display:block}.art-caption{background:linear-gradient(#0a0c0a00,#0a0c0ad9);justify-content:space-between;align-items:baseline;gap:12px;padding:30px 16px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.art-title{font-family:var(--serif);letter-spacing:-.2px;color:#f3eee3;font-size:19px;font-weight:600}.art-index{font:400 12px/1 var(--mono);color:#f3eee3b3;white-space:nowrap}@media (prefers-reduced-motion:no-preference){.art-card.is-active{animation:.55s cubic-bezier(.22,1,.36,1) both cardRotateIn}}@keyframes cardRotateIn{0%{opacity:0;transform:rotateY(-22deg)translate(28px)scale(.96)}to{opacity:1;transform:rotateY(0)translate(0)scale(1)}}.art-controls{justify-content:center;align-items:center;gap:14px;margin-top:14px;display:flex}.art-nav{border:1px solid var(--border);background:var(--bg);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;transition:color .15s,border-color .15s;display:inline-flex}.art-nav:hover{color:var(--accent);border-color:var(--accent)}.art-dots{align-items:center;gap:8px;display:inline-flex}.art-dot{background:var(--border);cursor:pointer;border:0;border-radius:999px;width:8px;height:8px;padding:0;transition:background .15s,transform .15s}.art-dot:hover{background:var(--text-muted)}.art-dot.is-active{background:var(--accent);transform:scale(1.35)}.pixelated{image-rendering:pixelated}.lightbox{z-index:50;cursor:zoom-out;background:#1c221cd9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{max-width:80vw;max-height:80vh}.track-list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.track-chip{border:1px solid var(--border);cursor:pointer;font:400 14px/1 var(--mono);background:var(--bg);color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:8px 16px;display:inline-flex}.track-chip.is-playing{border-color:var(--accent);color:var(--accent)}.ctrl-icon{flex:none;display:inline-block}.ctrl-icon.is-play{border:5px solid #0000;border-left:8px solid;border-right-width:0;width:0;height:0}.ctrl-icon.is-pause{box-sizing:border-box;border-left:3px solid;border-right:3px solid;width:8px;height:10px}.equalizer{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.equalizer i{background:var(--accent);width:3px;animation:.6s ease-in-out infinite eq}.equalizer i:nth-child(2){animation-delay:.15s}.equalizer i:nth-child(3){animation-delay:.3s}.equalizer i:nth-child(4){animation-delay:.45s}@keyframes eq{0%,to{height:3px}50%{height:14px}}.muted{color:var(--text-muted);font-size:14px}.site-footer{border-top:1px solid var(--border);font:400 14px/1 var(--mono);padding-top:32px}.site-footer a{text-decoration:none}@media (prefers-reduced-motion:reduce){.equalizer i{height:10px;animation:none}.project-card,.resume-btn{transition:none}}
