@font-face{font-family:JetBrains Mono;src:url('/assets/mono-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:JetBrains Mono;src:url('/assets/mono-600.ttf') format('truetype');font-weight:600 700;font-display:swap}
:root{color-scheme:dark;--bg:#0d0e0f;--panel:#131415;--text:#d4be98;--muted:#a49a8c;--dim:#8e8478;--border:#292b2b;--green:#b8c572;--aqua:#8fc493;--yellow:#e0b05e;--purple:#d3869b;--blue:#88bfb3}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--bg);color:var(--text);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}::selection{background:#a9b66540;color:#f5e6ca}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:5px}img{display:block;max-width:100%}.container{width:min(100%,896px);padding-inline:24px;margin-inline:auto}header{position:fixed;top:0;left:0;right:0;background:#0d0e0fec;backdrop-filter:blur(12px);border-bottom:1px solid #292b2b90;z-index:20}nav{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:53px}.brand{color:var(--green);font-weight:600;letter-spacing:.6px;font-size:14px;text-shadow:0 0 9px #b8c57225}.nav-links{display:flex;gap:23px;font-size:12px;color:var(--muted)}.nav-links a.active{color:var(--green)}.skip-link{position:fixed;left:12px;top:-70px;z-index:40;background:var(--green);color:var(--bg);padding:10px}.skip-link:focus{top:8px}.hero{padding-top:111px;padding-bottom:60px;display:grid;grid-template-columns:260px 1fr;gap:52px;align-items:center}.identity{text-align:center}.avatar-frame{position:relative;width:260px;aspect-ratio:1;border:1px solid #b8c57245;padding:8px;border-radius:3px;background:var(--panel)}.avatar-frame:before,.avatar-frame:after{position:absolute;content:'';width:20px;height:20px;border-color:var(--green);border-style:solid;z-index:2}.avatar-frame:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.avatar-frame:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.avatar-frame img{width:100%;height:100%;object-fit:cover;opacity:.9}.avatar-tag{position:absolute;bottom:12px;right:12px;background:#0d0e0fe6;border:1px solid var(--border);padding:2px 7px;font-size:10px;color:var(--green)}.identity-actions{display:flex;justify-content:center;gap:9px;margin-top:17px}.intro{position:relative;min-width:0}.command{font-size:12px;color:var(--muted);font-weight:400;margin:0}.command>span{color:var(--green);margin-right:9px}.intro .command{margin-bottom:7px}h1{font-size:29px;font-weight:600;line-height:1.3;letter-spacing:-1.2px;margin:0}.role{font-size:12px;color:var(--green);margin:9px 0 0;letter-spacing:.3px}.intro-copy{font-size:13px;color:var(--muted);line-height:1.9;margin:19px 0 12px;max-width:440px}.current{font-size:12px;color:var(--muted);margin:13px 0}.current>span{color:var(--green);margin-right:6px}.current a{color:var(--yellow)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.tags span{padding:1px 7px;border:1px solid var(--border);border-radius:2px;font-size:10px;color:var(--aqua)}.tags span:nth-child(3n+1){color:var(--yellow)}.tags span:nth-child(3n+2){color:var(--blue)}.location{font-size:10px;color:var(--muted);margin-top:17px}.location span{margin:0 6px;color:var(--dim)}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:11px;padding:7px 11px;line-height:1.6;background:var(--panel);border:1px solid var(--border);border-radius:3px;color:var(--text);transition:color .15s,border-color .15s,background .15s}.button:hover{color:var(--green);border-color:#b8c57280;background:#b8c57208}.button.small{padding:4px 11px;font-size:10px}.button.accent{color:var(--aqua);border-color:#8fc49350;background:#8fc49305}.button.accent:hover{border-color:var(--aqua);background:#8fc49312}.work-stamp{position:absolute;top:-21px;right:9px;transform:rotate(-12deg);border:3px double #b8c57285;padding:2px 7px;font-size:9px;font-weight:600;letter-spacing:1px;color:var(--green);transition:transform .2s}.work-stamp:hover{transform:rotate(0)}.status-line{border:1px solid var(--border);border-radius:3px;padding:12px 15px;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted)}.status-line i{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;margin-right:8px;vertical-align:middle}.status-right{color:var(--dim);font-size:9px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.subtle-link{font-size:10px;color:var(--muted);white-space:nowrap}main>section:not(.hero){padding-top:44px;padding-bottom:10px}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:-4px;margin-bottom:24px;font-size:11px;color:var(--border)}.filters button{padding:3px 0;border:0;background:none;color:var(--muted);font-size:11px}.filters button[aria-pressed=true]{color:var(--green)}.eyebrow{display:flex;gap:14px;align-items:center;color:var(--green);text-transform:uppercase;font-size:10px;letter-spacing:1.6px;margin:0 0 16px}.eyebrow span{height:1px;flex:1;background:var(--border)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{border:1px solid var(--border);border-radius:3px;overflow:hidden;transition:border-color .2s;background:var(--panel)}.project-card:hover{border-color:#b8c57265}.project-open{width:100%;height:100%;padding:0;text-align:left;border:0;background:none;display:flex;flex-direction:column;line-height:1.7}.project-open:focus-visible{outline-offset:-4px}.project-visual{height:158px;width:100%;padding:18px 20px;background:#101213;border-bottom:1px solid var(--border);position:relative;overflow:hidden}.window-label{display:flex;align-items:center;gap:5px;font-size:8px;letter-spacing:.5px;color:var(--dim);margin-bottom:16px}.window-label:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:9px 0 0 #e0b05e70,18px 0 0 #d3869b70;margin-right:25px}.code-preview{font-size:10px;line-height:1.95;margin:0;white-space:pre-wrap;color:var(--muted)}.code-preview .prompt{color:var(--green)}.code-preview .comment{color:var(--dim)}.code-preview .highlight{color:var(--yellow)}.project-body{padding:17px 18px;width:100%;flex:1;display:flex;flex-direction:column}.project-title{display:flex;align-items:center;justify-content:space-between;gap:7px}.project-title h3{font-size:14px;font-weight:600;margin:0}.project-arrow{color:var(--dim);font-size:16px;transition:transform .2s}.project-open:hover .project-arrow{color:var(--green);transform:translate(2px,-2px)}.project-desc{font-size:11px;color:var(--muted);margin:8px 0 15px;line-height:1.85}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:auto;font-size:9px;color:var(--blue)}.project-category{color:var(--dim);font-size:8px;border:1px solid var(--border);padding:1px 5px;border-radius:2px}.apadac-visual{display:flex;align-items:center;gap:17px;background:#111713}.apadac-logo-wrap{background:#f6f3e9;padding:12px;border-radius:4px;flex-shrink:0}.apadac-logo-wrap img{width:72px;height:72px;object-fit:contain}.apadac-visual strong{font-size:19px;letter-spacing:1px;color:var(--aqua);display:block}.apadac-visual p{font-size:9px;line-height:1.8;color:var(--muted);margin:6px 0}.timeline{padding-left:8px}.timeline article{position:relative;border-left:1px solid var(--border);padding:0 0 24px 23px}.timeline article:before{content:'';position:absolute;top:5px;left:-5px;width:9px;height:9px;background:var(--green);border:2px solid var(--bg);border-radius:50%}.timeline article:nth-child(2):before{background:var(--blue)}.timeline article:nth-child(3):before{background:var(--purple)}.timeline article:last-child{border-color:transparent;padding-bottom:0}.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.timeline h3{font-size:12px;font-weight:400;color:var(--green);margin:0}.timeline article:nth-child(2) h3{color:var(--blue)}.timeline article:nth-child(3) h3{color:var(--purple)}.timeline-head>span{font-size:9px;color:var(--dim);text-align:right}.timeline p{font-size:12px;color:var(--muted);margin:9px 0 0}.timeline p.organization{font-size:10px;color:var(--text);margin-top:4px}.section-note{font-size:11px;color:var(--muted);margin-top:-12px;margin-bottom:24px}.stack-list{margin:0}.stack-list>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid #292b2b80}.stack-list>div:last-child{border:0}.stack-list dt{font-size:10px;color:var(--green);text-transform:uppercase;letter-spacing:.6px}.stack-list dd{font-size:11px;margin:0;color:var(--muted)}.about-box{border:1px solid var(--border);border-radius:3px;padding:22px}.about-box p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 16px}.about-box p:last-child{margin:0}.about-box .about-signoff{font-size:10px}.about-signoff span{color:var(--green)}.contact-box{border:1px solid var(--border);border-radius:3px}.contact-title{display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--border);padding:11px 18px;font-size:11px}.contact-title>span{color:var(--aqua)}.contact-title strong{font-weight:400}.contact-body{padding:19px}.contact-body p{font-size:12px;color:var(--muted);margin:0 0 12px}.contact-body .button{margin-top:9px}.end-line{font-size:10px;color:var(--dim);margin:34px 0}.end-line>span{color:var(--green);margin-right:7px}footer{border-top:1px solid var(--border);padding-top:15px!important;padding-bottom:21px!important;display:flex;justify-content:space-between;gap:12px;font-size:9px;color:var(--dim)}dialog{color:var(--text);background:var(--panel);padding:0;border:1px solid #b8c57255;border-radius:4px;width:min(620px,calc(100% - 32px));max-height:85dvh;overflow:auto;box-shadow:0 20px 90px #0007}dialog::backdrop{background:#0d0e0fdf;backdrop-filter:blur(6px)}.dialog-top{position:sticky;top:0;background:var(--panel);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:10px 18px;z-index:2}.dialog-top>span{font-size:10px;color:var(--green)}.close-button{background:none;border:0;font-size:24px;color:var(--muted);line-height:1;padding:2px 6px}#dialog-content{padding:24px}#dialog-content h2{margin:0 0 7px;font-size:21px;font-weight:600;line-height:1.4}#dialog-content h3{font-size:11px;font-weight:400;color:var(--green);margin:23px 0 9px}#dialog-content p,#dialog-content li{font-size:12px;line-height:1.9;color:var(--muted)}#dialog-content ul{padding-left:18px}#dialog-content li{margin:7px 0}#dialog-content li a{color:var(--text)}#dialog-content li a:hover{color:var(--green)}.dialog-kicker{font-size:10px!important;color:var(--blue)!important;margin:0 0 20px!important}.dialog-note{font-size:10px!important;color:var(--dim)!important;border-top:1px solid var(--border);padding-top:13px;margin-top:20px}.dialog-links{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.cursor{animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}.hero{animation:appear .5s ease-out both}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}body.modal-open{overflow:hidden}
@media(max-width:760px){.hero{grid-template-columns:220px 1fr;gap:28px}.avatar-frame{width:220px}h1{font-size:25px}.work-stamp{top:-25px;right:0}.status-right{display:none}}
@media(max-width:600px){.container{padding-inline:20px}.hero{grid-template-columns:1fr;gap:35px;padding-top:94px;padding-bottom:35px}.avatar-frame{width:220px;margin:auto}.intro{max-width:440px;margin:0 auto;width:100%}.work-stamp{top:-13px;right:0;font-size:8px}.intro .command{margin-bottom:10px}h1{font-size:26px;letter-spacing:-1px}.intro-copy{font-size:13px}.project-grid{grid-template-columns:1fr;gap:16px}.project-visual{height:164px}.project-desc{font-size:12px}.nav-links{gap:15px;font-size:10px}.brand{font-size:12px}.status-line{font-size:9px;padding:11px}main>section:not(.hero){padding-top:35px}.section-head{gap:12px}.section-head .command{font-size:10px}.subtle-link{font-size:9px}.timeline-head{display:block}.timeline-head>span{display:block;text-align:left;margin-top:3px}.pr-row{gap:8px;grid-template-columns:12px 1fr auto;font-size:10px}.pr-number{font-size:8px}.stack-list>div{grid-template-columns:1fr;gap:5px}.about-box{padding:18px}.contact-body p{font-size:11px}footer{font-size:8px}#dialog-content{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* ASCII avatar: the fallback image remains available to assistive technology. */
.avatar-frame{padding:0;border:0;background:transparent;border-radius:0}
.avatar-frame:before,.avatar-frame:after{display:none}
.avatar-frame img{position:absolute;inset:0;width:100%;height:100%}
#portrait-canvas{display:block;width:100%;height:auto;position:relative;opacity:0;touch-action:pan-y}
.avatar-frame.ascii-ready img{opacity:0}
.avatar-frame.ascii-ready #portrait-canvas{opacity:1}
.avatar-hint{font-size:9px;color:var(--dim);margin:7px 0 0;letter-spacing:.2px}
.avatar-hint span{color:var(--green)}
.identity-actions{margin-top:12px}
.contribution-list{border:1px solid var(--border);border-radius:3px;padding:0 20px;background:#101213}
.contribution-item{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:21px 0;border-bottom:1px solid var(--border)}
.contribution-item:last-child{border-bottom:0}
.contribution-label{display:grid;grid-template-columns:14px 1fr;align-content:start;gap:2px 9px}
.contribution-mark{color:var(--purple);grid-row:span 2;font-size:17px;line-height:1.3}
.contribution-label h3{font-size:12px;font-weight:400;color:var(--text);margin:0;line-height:1.6}
.contribution-org{font-size:9px;color:var(--dim)}
.contribution-copy p{font-size:11px;line-height:1.85;color:var(--muted);margin:0 0 11px}
.contribution-links{display:flex;flex-wrap:wrap;gap:8px 17px;font-size:9px;color:var(--green)}
.contribution-links a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.contribution-list{padding:0 16px}.contribution-item{grid-template-columns:1fr;gap:11px;padding:18px 0}.contribution-label{grid-template-columns:14px auto 1fr;gap:0 8px;align-items:center}.contribution-mark{grid-row:auto}.contribution-org{margin-left:5px}.contribution-copy p{font-size:11px}.avatar-hint{font-size:0}.avatar-hint:before{content:'tap or move your cursor';font-size:9px}.avatar-hint span{font-size:9px;margin-left:5px}}

.education{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 0;margin:19px 0}
.about-box .education p{margin:0 0 9px;font-size:11px;color:var(--text)}
.about-box .education p:last-child{margin:0}
.education p>span{display:inline-block;min-width:36px;color:var(--green);font-size:10px}
.education small{display:block;padding-left:36px;font-size:9px;color:var(--muted);margin-top:3px}
.contact-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.contact-body .contact-actions .button{margin-top:0}
.contact-title a{overflow-wrap:anywhere}
