:root{--desktop:teal;--face:silver;--light:#dfdfdf;--highlight:#fff;--shadow:gray;--dark:#0a0a0a;--navy:navy;--text:#000;--muted:#404040;--raised:inset -1px -1px var(--dark), inset 1px 1px var(--light), inset -2px -2px var(--shadow), inset 2px 2px var(--highlight);--button:inset -1px -1px var(--dark), inset 1px 1px var(--highlight), inset -2px -2px var(--shadow), inset 2px 2px var(--light);--pressed:inset -1px -1px var(--highlight), inset 1px 1px var(--dark), inset -2px -2px var(--light), inset 2px 2px var(--shadow);--sunken:inset -1px -1px var(--highlight), inset 1px 1px var(--shadow), inset -2px -2px var(--light), inset 2px 2px var(--dark);--sunken-thin:inset -1px -1px var(--highlight), inset 1px 1px var(--shadow);--dither:repeating-conic-gradient(var(--face) 0 25%, var(--highlight) 0 50%) 0 0 / 2px 2px;--taskbar-h:30px;--font-ui:Tahoma, "MS Sans Serif", "Microsoft Sans Serif", "Segoe UI", Geneva, Verdana, sans-serif;--font-doc:"Times New Roman", Times, Georgia, serif;--font-mono:"Fixedsys", "Lucida Console", "Courier New", monospace}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--font-ui);color:var(--text);background:var(--desktop);font-size:13px}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--navy)}:focus-visible{outline:1px dotted var(--text);outline-offset:-4px}.desktop{inset:0 0 var(--taskbar-h) 0;position:fixed;overflow:hidden}.desktop-icons{flex-direction:column;gap:8px;display:flex;position:absolute;top:8px;left:4px}.window{left:var(--x);top:var(--y);width:min(var(--w), calc(100% - var(--x) - 8px));min-width:min(300px,100% - 16px);height:min(var(--h), calc(100% - var(--y) - 8px));background:var(--face);min-height:180px;box-shadow:var(--raised);flex-direction:column;gap:2px;padding:3px;display:flex;position:absolute}.window[hidden]{display:none}.window:focus{outline:none}.window.maximized{width:auto;min-width:0;height:auto;inset:0}.window.dragging{user-select:none}.titlebar{height:20px;color:var(--face);background:var(--shadow);touch-action:none;user-select:none;flex:none;align-items:center;gap:4px;padding:0 2px 0 3px;display:flex}.window.active .titlebar{color:var(--highlight);background:var(--navy)}.titlebar .pixel-icon{flex:none}.titlebar h2{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:13px;font-weight:700;overflow:hidden}.titlebar .app{font-weight:700}.controls{flex:none;display:flex}.controls button{width:16px;height:14px;color:var(--text);background:var(--face);box-shadow:var(--button);border:none;place-items:center;padding:0;display:grid}.controls button:active{box-shadow:var(--pressed)}.controls button:active svg{transform:translate(1px,1px)}.controls [data-action=close]{margin-left:2px}.controls svg{display:block}.toolbar{flex:none}.menubar{gap:2px;padding:1px 0;display:flex}.menubar span{padding:2px 6px}.address{border-bottom:1px solid var(--shadow);box-shadow:0 1px var(--highlight);align-items:center;gap:6px;padding:2px 2px 4px;display:flex}.address-path{background:var(--highlight);box-shadow:var(--sunken);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:3px 6px;overflow:hidden}.window-body{overscroll-behavior:contain;background:var(--highlight);min-height:0;box-shadow:var(--sunken);flex:1;padding:2px;overflow:auto}.statusbar{box-shadow:var(--sunken-thin);flex:none;padding:2px 6px}.window-body{scrollbar-color:var(--face) var(--light)}.window-body::-webkit-scrollbar{width:16px;height:16px}.window-body::-webkit-scrollbar-track{background:var(--dither)}.window-body::-webkit-scrollbar-thumb{background:var(--face);box-shadow:var(--button)}.window-body::-webkit-scrollbar-corner{background:var(--face)}.file-grid{flex-wrap:wrap;align-content:flex-start;gap:4px;padding:8px;display:flex}.note-body{font-family:var(--font-mono);padding:8px 12px 16px;font-size:14px;line-height:1.5}.note-body p{margin:0 0 12px}.note-body .avatar{float:right;border:1px solid var(--shadow);border-radius:0;width:112px;height:112px;margin:0 0 8px 12px}.note-body .hello{font-weight:700}.interests{margin:0 0 12px;padding:0;list-style:none}.interests li:before{content:"- " / ""}.hint{clear:both}.window.doc .window-body{padding:0}.page{max-width:760px;font-family:var(--font-doc);color:var(--text);margin:0 auto;padding:32px clamp(16px,5vw,56px) 48px;font-size:18px;line-height:1.55}.page h1,.page h2,.page h3{font-family:var(--font-ui);line-height:1.2}.page h1{margin:0 0 10px;font-size:28px}.page h2{margin:28px 0 10px;font-size:21px}.page h3{margin:20px 0 6px;font-size:17px}.page p{margin:0 0 1em}.page img{max-width:100%;height:auto}.page code{font-family:var(--font-mono);font-size:.85em}.page pre{background:var(--highlight);box-shadow:var(--sunken);padding:12px;overflow-x:auto}.page pre>code{all:unset}.page blockquote{border-left:3px solid var(--shadow);margin:0 0 1em;padding:4px 16px}.page hr{border:none;border-top:1px solid var(--shadow);border-bottom:1px solid var(--highlight)}.post-date{font-family:var(--font-ui);color:var(--muted);font-size:13px;margin:0 0 6px!important}.post-description{color:var(--muted);font-style:italic}.page .hero{border:1px solid var(--shadow);width:100%;margin:8px 0 24px;display:block}.resume header{border-bottom:2px solid var(--text);padding-bottom:12px}.resume .headline{font-family:var(--font-ui);color:var(--navy);margin:0 0 6px;font-size:15px;font-weight:700}.resume .contact{font-family:var(--font-ui);margin:0 0 12px;font-size:13px}.jobs{margin:0;padding:0;list-style:none}.jobs>li{border-bottom:1px solid var(--light);padding:14px 0 4px}.jobs>li:last-child{border-bottom:none}.jobs h3{margin:0 0 6px}.role{margin-bottom:12px}.job-title{font-family:var(--font-ui);font-size:14px;margin:0 0 4px!important}.dates{font-family:var(--font-ui);color:var(--muted);font-size:13px;font-weight:400}.jobs ul,.awards{margin:0;padding-left:1.2em}.jobs ul li{margin-bottom:2px}.skills{margin:0}.skills div{margin-bottom:4px}.skills dt{margin-right:.3em;font-weight:700;display:inline}.skills dd{margin:0;display:inline}.taskbar{z-index:10000;height:var(--taskbar-h);background:var(--face);box-shadow:inset 0 1px var(--light), inset 0 2px var(--highlight);align-items:center;gap:4px;padding:2px;display:flex;position:fixed;inset:auto 0 0}.start,.task{background:var(--face);height:24px;box-shadow:var(--button);border:none;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.start{font-weight:700}.start:active,.start[aria-expanded=true]{box-shadow:var(--pressed)}.start[aria-expanded=true]>*{transform:translate(1px,1px)}.tasks{flex:1;gap:3px;min-width:0;display:flex;overflow:hidden}.task{flex:0 160px;min-width:36px}.task[aria-pressed=true]{background:var(--dither);box-shadow:var(--pressed);font-weight:700}.task svg{flex:none;width:16px;height:16px}.task span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tray{height:24px;box-shadow:var(--sunken-thin);align-items:center;padding:0 10px;display:flex}.start-menu{left:2px;bottom:calc(var(--taskbar-h) - 2px);background:var(--face);min-width:200px;box-shadow:var(--raised);padding:3px;display:flex;position:absolute}.start-menu[hidden]{display:none}.start-banner{writing-mode:vertical-rl;color:var(--face);background:var(--shadow);padding:6px 3px;font-size:20px;font-weight:700;transform:rotate(180deg)}.start-banner b{color:var(--highlight)}.start-menu ul{flex:1;margin:0;padding:0;list-style:none}.start-menu a{color:var(--text);align-items:center;gap:10px;padding:4px 24px 4px 6px;text-decoration:none;display:flex}.start-menu a:hover,.start-menu a:focus-visible{color:var(--highlight);background:var(--navy);outline:none}.start-menu .separator{border-top:1px solid var(--shadow);border-bottom:1px solid var(--highlight);margin:3px 2px}@media (width<=720px){:root{--taskbar-h:40px}body{font-size:15px}.desktop-icons{flex-flow:wrap}.window,.window.maximized{width:auto;min-width:0;height:auto;inset:0}.titlebar{height:30px}.titlebar h2{font-size:15px}.controls .maximize{display:none}.controls button{width:26px;height:22px}.start,.task,.tray{height:32px}.task{flex-basis:40px}.task span{display:none}.page{font-size:17px}.page h1{font-size:24px}}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.file-icon[data-astro-cid-4b5gfvus]{text-align:center;flex-direction:column;align-items:center;gap:4px;width:84px;padding:4px 2px;font-size:13px;line-height:1.2;text-decoration:none;display:flex}.file-icon[data-astro-cid-4b5gfvus] .pixel-icon{flex:none}.label[data-astro-cid-4b5gfvus]{-webkit-line-clamp:3;overflow-wrap:break-word;border:1px dotted #0000;-webkit-box-orient:vertical;padding:1px 2px;display:-webkit-box;overflow:hidden}.meta[data-astro-cid-4b5gfvus]{font-size:11px}.on-desktop[data-astro-cid-4b5gfvus] .label[data-astro-cid-4b5gfvus],.on-desktop[data-astro-cid-4b5gfvus] .meta[data-astro-cid-4b5gfvus]{color:#fff}.in-folder[data-astro-cid-4b5gfvus] .label[data-astro-cid-4b5gfvus]{color:var(--text)}.in-folder[data-astro-cid-4b5gfvus] .meta[data-astro-cid-4b5gfvus]{color:var(--muted)}.file-icon[data-astro-cid-4b5gfvus]:hover .label[data-astro-cid-4b5gfvus],.file-icon[data-astro-cid-4b5gfvus]:focus-visible .label[data-astro-cid-4b5gfvus]{color:#fff;background:var(--navy)}.file-icon[data-astro-cid-4b5gfvus]:focus-visible{outline:none}.file-icon[data-astro-cid-4b5gfvus]:focus-visible .label[data-astro-cid-4b5gfvus]{border-color:#ffff80}.file-icon[data-astro-cid-4b5gfvus]:hover .pixel-icon,.file-icon[data-astro-cid-4b5gfvus]:focus-visible .pixel-icon{filter:brightness(.75)sepia()hue-rotate(190deg)saturate(3)}@media (width<=720px){.file-icon[data-astro-cid-4b5gfvus]{width:96px;font-size:15px}}
