#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:4.5em;padding:1em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}@media(max-width:600px){#root{padding:1rem;text-align:left}.logo{height:3rem;padding:.5rem}.card{padding:1rem}h1{font-size:1.8rem}}.links-card{position:fixed;right:1rem;bottom:1rem;width:200px;background:#1e1e1ef2;color:#fff;border-radius:12px;box-shadow:0 8px 20px #0009;padding:.5rem;z-index:900;max-height:calc(100vh - 96px);overflow-y:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:inherit}.links-card-header{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.9rem;padding:.25rem .5rem;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:.4rem}.links-toggle{background:transparent;border:0;color:inherit;cursor:pointer;font-size:.95rem;line-height:1;padding:.15rem .35rem;border-radius:6px}.links-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.links-item a{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;padding:.25rem .35rem;border-radius:8px}.links-item img{width:24px;height:24px;object-fit:contain;filter:invert(100%) sepia(0%) saturate(0%) hue-rotate(180deg) brightness(100%)}.links-item a:hover{background:#ffffff0a}.links-label{font-size:.85rem}.links-collapsed-wrapper{position:fixed;right:1rem;bottom:1rem;display:flex;gap:.5rem;align-items:center;z-index:900}.links-card-collapsed{min-width:72px;height:40px;padding:0 12px;border-radius:20px;background:#1e1e1ef2;color:#fff;border:0;box-shadow:0 8px 20px #0009;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;cursor:pointer}.links-card-collapsed:hover{background:#ffffff0a}.replay-intro{min-width:64px;height:40px;padding:0 10px;border-radius:20px;background:#141414f2;color:#fff;border:1px solid rgba(255,255,255,.03);box-shadow:0 6px 16px #00000080;display:flex;align-items:center;justify-content:center;font-weight:600;cursor:pointer}.replay-intro:hover{background:#ffffff08}@media(max-width:520px){.links-card{right:.5rem;bottom:.5rem;width:160px}.links-item img{width:20px;height:20px}.links-label{font-size:.8rem}.links-collapsed-wrapper{right:.5rem;bottom:.5rem}.links-card-collapsed{height:36px;min-width:64px}.replay-intro{height:36px;min-width:56px}}.linktree-backdrop-mobile{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:800}.linktree-modal{width:calc(100% - 2rem);max-width:520px;background:#141414fa;border-radius:12px;padding:1rem;box-shadow:0 12px 40px #0009;max-height:calc(80vh - 40px);overflow:hidden}.linktree-list{list-style:none;margin:0;padding:.5rem 0;display:grid;gap:.6rem;max-height:70vh;overflow-y:auto}.linktree-item{opacity:0;transform:translateY(6px)}.linktree-item a{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;background:#ffffff08;border-radius:10px;color:inherit;text-decoration:none;font-weight:700;transition:transform .18s ease,box-shadow .18s ease}.linktree-item a:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 6px 18px #00000073}.linktree-item a:active{transform:translateY(0) scale(.985)}.linktree-item img{width:36px;height:36px;object-fit:contain;flex:0 0 36px}.linktree-meta{display:block}.linktree-label{font-size:1rem}.linktree-desc{font-size:.82rem;color:#ffffffb8;margin-top:.15rem}.linktree-item a,.links-item a,.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;left:50%;top:50%;width:200%;height:200%;background:#ffffff1a;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none;transition:transform .36s cubic-bezier(.2,.8,.2,1),opacity .36s ease}.ripple-effect:active:after{transform:translate(-50%,-50%) scale(1);opacity:1;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .22s ease}@keyframes linkItemIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.linktree-modal.open .linktree-item{animation:linkItemIn .36s cubic-bezier(.12,.8,.18,1) both}.linktree-modal.closing .linktree-item{animation:linkItemIn .18s ease-in both;opacity:0;transform:translateY(6px)}@media(max-width:420px){.linktree-item a{padding:.85rem .9rem}.linktree-item img{width:32px;height:32px}.linktree-label{font-size:.95rem}}@media(max-width:340px){.linktree-item a{justify-content:center;padding:.7rem}.linktree-item img{width:40px;height:40px}.linktree-item .linktree-meta{display:none}}@keyframes modalEnter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalExit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.985)}}.linktree-modal.open{animation:modalEnter .28s cubic-bezier(.16,.84,.22,1) both}.linktree-modal.closing{animation:modalExit .22s ease-in both}.linktree-modal.labels-visible .linktree-meta{display:block!important}.linktree-modal.labels-hidden .linktree-meta{display:none!important}.sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px}@media(prefers-color-scheme:dark){.linktree-modal{box-shadow:0 8px 18px #00000073}.linktree-item a:hover{box-shadow:0 4px 10px #00000059}.links-card{box-shadow:0 6px 14px #00000073}}@media(max-width:420px){.links-card{left:.5rem;right:.5rem;width:calc(100% - 1rem);bottom:.5rem;border-radius:10px;padding:.5rem}.links-collapsed-wrapper{right:.5rem;bottom:calc(.5rem + 56px)}.links-card-header{font-size:.85rem}}.resume-card{position:fixed;width:720px;max-width:calc(100% - 2rem);background:#1e1e1ef2;color:#fff;border-radius:12px;padding:.75rem;z-index:10002;font-family:inherit;opacity:0;transform:translate(-50%,-50%) scale(.9);pointer-events:none;visibility:hidden;transition:opacity .3s ease,transform .3s ease,visibility .3s ease}.resume-card{box-sizing:border-box;max-height:90vh;overflow-y:auto;padding-bottom:1rem}.resume-card.show{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto;visibility:visible}.resume-card-header{display:flex;justify-content:center;align-items:center;font-weight:700;font-size:1rem;padding:.35rem .6rem;border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:.6rem;position:relative}.close-button{position:absolute;left:10px;top:8px;background:#141414e6;color:#fff;border:0;padding:6px 12px;border-radius:6px;cursor:pointer;font-weight:700;font-size:.85rem;box-shadow:0 6px 14px #00000073}.close-button:hover{background:#ffffff08;transform:translateY(-1px)}.resume-avatar-wrapper{display:flex;justify-content:center;margin-top:.35rem}.resume-avatar{width:112px;height:112px;object-fit:cover;border-radius:50%}.lang-toggle{position:absolute;right:10px;top:8px;background:#141414e6;color:#fff;border:0;padding:6px 8px;border-radius:6px;cursor:pointer;font-weight:700;font-size:.85rem;box-shadow:0 6px 14px #00000073}.lang-toggle:hover{background:#ffffff08}.resume-content{font-size:.92rem;line-height:1.35}.resume-name{margin:0 0 6px;font-size:1.05rem}.resume-meta{font-size:.85rem;color:#ffffffc7;margin-bottom:.6rem}.resume-summary{margin:0 0 .6rem;color:#fffffff2}.resume-bullets{margin:0 0 .6rem 1rem;padding:0}.resume-bullets li{margin-bottom:.3rem}.resume-skills{font-size:.88rem;color:#fffffff2}.skill-list{margin-top:.25rem;color:#ffffffe6}.resume-card-centered{left:50%;top:50%;transform:translate(-50%,-50%)}@media(max-width:820px){.resume-card{width:560px}}@media(max-width:520px){.resume-card{width:calc(100% - 2rem);left:50%;top:50%;transform:translate(-50%,-50%)}}.resume-backdrop{position:fixed;inset:0;background:#0009;z-index:10001}@media(max-width:520px){.resume-card-centered{left:50%;top:50%}}@media(max-width:520px){.resume-avatar{width:80px;height:80px}.close-button,.lang-toggle{top:6px;padding:4px 8px;font-size:.82rem}.resume-card-header{font-size:.95rem;padding:.25rem .45rem}}.header-pg,.header-head{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;left:0;z-index:1001;width:80px;height:100%;padding:.8rem .4rem;transition:width .3s ease,transform .3s ease;max-height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#1e1e1ef2;color:#fff;border-radius:0;box-shadow:0 8px 20px #00000073}.header-pg.hidden{width:40px}.header-logo{width:48px;height:48px;border-radius:1px;align-self:center;transition:transform .3s ease}.header-title{justify-self:center;color:#fff;font-size:1.1rem;font-weight:700;align-self:center}.resume-button{margin-top:1rem;background:#1e1e1ef2;color:#fff;border:0;padding:6px 12px;border-radius:6px;cursor:pointer;font-weight:700;font-size:.85rem;transition:transform .3s ease}.header-pg.hidden .resume-button{padding:0;width:99%;height:40px;border-radius:15%;overflow:hidden}.resume-button:hover{background:#141414e6;transform:translateY(-1px)}.button-icon{width:20px;height:20px;margin-right:0;justify-self:center;filter:invert(100%) sepia(0%) saturate(0%) hue-rotate(180deg) brightness(100%)}.header-pg.hidden .header-logo{transform:scale(.7)}.button-text{transition:opacity .3s ease;transition:display .3s ease}.header-pg.hidden .button-text{opacity:0;display:none}@media(max-width:720px){.header-pg,.header-head{flex-direction:row;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;width:100%;height:auto;padding:.4rem .6rem;z-index:1001;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;border-radius:0;box-shadow:0 6px 14px #00000073;background:#1e1e1ef2}.header-logo{width:40px;height:40px}.header-title{font-size:1rem;margin-left:.6rem}.resume-button{margin-top:0;padding:6px 10px;font-size:.9rem}.header-pg.hidden{width:100%}.header-pg.hidden .header-logo{transform:scale(1)}.button-text{opacity:1;display:inline-block}}.intro-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0a0a0ad9,#000000e6);z-index:20000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.intro-card{width:min(880px,92%);max-width:900px;background:#0f0f0f;border-radius:10px;padding:1.2rem 1.4rem;box-shadow:0 12px 40px #0009,0 0 0 1px #ffffff05 inset;border:1px solid rgba(255,255,255,.03)}.intro-text{margin:0;color:#8aff7a;font-family:Courier New,Courier,monospace;font-size:1rem;line-height:1.4rem;white-space:pre-wrap}.intro-line .prompt{color:#6f8}.intro-line .content{color:#9ef79b}.intro-cursor{display:inline-block;margin-left:2px}.intro-actions{display:flex;justify-content:flex-end;margin-top:.6rem}.intro-hint{color:#9fcf9f;font-size:.85rem;align-self:center;margin-right:auto;opacity:.9}.intro-skip{background:transparent;color:#bfeec0;border:1px solid rgba(255,255,255,.04);padding:.35rem .6rem;border-radius:6px;font-family:inherit;cursor:pointer}.intro-skip:hover{background:#ffffff05}@media(max-width:640px){.intro-card{padding:.8rem 1rem}.intro-text{font-size:.9rem}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;background-image:url(/assets/bg-A3tI-j_b.png);background-repeat:no-repeat;background-position:center;background-size:cover;background-blend-mode:overlay;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}.body-background{opacity:1}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media(max-width:600px){:root{font-size:15px}body{padding:0 1rem;align-items:flex-start;min-height:100vh}h1{font-size:2em;line-height:1.15}button{padding:.45em .9em;font-size:.95em}.body-background{background-position:top;background-size:cover}}
