@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');:root{--ink:#16191e;--muted:#69717c;--border:#e5e7ec;--blue:#266ce6;--pink:#ff65b1;--bg:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:white;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}.sidebar{position:fixed;left:0;top:0;bottom:0;width:254px;background:#fff;border-right:1px solid #dedfe3;display:flex;flex-direction:column;padding:32px 16px 14px;z-index:10}.identity{padding:0 9px 28px}.name{font-size:25px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.role{font-size:13px;color:#ec4fa3;margin-top:9px;font-weight:700}.role-sub{font-size:11px;color:#89919b;margin-top:5px}.sidebar nav{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:2px;padding:10px 0}.nav-link{position:relative;padding:11px 9px 11px 16px;font-weight:600;font-size:13px;transition:background .16s,color .16s;border-radius:4px}.stripe{position:absolute;left:0;top:7px;bottom:7px;width:4px;background:var(--stripe,#55c7f3)}.nav-link:nth-child(5n+2){--stripe:#ff72b7}.nav-link:nth-child(5n+3){--stripe:#66d6a3}.nav-link:nth-child(5n+4){--stripe:#ffbd57}.nav-link:nth-child(5n+5){--stripe:#a89cfb}.nav-link:hover,.nav-link.active{background:#f5f7fb;color:var(--hover-color,#1465e9)}.account-area{border-top:1px solid var(--border);padding-top:13px}.account-caption{font:10px 'IBM Plex Mono',monospace;color:#9aa2aa;margin:0 0 8px 8px}.account-trigger{border:0;background:#f7f8fa;width:100%;padding:9px;display:flex;align-items:center;gap:9px;text-align:left;border-radius:9px}.account-avatar{width:35px;height:35px;display:grid;place-items:center;background:#e6efff;color:#1765d3;border-radius:50%;font-weight:800}.account-trigger>span:nth-child(2){flex:1}.account-trigger strong,.account-trigger small{display:block;font-size:12px}.account-trigger small{color:var(--muted);font-size:10px;margin-top:3px}.account-panel{border:1px solid var(--border);padding:12px;border-radius:9px;margin-bottom:10px;max-height:50vh;overflow:auto}.account-panel strong{font-size:13px}.account-panel p,.account-panel small{font-size:11px;line-height:1.55;color:#606b78}.account-panel label{display:block;font-size:11px;margin:9px 0}.account-panel input{display:block;width:100%;padding:9px;margin-top:5px;border:1px solid #ddd;border-radius:6px;background:#f6f6f6}.account-panel button{width:100%;padding:9px;margin:5px 0;border:1px solid #ccc;border-radius:6px;background:#f5f5f5;color:#888}.main{margin-left:254px;padding:60px clamp(26px,5vw,85px) 30px;max-width:1550px}.micro,.kicker,.heading-note,.key,.source-note{font:11px 'IBM Plex Mono',monospace;color:#828b97}.micro span{color:#ff63a7}.intro{padding-bottom:48px;border-bottom:1px solid var(--border)}h1{font-size:clamp(30px,4vw,50px);letter-spacing:-2px;margin:16px 0 8px}h1 span{color:#2674e7}.intro h2{font-size:17px;letter-spacing:0;margin:0 0 18px;font-weight:600}.separator{color:#ed6eb4;padding:0 6px}.intro p,#about p,#contact p{max-width:1250px;line-height:1.8;color:#555f6c}.top-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.top-actions a{font-size:12px;font-weight:700;border:1px solid #d5dbe6;padding:11px 14px;border-radius:6px}.top-actions a:first-child{background:#eff5ff;color:#1561d0;border-color:#d6e7ff}.top-actions a:hover{color:var(--blue);border-color:var(--blue)}section:not(.intro){padding:38px 0 30px;border-bottom:1px solid var(--border)}.heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.heading h2{font:500 clamp(23px,2.4vw,31px) 'IBM Plex Mono',monospace;letter-spacing:-1px;margin:7px 0 13px}.section-desc{color:#737b86;line-height:1.7;font-size:13px;max-width:900px;margin:0 0 20px}.searchbox{display:flex;align-items:center;border:1px solid #dce3ec;border-radius:9px;padding:0 13px;margin:20px 0 18px;max-width:760px;gap:11px}.searchbox>span:first-child{font-size:25px;color:#4181e4}.searchbox input{border:0;outline:0;flex:1;min-width:0;padding:15px 0;background:transparent;color:#111}.key{font-size:9px}.tutorial-list{max-width:950px}.tutorial{display:flex;align-items:stretch;gap:10px;position:relative;padding:8px 0;line-height:1.45;font:16px 'IBM Plex Mono',monospace}.tutorial .colorline{width:5px;flex-shrink:0;background:#51c9f6}.tutorial:nth-child(6n+2) .colorline{background:#ff6262}.tutorial:nth-child(6n+3) .colorline{background:#f89ad6}.tutorial:nth-child(6n+4) .colorline{background:#ffc452}.tutorial:nth-child(6n+5) .colorline{background:#a178ff}.tutorial:nth-child(6n+6) .colorline{background:#36d97b}.tutorial>span:nth-child(2){flex:1}.tutorial small{display:block;font:11px 'DM Sans',sans-serif;color:#9a9fa8;margin-top:3px}.tutorial .arrow{color:#a5afbc}.tutorial:hover{color:var(--hover-color,#2872e5);background:#fafbfe}.websites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.website{display:flex;gap:13px;padding:18px;border:1px solid var(--border);border-radius:9px;min-width:0;transition:.2s}.website:hover{border-color:var(--hover-color,#5b9cef);box-shadow:0 7px 24px #12325c0b;transform:translateY(-2px)}.site-icon{font-size:24px;color:#3180ed}.website strong,.website small,.website .url{display:block}.website strong{font-size:15px}.website small{color:#737b86;line-height:1.5;margin:8px 0;font-size:12px}.url{font:11px 'IBM Plex Mono',monospace;color:#276de1;overflow-wrap:anywhere}.apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.app{display:flex;gap:15px;border:1px solid var(--border);border-radius:8px;padding:16px}.app-icon{flex-shrink:0;width:60px;height:60px;display:grid;place-items:center;border-radius:13px;color:#fff;font-size:27px;font-weight:700}.radio{background:linear-gradient(135deg,#3bc539,#0089e4)}.math{background:linear-gradient(135deg,#17c6d7,#2170dc)}.walkie{background:linear-gradient(135deg,#1a9d65,#24b5e9)}.seniors{background:#252b35}.scan{background:#5674c3}.app strong{font-size:14px}.app p{color:#727b86;font-size:12px;line-height:1.6;margin:7px 0}.app small{color:#4181d6;font-size:11px}.resume-entry{display:grid;grid-template-columns:1fr auto;gap:8px 18px;padding:17px 0;border-bottom:1px solid #edf0f3}.resume-entry strong,.resume-entry span{display:block}.resume-entry strong{font-size:15px}.resume-entry span,.resume-entry time,.edu span,.edu time{font-size:12px;color:#697581;margin-top:5px}.resume-entry time{white-space:nowrap}.resume-entry p{grid-column:1/-1;color:#626e7a;font-size:13px;line-height:1.7;margin:0}.source-note{margin-top:14px}.edu>div{padding:16px 0;border-bottom:1px solid #edf0f3}.edu strong,.edu span,.edu time{display:block}.edu strong{font-size:15px}.skill-rows>div{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid #edf0f3;padding:13px 0;gap:12px}.skill-rows b{font-size:13px}.skill-rows p{margin:0;font-size:13px;color:#66717e;line-height:1.6}.resources{display:flex;flex-wrap:wrap;gap:9px}.resources a,.contact-link{border:1px solid #e1e6ec;padding:10px 13px;border-radius:5px;color:#266dd7;font-size:13px}.resources a:hover,.contact-link:hover{border-color:#2675e5}footer{padding:27px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:15px;font-size:11px;color:#9198a1}.search-results{border:1px solid #d8e6f6;border-radius:8px;padding:10px;margin-bottom:12px;max-width:760px}.search-results a{display:block;padding:9px;color:#176ad6;font-size:12px}.search-results a:hover{background:#f5f8ff}.menu-toggle{display:none}@media(max-width:1000px){.websites{grid-template-columns:1fr}.apps{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:relative;width:100%;height:auto;padding:16px}.identity{padding-bottom:8px}.menu-toggle{display:block;background:white;border:1px solid #dce2e8;padding:8px;margin:4px 0;border-radius:6px}.sidebar nav{display:none;max-height:none}.sidebar nav.open{display:flex}.account-area{margin-top:10px}.main{margin:0;padding:25px 20px}.heading-note{display:none}.resume-entry{display:block}.resume-entry time{display:block}.skill-rows>div{display:block}.skill-rows p{margin-top:7px}.tutorial{font-size:13px}}
/* v3: accessible terminal typography and visible white search field */
body{font-family:'IBM Plex Mono','Courier New',monospace;font-weight:500}
.name{font-family:'IBM Plex Mono',monospace;font-size:20px;letter-spacing:-1px}
.role,.role-sub,.nav-link,.intro p,.section-desc,.website small,.resume-entry p,.skill-rows p,.app p{font-family:'IBM Plex Mono',monospace;font-weight:500}
.nav-link{font-weight:600}.intro h2{font-family:'IBM Plex Mono',monospace;font-weight:700;line-height:1.7}
.intro p{font-size:13px;line-height:1.9}.tutorial{font-weight:600}.heading h2{font-weight:700}
.searchbox{background:#fff!important;border:2px solid #9da9b8!important;box-shadow:0 0 0 3px #f3f7ff!important;color:#161616!important;min-height:62px}
.searchbox input{background:#fff!important;color:#101010!important;font:600 15px 'IBM Plex Mono',monospace!important;opacity:1!important;-webkit-text-fill-color:#101010!important}
.searchbox input::placeholder{color:#596879!important;opacity:1!important;-webkit-text-fill-color:#596879!important}
.searchbox .key{color:#405a79!important;font-weight:700}.searchbox:focus-within{border-color:#1674df!important;box-shadow:0 0 0 4px #eaf3ff!important}
.account-trigger{border:1px solid #ddd;background:#fff}.account-avatar{border:1px solid #333;background:#fff;color:#111}

/* v4: lighter, readable terminal type */
body{font-weight:400!important}
.intro p,.section-desc,.resume-entry p,.skill-rows p,.app p,.website small{font-weight:400!important}
.intro h2{font-weight:500!important}
.heading h2{font-weight:500!important}
.tutorial{font-weight:400!important}
.tutorial b,.tutorial strong{font-weight:600}
.nav-link{font-weight:500!important}
.intro .top-actions{display:none!important}
.live-clock{margin-top:12px;font:400 12px 'IBM Plex Mono','Courier New',monospace;color:#202020;letter-spacing:.1px}
.live-clock .clock-prompt{color:#7a8795}

/* v5: original white terminal style and restrained metadata */
.intro{position:relative}.intro .micro{padding-right:390px}.live-clock{position:absolute;top:0;right:0;margin:0!important;text-align:right;white-space:nowrap;font-size:11px!important}
.searchbox{border:2px solid #17191d!important;border-radius:6px!important;box-shadow:none!important;min-height:52px!important;background:#fff!important}
.searchbox input{font:400 13px 'IBM Plex Mono','Courier New',monospace!important;color:#1b1d21!important;-webkit-text-fill-color:#1b1d21!important}
.searchbox input::placeholder{color:#a0a5ae!important;-webkit-text-fill-color:#a0a5ae!important;opacity:1!important}
.searchbox .key{font:400 10px 'IBM Plex Mono',monospace!important;color:#8b939d!important}
.searchbox:focus-within{border-color:#242424!important;box-shadow:0 0 0 2px #e9edf2!important}
.tutorial{font-weight:400!important;gap:10px}.tutorial .article-date{font:400 10px 'IBM Plex Mono',monospace;color:#9aa0a9;white-space:nowrap;margin-left:auto}.tutorial .arrow{margin-left:6px}.cert-heading{padding:22px 0 5px!important;color:#555!important;font:500 12px 'IBM Plex Mono',monospace;border-bottom:0!important}
@media(max-width:1150px){.intro .micro{padding-right:0}.live-clock{position:static;text-align:left;margin-top:12px!important}.tutorial .article-date{white-space:normal;text-align:right}}
@media(max-width:700px){.tutorial{flex-wrap:wrap}.tutorial .article-date{margin-left:12px}}

/* v6: pinned slim terminal status bar, original content preserved */
.main{padding-top:0!important}
.site-statusbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:61px;padding:14px 0 12px;background:#fff;border-bottom:1px solid #dce1e7;box-shadow:0 2px 0 rgba(0,0,0,.015)}
.site-statusbar .micro{padding:0!important;white-space:normal}
.site-statusbar .live-clock{position:static!important;margin:0!important;text-align:right;white-space:nowrap;font-size:11px!important}
.intro{padding-top:28px}
.name{font-weight:400!important;letter-spacing:-.65px!important}
h1,h1 span{font-weight:400!important}
html{scroll-padding-top:83px}
section[id]{scroll-margin-top:83px}
@media(max-width:1100px){.site-statusbar{align-items:flex-start;flex-wrap:wrap;gap:5px;padding:10px 0}.site-statusbar .live-clock{text-align:left!important;width:100%;white-space:normal}}
@media(max-width:700px){.main{padding-top:0!important}.site-statusbar{min-height:0}.intro{padding-top:20px}}

/* Site information links, preserving the original white terminal layout */
.sidebar-legal{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 9px 15px;font:400 11px 'IBM Plex Mono',monospace;color:#8c939d}
.sidebar-legal a{text-decoration:underline;text-underline-offset:3px;color:#7c8590}
.sidebar-legal a:hover,.sidebar-legal a:focus-visible{color:#236fe6}
.information-page{padding-top:34px;max-width:900px}
.information-page h1{font:400 clamp(27px,3vw,39px) 'IBM Plex Mono',monospace;letter-spacing:-1px;margin:12px 0 20px}
.information-page h2{font:500 19px 'IBM Plex Mono',monospace;margin:29px 0 9px}
.information-page p{font:400 13px/1.95 'IBM Plex Mono',monospace;color:#596371;max-width:820px}
.information-page a.inline-link{color:#226de3;text-decoration:underline}
@media(max-width:700px){.sidebar-legal{padding:12px 8px}}
