.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html body{margin:0;padding:0;background-color:#d3d3d3}.page-mobile{width:100vw;height:100svh;font-family:Pixelated MS Sans Serif;overflow-y:hidden;position:fixed;background-color:#d3d3d3;left:0;top:0}.page-mobile,.page-mobile #skills-mobile{overflow-x:hidden;display:flex;flex-direction:column}.page-mobile #skills-mobile{width:100%;height:100%;overflow-y:auto;position:relative;padding-top:1vh}.page-mobile #skills-mobile::-webkit-scrollbar-button:vertical:end:decrement,.page-mobile #skills-mobile::-webkit-scrollbar-button:vertical:start:decrement{display:none}.page-mobile #skills-mobile .skills-grid{display:grid;grid-template-columns:repeat(3,27.5vw);grid-column-gap:14px;column-gap:14px;grid-row-gap:12px;row-gap:12px;justify-content:center;width:100%;height:auto;min-height:100%;padding-bottom:16px;box-sizing:border-box}.page-mobile #skills-mobile .popup-skills-container-mobile{position:fixed;width:88vw;max-width:380px;height:50vh;max-height:460px;top:20vh;left:50%;transform:translateX(-50%);overflow:hidden;padding:0;margin:0;z-index:1000}.page-mobile #skills-mobile .popup-skills-container-mobile .pixel-overlay-mobile{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1001}.page-mobile #skills-mobile .popup-skills-container-mobile .window{width:100%;height:100%;margin:0;box-sizing:border-box;display:flex;flex-direction:column}.page-mobile #skills-mobile .popup-skills-container-mobile .window .title-bar{flex-shrink:0;box-sizing:border-box}.page-mobile #skills-mobile .popup-skills-container-mobile .window .title-bar .title-bar-text{font-size:11px;font-weight:700}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup{flex:1 1;min-height:0;width:100%;height:auto;margin:0;padding:10px 6px 8px;box-sizing:border-box;display:block;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding:0;box-sizing:border-box;align-content:start}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile .window{width:100%;aspect-ratio:1/1;box-sizing:border-box;padding:0;overflow:hidden;display:flex;flex-direction:column}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile .window .title-bar{height:16px;min-height:16px;width:100%;flex-shrink:0;box-sizing:border-box}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile .window .title-bar .title-bar-text{padding-left:2px;font-size:8px;font-weight:400;width:calc(100% - 10px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile .window .window-body{flex:1 1;min-height:0;width:100%;margin:0;padding:4px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.page-mobile #skills-mobile .popup-skills-container-mobile .window .window-body.popup .inner-skills-grid-mobile .window .window-body .inner-skill-image{max-height:85%;max-width:85%;object-fit:contain}.page-mobile #skills-mobile .window.skill-thumbnail{width:100%;aspect-ratio:1/1;display:flex;flex-direction:column;box-sizing:border-box;padding:0;overflow:hidden;box-shadow:1px 1px 0 0 #000;border:2px outset #dfdfdf}.page-mobile #skills-mobile .window.skill-thumbnail .title-bar{height:16px;width:100%;flex-shrink:0;box-sizing:border-box;font-size:.5rem;display:flex;align-items:center;justify-content:space-between;padding:2px 0;background-color:navy;color:#fff}.page-mobile #skills-mobile .window.skill-thumbnail .title-bar .title-bar-text{flex:1 1;min-width:0;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}.page-mobile #skills-mobile .window.skill-thumbnail .title-bar .title-bar-controls{flex-shrink:0;display:flex;justify-content:flex-end;align-items:center;margin-left:2px;margin-right:0;padding-right:0}.page-mobile #skills-mobile .window.skill-thumbnail .title-bar .title-bar-controls .maximize{width:8px;height:12px;border:1px outset #fff;cursor:pointer}.page-mobile #skills-mobile .window.skill-thumbnail .window-body{flex:1 1;margin:0;padding:4px;display:flex;align-items:center;justify-content:center}.page-mobile #skills-mobile .window.skill-thumbnail .window-body .skill-image-icon{max-width:90%;max-height:90%;object-fit:contain;image-rendering:pixelated;filter:saturate(80%)}@media(hover:hover)and (pointer:fine){.page-mobile #skills-mobile .window.skill-thumbnail.hover-enlarge:hover{transform:scale(1.05);transition:transform .3s ease-in-out}}.page-mobile #contact-mobile{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;padding-top:1vh}.page-mobile #contact-mobile .row-description{margin-top:0;padding-left:1vw;font-family:OCR-Font;font-size:12px;text-align:center;flex-shrink:0}.page-mobile #contact-mobile pre{margin-top:2vh;background-color:#dfdfdf;width:94.5vw;height:auto}.page-mobile #contact-mobile pre .field-row-stacked input,.page-mobile #contact-mobile pre .field-row-stacked label,.page-mobile #contact-mobile pre .field-row-stacked select,.page-mobile #contact-mobile pre .field-row-stacked textarea{font-family:OCR-Font;font-size:12px}.page-mobile #contact-mobile pre .field-row-stacked textarea{height:20vh}.page-mobile #contact-mobile pre .field-row{margin-top:2vh;display:flex;justify-content:space-between}.page-mobile #contact-mobile pre .field-row .button-container{font-family:OCR-Font;font-size:18px;display:flex;flex-direction:column}.page-mobile #contact-mobile pre .field-row .button-container .button-image{display:flex;align-items:center;justify-content:center}.page-mobile #contact-mobile pre .field-row .button-container .button-image:hover{transform:scale(1.05);transition:transform .3s ease-in-out}.page-mobile #contact-mobile pre .field-row .button-container .button-label{margin-top:10px;text-align:center}.page-mobile #friends-mobile,.page-mobile #playground-mobile{width:100%;height:100%;padding-top:1vh}.page-mobile #friends-mobile{overflow-y:auto}.page-mobile #friends-mobile .row-content-explanation h4{font-size:14px;margin-top:0;margin-bottom:1vh;margin-left:1vw}.page-mobile #friends-mobile .mobile-friends-body{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:20px 0}.page-mobile #friends-mobile .mobile-friends-body .friend-item-container{display:flex;align-items:center;justify-content:center;width:96%;height:20vh}.notion-frame{background-color:#d3d3d3}.notion-page{padding:0;color:#000;font-family:Pixelated MS Sans Serif}.notion-page .notion-hr{height:3px;border:none;background-color:gray;margin:10px 0}.notion-page .notion-title{text-decoration:underline;font-size:26px}.notion-page .notion-page-content{font-family:OCR-Font;color:#000;font-size:18px}.notion-page .notion-page-content .notion-link{color:blue;border-color:blue}.notion-asset-object-fit{background-color:#d3d3d3}.notion-collection-page-properties,.notion-header,.notion-page-cover-wrapper{display:none}.mobile-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.mobile-modal .mobile-modal-content{width:85%;max-width:400px;height:auto;max-height:50%;background-color:silver;border:2px outset #fff;box-shadow:1px 1px 0 0 #000}.mobile-modal .mobile-modal-content .title-bar{height:18px;background-color:navy;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:2px 4px}.mobile-modal .mobile-modal-content .title-bar .title-bar-text{font-weight:700}.mobile-modal .mobile-modal-content .title-bar .title-bar-controls button{width:16px;height:14px;background-color:silver;border:1px outset #fff;position:relative}.mobile-modal .mobile-modal-content .title-bar .title-bar-controls button:after,.mobile-modal .mobile-modal-content .title-bar .title-bar-controls button:before{content:"";position:absolute;width:8px;height:2px;background-color:#000;top:5px;left:3px}.mobile-modal .mobile-modal-content .title-bar .title-bar-controls button:before{transform:rotate(45deg)}.mobile-modal .mobile-modal-content .title-bar .title-bar-controls button:after{transform:rotate(-45deg)}.mobile-modal .mobile-modal-content .window-body{font-family:OCR-Font,monospace;font-size:12px;line-height:1.4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:12px 10px;box-sizing:border-box;overflow:hidden}.mobile-modal .mobile-modal-content .window-body .container-button-email{margin-top:8px;display:flex;justify-content:center;align-items:center;flex-shrink:0}.mobile-modal .mobile-modal-content .window-body .container-button-email .button-email{display:block;width:50px;height:50px}@keyframes DebugPanel_spin__hidte{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes DebugPanel_slideIn__D60ne{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.DebugPanel_panel___z_G8{position:fixed;bottom:20px;right:20px;width:280px;height:700px;background:#111827;border:1px solid hsla(220,9%,46%,.5);border-radius:8px;color:#e5e7eb;font-family:system-ui,-apple-system,sans-serif;font-size:11px;z-index:9998;box-shadow:0 10px 25px rgba(0,0,0,.5);overflow:hidden;animation:DebugPanel_slideIn__D60ne .2s ease-out;display:flex;flex-direction:column}.DebugPanel_panel___z_G8 button{font-family:inherit;-webkit-font-smoothing:auto;font-size:inherit;color:inherit;background:none;border-radius:inherit;min-width:unset;min-height:unset;padding:unset;outline:none}.DebugPanel_panel___z_G8 button,.DebugPanel_panel___z_G8 button:active{text-shadow:none;box-shadow:none}.DebugPanel_panel___z_G8 button:focus{outline:none;outline-offset:unset}.DebugPanel_panel___z_G8 button:disabled{text-shadow:none}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #374151;background:rgba(31,41,55,.6);flex-shrink:0}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_title__y0x10{font-weight:400;font-size:13px;color:#fff;letter-spacing:0}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_headerButtons__vNYH2{display:flex;align-items:center;gap:6px}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_collapse__sL_NP{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:12px;padding:0 2px;line-height:1}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_collapse__sL_NP:hover{color:#d1d5db}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_close__0qLu4{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.DebugPanel_panel___z_G8 .DebugPanel_header__czWcc .DebugPanel_close__0qLu4:hover{color:#f87171}.DebugPanel_panel___z_G8.DebugPanel_collapsed__AEXiQ{height:auto}.DebugPanel_panel___z_G8.DebugPanel_collapsed__AEXiQ .DebugPanel_header__czWcc{border-bottom:none}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4{border-bottom:1px solid #374151;padding:4px;flex-shrink:0}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn{display:flex;gap:2px}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1{flex:1 1 auto;padding:6px 8px;background:hsla(0,0%,100%,.1);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-family:inherit;font-weight:400;transition:background .15s ease;white-space:nowrap;line-height:1.3}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1:hover{background:hsla(0,0%,100%,.15)}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1.DebugPanel_activeTab__fgxOu{background:hsla(0,0%,100%,.2);font-weight:600}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1.DebugPanel_zustandTab__33D0R{background:rgba(34,197,94,.3)}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1.DebugPanel_zustandTab__33D0R:hover{background:rgba(34,197,94,.4)}.DebugPanel_panel___z_G8 .DebugPanel_tabsContainer__MoEu4 .DebugPanel_tabRow__HmvKn .DebugPanel_tab__JQ3R1.DebugPanel_zustandTab__33D0R.DebugPanel_activeTab__fgxOu{background:rgba(34,197,94,.5);font-weight:600}.DebugPanel_panel___z_G8 .DebugPanel_content__IgOQt{flex:1 1;overflow-y:auto;min-height:0}.DebugPanel_panel___z_G8 .DebugPanel_shortcut__vzGjY{text-align:center;padding:6px 0 4px;color:#6b7280;font-size:10px;border-top:1px solid hsla(220,9%,46%,.3);flex-shrink:0}.DebugPanel_tabContent__cPLHg{padding:8px 12px}.DebugPanel_storeFileName__2CVEa{font-size:10px;font-family:Courier New,monospace;color:hsla(0,0%,100%,.45);padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid hsla(220,9%,46%,.3)}.DebugPanel_permissionCard__zqydb{background:hsla(0,0%,100%,.05);border:1px solid hsla(220,9%,46%,.2);border-radius:6px;padding:8px 10px;margin-bottom:8px}.DebugPanel_permissionCard__zqydb .DebugPanel_cardTitle__U_iD6{font-size:10px;font-weight:600;color:#93c5fd;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid hsla(220,9%,46%,.2)}.DebugPanel_userInfoGrid__JYj6r{display:flex;flex-direction:column}.DebugPanel_userInfoRow__WxW_A{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid rgba(55,65,81,.4)}.DebugPanel_userInfoRow__WxW_A:last-child{border-bottom:none}.DebugPanel_userInfoRow__WxW_A .DebugPanel_infoLabel__OCRCu{color:#9ca3af;flex-shrink:0}.DebugPanel_userInfoRow__WxW_A .DebugPanel_infoValue__YVsJ9{color:#f3f4f6;font-weight:600;text-align:right;word-break:break-all}.DebugPanel_collapseHeader__UH9pa{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:none;border:none;font-family:Courier New,monospace;font-size:11px;width:100%;text-align:left}.DebugPanel_collapseHeader__UH9pa:hover{color:#d1d5db}.DebugPanel_expandChevron__J08cH{font-size:9px;display:inline-block;width:10px;text-align:center}.DebugPanel_rawState__Npbjm{margin-top:4px}.DebugPanel_rawState__Npbjm .DebugPanel_rawStateToggle__0HVCu{display:flex;align-items:center;gap:6px;padding:6px 0;cursor:pointer;color:#6b7280;background:none;border:none;font-family:Courier New,monospace;font-size:10px;width:100%;text-align:left}.DebugPanel_rawState__Npbjm .DebugPanel_rawStateToggle__0HVCu:hover{color:#9ca3af}.DebugPanel_rawState__Npbjm .DebugPanel_rawStateContent__jBjbX{background:rgba(0,0,0,.3);border:1px solid hsla(220,9%,46%,.2);border-radius:4px;padding:8px;font-family:monospace;font-size:10px;color:#d1d5db;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-all}.DebugPanel_toolsGrid__D7pVb{display:flex;flex-direction:column;gap:6px}.DebugPanel_toolsGrid__D7pVb .DebugPanel_toolBtn__qdkVL{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;background:rgba(55,65,81,.6);border:1px solid hsla(220,9%,46%,.3);border-radius:4px;color:#d1d5db;font-family:inherit;font-size:11px;cursor:pointer;transition:background .15s ease}.DebugPanel_toolsGrid__D7pVb .DebugPanel_toolBtn__qdkVL:hover{background:rgba(75,85,99,.6);color:#f3f4f6}.DebugPanel_toolsGrid__D7pVb .DebugPanel_toolBtn__qdkVL.DebugPanel_copied__F_3iY{background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.4);color:#4ade80}.DebugPanel_spin__hidte{animation:DebugPanel_spin__hidte 1s linear infinite}