@font-face{font-family:Oxanium;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.3og1mzhekyvib.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.3k6uam93e9kow.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oxanium Fallback;src:local(Arial);ascent-override:76.07%;descent-override:20.22%;line-gap-override:24.07%;size-adjust:103.86%}.oxanium_b1cd41f8-module__e0GMlG__className{font-family:Oxanium,Oxanium Fallback;font-style:normal}.oxanium_b1cd41f8-module__e0GMlG__variable{--font-lofi:"Oxanium", "Oxanium Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_b81dc03f-module__PEVBLW__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_b81dc03f-module__PEVBLW__variable{--font-ui:"Inter", "Inter Fallback"}
.retro-window{background:var(--bg-screen);border:2px solid var(--green);min-width:0;min-height:0;box-shadow:4px 4px 0 rgba(var(--accent-rgb), .18);transform-origin:top;flex-direction:column;flex:1;animation:.22s steps(4,end) window-in;display:flex}.retro-window__titlebar{background:var(--green-dim);color:var(--green-bright);border-bottom:2px solid var(--green);letter-spacing:.1em;white-space:nowrap;justify-content:space-between;align-items:center;gap:8px;padding:2px 8px;display:flex}.retro-window__title{text-overflow:ellipsis;overflow:hidden}.retro-window__title:focus{outline:none}.retro-window__close{color:var(--green-bright);letter-spacing:0;padding:0 2px}.retro-window__close:hover{background:var(--green);color:var(--bg)}.retro-window__body{flex:1;min-height:0;padding:12px 14px;overflow-y:auto}.app-content{flex-direction:column;gap:10px;font-size:1em;line-height:1.4;display:flex}.app-content p{color:var(--green)}.app-heading{letter-spacing:.15em;color:var(--green-bright);border-bottom:1px dashed var(--green-dim);margin-top:8px;padding-bottom:2px;font-size:1em;font-weight:400}.app-list{flex-direction:column;gap:4px;list-style:none;display:flex}.app-list li:before{content:"▪ ";color:var(--green-mid)}.resume-list{gap:10px}.resume-gap{height:6px;display:block}.resume-bullets{margin:4px 0 0 1.2em;list-style:none}.resume-bullets li:before{content:"- ";color:var(--green-mid)}.project-detail__back{letter-spacing:.1em;color:var(--green-mid);border:1px solid var(--green-faint);align-self:flex-start;padding:2px 8px}.project-detail__back:hover{background:var(--green);color:var(--bg)}.resume-download{flex-wrap:wrap;justify-content:flex-end;gap:12px;padding-bottom:4px;display:flex}@media (max-width:600px){.resume-download{flex-wrap:nowrap;gap:8px}.resume-download .pixel-btn{letter-spacing:.04em;white-space:nowrap;padding:.3em .6em .25em;font-size:.72em}}.resume-viewer{height:100%}.resume-viewer__frame{border:2px solid var(--green-dim);background:var(--bg-screen);flex:1;width:100%;height:300px}.resume-viewer__error{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:14px 0;display:flex}.resume-viewer__error pre{color:var(--green-bright);font-family:inherit;line-height:1.15}
.pixel-btn{letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:2px solid var(--green);box-shadow:3px 3px 0 var(--green-dim);padding:.3em 1em .25em;font-family:inherit;font-size:1em;text-decoration:none;transition:none;display:inline-block}.pixel-btn--outline{background:var(--bg-screen);color:var(--green)}.pixel-btn--solid{background:var(--green-dim);color:var(--green-bright)}.pixel-btn:hover{background:var(--green);color:var(--bg)}.pixel-btn:active{box-shadow:1px 1px 0 var(--green-dim);transform:translate(2px,2px)}.pixel-btn[aria-disabled=true]{border-color:var(--green-dim);color:var(--green-dim);box-shadow:3px 3px 0 var(--green-faint);cursor:not-allowed}.pixel-btn[aria-disabled=true]:hover{background:var(--bg-screen);color:var(--green-dim)}
.cinema{--lofi-bg:#011e10;--lofi-text:#56e474;--lofi-hi:#5cf17e;--lofi-hi-text:#032311;background:radial-gradient(at 50% 42%,#2d1f18 0%,#171009 52%,#0b0807 100%);position:fixed;inset:0;overflow:hidden}.cinema__camera{transform-origin:50%;position:absolute;inset:0}.cinema--sitting .cinema__camera,.cinema--rising .cinema__camera{will-change:transform}.cinema__stage{opacity:0;transition:opacity .5s;position:absolute;container-type:inline-size}.cinema--ready .cinema__stage{opacity:1}.cinema__side{height:100%;image-rendering:pixelated;pointer-events:none;background-size:100% 100%;position:absolute;top:0}.cinema__band{z-index:1;width:100%;image-rendering:pixelated;pointer-events:none;background-size:100% 100%;position:absolute;left:0}.cinema__side--left{right:100%}.cinema__side--right{left:100%}.cinema__off{z-index:1;opacity:0;image-rendering:pixelated;pointer-events:none;background-size:100% 100%;position:absolute;inset:0}.cinema__off.is-off{opacity:1}.cinema__sprite,.cinema__pen,.cinema__spill,.cinema__lamp-front,.cinema__wall-text{transition:filter .5s}.cinema--lamp-off .cinema__sprite--mug,.cinema--lamp-off .cinema__sprite--note,.cinema--lamp-off .cinema__pen,.cinema--lamp-off .cinema__decor,.cinema--lamp-off .cinema__spill{filter:brightness(.5)saturate(.85)}.cinema--lamp-off .cinema__lamp-front{filter:brightness(.35)}.cinema--lamp-off .cinema__wall-text{filter:brightness(.75)}.cinema--lamp-off .cinema__wall-text--desk{filter:brightness(.5)saturate(.85)}.cinema--seated .cinema__stage{cursor:zoom-out}.cinema__backdrop{object-fit:fill;image-rendering:pixelated;-webkit-user-select:none;user-select:none;pointer-events:none}.cinema__dark{z-index:1;pointer-events:none;transition:opacity .45s;position:absolute;inset:0;box-shadow:inset 0 0 90px 10px #0b080780}.cinema--sitting .cinema__dark,.cinema--seated .cinema__dark{opacity:0}.cinema__hotspot--monitor{cursor:pointer}.cinema__sprite{z-index:4;cursor:pointer;will-change:transform;background:0 0;border:0;padding:0;position:absolute}.cinema__sprite img{image-rendering:pixelated;pointer-events:none}.cinema__sprite--steam{z-index:5;pointer-events:none;transition:opacity .15s linear,filter .5s}.cinema__sprite--steam canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.cinema__wall-gold{text-shadow:.04em 0 #3a2208,-.04em 0 #3a2208,0 .04em #3a2208,0 -.04em #3a2208,0 .08em #14080273}.cinema__wall-text{z-index:2;font-family:var(--font-lofi), sans-serif;white-space:nowrap;text-transform:uppercase;text-shadow:0 .07em #1408028c;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;margin:0;display:flex;position:absolute}.cinema__note-under{pointer-events:none}.cinema__note-falling{pointer-events:none;backface-visibility:visible}.cinema__decor{pointer-events:none;transition:filter .5s;position:absolute}.cinema__decor img{image-rendering:pixelated}.cinema__pen{z-index:4;pointer-events:none;will-change:transform;position:absolute}.cinema__pen img{image-rendering:pixelated}.cinema__sprite--note{container-type:inline-size}.cinema__note-text{width:89%;height:76.7%;font-family:var(--font-lofi), var(--font-term), sans-serif;letter-spacing:.02em;text-align:center;color:#2a1208;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;font-size:13.5cqw;font-weight:600;line-height:1.12;display:flex;position:absolute;top:10.1%;left:5%}.cinema__note-text--tree{justify-content:flex-start;padding-top:2%;line-height:.95}.cinema__note-mono{font-family:var(--font-term), monospace;white-space:pre;letter-spacing:0;font-size:1.3em;font-weight:400;line-height:.72}.cinema:not(.cinema--standing) .cinema__sprite{pointer-events:none;cursor:default}.cinema__sprite:focus-visible{outline:3px dashed var(--lofi-hi);outline-offset:2px;box-shadow:none}.cinema__spill{z-index:6;pointer-events:none;image-rendering:pixelated;position:absolute}.cinema__lamp-front{z-index:5;pointer-events:none;position:absolute}.cinema__lamp-front img{image-rendering:pixelated}.cinema__lava canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.cinema__lava-dark{opacity:0;transition:opacity 1.2s}.cinema__lava-dark.is-shown{opacity:1}.cinema__cable{z-index:3}.cinema__cable canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.is-switching.is-off{animation:.5s linear both cinema-lamp-off}.is-switching:not(.is-off){animation:.42s linear both cinema-lamp-on}@keyframes cinema-lamp-off{0%{opacity:0}14%{opacity:1}22%{opacity:.25}36%{opacity:1}48%{opacity:.6}60%,to{opacity:1}}@keyframes cinema-lamp-on{0%{opacity:1}18%{opacity:.2}28%{opacity:.85}42%{opacity:0}52%{opacity:.4}64%,to{opacity:0}}.cinema__hotspot{z-index:4;cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.cinema__hotspot:focus-visible{outline:3px dashed var(--lofi-hi);outline-offset:-3px;box-shadow:none}.cinema__screen{z-index:2;transform-origin:0 0;pointer-events:none;opacity:0;border-radius:calc(var(--screen-w) * .015);background:var(--lofi-bg);transition:opacity .22s;position:absolute;overflow:hidden}.cinema--ready .cinema__screen{opacity:1}.cinema--seated .cinema__screen{pointer-events:auto}.cinema__loading{z-index:8;letter-spacing:.3em;color:var(--lofi-text);background:#1b1a22;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:20px;display:flex;position:absolute;inset:0}.cinema__loading img{image-rendering:pixelated}.cinema__hint{z-index:7;letter-spacing:.22em;white-space:nowrap;color:var(--lofi-hi-text);background:var(--lofi-hi);pointer-events:none;border:2px solid #0b2a12;padding:5px 14px;font-size:16px;animation:1.8s step-end infinite blink;position:fixed;bottom:6%;left:50%;transform:translate(-50%);box-shadow:3px 3px #00000073}.cinema__standup{z-index:7;letter-spacing:.2em;color:var(--lofi-text);border:2px solid var(--lofi-text);cursor:pointer;background:#081e14d9;padding:4px 14px;font-size:15px;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:3px 3px #00000073}.cinema__standup:hover{color:var(--lofi-hi-text);background:var(--lofi-hi)}.cinema__standup-key{opacity:.75;border:1px solid;margin-left:10px;padding:0 5px;font-size:12px}@media (prefers-reduced-motion:reduce){.cinema__hint{animation:none}}.lofi{--green:var(--lofi-text);--green-bright:#c8ffb6;--green-mid:#6fcf6c;--green-dim:#2f6b3a;--green-faint:#163a22;--bg-screen:var(--lofi-bg);--bg:#04120a;--accent-rgb:131, 223, 127;font-family:var(--font-lofi), var(--font-term), monospace;font-weight:500;font-size:calc(var(--screen-w) * .034);color:var(--lofi-text);flex-direction:column;padding:3.5% 4.5% 3%;line-height:1.2;animation:.25s steps(3,end) lofi-in;display:flex;position:absolute;inset:0}.cinema[data-layout=mobile] .lofi{font-size:calc(var(--screen-w) * .04)}.lofi-card{flex-direction:column;gap:1.1em;padding:.4em .2em;display:flex}.lofi-card__head{border-bottom:2px dashed var(--green-dim);padding-bottom:.8em}.lofi-card__name{letter-spacing:.02em;color:#b9f7a4;margin:0;font-size:1.7em;font-weight:700}.lofi-card__title,.lofi-card__place{letter-spacing:.08em;margin:.2em 0 0}.lofi-card__place{color:var(--green-mid)}.lofi-card__rows{gap:.45em;margin:0;display:grid}.lofi-card__row{grid-template-columns:6.5em 1fr;align-items:baseline;gap:.6em;display:grid}.lofi-card__row dt{letter-spacing:.1em;color:var(--green-mid)}.lofi-card__row dd{overflow-wrap:anywhere;min-width:0;margin:0}.lofi-card__row a{color:var(--lofi-text);text-underline-offset:.2em;text-decoration:underline}.lofi-card__row a:hover,.lofi-card__row a:focus-visible{color:#c8ffb6}.lofi pre,.lofi .cursor-blink{font-family:var(--font-term)}@keyframes lofi-in{0%{opacity:0}to{opacity:1}}.lofi.mac{font-family:var(--font-ui), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--green:#34313d;--green-bright:#17151d;--green-mid:#3d73d6;--green-dim:#c9c4d1;--green-faint:#e3dfe8;--bg-screen:#f7f5f2;--bg:#fff;--accent-rgb:61, 115, 214;font-weight:400;font-size:calc(var(--screen-w) * .03);color:#fff;image-rendering:pixelated;background:#1d1838 url(/cinema/wallpaper.png) 50%/cover no-repeat;padding:0}.mac__menubar{z-index:3;white-space:nowrap;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#18122c8c;align-items:center;gap:1.1em;height:1.75em;padding:0 .9em;font-size:.82em;display:flex;position:relative}.mac__moon{color:#f6d98e;font-size:1.15em;line-height:1}.mac__app{font-weight:700}.mac__menu{opacity:.9}.mac__spacer{flex:1}.mac__menu--slot{display:inline-grid}.mac__slot-name{grid-area:1/1}.mac__slot-name[hidden]{visibility:hidden;display:block}.cinema[data-layout=mobile] .mac__menu--wide{display:none}.cinema[data-layout=mobile] .mac__menubar{gap:.8em}.cinema[data-layout=mobile] .mac__dock{font-size:.8em}.cinema[data-layout=mobile] .mac__files .mac__file-icon{border-radius:.66em;width:2.8em;height:2.8em}.cinema[data-layout=mobile] .mac__files .mac__file-icon .lofi__icon{width:1.56em;height:1.4em}.mac__files{z-index:1;grid-template-columns:repeat(2,5.6em);gap:.5em .4em;list-style:none;display:grid;position:absolute;top:2.5em;left:.9em}.mac__file,.mac__dock-item{font:inherit}.mac__file{color:#fff;border-radius:.45em;flex-direction:column;align-items:center;gap:.35em;width:100%;padding:.35em .1em .3em;display:flex}.mac__file:focus-visible{box-shadow:none;outline:none}.mac__file:hover{background:#ffffff1a}.mac__file--selected,.mac__file--selected:hover{background:#fff3}.mac__file--selected .mac__file-label{text-shadow:none;background:#2f6fe0}.mac__file-icon{border-radius:.8em;place-items:center;width:3.4em;height:3.4em;transition:transform .15s ease-out;display:grid;position:relative;box-shadow:inset 0 -.2em #0000002e,inset 0 .12em #ffffff40,0 .2em .45em #00000073}.mac__file:hover .mac__file-icon,.mac__file--selected .mac__file-icon{transform:translateY(-.08em)scale(1.04)}.mac__file:active .mac__file-icon{transform:scale(.94)}.mac__file-icon .lofi__icon{width:1.9em;height:1.7em}.mac__side{z-index:1;flex-direction:column;gap:.3em;list-style:none;display:flex;position:absolute;bottom:.9em;right:.9em}.mac__file--side{width:4.4em;font-size:.8em}.mac__file--side .mac__file-icon{width:2.6em;height:2.6em}.mac__file--side .mac__file-icon .lofi__icon{width:1.5em;height:1.3em}.mac__file-num{color:#1d1838;background:#fff4d8;border:.12em solid #1d1838;border-radius:50%;place-items:center;width:1.45em;height:1.45em;font-size:.95em;font-weight:700;line-height:1;display:grid;position:absolute;top:-.45em;left:-.45em;box-shadow:0 .1em .25em #0006}.mac__file-label{white-space:nowrap;text-shadow:0 1px 2px #000000d9;border-radius:.35em;max-width:100%;padding:.05em .45em;font-size:.82em;font-weight:600}.mac__window{z-index:4;color:var(--green);margin:0;font-size:.8em;animation:.26s cubic-bezier(.2,.8,.25,1) mac-zoom;position:absolute;inset:1.8em 0 0}.mac .mac__window .retro-window{animation:none}.mac .retro-window{transform-origin:50% 100%;image-rendering:auto;border:1px solid #00000040;border-radius:.55em;animation:.18s ease-out mac-open;overflow:hidden;box-shadow:0 .6em 1.6em #0a06188c}.mac .retro-window__titlebar{color:#4a4654;letter-spacing:.02em;background:linear-gradient(#ece9ee,#dcd8e0);border-bottom:1px solid #c3bec9;justify-content:center;height:2.2em;padding:0 4.6em;position:relative}.mac .retro-window__title{font-weight:600}.mac .retro-window__title:focus-visible{box-shadow:none;outline:none}.mac .retro-window__title>span[aria-hidden]{display:none}.mac .retro-window__close{left:calc(var(--dot) * .65);background:#ff5f57;border-radius:50%;padding:0;font-size:0;position:absolute;top:50%;transform:translateY(-50%);box-shadow:inset 0 0 0 1px #0000001f}.mac .retro-window__close,.mac .retro-window__close:after{--dot:calc(var(--screen-w) * .03);width:var(--dot);height:var(--dot)}.mac .retro-window__close:after{content:"";top:0;left:calc(var(--dot) * 1.55);box-shadow:calc(var(--dot) * 1.55) 0 0 #28c840;background:#febc2e;border-radius:50%;position:absolute}.mac .retro-window__close:before{content:"×";font-size:calc(var(--dot) * .95);color:#7a1410;place-items:center;font-weight:700;line-height:1;display:grid;position:absolute;inset:0}.mac .retro-window__close:hover{background:#e0443e}.mac__window .retro-window{border-width:1px 0 0;border-radius:.55em .55em 0 0}.cinema__screen[data-drop]{overflow:visible}.cinema__screen[data-drop]>.lofi{border-radius:inherit}.cinema__screen[data-drop] .mac__window{bottom:calc(-1 * var(--drop));animation:.42s cubic-bezier(.22,1,.36,1) mac-drop}.cinema__screen[data-drop] .mac__window .retro-window{border-width:1px;border-radius:.55em}@keyframes mac-drop{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}.mac .retro-window__body{color:var(--green);background:var(--bg-screen)}.mac .app-heading{letter-spacing:.06em;border-bottom-style:solid;font-weight:700}.mac .lofi-card__name{color:var(--green-bright)}.mac .lofi-card__row a{color:var(--green-mid)}.mac .lofi-card__row a:hover,.mac .lofi-card__row a:focus-visible{color:#1f4fa8}.mac__dock{z-index:3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fff3;border:1px solid #ffffff4d;border-radius:.8em;align-items:flex-end;gap:.45em;padding:.35em .5em .2em;display:flex;position:absolute;bottom:.45em;left:50%;transform:translate(-50%)}.mac__dock-item{flex-direction:column;align-items:center;gap:.18em;padding:0;display:flex;position:relative}.mac__tile{color:#fff;transform-origin:50% 100%;border-radius:.42em;place-items:center;width:1.7em;height:1.7em;transition:transform .15s ease-out;display:grid;box-shadow:inset 0 -.12em #0000002e,0 .12em .3em #00000059}.mac__tile .lofi__icon{width:.95em;height:.88em}.mac__dock-item--active .mac__tile,.mac__dock-item:hover .mac__tile,.mac__dock-item:focus-visible .mac__tile{transform:scale(1.18)translateY(-.15em)}.mac__dock-item:focus-visible{box-shadow:none;outline:none}.mac__dot{border-radius:50%;width:.22em;height:.22em}.mac__dot--on{background:#ffffffd9}.mac__dock-rule{background:#ffffff59;align-self:stretch;width:1px;margin:.2em .1em .5em}.mac__tip{white-space:nowrap;color:#2a2733;opacity:0;pointer-events:none;background:#f5f3f8eb;border-radius:.35em;padding:.1em .5em;font-size:.7em;transition:opacity .12s;position:absolute;bottom:calc(100% + .5em);left:50%;transform:translate(-50%)}.mac__dock-item:hover .mac__tip,.mac__dock-item:focus-visible .mac__tip{opacity:1}.lofi__icon{flex:none;width:1.4em;height:1.2em}.lofi__window{display:flex}@keyframes mac-zoom{0%{opacity:.3;transform:scale(.06)}to{opacity:1;transform:none}}@keyframes mac-open{0%{opacity:0;transform:scale(.92)translateY(4%)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.mac .retro-window,.mac__window,.cinema__screen[data-drop] .mac__window,.mac__tile,.mac__file-icon{transition:none;animation:none}}.games{flex-wrap:wrap;justify-content:center;gap:2em;padding:1.5em 0;list-style:none;display:flex}.games__item{width:9em;font:inherit;color:var(--green);border-radius:.6em;flex-direction:column;align-items:center;gap:.35em;padding:.6em;display:flex}.games__item:hover,.games__item:focus-visible{box-shadow:none;background:rgba(var(--accent-rgb), .12);outline:none}.games__tile{letter-spacing:.05em;color:#fff4d8;border-radius:1em;place-items:center;width:5em;height:5em;font-size:1.2em;font-weight:800;transition:transform .15s ease-out;display:grid;box-shadow:inset 0 -.2em #0003,0 .2em .5em #0000004d}.games__item:hover .games__tile{transform:translateY(-.1em)scale(1.04)}.games__tile--doom{color:#ffd27a;text-shadow:.08em .08em #4a0f08;font-size:1.35em;font-style:italic}.games__name{color:var(--green-bright);font-size:1.2em;font-weight:700}.games__note{opacity:.7;font-size:.85em}.game-window .retro-window__body:has(.game){background:#000;padding:0;overflow:hidden}.game{width:100%;height:100%;position:relative}.game__back{z-index:1;font:inherit;color:#fff;background:#141026b3;border:1px solid #ffffff59;border-radius:.4em;padding:.2em .7em;font-size:.9em;position:absolute;top:.5em;left:.5em}.game__pong{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;touch-action:none;background:#1d1838;outline:none;display:block}.game__frame{border:0;width:100%;height:100%;display:block}.proj-window .retro-window__body{padding:0;overflow:hidden;container-type:inline-size}.proj{height:100%;font-size:.78em;line-height:1.45;display:flex}.proj__side{background:#ebe7ee;border-right:1px solid #d6d1db;flex:none;width:13em;padding:.8em .6em;overflow-y:auto}.proj__side-head{letter-spacing:.04em;color:#7a7484;margin:0 0 .6em .4em;font-size:.78em;font-weight:600}.proj__list{flex-direction:column;gap:.2em;list-style:none;display:flex}.proj__item{width:100%;font:inherit;text-align:left;color:var(--green);border-radius:.5em;align-items:center;gap:.6em;padding:.45em .5em;display:flex}.proj__item:hover{background:#0000000d}.proj__item:focus-visible{outline:2px solid var(--green-mid);outline-offset:-2px;box-shadow:none}.proj__item--on,.proj__item--on:hover{color:#fff;background:var(--green-mid)}.proj__tile{color:#fff;border-radius:.55em;flex:none;place-items:center;width:2.1em;height:2.1em;font-size:.85em;font-weight:800;display:grid;box-shadow:inset 0 -.12em #0003}.proj__tile--big{border-radius:.6em;width:2.6em;height:2.6em;font-size:1.15em}.proj__item-text{flex-direction:column;min-width:0;display:flex}.proj__item-name{font-weight:700;line-height:1.2}.proj__item-kind{opacity:.75;font-size:.8em}.proj__detail{min-width:0;color:var(--green);flex:1;padding:1em 1.3em 1.4em;overflow-y:auto}.proj__head{align-items:center;gap:.8em;display:flex}.proj__title{letter-spacing:0;color:var(--green-bright);margin:0;font-size:1.5em;font-weight:800;line-height:1.15}.proj__kind{color:#6d6777;margin:.2em 0 0;font-size:.88em}.proj__status{color:#1f4fa8;background:#3d73d621;border-radius:1em;margin-left:.4em;padding:0 .55em;font-size:.9em;font-weight:700;display:inline-block}.proj__summary{color:var(--green-bright);margin:.9em 0 0;font-size:1.05em}.proj__pr{grid-template-columns:1fr 1fr;gap:.7em;margin:1em 0 .4em;display:grid}.proj__card{background:#fff;border:1px solid #e2dde6;border-radius:.6em;padding:.6em .8em}.proj__card p{margin:0}.proj__label{letter-spacing:.1em;text-transform:uppercase;color:var(--green-mid);margin:1em 0 .4em;font-size:.78em;font-weight:700}.proj__card .proj__label{margin-top:0}.proj__built{margin:0;padding-left:1.2em}.proj__built li{margin:.2em 0}.proj__built li::marker{color:var(--green-mid)}.proj__tech{gap:.45em;margin:0;display:grid}.proj__tech-row{grid-template-columns:7.5em 1fr;align-items:baseline;gap:.6em;display:grid}.proj__tech-row dt{color:#6d6777;font-size:.85em;font-weight:600}.proj__tech-row dd{flex-wrap:wrap;gap:.3em;margin:0;display:flex}.proj__badge{color:var(--green-bright);background:#fff;border:1px solid #d9d4de;border-radius:.4em;padding:.05em .55em;font-size:.85em}.proj__links{flex-wrap:wrap;gap:.6em;margin-top:1.2em;display:flex}.proj__link{color:#fff;background:var(--green-mid);border-radius:.5em;padding:.35em .9em;font-weight:700;text-decoration:none}.proj__link:hover,.proj__link:focus-visible{background:#2c5fbf}@container (max-width:560px){.proj{flex-direction:column}.proj__side{border-bottom:1px solid #d6d1db;border-right:0;width:auto;padding:.5em;overflow:auto hidden}.proj__side-head{display:none}.proj__list{flex-direction:row}.proj__item{white-space:nowrap;width:auto}.proj__item-kind{display:none}.proj__pr{grid-template-columns:1fr}.proj__tech-row{grid-template-columns:1fr;gap:.2em}}.about-window .retro-window__body{padding:0;overflow:hidden;container-type:inline-size}.about{height:100%;font-size:.8em;line-height:1.55;display:flex}.about__card{text-align:center;background:#ebe7ee;border-right:1px solid #d6d1db;flex-direction:column;flex:none;align-items:center;width:14em;padding:1.4em 1em;display:flex;overflow-y:auto}.about__avatar{color:#fff;background:linear-gradient(140deg,#e8835a,#8c6ad8);border-radius:50%;place-items:center;width:3.6em;height:3.6em;font-size:1.3em;font-weight:800;display:grid;box-shadow:0 .2em .5em #0003}.about__name{letter-spacing:0;color:var(--green-bright);margin:.7em 0 0;font-size:1.25em;font-weight:800;line-height:1.2}.about__role{color:var(--green-mid);margin:.15em 0 0;font-weight:600}.about__facts{color:#6d6777;margin:1em 0 0;padding:0;font-size:.88em;list-style:none}.about__facts li{margin:.15em 0}.about__body{min-width:0;color:var(--green);flex:1;padding:1.1em 1.4em 1.6em;overflow-y:auto}.about__body p{margin:0}.about__body section+section{margin-top:1.3em}.about__h{letter-spacing:0;color:var(--green-bright);margin:0 0 .45em;font-size:1.1em;font-weight:800}.about__body section p+p{margin-top:.7em}.about__body strong{color:var(--green-bright)}.about__csu{color:#c8960c}.about__dh{color:#8c1d40}.about__body strong .about__csu,.about__body strong .about__dh{font-weight:800}.about__h--hello{font-size:1.4em}.about__signoff{color:var(--green-bright);border-left:.25em solid var(--green-mid);background:#3d73d61a;border-radius:.4em;padding:.7em .9em;font-weight:700;margin-top:1.4em!important}.about__grid{grid-template-columns:1fr 1fr;gap:.6em;display:grid}.about__tile{background:#fff;border:1px solid #e2dde6;border-radius:.6em;padding:.6em .8em;font-size:.92em}.about__tile-title{color:var(--green-bright);font-weight:700;margin-bottom:.15em!important}.about__skills{gap:.45em;margin:0;display:grid}.about__skill-row{grid-template-columns:6.5em 1fr;align-items:baseline;gap:.6em;display:grid}.about__skill-row dt{color:#6d6777;font-size:.85em;font-weight:600}.about__skill-row dd{flex-wrap:wrap;gap:.3em;margin:0;display:flex}@container (max-width:560px){.about{flex-direction:column;overflow-y:auto}.about__card{border-bottom:1px solid #d6d1db;border-right:0;width:auto;overflow:visible}.about__body{overflow:visible}.about__grid{grid-template-columns:1fr}.about__skill-row{grid-template-columns:1fr;gap:.2em}}.info{color:var(--green);font-size:.8em;line-height:1.55}.info p{margin:0}.info section+section{margin-top:1.4em}.info__title{letter-spacing:0;color:var(--green-bright);margin:0 0 .5em;font-size:1.3em;font-weight:800}.info__badges{flex-wrap:wrap;gap:.3em;margin-top:.8em;display:flex}.info__grid{grid-template-columns:repeat(auto-fit,minmax(14em,1fr));gap:.6em;display:grid}.info__card{background:#fff;border:1px solid #e2dde6;border-radius:.6em;padding:.7em .9em;font-size:.92em}.info__card h3{letter-spacing:0;color:var(--green-bright);margin:0 0 .25em;font-size:1.05em;font-weight:700}.info__steps{margin:0;padding:0;list-style:none}.info__step{gap:.8em;padding-bottom:.8em;display:flex;position:relative}.info__step:not(:last-child):before{content:"";background:#d6d1db;width:2px;position:absolute;top:1.9em;bottom:0;left:.85em}.info__num{color:#fff;background:#b8321f;border-radius:50%;flex:none;place-items:center;width:1.8em;height:1.8em;font-size:.9em;font-weight:800;display:grid}.info__step-title{color:var(--green-bright);font-weight:700}.info__note{color:#6d6777;font-size:.9em;margin-top:.3em!important}.info__note a{color:var(--green-mid)}
