@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap";:root{--ink:#11110f;--paper:#fff16d;--paper-soft:#fff79d;--cyan:#32e4ff;--green:#b7ff52;--muted:#5c5a45;--line:#11110f;--white:#fffdf1;--shadow:8px 8px 0 var(--ink)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);background:var(--paper);letter-spacing:0;image-rendering:pixelated;margin:0;font-family:VT323,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:22px;overflow-x:hidden}button,input,a{font:inherit}button,a{color:inherit}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--paper-soft);border-left:2px solid var(--ink)}::-webkit-scrollbar-thumb{background:var(--ink);border:2px solid var(--paper-soft)}.px-icon{fill:currentColor;shape-rendering:crispedges;vertical-align:-.12em;flex:none;display:inline-block}.app-shell{background:linear-gradient(#11110f0d 1px, transparent 1px), linear-gradient(90deg, #11110f0d 1px, transparent 1px), var(--paper);background-size:24px 24px;grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.topbar,.experience-section{border-color:var(--ink);width:min(1550px,100vw - 48px);margin:0 auto}.topbar{border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;gap:24px;min-height:86px;display:flex}.brand{align-items:center;text-decoration:none;display:inline-flex}.brand-copy,.eyebrow,.gitroll-strip,.panel-label,.tray>p,.filter-label,.section-heading,.mono-badge,.pixel-pill,.tiny-btn{font-family:"Press Start 2P",monospace}.brand-copy{font-size:18px;line-height:1}.nav-links{align-items:center;gap:10px;display:flex}.nav-links a,.icon-btn{min-height:38px;color:var(--ink);background:var(--paper-soft);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:7px 12px;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.nav-links a:hover,.icon-btn:hover,.pixel-button:hover,.project-card:hover,.tray-btn:hover,.pixel-pill:hover,.tiny-btn:hover{box-shadow:2px 2px 0 var(--ink);background:var(--cyan);transform:translate(2px,2px)}.nav-menu{display:none}.hero{grid-template-columns:minmax(0,1fr) minmax(330px,440px);align-items:center;gap:clamp(28px,5vw,72px);width:min(1550px,100vw - 48px);margin:0 auto;padding:clamp(34px,6vw,88px) 0;display:grid}.hero-copy{min-width:0}.project-card{width:min(820px,100%);color:var(--ink);text-align:left;background:var(--cyan);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;margin-bottom:24px;padding:14px 16px;transition:transform .12s,box-shadow .12s,background .12s;display:grid}.project-card__icon{width:56px;height:56px;color:var(--paper);background:var(--ink);place-items:center;display:grid}.project-card__copy{gap:4px;min-width:0;display:grid}.project-card__copy strong,.project-card__repo{font-family:"Press Start 2P",monospace;font-size:11px;line-height:1.5}.project-card__copy small{color:var(--muted);font-size:22px}.project-card__repo{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.gitroll-strip{background:var(--paper-soft);border:3px solid var(--ink);justify-content:space-between;align-items:center;gap:12px;width:min(820px,100%);margin-bottom:36px;padding:10px 12px;font-size:10px;display:flex}.gitroll-strip a,.gitroll-strip span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.gitroll-strip a{text-decoration:none}.gitroll-strip a:hover{color:var(--cyan)}.eyebrow{background:var(--cyan);border:2px solid var(--ink);margin:0 0 18px;padding:5px 8px;font-size:10px;line-height:1.8;display:inline-block}h1{letter-spacing:0;text-wrap:balance;max-width:1020px;margin:0;font-family:"Press Start 2P",monospace;font-size:clamp(30px,5vw,70px);line-height:1.18}.intro{max-width:760px;color:var(--muted);margin:28px 0 0;font-size:clamp(24px,2.2vw,34px);line-height:1.2}.cta-row,.skill-strip{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.cta-row{margin-top:34px}.pixel-button{min-height:52px;color:var(--paper);background:var(--ink);border:3px solid var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:9px;padding:12px 16px;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex;box-shadow:6px 6px #11110f47}.loading-pips{align-items:center;gap:4px;margin-left:2px;display:inline-flex}.loading-pips i{background:currentColor;width:6px;height:6px;animation:.9s step-end infinite loading-pip}.loading-pips i:nth-child(2){animation-delay:.15s}.loading-pips i:nth-child(3){animation-delay:.3s}.pixel-button--ghost{color:var(--ink);background:var(--paper-soft)}.pixel-button--small{min-height:38px;padding:7px 11px;font-size:18px}.skill-strip{margin-top:22px}.skill-strip span{background:var(--white);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.side-panel{align-content:center;gap:18px;display:grid}.open-source-panel{border:3px solid var(--ink);min-height:330px;box-shadow:var(--shadow);background:#fffdf170;align-content:center;place-items:center;gap:18px;padding:18px;display:grid;position:relative;overflow:hidden}.open-source-panel:before{content:"";background-color:#0000;background-image:linear-gradient(90deg,#0000 48%,#11110f2e 48% 52%,#0000 52%),linear-gradient(#0000 48%,#11110f2e 48% 52%,#0000 52%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:26px 26px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:22px}.open-source-orbit{z-index:2;width:150px;height:150px;color:var(--paper);background:var(--ink);border:4px solid var(--ink);place-items:center;display:grid;position:relative;box-shadow:8px 8px #11110f38}.spark-drop{color:var(--green);animation:2.6s steps(8,end) infinite sparkle-fall;position:absolute;top:-40px}.spark-drop--one{left:22px}.spark-drop--two{animation-delay:.65s;left:66px}.spark-drop--three{animation-delay:1.3s;right:22px}.open-source-copy{z-index:2;text-align:center;gap:6px;display:grid;position:relative}.open-source-copy strong{font-family:"Press Start 2P",monospace;font-size:13px;line-height:1.45}.open-source-copy span{color:var(--muted);font-size:24px}.tray,.mini-stats{background:var(--white);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:16px}.tray>p{margin:0 0 12px;font-size:10px}.tray-btn{width:100%;color:inherit;text-align:left;background:var(--paper-soft);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:10px;padding:13px;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:grid}.tray-btn__icon{width:42px;height:42px;color:var(--paper);background:var(--ink);place-items:center;display:grid}.tray-btn__copy{gap:2px;min-width:0;display:grid}.tray-btn__copy span,.mini-stats strong{font-family:"Press Start 2P",monospace;font-size:10px;line-height:1.45}.tray-btn small,.mini-stats span{color:var(--muted);font-size:20px}.mini-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-stats div{border:2px solid var(--ink);background:var(--paper-soft);gap:6px;min-width:0;padding:9px;display:grid}.mini-stats .cache-note{background:var(--cyan);grid-column:1/-1;font-size:19px}.mini-stats div.is-loading{background:linear-gradient(90deg, var(--paper-soft), var(--white), var(--paper-soft));background-size:220% 100%;animation:1.2s steps(4,end) infinite loading-scan}.mini-stats span .loading-pips{margin-right:6px}.experience-section{padding:0 0 clamp(28px,4vw,56px)}.section-heading{border-top:3px solid var(--ink);align-items:center;gap:10px;margin-bottom:16px;padding-top:22px;font-size:10px;display:flex}.section-heading h2{font:inherit;margin:0}.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.experience-card{background:var(--white);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);grid-template-columns:auto minmax(0,1fr);gap:16px;padding:16px;display:grid}.experience-logo{width:72px;height:72px;color:var(--paper);background:var(--ink);border:3px solid var(--ink);place-items:center;font-family:"Press Start 2P",monospace;font-size:18px;display:grid}.experience-logo--ts{background:#3b82f6}.experience-logo--lab{color:var(--ink);background:var(--paper-soft)}.experience-copy{min-width:0}.experience-copy h3{margin:0 0 4px;font-family:"Press Start 2P",monospace;font-size:13px;line-height:1.45}.experience-copy p{color:var(--muted);margin:0;font-size:22px;line-height:1.1}.role-list{border-left:4px solid var(--ink);gap:10px;margin-top:14px;padding-left:12px;display:grid}.role-list div{gap:3px;display:grid}.role-list strong{font-size:26px;line-height:1}.role-list span,.experience-skills{color:var(--muted);font-size:21px}.experience-skills{margin-top:12px!important}.modal-backdrop{z-index:20;background:#11110f9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pixel-modal{background:var(--paper);border:4px solid var(--ink);width:min(980px,100%);max-height:min(86vh,900px);box-shadow:12px 12px 0 var(--cyan);flex-direction:column;display:flex}.project-modal{background:var(--paper);border:4px solid var(--ink);width:min(1180px,100vw - 32px);height:min(780px,100vh - 32px);box-shadow:12px 12px 0 var(--cyan);flex-direction:column;display:flex}.pixel-modal__bar,.resume-bar,.project-modal__bar{background:var(--ink);color:var(--paper);border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;font-family:"Press Start 2P",monospace;font-size:10px;display:flex}.project-modal__bar span,.project-actions{align-items:center;gap:10px;display:flex}.pixel-modal__bar .icon-btn{min-height:32px;color:var(--ink);background:var(--paper);padding:4px}.project-modal__bar .icon-btn{min-height:34px;color:var(--ink);background:var(--paper);padding:5px 8px}.project-frame-shell{background:var(--ink);flex:1;min-height:0}.project-frame-shell iframe{background:var(--white);border:0;width:100%;height:100%}.pixel-modal__body{padding:18px;overflow:auto}.contrib-panel{gap:16px;display:grid}.notice,.contrib-head,.filter-grid,.contrib-row,.empty{background:var(--white);border:3px solid var(--ink);padding:12px}.contrib-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-grid{gap:12px;display:grid}.filter-label{align-items:center;gap:8px;font-size:10px;display:inline-flex}.pill-group{flex-wrap:wrap;gap:8px;display:flex}.pixel-pill,.tiny-btn,.mono-badge{min-height:30px;color:var(--ink);background:var(--paper-soft);border:2px solid var(--ink);align-items:center;gap:6px;padding:6px 8px;font-size:9px;line-height:1.4;text-decoration:none;display:inline-flex}.pixel-pill,.tiny-btn{box-shadow:3px 3px 0 var(--ink);cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s}.pixel-pill.is-active,.mono-badge--strong{color:var(--paper);background:var(--ink)}.mono-badge--muted{background:var(--white)}.search-box{background:var(--paper-soft);border:3px solid var(--ink);grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:22px}.search-box input::placeholder{color:#11110f7a}.contrib-list{gap:10px;display:grid}.contrib-row{color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;text-decoration:none;transition:transform .12s,background .12s;display:grid}.contrib-row:hover{background:var(--cyan);transform:translate(4px)}.row-icon{width:34px;height:34px;color:var(--paper);background:var(--ink);place-items:center;display:grid}.row-main{gap:8px;min-width:0;display:grid}.row-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-badges{flex-wrap:wrap;gap:7px;display:flex}.row-summary{color:var(--muted);align-items:flex-start;gap:8px;font-size:20px;line-height:1.15;display:flex}.row-repo{max-width:220px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:20px;overflow:hidden}.loading-row{background:var(--white);border:3px solid var(--ink);align-items:center;gap:12px;padding:18px;display:inline-flex}.pixel-loader{background:var(--ink);width:18px;height:18px;animation:.8s step-end infinite blink}.resume-viewer{z-index:30;background:var(--paper);flex-direction:column;display:flex;position:fixed;inset:0}.resume-bar span,.resume-actions{align-items:center;gap:10px;display:flex}.resume-viewer iframe{background:var(--white);border:0;flex:1;width:100%}@keyframes blink{50%{opacity:.15}}@keyframes loading-pip{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes loading-scan{to{background-position:-220% 0}}@keyframes sparkle-fall{0%{opacity:0;transform:translateY(0)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(178px)}}@media (width<=980px){body{font-size:20px}.hero,.side-panel{grid-template-columns:1fr}.open-source-panel{min-height:240px}}@media (width<=760px){.topbar,.experience-section,.hero{width:min(100vw - 24px,1550px)}.topbar{min-height:74px}.nav-links{display:none}.nav-menu{display:inline-flex}.brand-copy{font-size:14px;display:inline}.gitroll-strip,.contrib-head{flex-direction:column;align-items:flex-start}h1{font-size:clamp(24px,9vw,38px)}.intro{font-size:23px}.pixel-button{width:100%}.mini-stats,.project-card,.search-box,.contrib-row{grid-template-columns:1fr}.project-card__repo{white-space:normal}.project-modal{width:calc(100vw - 24px);height:calc(100vh - 24px)}.experience-grid,.experience-card{grid-template-columns:1fr}.row-repo{max-width:100%}.modal-backdrop{padding:12px}}
