*{box-sizing:border-box}html,body{min-height:100%}body{position:relative;margin:0;overflow-x:hidden;overflow-y:auto;background:#010302;color:#8cff5a}body:before,body:after{position:fixed;inset:0;pointer-events:none;content:""}body:before{z-index:0;background-image:linear-gradient(rgba(140,255,90,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(140,255,90,.055) 1px,transparent 1px);background-size:260px 170px;background-position:0 -1px}body:after{z-index:1;background:radial-gradient(circle at center,transparent 40%,rgba(0,0,0,.58) 100%)}.code-rain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.code-rain--back{z-index:0;filter:blur(.35px)}.code-rain--front{z-index:1}main{position:relative;z-index:2;padding:26px 52px}h1{margin:0;color:#2f7d32;font-family:Bodoni MT,Didot,Georgia,Times New Roman,serif;font-size:clamp(4.25rem,7vw,5rem);font-weight:400;letter-spacing:-.075em;line-height:.9}.roles{display:flex;align-items:flex-start;flex-direction:row;flex-wrap:wrap;max-width:520px;row-gap:7px;margin:22px 0 0;color:#ffffffc2;font-family:Consolas,Courier New,monospace;font-size:.7rem;letter-spacing:.06em;line-height:1.25}.roles span{white-space:nowrap}.roles span:not(:last-child):after{margin:0 10px;color:#ffffff57;content:"|"}.bio{max-width:500px;margin-top:34px;color:#fff}.bio h2{margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:1rem;font-weight:600;letter-spacing:-.015em;line-height:1.35}.bio p{margin:0;color:#ffffff9e;font-family:Arial,Helvetica,sans-serif;font-size:.78rem;line-height:1.65}.bio p+p{margin-top:5px}.language-icons{display:grid;max-width:500px;grid-template-columns:repeat(7,minmax(44px,1fr));gap:8px;margin:28px 0 0;padding:0;list-style:none}.language-icons li{position:relative;display:grid;min-height:54px;place-items:center;border:1px solid rgba(255,255,255,.15);background:#ffffff06;transition:border-color .16s ease,background .16s ease,transform .16s ease}.language-icons li:after{position:absolute;bottom:calc(100% + 8px);left:50%;z-index:20;padding:6px 8px;border:1px solid rgba(255,255,255,.22);background:#0b0d0c;color:#fff;content:attr(data-label);font-family:Consolas,Courier New,monospace;font-size:.62rem;letter-spacing:.04em;line-height:1;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease;white-space:nowrap}.language-icons li:hover:after,.language-icons li:focus-visible:after{opacity:1;transform:translate(-50%)}.language-icons li:focus-visible{border-color:#ffffffb3;outline:none}.language-icons li:hover{border-color:#ffffff6b;background:#ffffff12;transform:translateY(-2px)}.language-icons img{display:block;width:28px;height:28px;object-fit:contain}.language-icons .dark-icon{filter:invert(1);opacity:.86}.skills-panel{position:absolute;top:40px;right:52px;z-index:2;width:min(780px,calc(100vw - 600px));padding:0 0 8px;background:#01030275;backdrop-filter:blur(3px)}.skills-heading{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:18px}.skills-heading h2{margin:0;color:#fff;font-family:Bodoni MT,Didot,Georgia,Times New Roman,serif;font-size:2.8rem;font-weight:400;letter-spacing:-.055em;line-height:1}.skill-tiers{border:1px solid rgba(255,255,255,.18)}.skill-tier{--tier-color: #fff;display:grid;min-height:118px;grid-template-columns:130px 1fr}.skill-tier:nth-child(1){--tier-color: #ff718c}.skill-tier:nth-child(2){--tier-color: #ffad59}.skill-tier:nth-child(3){--tier-color: #f2dc4b}.skill-tier+.skill-tier{border-top:1px solid rgba(255,255,255,.18)}.tier-rank{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:22px 24px;border-right:1px solid rgba(255,255,255,.18)}.tier-rank:before{position:absolute;top:18px;bottom:18px;left:0;width:3px;content:"";background:var(--tier-color)}.tier-rank strong{color:var(--tier-color);font-family:Bodoni MT,Didot,Georgia,Times New Roman,serif;font-size:2rem;font-weight:600;letter-spacing:-.04em;line-height:1}.tier-rank span{margin-top:9px;color:#ffffff85;font-family:Consolas,Courier New,monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}.tier-content{display:flex;justify-content:center;flex-direction:column;padding:20px 28px}.tier-content p{margin:0 0 14px;color:#ffffff94;font-family:Arial,Helvetica,sans-serif;font-size:.76rem}.skill-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.skill-tags li{padding:8px 11px;border:1px solid rgba(255,255,255,.25);color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:.76rem;font-weight:600;line-height:1;transition:border-color .16s ease,color .16s ease,background .16s ease}.skill-tier .skill-tags li:hover{border-color:var(--tier-color);background:#ffffff0a;color:var(--tier-color)}.project-table{margin-top:18px;border:1px solid rgba(255,255,255,.18)}.project-row{display:grid;min-height:72px;grid-template-columns:58px 1fr auto;align-items:center;color:#fff;text-decoration:none;transition:background .16s ease}.project-row:hover,.project-row:focus-visible{background:#ffffff0b;outline:none}.project-row+.project-row{border-top:1px solid rgba(255,255,255,.18)}.project-index{display:grid;height:100%;place-items:center;border-right:1px solid rgba(255,255,255,.18);color:#ffffff6b;font-family:Consolas,Courier New,monospace;font-size:.85rem;font-weight:600}.project-name{padding:0 22px;font-family:Arial,Helvetica,sans-serif;font-size:.84rem;font-weight:600}.project-action{padding:0 22px;color:#fff;font-family:Consolas,Courier New,monospace;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.skills-heading span,.skills-panel thead,.skills-panel td:last-child{color:#8cff5a8c;font-family:Consolas,Courier New,monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase}.skills-panel table{width:100%;border-collapse:collapse;table-layout:fixed}.skills-panel thead{text-align:left}.skills-panel thead th{padding:10px 0;border-top:1px solid rgba(140,255,90,.18);font-weight:400}.skills-panel thead th:first-child,.skills-panel tbody th{width:34%}.skills-panel thead th:nth-child(2){width:56%}.skills-panel thead th:last-child{width:10%}.skills-panel tbody tr{border-top:1px solid rgba(140,255,90,.1)}.skills-panel tbody th,.skills-panel tbody td{padding:18px 0}.skills-panel tbody th{color:#ffffffd1;font-family:Consolas,Courier New,monospace;font-size:.72rem;font-weight:400;text-align:left}.skills-panel td:last-child{padding-left:12px;text-align:right}.skill-bar{display:block;width:100%;height:2px;overflow:hidden;background:#8cff5a21}.skill-bar span{display:block;width:var(--level);height:100%;background:#8cff5a;transform:scaleX(0);transform-origin:left;animation:fill-bar .9s cubic-bezier(.22,1,.36,1) forwards}.skills-panel tbody tr:nth-child(2) .skill-bar span{animation-delay:90ms}.skills-panel tbody tr:nth-child(3) .skill-bar span{animation-delay:.18s}.skills-panel tbody tr:nth-child(4) .skill-bar span{animation-delay:.27s}@keyframes fill-bar{to{transform:scaleX(1)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){body{overflow-y:auto}main{padding:26px 52px}.skills-panel{position:relative;top:auto;right:auto;width:auto;margin:82px 28px 40px 52px}}@media(max-width:560px){.language-icons{grid-template-columns:repeat(4,minmax(44px,1fr))}.skill-tier{grid-template-columns:92px 1fr}.tier-rank{padding:18px 14px}.tier-rank strong{font-size:1.55rem}.tier-rank span{font-size:.48rem}.tier-content{padding:18px 16px}.tier-content p{line-height:1.45}.skill-tags li{padding:7px 8px;font-size:.68rem}}@media(prefers-reduced-motion:reduce){.code-rain{opacity:.45}}
