.home{display:flex;flex-direction:column;gap:3rem}.home-hero{padding-top:3.5rem}.home-greet{font-size:1.375rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;min-height:1.2em}.greet{cursor:pointer;text-align:left;font:inherit;letter-spacing:inherit}.greet:active{transform:none}.greet-caret{display:inline-block;width:2px;height:.95em;margin-left:2px;vertical-align:-.12em;border-radius:1px;background:var(--accent);opacity:0}.greet.is-typing .greet-caret{opacity:1}.greet:hover:not(.is-typing) .greet-caret,.greet:focus-visible:not(.is-typing) .greet-caret{animation:greet-blink 1s steps(1) infinite}@keyframes greet-blink{0%{opacity:1}50%{opacity:0}}.greet:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.home-sub{margin-top:.25rem;color:var(--muted)}.home-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}.home-links .pill[href^=mailto]:hover svg{color:#ef4444}.home-links .pill[href*=github]:hover svg{color:var(--fg)}.home-links .pill[href*=linkedin]:hover svg{color:#0a66c2}.proj-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.proj-head{cursor:pointer}.proj-egg{position:absolute;left:.6rem;top:10px;z-index:1;display:block;border-radius:6px;cursor:pointer;transition:transform .32s cubic-bezier(.34,1.56,.64,1),opacity .25s ease}.proj-egg:hover{transform:rotate(-8deg) scale(1.15)}.proj-egg:active{transform:scale(.9);transition-duration:.1s}.proj-egg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.proj-icon-slot{flex:none;width:20px;height:20px}.proj-icon{display:block;flex:none;width:20px;height:20px;border-radius:6px;box-shadow:0 0 0 1px var(--line);-webkit-touch-callout:none;user-select:none}.proj{position:relative;border-radius:.625rem;transition:background-color .3s ease}.proj.is-open{background:color-mix(in srgb,var(--tint) 5%,transparent)}.proj.is-open .proj-head:hover{background:color-mix(in srgb,var(--tint) 4%,transparent)}.proj-name{font-weight:500;letter-spacing:-.01em}.proj-tagline{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted)}.proj-plus{flex:none;width:16px;height:16px;fill:none;stroke:var(--faint);stroke-width:1.5;stroke-linecap:round}[data-projects].has-open .proj:not(.is-open) :is(.proj-head,.proj-egg){opacity:.55}[data-projects] .proj-head{transition:opacity .25s ease,background-color .15s ease,transform .12s ease}[data-projects].has-open .proj:not(.is-open) .proj-head:hover{opacity:1}.proj-panel{height:0;overflow:hidden}.proj-body{padding:.15rem .6rem .85rem calc(1.25rem + 20px);color:var(--muted);line-height:1.6}.proj-actions{display:flex;align-items:center;gap:.75rem;margin-top:.75rem}.proj-year{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}.home-psst{margin:-1.5rem 0 0 .25rem;font-size:12px;color:var(--faint)}.home.is-md{font-family:Geist Mono,ui-monospace,monospace;font-size:13px;font-variant-ligatures:none}.home.is-md .card,.home.is-md .pill{background:none;box-shadow:none}.home.is-md .card{padding:0}.home.is-md :is(.pill svg,.proj-plus,.post-arrow,.post-date){display:none}.home.is-md .home-greet{font-size:1.125rem}.home.is-md :is(.home-greet,.section-label):before,.home.is-md .pill:before,.home.is-md .row:before,.home.is-md :is(.proj-name,.post-title):before,.home.is-md :is(.proj-name,.post-title):after,.home.is-md :is(.pill,.post,.more-link):after,.home.is-md .more-link:before,.home.is-md .home-psst:before,.home.is-md .home-psst:after{color:var(--faint)}.home.is-md .home-greet:before{content:"# "}.home.is-md .section-label{font-size:13px;color:var(--fg)}.home.is-md .section-label:before{content:"## "}.home.is-md .home-links{flex-direction:column;align-items:flex-start;gap:0}.home.is-md .pill{display:block;height:auto;padding:0;font-weight:400;overflow-wrap:anywhere}.home.is-md .pill:before{content:"- ["}.home.is-md :is(.pill,.post,.more-link):after{content:"](" attr(href) ")"}.home.is-md .row{height:auto;padding:.15rem 0;flex-wrap:wrap;gap:0 .5ch}.home.is-md .row:before{content:"-"}.home.is-md .proj-egg{left:1.5ch;top:.2rem}.home.is-md .proj-name:before,.home.is-md .proj-name:after{content:"**"}.home.is-md .post{display:block;overflow-wrap:anywhere}.home.is-md .post:before{content:"- "}.home.is-md .post-title{display:inline;white-space:normal}.home.is-md .post-title:before{content:"["}.home.is-md .post-title:after{content:""}.home.is-md .more-link:before{content:"["}.home.is-md .proj-body{padding-left:2ch}.home.is-md .home-psst:before{content:"<!-- "}.home.is-md .home-psst:after{content:" -->"}.lift{--green: #7be000;--cyan: #00d9c0;--pink: #fa114f;position:fixed;left:50%;bottom:1.25rem;z-index:45;translate:-50% 0;width:min(21rem,calc(100vw - 2rem));padding:1rem 1rem 1.1rem;border-radius:1.25rem;background:var(--card);box-shadow:var(--shadow-md);cursor:pointer;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lift:focus-visible{outline:2px solid color-mix(in srgb,var(--pink) 45%,transparent);outline-offset:2px}.lift-top{display:flex;justify-content:space-between;align-items:flex-start}.lift-bar{width:9.5rem;height:auto;overflow:visible}.lift-bar .plate{transform-box:fill-box;transform-origin:center}.lift-bar .plate[hidden]{display:none}.lift-close{display:grid;place-items:center;width:1.75rem;height:1.75rem;margin:-.25rem -.25rem 0 0;border-radius:9999px;color:var(--faint);cursor:pointer;transition:background-color .15s ease,color .15s ease}.lift-close:hover{background:var(--hover);color:var(--fg)}.lift-score{display:flex;align-items:baseline;gap:.5rem;margin-top:.6rem}.lift-count{display:inline-block;font-size:2rem;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.lift-sub{font-size:13px;color:var(--muted)}.lift-track{position:relative;height:8px;margin-top:.85rem;border-radius:9999px;background:var(--hover)}.lift-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--cyan) 55%,var(--pink));transition:width .18s cubic-bezier(.2,.8,.2,1)}.lift-ghost{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--fg);opacity:.35}.lift-ghost:after{content:attr(data-label);position:absolute;top:100%;left:50%;translate:-50% 4px;font-size:11px;white-space:nowrap;color:var(--muted)}.lift-again{margin-top:1.6rem;height:1.875rem;padding:0 .85rem;border-radius:9999px;background:var(--fg);color:var(--card);font-size:13px;font-weight:500;cursor:pointer}.lift-again[hidden]{display:none}.confetti{position:fixed;z-index:60;width:6px;height:14px;border-radius:3px;pointer-events:none}.toast{position:fixed;left:50%;bottom:1.5rem;z-index:50;translate:-50% 0;padding:.5rem .9rem;border-radius:9999px;background:var(--card);box-shadow:var(--shadow-md);width:max-content;max-width:calc(100vw - 2rem);font-size:13px;font-weight:500;text-align:center;pointer-events:none}@media(max-width:420px){.proj-tagline{display:none}.proj-name{flex:1}}
