@font-face{font-family:fira code;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fira-code-latin-400-normal.woff2)format('woff2'),url(/fonts/fira-code-latin-400-normal.woff)format('woff')}@font-face{font-family:fira code;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fira-code-latin-700-normal.woff2)format('woff2'),url(/fonts/fira-code-latin-700-normal.woff)format('woff')}@font-face{font-family:fira sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fira-sans-latin-400-normal.woff2)format('woff2'),url(/fonts/fira-sans-latin-400-normal.woff)format('woff')}@font-face{font-family:fira sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/fira-sans-latin-400-italic.woff2)format('woff2'),url(/fonts/fira-sans-latin-400-italic.woff)format('woff')}@font-face{font-family:fira sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fira-sans-latin-700-normal.woff2)format('woff2'),url(/fonts/fira-sans-latin-700-normal.woff)format('woff')}:root{--bg-light:#ffffff;--text-light:#000000;--bg-dark:#181818;--text-dark:#ebebeb;--cursor-light:#000000;--cursor-dark:#ffffff;--header-bg-dark:#333333;--header-bg-light:#f0f0f0;--header-bg-gradient-dark:linear-gradient(0deg, #222222, #444444);--header-bg-gradient-light:linear-gradient(0deg, #cccccc, #ffffff);--header-text-dark:#ebebeb;--header-text-light:#000000;--button-bg-gradient-hover-dark:linear-gradient(0deg, #222222, #666666);--button-bg-gradient-active-dark:linear-gradient(0deg, #666666, #222222);--button-bg-gradient-hover-light:linear-gradient(0deg, #dddddd, #ffffff);--button-bg-gradient-active-light:linear-gradient(0deg, #ffffff, #dddddd);--tooltip-bg-light:rgba(0, 0, 0, 0.5);--tooltip-bg-dark:rgba(255, 255, 255, 0.5);--tooltip-text-light:#ffffff;--tooltip-text-dark:#000000;--directory-color:#4e9a06;--symlink-color:#3465a4;--executable-color:#cc0000;--close-bg:#ff5f56;--close-bg-gradient:linear-gradient(0deg, #ff4c43, #ff9088);--minimize-bg:#ffbd2e;--minimize-bg-gradient:linear-gradient(0deg, #ffae00, #f7d885);--maximize-bg:#27c93f;--maximize-bg-gradient:linear-gradient(0deg, #18bd31, #a1ffaf);--border-dark:#666666;--border-light:#888888;--scroll-hover-dark:#b0b0b0;--scroll-hover-light:#555555;--bg-image-dark:url('/I-Know-Better-2.jpg');--bg-image-light:url('/I-Know-Better-1.jpg');--bg:var(--bg-dark);--text:var(--text-dark);--cursor:var(--cursor-dark);--border:var(--border-dark);--bg-image:var(--bg-image-dark);--header-bg:var(--header-bg-dark);--header-bg-gradient:var(--header-bg-gradient-dark);--header-text:var(--header-text-dark);--scroll-hover:var(--scroll-hover-dark);--button-bg-gradient-hover:var(--button-bg-gradient-hover-dark);--button-bg-gradient-active:var(--button-bg-gradient-active-dark);--tooltip-bg:var(--tooltip-bg-dark);--tooltip-text:var(--tooltip-text-dark)}.toggled{--bg:var(--bg-light);--text:var(--text-light);--cursor:var(--cursor-light);--border:var(--border-light);--bg-image:var(--bg-image-light);--header-bg:var(--header-bg-light);--header-bg-gradient:var(--header-bg-gradient-light);--header-text:var(--header-text-light);--scroll-hover:var(--scroll-hover-light);--button-bg-gradient-hover:var(--button-bg-gradient-hover-light);--button-bg-gradient-active:var(--button-bg-gradient-active-light);--tooltip-bg:var(--tooltip-bg-light);--tooltip-text:var(--tooltip-text-light)}@media(prefers-color-scheme:light){:root{--bg:var(--bg-light);--text:var(--text-light);--cursor:var(--cursor-light);--border:var(--border-light);--bg-image:var(--bg-image-light);--header-bg:var(--header-bg-light);--header-bg-gradient:var(--header-bg-gradient-light);--header-text:var(--header-text-light);--scroll-hover:var(--scroll-hover-light);--button-bg-gradient-hover:var(--button-bg-gradient-hover-light);--button-bg-gradient-active:var(--button-bg-gradient-active-light);--tooltip-bg:var(--tooltip-bg-light);--tooltip-text:var(--tooltip-text-light)}.toggled{--bg:var(--bg-dark);--text:var(--text-dark);--cursor:var(--cursor-dark);--border:var(--border-dark);--bg-image:var(--bg-image-dark);--header-bg:var(--header-bg-dark);--header-bg-gradient:var(--header-bg-gradient-dark);--header-text:var(--header-text-dark);--scroll-hover:var(--scroll-hover-dark);--button-bg-gradient-hover:var(--button-bg-gradient-hover-dark);--button-bg-gradient-active:var(--button-bg-gradient-active-dark);--tooltip-bg:var(--tooltip-bg-dark);--tooltip-text:var(--tooltip-text-dark)}}body{align-items:center;background-color:var(--bg);background-image:var(--bg-image);background-repeat:repeat;color:var(--text);font-family:fira sans,monospace;height:100%;justify-content:center;margin:0;min-height:100vh;overflow:hidden;padding:0;transition:background-color .3s,color .3s,background-image .3s;line-height:1.35}.menu{display:none;justify-content:center;margin-top:1rem}.menu.active{display:flex;position:fixed;flex-direction:column;flex-wrap:wrap}.menu-item{padding:1rem;margin:0}.menu-item:last-child{padding-bottom:1rem}.menu-separator{border-top:1px solid var(--border);padding:0 .5rem}.menu-item:hover,.menu-separator:hover{background:var(--header-bg-gradient);border-radius:.25rem;color:var(--header-text)}.tasks{position:fixed;top:.325rem;right:.325rem;border:0;display:flex;flex-direction:row-reverse}.start-button{background-image:url(/start-button.gif);background-repeat:no-repeat;background-size:6rem;background-position:42.5% 20%;border:none;border-radius:50%;background-color:var(--header-bg);cursor:pointer;font-family:fira code,monospace!important;transition:background-color .3s,color .3s;margin:.5rem;width:5rem;height:5rem}.start-button .start-button-icon{color:var(--header-text-dark);font-size:2rem;line-height:5rem;width:5rem;text-align:center}@supports(background-image:url('/start-button.webp')){.start-button{background-image:url(/start-button.webp)}}.window,.menu{background-color:var(--header-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 15px var(--tooltip-bg-light);box-sizing:border-box;color:var(--text)}.window{display:flex;flex-direction:column;height:80%;left:50%;overflow:hidden;position:absolute;top:calc(50%);transform:translate(-50%,-50%);width:90%}@media(max-width:768px){.window{top:50%;width:calc(100vw - 1.5rem);height:calc(100vh - 10rem)}}.window-header{align-items:center;background:var(--header-bg-gradient);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;cursor:move;display:flex;flex-shrink:0;justify-content:space-between;padding:.5rem 1rem}.window-header .buttons,.window-header .title{display:flex;gap:.5rem;flex-direction:row}.window-header .title{justify-content:center;width:100%;min-width:0}.window-header .window-title{text-align:center;color:var(--header-text);font-size:1rem;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.window-header .window-icon{text-shadow:0 .075rem .075rem var(--header-bg-dark)}body.toggled .window-header .window-icon{text-shadow:0 .075rem .075rem var(--header-bg-light)}.window-header .window-title{text-shadow:0 .075rem .075rem var(--header-bg)}.window-body{background-color:var(--bg);flex-grow:1;height:calc(100% - 2.5rem);overflow-y:auto;overflow-x:hidden;padding:1rem}.window.image .window-body{overflow:auto;padding:0;background-color:#111;display:flex;align-items:flex-start;justify-content:center}.window.image img{max-width:100%;height:auto;display:block;cursor:zoom-in}.window-status-bar{background-color:var(--header-bg);border-top:1px solid var(--border);color:var(--header-text);flex-shrink:0;line-height:1.5rem;padding-left:.4rem;text-align:left}.window-header .button{border-radius:50%;box-shadow:0 1px 2px var(--header-bg-dark),0 -1px 1px var(--bg-light);cursor:pointer;height:1rem;width:1rem}body.toggled .window-header .button{box-shadow:0 1px 2px var(--header-bg-light),0 -1px 1px var(--bg-dark)}.close{background:var(--close-bg-gradient)}.close:active{background:var(--close-bg)}.minimize{background:var(--minimize-bg-gradient)}.minimize:active{background:var(--minimize-bg)}.maximize{background:var(--maximize-bg-gradient)}.maximize:active{background:var(--maximize-bg)}div::-webkit-scrollbar{background-color:var(--header-bg);border-left:1px solid var(--border);border-top:1px solid var(--border);opacity:.5;width:1.5rem;height:1.5rem}div::-webkit-scrollbar-thumb{background-color:var(--border)}div::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-hover)}div::-webkit-scrollbar-button{display:none}div::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:initial}div::-webkit-scrollbar-corner{background-color:var(--header-bg)}.grippy{background:repeating-linear-gradient( 135deg,transparent,transparent .25rem,var(--border) .25rem,var(--border) .35rem );border-left:1px solid var(--border);bottom:0;content:'';cursor:nwse-resize;height:1.5rem;position:absolute;right:-1px;width:1.5rem;z-index:10}.window.minimized .grippy,.window.maximized .grippy,.window.closed .grippy,.window.shaded .grippy{display:none}.blink{border:1px solid var(--cursor);background-color:initial;animation:none}.front .blink{border:none;animation:blink 1s steps(1,start)infinite}@keyframes blink{0%,100%{background-color:var(--bg)}50%{background-color:var(--cursor)}}.window.shaded{height:2.5rem!important}.window.maximized{width:100%!important;height:100%!important;top:0!important;left:0!important;transform:none!important;position:fixed!important;box-sizing:border-box;border-radius:0;border:0}.window.minimized{background:0 0;border:0;border-radius:5px;position:static!important;display:block;top:calc(100vh - 4.5rem)!important;bottom:1rem!important;left:1rem!important;width:5rem;height:5rem;box-shadow:none;color:var(--header-text);cursor:pointer;padding:.5rem 1rem;transform:none!important;text-align:center;padding:0;margin:.5rem}.window.minimized:hover{overflow:visible}.window.minimized .window-header{padding:0;background:0 0;cursor:inherit;border:0;flex-direction:column;height:5rem}.window.minimized .title{flex-direction:column}.window.minimized .window-title{overflow:visible;white-space:normal;text-overflow:unset}.window.minimized .window-icon{font-size:3.5rem;text-align:center;text-shadow:0 .325rem .325rem var(--header-bg-dark)!important;line-height:4.85rem}body.toggled .window.minimized .window-icon{text-shadow:0 .325rem .325rem rgba(0,0,0,.25)!important}.window.minimized:hover{background-color:var(--header-bg);background:var(--header-bg-gradient);border:1px solid var(--border);margin:calc(.5rem - 1px).5rem}.window.minimized:hover .window-title{background-color:var(--tooltip-bg);border-radius:.25rem;margin-top:-5rem;color:var(--tooltip-text);width:fit-content;block-size:fit-content;padding:.25rem .5rem;margin:-2.75rem auto;text-shadow:none}body.toggled .window.minimized:hover .window-title{text-shadow:none}.window.minimized .window-body,.window.minimized .window-status-bar,.window.minimized .buttons{display:none}header{margin-bottom:2rem;text-align:left}header h1{font-size:2rem;margin:0 0 .75rem}header p{font-size:1rem;margin:.5rem 0 0}section{margin-bottom:1.75rem}section:last-child{margin-bottom:0}section h2{border-bottom:1px solid var(--text);font-size:1.5rem;padding-top:0;margin-top:0;margin-bottom:1rem;padding-bottom:.5rem}section p{margin:.5rem 0}footer{margin-top:auto;padding-bottom:1rem;text-align:center;font-size:.9rem}.icon{height:1em}.directory{color:var(--directory-color)}.symlink,a{color:var(--symlink-color)}a,.nowrap{white-space:nowrap}a:hover{background:var(--symlink-color);border-radius:.25rem;color:var(--bg);margin:0 -.25rem;padding:0 .25rem;text-decoration:none}a img{border:1px solid var(--symlink-color)}a:hover img{border:.5rem solid var(--symlink-color);margin:calc(-.5rem + 1px)}a.no-text:hover{background:0 0}.executable{color:var(--executable-color)}.blink::after{color:currentColor;content:' ';display:inline-block;height:1em;vertical-align:middle;width:1ch}.keywords{display:none}h1,h2,h3,h4,h5,h6{font-family:fira code,monospace!important}@media print{*{float:none!important;position:static!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important;-webkit-font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"hlig" 0!important;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"hlig" 0!important}body{overflow:auto!important}.keywords{display:inline!important;color:#fff!important;font-size:.1px!important}.window-body,.front,#resume-container{display:block!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;position:relative!important}article{page-break-before:auto!important;page-break-after:auto!important;page-break-inside:avoid!important}body,p,#resume-container a{color:#000!important;font-size:9.4pt!important}#resume-container a{text-decoration:none!important}span{color:#000!important}.window-body{background-color:#fff!important}.window,.window-header,.window-status-bar,.menu,.start-button,.grippy{display:none!important}.front{all:unset!important}.front{display:block!important;width:100%;height:auto;margin:0;padding:0;position:static}h1{font-size:1.25rem!important}h2{font-size:1rem!important}section h2{border-bottom:1px solid #000!important}h3{font-size:.9rem!important;line-height:1.1rem!important}h4{font-size:.8rem!important;line-height:.9rem!important}h3+p.date,h4+p.date{margin:1rem 0!important}p.summary,ul{clear:both}h4{clear:left}.page,.page-break{break-after:page}div.print-sidebar{width:50vw!important;position:absolute!important;bottom:2.5rem!important;right:0!important}div.print-sidebar section h2,div.print-sidebar section h3,div.print-sidebar section p,div.print-sidebar section li{text-align:center!important}}.resume-content h2{text-align:center}.resume-content h3{margin-bottom:0}.resume-content p:not(.date){clear:both}@media(max-width:768px){.resume-content p.date{margin-top:0}}dl.skills-grid{display:grid;grid-template-columns:115px 1fr;gap:3px 10px}dl.skills-grid dt{font-weight:600}dl.skills-grid dd{margin:0}.center{text-align:center!important}span.location{font-weight:400;white-space:nowrap}span.location::before{content:'📍'}p.date{margin:-1rem 0 1.3rem;white-space:nowrap}@media(min-width:769px){h3:has(+p.date),h4:has(+p.date){float:left}h2+p.date,h3+p.date,h4+p.date{float:right;text-align:right;clear:inline-end}h3+p.date,h4+p.date{margin:1.3rem 0}p.summary,ul{clear:both}h4{clear:left}}.nav-links{display:flex;flex-wrap:wrap;margin:-1rem -1rem 1rem;padding:.15rem .25rem;background:var(--header-bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.nav-links span{display:contents}.nav-links a{display:inline-block;padding:.15rem .5rem;color:var(--header-text);text-decoration:none;white-space:nowrap;background:0 0;border-radius:0;margin:0;font-size:.9rem}.nav-links a:hover{background:var(--header-bg-gradient);color:var(--header-text);border-radius:.2rem;margin:0;padding:.15rem .5rem}.writings-menubar{display:flex;flex-wrap:wrap;margin:-1rem -1rem 1rem;padding:.15rem .25rem;background:var(--header-bg);border-bottom:1px solid var(--border);position:relative;z-index:10}.writings-menu-item{position:relative}.writings-menu-item>span{display:inline-block;padding:.15rem .5rem;color:var(--header-text);font-size:.9rem;cursor:default;border-radius:.2rem;white-space:nowrap;user-select:none;text-transform:capitalize}.writings-menu-item:hover>span,.writings-menu-item.open>span{background:var(--header-bg-gradient)}.writings-dropdown{display:none;position:absolute;top:100%;left:0;min-width:16rem;background:var(--header-bg);border:1px solid var(--border);border-radius:0 .25rem .25rem .25rem;list-style:none;margin:0;padding:.2rem 0;z-index:100;box-shadow:2px 4px 8px rgba(0,0,0,.3)}.writings-menu-item.open .writings-dropdown{display:block}.writings-dropdown li a{display:block;padding:.3rem .75rem;color:var(--header-text);text-decoration:none;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:0 0;margin:0;border-radius:0}.writings-dropdown li a:hover{background:var(--header-bg-gradient);color:var(--header-text);border-radius:0;margin:0;padding:.3rem .75rem}.post-content img{float:right;max-width:40%;height:auto;margin:0 0 1rem 1.25rem;border-radius:.25rem;cursor:zoom-in}.feature-image{float:right;max-width:40%;height:auto;margin:0 0 1rem 1.25rem;border-radius:.25rem;cursor:zoom-in}.writings-list{display:flex;flex-direction:column;gap:0}.writing-entry{padding:1.5rem 0;border-bottom:1px solid var(--border)}.writing-entry:last-child{border-bottom:none}.writing-entry h2{margin:0 0 .5rem;font-size:1.25rem}.writing-entry h2 a{text-decoration:none}.writing-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.8rem;opacity:.7}.category{background:var(--header-bg);border:1px solid var(--border);border-radius:.25rem;padding:.05rem .35rem;font-size:.75rem;text-transform:lowercase}.writing-excerpt{margin:0;font-size:.95rem;opacity:.85;line-height:1.6}#window-chat .window-body{margin:0;padding:0}#chat-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}#chat-messages{flex:1;overflow-y:auto;padding:.75rem;border-bottom:1px solid var(--border)}#chat-messages.users-visible{margin-right:var(--users-div-width,0px)}.info{font-style:italic;opacity:.6}.timestamp{color:var(--border)}.from-admin .sender,.from-admin .message{background-color:var(--header-bg);font-weight:700}.user.admin::before,.from-admin .user::before{content:"•";color:#90ee90;margin-right:.25rem}.user.you::before{content:"•";color:#ff0;margin-right:.25rem}.user.target{font-weight:700}#chat-messages:empty::before{content:"No messages yet. Be the first to say something!";font-style:italic}#chat-options{display:flex;padding:.75rem;justify-content:space-evenly;justify-items:stretch}#chat-options *{flex-grow:1;min-width:1px}#chat-options>*:last-child{margin-right:0}input,textarea,button{font-family:inherit;font-size:inherit;color:inherit;background-color:inherit;border:none;outline:none}input,textarea{margin-right:.75rem;padding:.325rem;border:1px solid var(--border);border-radius:.325rem;color:var(--text);background-color:var(--bg)}#chat-submit{display:flex;padding:.75rem;border-bottom:1px solid var(--border)}#chat-submit textarea{width:100%;min-height:15vh}#chat-submit textarea.waiting{background-image:url(/start-button.gif);background-size:5rem;background-repeat:no-repeat;background-position:50%}@supports(background-image:url('/start-button.webp')){#chat-submit textarea.waiting{background-image:url(/start-button.webp)}}#chat-messages .waiting span{display:none}#chat-messages .waiting::after{content:"Sending...";font-style:italic}#chat-users{height:100%;float:right;width:fit-content;padding-left:.75rem;border-left:1px solid var(--text);overflow-y:auto;display:none;position:fixed;right:0;max-height:calc(var(--users-div-height,100px) - .8rem);border-bottom:1px solid var(--border)}#chat-users.visible{display:block}.user:hover{background-color:var(--scroll-hover)}button{padding:.325rem 1rem;background-color:var(--header-bg);background:var(--header-bg-gradient);color:var(--header-text);border:1px solid var(--border);border-radius:.325rem;cursor:pointer}button:hover{background:var(--button-bg-gradient-hover)}button:active{background:var(--button-bg-gradient-active)}#chat-container button:hover{background-color:var(--scroll-hover)}.post-content p,.post-content li,.writing-excerpt,section p{line-height:1.7}.post-content h2,.post-content h3,.post-content h4{margin-top:2rem;margin-bottom:.5rem}.post-content h2{font-size:1.35rem;border-bottom:1px solid var(--border);padding-bottom:.35rem}.post-content h3{font-size:1.1rem}.post-content h4{font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75}.post-content p{margin:.85rem 0}.post-content p:first-child{margin-top:0}.post-content code,.window-body code{font-family:fira code,monospace;font-size:.875em;background-color:var(--header-bg);border:1px solid var(--border);border-radius:.2rem;padding:.1em .35em;white-space:nowrap}.post-content pre,.window-body pre{background-color:var(--header-bg);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:.35rem;margin:1.25rem 0;overflow-x:auto;padding:1rem 1.25rem;line-height:1.5}.post-content pre code,.window-body pre code{background:0 0;border:none;border-radius:0;font-size:.875rem;padding:0;white-space:pre}.post-content blockquote{border-left:3px solid var(--symlink-color);background-color:var(--header-bg);margin:1.25rem 0;padding:.75rem 1rem .75rem 1.25rem;border-radius:0 .25rem .25rem 0;font-style:italic;opacity:.9}.post-content blockquote p{margin:0;line-height:1.6}.post-content blockquote p+p{margin-top:.5rem}.post header p{margin:.25rem 0 1rem}.post header time{font-family:fira code,monospace;font-size:.8rem;color:var(--border);letter-spacing:.05em}.writing-meta time{font-family:fira code,monospace;font-size:.8rem;letter-spacing:.04em}header h2{font-family:fira sans,sans-serif;font-size:1rem;font-weight:400;color:var(--border);margin:.15rem 0 0}.post-content hr,.window-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.post-content ul,.post-content ol{margin:.75rem 0;line-height:1.65}.post-content ul{list-style:none;padding-left:1.25rem}.post-content ul li::before{content:'–';color:var(--border);display:inline-block;width:1.25rem;margin-left:-1.25rem}.post-content ol{padding-left:1.5rem}.post-content li{margin-bottom:.3rem}.post-content li:last-child{margin-bottom:0}#desktop-select{display:none;position:fixed;pointer-events:none;border:1px solid var(--symlink-color);background:color-mix(in srgb,var(--symlink-color) 20%,transparent);z-index:9999}.window.desktop-selected{outline:1px solid var(--symlink-color);outline-offset:1px}@media print{body{background-image:none;background-color:initial}#tasks,.menu{display:none}h3:has(+p.date),h4:has(+p.date),h3:has(+h4){break-after:avoid}h3+h4{break-before:avoid}p.date{break-before:avoid;break-after:avoid}p.summary{break-before:avoid;break-after:avoid}ul{break-before:avoid}.job-header{break-after:avoid}.job-header+ul{break-before:avoid}.resume-content h3:has(+p.date),.resume-content h4:has(+p.date){float:left!important}.resume-content h3+p.date,.resume-content h4+p.date{float:right!important;text-align:right;margin:0}.resume-content h3,.resume-content h4,.resume-content p.date{break-after:avoid}.resume-content ul{break-before:avoid;break-inside:avoid}.resume-content li{break-inside:avoid}}