:root{--border-color: #292828;--border-shadow: rgba(0, 0, 0, .2);--border-size-top: 30px;--border-size-bottom: 50px;--border-size-side: 30px;--background-color: #fff;--text-color: #000;--window-bg: var(--background-color, #fff);--window-fg: var(--text-color, #000);--window-border: var(--border-color, #292828);--window-radius: 3px;--window-titlebar-bg: var(--border-color, #292828);--window-titlebar-fg: #eaeaea;--window-shadow: 0 10px 30px rgba(0,0,0,.35);--window-titlebar-h: 34px;--taskbar-size: 48px;--blog-bg: rgb(51, 51, 51);--blog-sidebar: rgb(27, 27, 27);--blog-button-no-select: rgba(0, 0, 0, .5);--blog-sidebar-width: 300px;--blog-brand-font: "Helvetica";--blog-brand-size: 50px;--blog-text-font: "Helvetica";--logs-bg: var(--blog-bg, #0f0f13);--logs-text-font: var(--blog-text-font, ui-sans-serif, system-ui, Segoe UI, Roboto, Inter, Arial);--logs-brand-font: var(--blog-brand-font, "Segoe UI", Roboto, Inter, Arial);--logs-button-no-select: var(--blog-button-no-select, #2ecb996b);--logs-accent-teal: #2ecb9a;--logs-accent-red: #d94e4e;--logs-accent-yellow: #def76e;--logs-sidebar-width: 260px}@font-face{font-family:PressStart2P;src:url(/fonts/PressStart2P.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}html,body{height:100%}body{margin:0;background:var(--background-color);color:var(--text-color)}*::-webkit-scrollbar{height:20px;width:20px}*::-webkit-scrollbar-track{border-radius:0;background-color:#fff;border:2px solid #717171}*::-webkit-scrollbar-track:hover{background-color:#fff}*::-webkit-scrollbar-track:active{background-color:#fff}*::-webkit-scrollbar-thumb{border-radius:0;background-color:#2b53c3}*::-webkit-scrollbar-thumb:hover{background-color:#5072d1}*::-webkit-scrollbar-thumb:active{background-color:#22439e}.monitor{z-index:99;width:100%;height:100%;display:flex;flex-flow:column;overflow:hidden;pointer-events:none}.monitor__top,.monitor__bottom,.monitor__left,.monitor__right{position:relative;display:flex;align-items:center;justify-content:center;pointer-events:none}.monitor__top{z-index:2;flex:0 0 var(--border-size-top);background:var(--border-color);box-shadow:0 0 4px 8px var(--border-shadow)}.monitor__bottom{z-index:2;flex:0 0 var(--border-size-bottom);background:var(--border-color);box-shadow:0 0 4px 8px var(--border-shadow)}.monitor__left{z-index:99;flex:0 0 var(--border-size-side);background:var(--border-color);box-shadow:15px 0 4px -10px var(--border-shadow)}.monitor__right{z-index:99;flex:0 0 var(--border-size-side);background:var(--border-color);box-shadow:-15px 0 4px -10px var(--border-shadow)}.monitor__middle{flex:1 1 auto;display:flex;min-height:0}.monitor__content{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;background:transparent;pointer-events:all}.monitor__logo{height:80%;object-fit:contain}@media only screen and (max-width: 600px){.monitor__left,.monitor__right{display:none}}.screen{z-index:1;position:relative;width:100%;height:100%;background:#000;overflow:hidden;pointer-events:all}.screen__wallpaper{z-index:-1;position:absolute;inset:0;width:100%;height:100%;object-position:center;user-select:none;pointer-events:none}.screen--cover .screen__wallpaper{object-fit:cover}.screen--contain .screen__wallpaper{object-fit:contain;background:#000}.screen__overlay{z-index:10;position:relative;width:100%;height:100%}.taskbar{z-index:9999999;position:absolute;left:0;right:0;bottom:0;height:var(--taskbar-size);max-width:100%;font-family:url(/_astro/PressStart2P.DogiNJoF.ttf);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10 0px;background:#09a590;backdrop-filter:blur(4px);border-top:4px solid rgb(0,0,0);pointer-events:auto;user-select:none}.taskbar__left,.taskbar__right{display:flex;align-items:center;gap:10px;height:100%}.taskbar__left{flex-grow:1}.taskbar__apps{display:flex;align-items:center;gap:6px;min-width:0;flex-grow:1;overflow-x:auto}.taskbar__start{appearance:none;height:var(--taskbar-size);padding:0 10px;border-right:3px solid black;background-color:#fff;display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;cursor:pointer;gap:5px;user-select:none}.taskbar__start img{height:90%;width:auto;object-fit:contain;image-rendering:pixelated}.taskbar__start:hover{background-color:#a8f8ec}.taskbar__start:active{background-color:#71c4b9}.taskbar__start-text{font-family:PressStart2P}.taskbar__icon{appearance:none;border:none;background:transparent;padding:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;gap:3px;transition:75ms}.taskbar__icontext{width:0;transition:75ms}.taskbar__icontext span{font-family:PressStart2P;display:none}.taskbar__icon:hover{background:#dd7272;transition:75ms;border:3px solid rgb(202,96,96)}.taskbar__icon.is-top .taskbar__icontext{width:auto;transition:75ms}.taskbar__icon.is-top .taskbar__icontext span{display:block}.taskbar__icon:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.taskbar__iconimg{width:22px;height:22px;object-fit:contain;display:block;image-rendering:smooth}.taskbar__icon:hover .taskbar__iconimg{width:26px;height:26px}.taskbar__dot{width:22px;height:22px;border-radius:999px;background:#000;box-shadow:0 0 0 1px #ffffff1f inset}.taskbar__icon:after{content:"";position:absolute;left:8px;right:8px;bottom:3px;height:3px;background:#eaf9f6f2;border-radius:2px;transform:scaleX(.6);opacity:0;transition:opacity .15s ease,transform .15s ease}.taskbar__icon.is-active:after{opacity:1;transform:scaleX(1)}.taskbar__icon.is-top{background:#dd7272;border:3px solid rgb(202,96,96)}.taskbar__icon.is-top:hover{background:#f7a0a0}.taskbar__clock{background-color:#000;padding:0 10px;color:#fff;font-family:PressStart2P;font-variant-numeric:tabular-nums;height:100%;display:flex;align-items:center;user-select:none}.desktop{position:absolute;inset:0;padding:16px;pointer-events:none;user-select:none}.desktop__grid{pointer-events:auto;margin:0;padding:0;list-style:none;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));align-content:start;max-width:520px}.desktop__icon{appearance:none;border:1px solid transparent;background:transparent;color:#eaf9f6;width:100%;padding:8px 6px;border-radius:10px;cursor:default;display:grid;justify-items:center;gap:6px}.desktop__icon:hover{background:#ffffff0f;border-color:#ffffff1f}.desktop__icon.is-selected{background:#ffffff1f;border-color:#ffffff40}.desktop__img{width:48px;height:48px;object-fit:contain;image-rendering:smooth;filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}.desktop__dot{width:42px;height:42px;border-radius:50%;background:#000;box-shadow:0 0 0 1px #fff3 inset}.desktop__label{text-align:center;line-height:1.2;font-size:12px;word-break:break-word;font-family:PressStart2P;background-color:#eeeee0;color:#000;border-radius:8px;padding:5px 10px}.win{transition:75ms;position:absolute;z-index:2;background:var(--window-bg);color:var(--window-fg);border:8px ridge rgb(108,191,240);box-shadow:var(--window-shadow);overflow:hidden;pointer-events:all;display:flex;flex-flow:column nowrap}.win:focus{outline:none}.win.win--maximized{transition:.1s;left:0!important;top:0!important;width:calc(100% - 15px)!important;height:calc(100% - var(--taskbar-size) - 20px)!important;border-radius:0}.win.win--minimized{transition:.1s;display:none}.win__titlebar{z-index:1;display:flex;align-items:center;justify-content:space-between;height:var(--window-titlebar-h);padding:0 10px;background:#2b53c3;color:var(--window-titlebar-fg);font-size:13px;letter-spacing:.02em;cursor:grab;user-select:none;border-bottom:8px ridge rgb(108,191,240)}.win__title{font-family:PressStart2P;color:#e9ecbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.win__title{display:inline-flex;align-items:center;gap:8px}.win__titleicon{width:16px;height:16px;object-fit:contain;image-rendering:smooth}.win__controls{display:flex;gap:6px}.win__btn{appearance:none;border:4px ridge rgba(255,255,255,.15);background:#00000026;color:#eaeaea;width:100%;height:100%;cursor:pointer}.win__btn:hover{background:#ffffff14}.win__content{top:var(--window-titlebar-h + 8px);left:0;right:0;height:100%;overflow:auto;padding:0}.win.win--minimized .win__content{display:none}.win__handle{position:absolute;z-index:3;user-select:none}.win__handle--n,.win__handle--s{left:4px;right:4px;height:8px}.win__handle--n{top:-2px;cursor:ns-resize}.win__handle--s{bottom:-2px;cursor:ns-resize}.win__handle--e,.win__handle--w{top:4px;bottom:4px;width:8px}.win__handle--e{right:-2px;cursor:ew-resize}.win__handle--w{left:-2px;cursor:ew-resize}.win__handle--ne,.win__handle--nw,.win__handle--se,.win__handle--sw{width:12px;height:12px}.win__handle--ne{top:-2px;right:-2px;cursor:nesw-resize}.win__handle--nw{top:-2px;left:-2px;cursor:nwse-resize}.win__handle--se{bottom:-2px;right:-2px;cursor:nwse-resize}.win__handle--sw{bottom:-2px;left:-2px;cursor:nesw-resize}body.is-user-dragging{user-select:none;cursor:grabbing}.blog-app{background-color:var(--blog-bg);margin:auto;height:100%;width:100%}.blog-togglebar{z-index:99;position:absolute;top:calc(13px + var(--window-titlebar-h));left:5px;transition:.15s}.blog-togglebar.is--open{left:calc(20px + var(--blog-sidebar-width));transition:.15s}.blog-toggle{background-color:var(--blog-button-no-select);border-radius:100%;border-color:#1d1d1db2;padding:10px;color:#fff}.blog-toggle:hover{background-color:#dd5252b2;cursor:pointer}.blog-app__content{width:100%;height:100%;display:flex;flex-flow:row nowrap;margin:0}.blog-sidebar{width:var(--blog-sidebar-width);transition:.15s;display:flex;flex-flow:column nowrap}.blog-sidebar:before{content:"";position:absolute;z-index:0;inset:0;width:var(--blog-sidebar-width);height:100%;clip-path:polygon(0 0,100% 0,57% 100%,0% 100%);background-color:var(--blog-sidebar);transition:.15s}.blog-sidebar.is--closed:before{width:0;transition:.15s}.blog-sidebar.is--closed{width:0;transition:.15s}.blog-sidebar.is--closed *{display:none}.blog-brand{z-index:1;height:200px;display:flex;align-items:center;text-align:center;justify-content:center}.blog-brand__title{position:relative;font-family:var(--blog-brand-font);font-size:var(--blog-brand-size);font-style:italic;font-weight:700;color:#fff;letter-spacing:3px;z-index:1}.blog-brand__title:before{content:attr(data-text);position:absolute;top:0;left:-2px;width:100%;color:#2ecb9a;overflow:hidden;animation:noise-before 4s infinite linear alternate-reverse}.blog-brand__title:after{content:attr(data-text);position:absolute;top:0;left:2px;width:100%;color:#d94e4e;overflow:hidden;animation:noise-after 2s infinite linear alternate-reverse}.blog-nav{z-index:1;flex-grow:1;display:flex;flex-flow:column nowrap;align-items:flex-start;gap:10px}.blog-nav__item{background-color:#2ecb996b;padding:10px 20px;width:80%;border-color:transparent;transition:75ms}.blog-nav__item:hover{background-color:#dd5252b2;padding:20px;width:100%;cursor:pointer;transition:75ms}.blog-nav__item span{font-family:var(--blog-brand-font);font-size:20px}.blog-main{margin:0;flex-grow:1;height:100%}.blog-home{display:flex;flex-flow:column nowrap;align-items:center;justify-content:flex-start;width:100%;height:100%;overflow-x:auto;overflow:auto;background-color:var(--blog-bg);font-family:var(--blog-text-font)}.blog-title{font-size:40px;color:#fff}.blog-hero{height:300px;width:400px;display:flex;flex-flow:column nowrap;align-items:center;justify-content:flex-start;text-align:center;gap:5px}.blog-card__preview{border-radius:10px;border:2px solid #2ecb9a;height:200px;width:400px;margin-bottom:5px}.blog-card__preview-img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.blog-card__preview:hover{cursor:pointer;border:2px solid #dd5252b2}.blog-card__title{color:#fff;font-weight:700;font-style:italic}.blog-card__meta{color:#fff;font-size:14px;text-wrap:wrap}.blog-home hr,.blog-list hr{width:95%;height:1px;background-image:linear-gradient(to right,#0000,#000000bf,#0000)}.blog-featured__title{color:#fff;font-size:20px;margin-top:30px}.blog-featured{color:#fff;margin-top:5px;flex-grow:1;display:flex;flex-flow:row wrap;gap:2%;justify-content:center;width:75%}.blog-featured__card{width:400px;display:flex;flex-flow:column nowrap;align-items:center;text-align:center}.blog-list{display:flex;flex-flow:column nowrap;align-items:center;justify-content:flex-start;width:100%;height:100%;overflow-x:auto;overflow:auto;background-color:var(--blog-bg);font-family:var(--blog-text-font)}.blog-list__head{width:100%;display:flex;flex-flow:column;align-items:center}.blog-tags{flex-grow:1;width:75%;display:flex;flex-flow:row wrap;justify-content:center;align-items:center;gap:10px}.blog-tag{padding:10px 20px;border-radius:5px;background-color:#2ecb9a;border-color:transparent;transition:75ms}.blog-tag.is-active{border:2px solid #def76e}.blog-tag:hover{background-color:#d94e4e;padding:15px 30px;cursor:pointer;transition:75ms}.blog-list__grid{color:#fff;margin-top:5px;flex-grow:1;display:flex;flex-flow:row wrap;gap:2%;justify-content:center;width:75%}.blog-about{display:flex;color:#fff;flex-flow:column nowrap;align-items:center;justify-content:flex-start;width:100%;height:100%;overflow-x:auto;overflow:auto;background-color:var(--blog-bg);font-family:var(--blog-text-font)}.blog-about__contact-me{margin-top:5px;padding:5px 0;width:100%;background-color:#2ecb9a;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:5px}.contact-me-text{font-weight:700;margin-right:10px;color:#000}.blog-about__contact-me img{max-width:30px;width:auto;height:auto}.blog-about__contact-me img:hover{max-width:35px;cursor:pointer}.text-bold{font-weight:700}.blog-about p,ul{width:50%}.blog-about__image{max-width:40%}.blog-about__image img{max-width:100%;width:auto;height:auto}.blog-viewer{width:100%;height:100%;display:flex;flex-flow:column nowrap;color:#fff;align-items:center;justify-content:flex-start;overflow-x:auto;overflow:auto}.blog-viewer__bar{width:100%;display:flex;align-items:center;justify-content:flex-end}.blog-viewer__bar .blog-btn{margin-top:10px;margin-right:20px;background-color:#2ecb9a;border-radius:5px;border-color:transparent;padding:10px 20px}.blog-viewer__bar .blog-btn:hover{background-color:#d94e4e;border-color:#def76e;cursor:pointer}.blog-viewer__frame{border:none;width:100%;flex-grow:1;overflow-x:auto;overflow:hidden}.blog-viewer__frame iframe{border:none;width:100%;height:100%}@media (max-width: 860px){.blog-sidebar{width:100%;height:100%;position:absolute;left:0;top:0;clip-path:none}.blog-sidebar:before{width:100%;clip-path:none}.blog-togglebar.is--open{left:auto;right:5px;transition:.15s}}@keyframes noise-before{0%{clip:rect(61px,9999px,52px,0)}5%{clip:rect(33px,9999px,144px,0)}10%{clip:rect(121px,9999px,115px,0)}15%{clip:rect(144px,9999px,162px,0)}20%{clip:rect(62px,9999px,180px,0)}25%{clip:rect(34px,9999px,42px,0)}30%{clip:rect(147px,9999px,179px,0)}35%{clip:rect(99px,9999px,63px,0)}40%{clip:rect(188px,9999px,122px,0)}45%{clip:rect(154px,9999px,14px,0)}50%{clip:rect(63px,9999px,37px,0)}55%{clip:rect(161px,9999px,147px,0)}60%{clip:rect(109px,9999px,175px,0)}65%{clip:rect(157px,9999px,88px,0)}70%{clip:rect(173px,9999px,131px,0)}75%{clip:rect(62px,9999px,70px,0)}80%{clip:rect(24px,9999px,153px,0)}85%{clip:rect(138px,9999px,40px,0)}90%{clip:rect(79px,9999px,136px,0)}95%{clip:rect(25px,9999px,34px,0)}to{clip:rect(173px,9999px,166px,0)}}@keyframes noise-after{0%{clip:rect(26px,9999px,33px,0)}5%{clip:rect(140px,9999px,198px,0)}10%{clip:rect(184px,9999px,89px,0)}15%{clip:rect(121px,9999px,6px,0)}20%{clip:rect(181px,9999px,99px,0)}25%{clip:rect(154px,9999px,133px,0)}30%{clip:rect(134px,9999px,169px,0)}35%{clip:rect(26px,9999px,187px,0)}40%{clip:rect(147px,9999px,137px,0)}45%{clip:rect(31px,9999px,52px,0)}50%{clip:rect(191px,9999px,109px,0)}55%{clip:rect(74px,9999px,54px,0)}60%{clip:rect(145px,9999px,75px,0)}65%{clip:rect(153px,9999px,198px,0)}70%{clip:rect(99px,9999px,136px,0)}75%{clip:rect(118px,9999px,192px,0)}80%{clip:rect(1px,9999px,83px,0)}85%{clip:rect(145px,9999px,98px,0)}90%{clip:rect(121px,9999px,154px,0)}95%{clip:rect(156px,9999px,44px,0)}to{clip:rect(67px,9999px,122px,0)}}.gal-app{display:flex;flex-direction:column;background:transparent;background-color:#3572bf;width:100%;height:100%}.gal-grid{padding:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;align-content:start;overflow:auto}.gal-tile{appearance:none;background:none;background-color:none;border:none;color:#fff;padding:8px;display:grid;gap:6px;justify-items:center;cursor:default}.gal-tile:hover{cursor:pointer}.gal-tile.is-active{outline:2px solid rgba(25,201,177,.6);outline-offset:2px}.gal-thumb{width:100%;height:100px;object-fit:cover;border:3px solid gold;image-rendering:auto}.gal-tile:hover .gal-thumb{border:3px solid rgb(224,71,71)}.gal-name{font-size:12px;text-align:center;word-break:break-all;opacity:.85;color:#000;background-color:#fff;padding:3px 6px;border-radius:6px;align-items:center}.gal-zoom{background:#00000080;display:grid;place-items:center;z-index:2;width:100%;height:100%;overflow:auto}.gal-zoom__inner{max-width:96%;max-height:92%;display:grid;grid-template-rows:1fr auto;gap:8px}.gal-zoom__imgwrap{background:#ffffffe6;border:1px solid rgba(0,0,0,.45);border-radius:8px;padding:6px;display:grid;place-items:center;overflow:hidden}.gal-zoom__img{max-width:100%;max-height:70vh;object-fit:contain;display:block}.gal-zoom__caption{background:#ffffffe6;border:1px solid rgba(0,0,0,.45);border-radius:8px;padding:8px 10px;color:var(--text-color, #000);font-size:14px}.gal-zoom__title{font-weight:600;margin-bottom:4px}.gal-zoom__desc{opacity:.9;margin-bottom:4px}.gal-zoom__meta{opacity:.65;font-size:12px}.ctxmenu{z-index:1000;min-width:220px;background:#141414eb;color:#eaf9f6;border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 8px 24px #00000059;padding:6px}.ctxmenu__hd{font-weight:600;opacity:.9;padding:4px 6px 6px}.ctxmenu__subhd{font-size:12px;opacity:.7;padding:4px 6px}.ctxmenu__item{appearance:none;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:6px 8px;border-radius:6px;cursor:pointer}.ctxmenu__item:hover{background:#ffffff14}.ctxmenu__item:disabled{opacity:.5;cursor:default}.ctxmenu__sep{height:1px;background:#ffffff1f;margin:6px 0}.logs-app{background-color:var(--logs-bg);margin:auto;height:100%;width:100%;position:relative}.logs-togglebar{z-index:99;position:absolute;top:13px;left:5px;transition:.15s}.logs-togglebar.is--open{left:calc(20px + var(--logs-sidebar-width));transition:.15s}.logs-toggle{background-color:var(--logs-button-no-select);border-radius:100%;border:1px solid #1d1d1db2;padding:10px;color:#fff}.logs-toggle:hover{background-color:#d94e4e;cursor:pointer}.logs-app__content{width:100%;height:100%;display:flex;flex-flow:row nowrap;margin:0}.logs-sidebar{width:var(--logs-sidebar-width);transition:.15s;display:flex;flex-flow:column nowrap;padding:10px 8px;overflow:auto;background-color:#1c1c1c;font-family:PressStart2P}.logs-sidebar.is--closed{width:0;transition:.15s;padding:0}.logs-sidebar.is--closed *{display:none}.logs-left__hd{color:#fff;font-family:PressStart2P;font-size:22px;font-weight:700;letter-spacing:2px;text-align:center;padding:5px 0;margin-bottom:6px}.logs-tree__list{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:100%}.logs-tree__node{margin-bottom:4px}.logs-tree__project{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;text-align:left;background-color:#2ecb996b;border:2px solid transparent;border-radius:8px;padding:8px 10px;color:#fff;transition:75ms;cursor:pointer}.logs-tree__project:hover{background-color:#d94e4e}.logs-tree__project.is-active{outline:2px solid rgba(222,247,110,.85);outline-offset:2px}.caret{display:inline-block;transform:rotate(0);transition:transform .15s;opacity:.8}.caret.open{transform:rotate(90deg)}.logs-proj__title{font-family:PressStart2P;font-size:14px}.logs-proj__type{font-size:12px;opacity:.85}.logs-tree__parts{list-style:none;margin:6px 0 8px 18px;padding:0;width:75%}.logs-tree__leaf{margin:2px 0}.logs-part{width:100%;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px 8px;cursor:pointer;transition:75ms}.logs-part:hover{background:#d94e4e;border-color:#def76e}.logs-part.is-active{background:#ffffff29;border-color:#def76e}.logs-part__ord{font-variant-numeric:tabular-nums;opacity:.8}.logs-main{margin:0;flex-grow:1;height:100%;display:flex;flex-flow:column nowrap;color:#fff;align-items:center;justify-content:flex-start;overflow-x:auto;overflow:auto}.logs-viewer{width:100%;height:100%;display:flex;flex-flow:column nowrap}.logs-iframe{border:none;width:100%;height:100%}@media (max-width: 860px){.logs-sidebar{width:100%;height:100%;position:absolute;left:0;top:0}.logs-togglebar.is--open{left:auto;right:5px;transition:.15s}}
