body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--green:#4cbb17;--green-dim:#4cbb1773;--green-glow:#4cbb1733;--black:#000;--black-soft:#0b0b0b;--menu-h:40px;--dock-h:72px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box;touch-action:manipulation}.classic-mac{background-image:url(../../static/media/background.6a73db1792748224f05f.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;color:#4cbb17;color:var(--green);display:flex;flex-direction:column;font-family:Courier New,Courier,monospace;height:100vh;overflow:hidden;position:relative;width:100vw}.classic-mac:before{background:#0006006b;z-index:1}.classic-mac:after,.classic-mac:before{bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0}.classic-mac:after{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000029 0,#00000029 4px);z-index:2}.menu-bar{align-items:center;background:#000;background:var(--black);border-bottom:2px solid #4cbb17;border-bottom:2px solid var(--green);box-shadow:0 2px 10px #4cbb1740;color:#4cbb17;color:var(--green);display:grid;flex-shrink:0;font-size:14px;grid-template-columns:1fr auto 1fr;height:40px;height:var(--menu-h);padding:0 16px;position:relative;z-index:600}.menu-bar-left{align-items:center;display:flex;gap:20px}.menu-bar-center{align-items:center;display:flex;gap:8px;justify-content:center}.menu-bar span{cursor:pointer;text-shadow:0 0 6px #4cbb17;text-shadow:0 0 6px var(--green);white-space:nowrap}.menu-bar span:hover{text-shadow:0 0 14px #4cbb17;text-shadow:0 0 14px var(--green)}.sos-clover{font-size:18px;line-height:1}.sos-title{font-size:15px;font-weight:700;letter-spacing:.12em;text-shadow:0 0 10px #4cbb17;text-shadow:0 0 10px var(--green)}.desktop{flex:1 1;overflow:hidden;position:relative;z-index:3}.desktop-icon{align-items:center;cursor:pointer;display:flex;flex-direction:column;padding:8px;position:absolute;-webkit-user-select:none;user-select:none;width:90px}.desktop-icon:hover{filter:drop-shadow(0 0 6px #4cbb17);filter:drop-shadow(0 0 6px var(--green))}.desktop-icon .icon{align-items:center;display:flex;height:60px;justify-content:center;width:60px}.desktop-icon .icon svg{filter:drop-shadow(0 0 3px #4cbb17);filter:drop-shadow(0 0 3px var(--green));height:56px;width:56px}.desktop-icon .label{color:#4cbb17;color:var(--green);font-size:11px;margin-top:4px;text-align:center;text-shadow:0 0 5px #4cbb17,1px 1px 2px #000;text-shadow:0 0 5px var(--green),1px 1px 2px var(--black);word-break:break-word}.mobile-dock{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;background:#000000eb;border-top:1px solid #4cbb1773;border-top:1px solid var(--green-dim);bottom:0;box-shadow:0 -4px 20px #4cbb1726;gap:4px;height:calc(72px + env(safe-area-inset-bottom, 0px));height:calc(var(--dock-h) + var(--safe-bottom));left:0;overflow-x:auto;overflow-y:hidden;padding-bottom:env(safe-area-inset-bottom,0);padding-bottom:var(--safe-bottom);padding-left:8px;padding-right:8px;position:fixed;right:0;scrollbar-width:none;z-index:700}.dock-item,.mobile-dock{align-items:center;display:flex}.dock-item{-webkit-appearance:none;appearance:none;background:none;border:none;color:#4cbb17;color:var(--green);cursor:pointer;flex-direction:column;flex-shrink:0;font-family:Courier New,monospace;gap:3px;justify-content:center;min-height:44px;min-width:58px;padding:6px 4px}.dock-item:active .dock-item-icon{transform:scale(.88)}.dock-item-icon{align-items:center;display:flex;height:36px;justify-content:center;transition:transform .1s;width:36px}.dock-item-icon svg{filter:drop-shadow(0 0 4px #4cbb17);filter:drop-shadow(0 0 4px var(--green));height:32px;width:32px}.dock-item-label{color:#4cbb17;color:var(--green);font-size:9px;letter-spacing:.03em;line-height:1.1;max-width:56px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-shadow:0 0 4px #4cbb17;text-shadow:0 0 4px var(--green);white-space:nowrap}.window{background:#0b0b0b;background:var(--black-soft);border:2px solid #4cbb17;border:2px solid var(--green);box-shadow:4px 4px 0 #4cbb1773,0 0 20px #4cbb1733;box-shadow:4px 4px 0 var(--green-dim),0 0 20px var(--green-glow);display:flex;flex-direction:column;height:min(600px,80vh);position:absolute;width:min(800px,92vw);z-index:500}.window-header{background:#000;background:var(--black);border-bottom:1px solid #4cbb17;border-bottom:1px solid var(--green);cursor:move;gap:10px;height:36px;padding:0 8px;-webkit-user-select:none;user-select:none}.win-close,.window-header{align-items:center;display:flex;flex-shrink:0}.win-close{-webkit-appearance:none;appearance:none;background:none;border:2px solid #4cbb17;border:2px solid var(--green);color:#4cbb17;color:var(--green);cursor:pointer;font-family:Courier New,monospace;font-size:12px;height:24px;justify-content:center;line-height:1;padding:0;position:relative;width:24px}.win-close:before{bottom:-10px;content:"";left:-10px;position:absolute;right:-10px;top:-10px}.win-close:hover{background:#4cbb17;background:var(--green);color:#000;color:var(--black)}.win-title{color:#4cbb17;color:var(--green);font-size:12px;font-weight:700;letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 6px #4cbb17;text-shadow:0 0 6px var(--green);white-space:nowrap}.window-content{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;position:relative;scrollbar-width:none}.window-content::-webkit-scrollbar{display:none}.about-content{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;color:#4cbb17;color:var(--green);font-size:14px;height:100%;line-height:1.7;overflow-y:auto;overscroll-behavior:contain;padding:20px;scrollbar-width:none}.about-content::-webkit-scrollbar{display:none}.about-photo{border:2px solid #4cbb17;border:2px solid var(--green);box-shadow:0 0 12px #4cbb1733;box-shadow:0 0 12px var(--green-glow);display:block;float:right;height:auto;margin-bottom:12px;margin-left:18px;max-width:160px;min-width:80px;width:22%}.about-text p{margin-bottom:16px}.about-text p,.resume-content{color:#4cbb17;color:var(--green)}.resume-content{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:20px;scrollbar-width:none}.resume-content::-webkit-scrollbar{display:none}.resume-header{border-bottom:1px solid #4cbb1773;border-bottom:1px solid var(--green-dim);margin-bottom:24px;padding-bottom:16px;text-align:center}.resume-header h1{font-size:22px;font-weight:700;letter-spacing:.2em;text-shadow:0 0 10px #4cbb17,0 0 20px #4cbb1766;text-shadow:0 0 10px var(--green),0 0 20px #4cbb1766}.resume-header h1,.resume-title-line{color:#4cbb17;color:var(--green);margin-bottom:6px}.resume-title-line{font-size:13px;letter-spacing:.08em;opacity:.8}.resume-contact-line{color:#4cbb17;color:var(--green);font-size:11px;letter-spacing:.04em;opacity:.6}.resume-contact-line a{color:#4cbb17;color:var(--green);opacity:.8;text-decoration:underline}.resume-section{margin-bottom:22px}.resume-content h2{border-bottom:1px solid #4cbb1773;border-bottom:1px solid var(--green-dim);letter-spacing:.15em;margin-bottom:14px;padding-bottom:4px;text-shadow:0 0 6px #4cbb17;text-shadow:0 0 6px var(--green)}.resume-content h2,.resume-content h4{color:#4cbb17;color:var(--green);font-size:12px;font-weight:700}.resume-content h4{margin-bottom:8px;margin-top:14px;opacity:.9}.resume-content p{color:#4cbb17;color:var(--green);font-size:12px;line-height:1.65;margin-bottom:10px;opacity:.85}.resume-content strong{color:#4cbb17;color:var(--green);opacity:1}.resume-content ul{list-style:none;margin-bottom:12px;padding-left:12px}.resume-content li{color:#4cbb17;color:var(--green);font-size:12px;line-height:1.55;margin-bottom:6px;opacity:.85}.resume-content li:before{color:#4cbb17;color:var(--green);content:"> ";opacity:.5}.resume-job{margin-bottom:20px}.resume-job-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:2px}.resume-employer{font-size:13px;font-weight:700;letter-spacing:.06em;text-shadow:0 0 4px #4cbb17;text-shadow:0 0 4px var(--green)}.resume-dates,.resume-employer{color:#4cbb17;color:var(--green)}.resume-dates{font-size:11px;letter-spacing:.05em;opacity:.55}.resume-job-title{color:#4cbb17;color:var(--green);font-size:12px;font-style:italic;margin-bottom:10px;opacity:.65}.resume-skills-grid{grid-gap:12px 24px;display:grid;gap:12px 24px;grid-template-columns:1fr 1fr}.resume-skills-grid h4{color:#4cbb17;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:4px;margin-top:0;opacity:1}.resume-skills-grid p{font-size:11px;line-height:1.5;margin-bottom:0;opacity:.7}.note-content{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;color:#4cbb17;color:var(--green);height:100%;overflow-y:auto;padding:16px;scrollbar-width:none}.note-content::-webkit-scrollbar{display:none}.note-content pre{font-size:13px;margin:0;white-space:pre-wrap;word-break:break-word}.note-content pre,.placeholder-content{color:#4cbb17;color:var(--green);font-family:Courier New,monospace}.placeholder-content{align-items:center;display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center}.placeholder-clover{filter:drop-shadow(0 0 10px #4cbb17);filter:drop-shadow(0 0 10px var(--green));font-size:48px}.placeholder-content p{font-size:14px;letter-spacing:.15em;opacity:.6;text-shadow:0 0 6px #4cbb17;text-shadow:0 0 6px var(--green)}.text-editor{display:flex;flex-direction:column;height:100%}.text-editor .toolbar{background:#000;background:var(--black);border-bottom:1px solid #4cbb17;border-bottom:1px solid var(--green);display:flex;flex-shrink:0;flex-wrap:wrap;gap:5px;padding:6px}.text-editor textarea{background:#0b0b0b;background:var(--black-soft);border:none;flex:1 1;font-size:13px;outline:none;padding:12px;resize:none}.text-editor button,.text-editor select,.text-editor textarea{-webkit-appearance:none;appearance:none;color:#4cbb17;color:var(--green);font-family:Courier New,monospace}.text-editor button,.text-editor select{background:#000;background:var(--black);border:1px solid #4cbb17;border:1px solid var(--green);border-radius:0;cursor:pointer;font-size:11px;min-height:28px;padding:4px 8px}.text-editor button:hover,.text-editor select:hover{background:#4cbb17;background:var(--green);color:#000;color:var(--black)}@media (max-width:768px){:root{--menu-h:36px}.window{border-left:none;border-radius:0;border-right:none;bottom:calc(72px + env(safe-area-inset-bottom, 0px))!important;bottom:calc(var(--dock-h) + var(--safe-bottom))!important;box-shadow:none;height:auto!important;left:0!important;max-height:none!important;max-width:100%!important;position:fixed!important;right:0!important;top:40px!important;top:var(--menu-h)!important;transform:none!important;width:100%!important}.window-header{cursor:default;height:44px;padding:0 12px}.win-close{font-size:14px;height:32px;width:32px}.win-close:before{bottom:-6px;left:-6px;right:-6px;top:-6px}.win-title{font-size:13px}.window-content{height:calc(100% - 44px)}.menu-bar{font-size:12px;padding:0 12px}.sos-title{font-size:13px}@media (max-width:360px){.menu-bar-left{visibility:hidden}}.about-photo{display:block;float:none;margin:0 auto 16px;max-width:100px;width:100px}.about-content{font-size:13px;padding:16px}.resume-skills-grid{grid-template-columns:1fr}.resume-content{font-size:13px;padding:16px}.resume-job-header{flex-direction:column;gap:2px}.resume-header h1{font-size:18px}.resume-contact-line{font-size:10px}.text-editor .toolbar{gap:6px;padding:8px}.text-editor button,.text-editor select{font-size:13px;min-height:36px;padding:4px 10px}}.boot-screen{align-items:flex-start;background:#000;bottom:0;display:flex;font-family:Courier New,Courier,monospace;justify-content:flex-start;left:0;overflow:hidden;position:fixed;right:0;top:0;transform-origin:center center;z-index:9999}.boot-screen.power-on{animation:crt-power-on .75s cubic-bezier(.23,1,.32,1) forwards}.boot-screen.exiting{animation:crt-power-off .75s ease-in forwards}.boot-scanlines{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000038 0,#00000038 4px);z-index:2}.boot-crt-vignette,.boot-scanlines{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.boot-crt-vignette{animation:phosphor-flicker 12s infinite;background:radial-gradient(ellipse at 50% 50%,#4cbb170a 0,#0000 55%,#000000a6 100%);z-index:1}.boot-content{box-sizing:border-box;max-width:960px;padding:clamp(20px,5vw,48px) clamp(16px,6vw,72px);position:relative;width:100%;z-index:3}.boot-line{animation:line-appear .08s ease-out both;color:#4cbb17;font-size:clamp(9px,2.2vw,14px);letter-spacing:.04em;line-height:1.75;text-shadow:0 0 4px #4cbb17,0 0 10px #4cbb1773;white-space:pre-wrap;word-break:break-all}.boot-welcome{font-size:clamp(12px,3vw,20px);font-weight:700;letter-spacing:.25em;margin-top:8px;text-shadow:0 0 8px #4cbb17,0 0 18px #4cbb17,0 0 35px #4cbb1799}.boot-prompt{animation:blink-prompt 1s step-end infinite;color:#4cbb17;cursor:pointer;font-size:clamp(9px,2vw,13px);letter-spacing:.18em;margin-top:28px;text-shadow:0 0 8px #4cbb17}@keyframes crt-power-on{0%{filter:brightness(8) blur(4px);opacity:.6;transform:scaleY(.002) scaleX(1.03)}12%{filter:brightness(5) blur(2px);opacity:.8;transform:scaleY(.015) scaleX(1.015)}35%{filter:brightness(2) blur(0);opacity:1;transform:scaleY(1) scaleX(1)}65%{filter:brightness(1.4)}to{filter:brightness(1);opacity:1;transform:scaleY(1) scaleX(1)}}@keyframes crt-power-off{0%{filter:brightness(1);opacity:1;transform:scaleY(1) scaleX(1)}25%{filter:brightness(3) blur(1px);opacity:.9;transform:scaleY(.08) scaleX(1)}55%{filter:brightness(7) blur(3px);opacity:.5;transform:scaleY(.003) scaleX(1.04)}to{filter:brightness(0);opacity:0;transform:scaleY(0) scaleX(1)}}@keyframes line-appear{0%{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:translateX(0)}}@keyframes blink-prompt{0%,to{opacity:1}50%{opacity:0}}@keyframes phosphor-flicker{0%{opacity:1}2%{opacity:.96}4%{opacity:1}30%{opacity:1}31%{opacity:.93}32%{opacity:1}60%{opacity:1}61%{opacity:.97}62%{opacity:.94}63%{opacity:1}90%{opacity:1}91%{opacity:.95}92%{opacity:1}to{opacity:1}}.splash-screen{-webkit-tap-highlight-color:transparent;align-items:center;background:#000;bottom:0;cursor:default;display:flex;font-family:Courier New,Courier,monospace;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9998}.splash-screen.exit{animation:splash-screen-out .9s ease-in forwards}.splash-scanlines{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0003 0,#0003 4px)}.splash-scanlines,.splash-vignette{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.splash-vignette{background:radial-gradient(ellipse at center,#0000 35%,#000c 100%)}.splash-content{align-items:center;display:flex;flex-direction:column;gap:clamp(12px,3vw,24px);opacity:0;padding:24px;position:relative;-webkit-user-select:none;user-select:none;z-index:2}.splash-screen.enter .splash-content{animation:splash-fade-in .8s ease-out forwards}.splash-screen.hold .splash-content{opacity:1}.splash-clover{animation:clover-pulse 2.5s ease-in-out infinite;filter:drop-shadow(0 0 10px #4cbb17) drop-shadow(0 0 28px #4cbb17) drop-shadow(0 0 55px rgba(76,187,23,.45));font-size:clamp(72px,22vmin,160px);line-height:1}.splash-title{animation:title-glow-pulse 2.5s ease-in-out infinite;color:#4cbb17;font-size:clamp(52px,16vmin,120px);font-weight:700;letter-spacing:.3em;padding-right:.3em;text-shadow:0 0 10px #4cbb17,0 0 24px #4cbb17,0 0 55px #4cbb1780,0 0 90px #4cbb1733}.splash-prompt{animation:blink 1s step-end infinite;color:#4cbb17;cursor:pointer;font-size:clamp(10px,2.5vmin,13px);letter-spacing:.18em;margin-top:clamp(12px,4vmin,28px);text-shadow:0 0 8px #4cbb17}@keyframes splash-fade-in{0%{filter:blur(8px);opacity:0;transform:scale(.92)}60%{filter:blur(0);opacity:1;transform:scale(1.02)}to{filter:blur(0);opacity:1;transform:scale(1)}}@keyframes splash-screen-out{0%{filter:brightness(1);opacity:1;transform:scale(1)}40%{filter:brightness(1.6);opacity:1;transform:scale(1.03)}to{filter:brightness(0) blur(6px);opacity:0;transform:scale(.97)}}@keyframes clover-pulse{0%,to{filter:drop-shadow(0 0 10px #4cbb17) drop-shadow(0 0 28px #4cbb17) drop-shadow(0 0 55px rgba(76,187,23,.4))}50%{filter:drop-shadow(0 0 16px #4cbb17) drop-shadow(0 0 44px #4cbb17) drop-shadow(0 0 90px rgba(76,187,23,.7))}}@keyframes title-glow-pulse{0%,to{text-shadow:0 0 10px #4cbb17,0 0 24px #4cbb17,0 0 55px #4cbb1773}50%{text-shadow:0 0 14px #4cbb17,0 0 38px #4cbb17,0 0 80px #4cbb17b8,0 0 120px #4cbb1747}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
/*# sourceMappingURL=main.f9bd3845.css.map*/