:root{--terminal-bg:#1e1e1e;--terminal-fg:#cfcfcf;--binary-rain-color:#00ff9c;--scrollbar-thumb:#555;--scrollbar-track:#1e1e1e}@font-face{font-family:W95FA;src:url(/fonts/w95f.woff2) format("woff2");font-display:swap}.portfolio-shell{min-height:100vh;overflow:hidden;position:relative}.portfolio-shell__dossier,.portfolio-shell__terminal{transition:opacity .48s ease,transform .58s cubic-bezier(.22,1,.36,1),visibility .58s}.portfolio-shell__terminal{min-height:100vh;position:relative;z-index:1}.portfolio-shell__dossier{background:#e8e3d8;color:#1b1b18;inset:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;transform:translateY(28px);visibility:hidden;z-index:2}.portfolio-shell--dossier .portfolio-shell__terminal{opacity:0;pointer-events:none;transform:scale(.985);visibility:hidden}.portfolio-shell--dossier .portfolio-shell__dossier{opacity:1;pointer-events:auto;position:fixed;transform:none;visibility:visible}.terminal-mode-switch,.win95-button{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;color:#111;cursor:pointer;font:700 12px/1.2 Arial,sans-serif;padding:7px 10px}.terminal-mode-switch{position:fixed;right:16px;top:14px;z-index:30}.terminal-mode-switch span{margin-left:6px}.terminal-mode-switch:active,.win95-button:active{border-color:#404040 #fff #fff #404040;transform:translate(1px,1px)}.win95-desktop{background:#006f70;box-sizing:border-box;color:#151512;font-family:W95FA,"MS Sans Serif",sans-serif;font-smooth:never;-webkit-font-smoothing:none;height:100vh;min-height:100vh;overflow:hidden;padding:34px 68px 55px 110px;position:relative}.win95-desktop:before{background:repeating-linear-gradient(180deg,rgba(10,25,20,.15) 0,rgba(10,25,20,.15) 1px,transparent 0,transparent 3px);mix-blend-mode:multiply;z-index:60}.win95-desktop:after,.win95-desktop:before{content:"";inset:0;pointer-events:none;position:fixed}.win95-desktop:after{border:1px solid rgba(54,50,38,.25);box-shadow:inset 0 0 120px rgba(30,24,12,.38),inset 0 0 4px rgba(255,242,199,.5);z-index:61}.win95-desktop--maximized{padding:0 0 38px}.win95-desktop--maximized .win95-window{height:calc(100vh - 38px)!important;max-width:none;min-height:0;width:100%!important}.win95-desktop--maximized .win95-icons{display:none}.win95-icons{color:#fff;display:grid;grid-gap:25px;gap:25px;left:22px;position:fixed;text-align:center;top:22px}.win95-icons button{background:transparent;border:0;color:inherit;cursor:pointer;padding:0;text-shadow:1px 1px #000}.win95-icons span{display:block;font-family:Courier New,monospace;font-size:30px}.win95-icons small{display:block;font-family:Arial,sans-serif;font-size:11px;margin-top:3px}.win95-desktop--large-icons .win95-icons span{font-size:42px}.win95-desktop--large-icons .win95-icons small{font-size:13px}.win95-window{background:#b7b4aa;border-color:#e7e4d5 #3d3d36 #3d3d36 #e7e4d5;border-style:solid;border-width:3px;box-shadow:2px 2px #000;display:flex;flex-direction:column;height:calc(100vh - 110px);margin:0 auto;min-height:360px;position:relative;width:min(1180px,calc(100vw - 178px))}.win95-window--positioned{left:0;margin:0;position:absolute;top:0}.win95-titlebar{align-items:center;background:#00006d;color:#fff;cursor:-webkit-grab;cursor:grab;display:flex;font-size:13px;justify-content:space-between;margin:3px 3px 0;padding:4px 4px 4px 7px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.win95-titlebar:active{cursor:-webkit-grabbing;cursor:grabbing}.win95-titlebar__mark{margin-right:6px}.win95-titlebar strong{flex:1 1}.win95-titlebar button{background:#b7b4aa;border-color:#e7e4d5 #3d3d36 #3d3d36 #e7e4d5;border-style:solid;border-width:2px;color:#000;cursor:pointer;font:13px W95FA,Arial;height:19px;margin-left:3px;min-width:20px;padding:0}.win95-menubar{border-bottom:1px solid #808080;display:flex;gap:2px;font-size:12px;padding:4px 7px;position:relative}.win95-menubar button{background:none;border:0;cursor:pointer;font:inherit;padding:3px 7px}.win95-menubar button:hover{background:#000080;color:#fff}.win95-dropdown{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;box-shadow:2px 2px #000;display:grid;left:2px;min-width:170px;padding:3px;position:absolute;top:26px;z-index:4}.win95-dropdown button{color:#111;padding:7px;text-align:left}.win95-dropdown p{font:11px/1.4 Courier New,monospace;margin:5px}.win95-toolbar{align-items:center;border-bottom:2px solid #808080;display:flex;flex-wrap:wrap;gap:6px;padding:6px}.win95-actions button,.win95-toolbar button{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;cursor:pointer;font:12px Arial;padding:5px 8px}.win95-toolbar span{background:#fff;border-color:#404040 #fff #fff #404040;border-style:solid;border-width:2px;font-size:11px;margin-left:7px;padding:5px 9px}.win95-body{background:#f2efe3;display:grid;flex:1 1;grid-template-columns:180px minmax(0,1fr);min-height:0;overflow:hidden}.win95-body--without-sidebar{grid-template-columns:minmax(0,1fr)}.win95-sidebar{background:#b7b4aa;border-right:2px solid #77776d;display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding:14px 10px}.win95-sidebar p{border-bottom:1px solid #77776d;font-size:12px;font-weight:700;margin:0 0 8px;padding-bottom:8px}.win95-sidebar a,.win95-sidebar button{background:none;border:0;color:#111;cursor:pointer;font:12px W95FA,Arial;padding:6px;text-align:left;text-decoration:none}.win95-sidebar a span,.win95-sidebar button span{display:inline-block;width:15px}.win95-sidebar .is-active{background:#00006d;color:#fff}.win95-content{min-height:0;overflow:auto;padding:clamp(22px,4vw,52px)}.win95-content h1{color:#00006d;font-size:clamp(30px,5vw,52px);letter-spacing:-.06em;margin:5px 0 24px}.win95-content h2{font-size:18px;margin:0}.win95-path{color:#59594f;font:11px W95FA,Courier New,monospace;margin:0}.win95-about__hero{align-items:center;display:grid;grid-gap:clamp(22px,4vw,50px);gap:clamp(22px,4vw,50px);grid-template-columns:170px 1fr;max-width:850px}.win95-about__hero>div:last-child>p{font-size:19px;line-height:1.4;max-width:570px}.win95-monitor{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:8px;height:115px;padding:13px;position:relative}.win95-monitor:after{background:#808080;bottom:-28px;content:"";height:20px;left:42px;position:absolute;width:80px}.win95-monitor div{align-items:center;background:#008080;border:2px inset #fff;color:#fff;display:flex;font:700 48px Courier New;height:100%;justify-content:center}.win95-actions{display:flex;gap:10px}.win95-notice{background:#ffffc0;border:1px solid #808080;font-size:13px;margin:55px 0 20px;padding:12px}.win95-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:9px;gap:9px}.win95-group,.win95-skill-grid article,.win95-stats div{border:2px groove #fff;padding:13px}.win95-stats b{color:#000080;display:block;font-size:28px}.win95-stats span{font-size:12px;line-height:1.3}.win95-group{font-size:14px;line-height:1.5;margin-top:20px;max-width:780px}.win95-group h2{background:#c0c0c0;display:inline-block;font-size:12px;margin:-22px 0 8px;padding:0 5px}.win95-projects{display:grid;grid-gap:15px;gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.win95-projects article{border:2px groove #fff;display:flex;flex-direction:column;padding:14px}.win95-projects header{align-items:flex-start;display:flex;gap:10px}.win95-projects header>span{color:#000080;font-size:25px}.win95-projects header h2{line-height:1.05}.win95-projects footer a,.win95-projects header h2 a{color:#00006d;text-decoration:underline;text-underline-offset:2px}.win95-projects header p,.win95-projects__stack{color:#666;font-size:11px;margin:4px 0 0}.win95-projects__stack{color:#008080!important;font-weight:700;margin:15px 0!important}.win95-projects article>p{font-size:13px;line-height:1.35}.win95-projects footer{border-top:1px solid #c0c0c0;color:#000080;font-size:11px;font-weight:700;margin-top:auto;padding-top:10px}.win95-link{color:#000080;display:inline-block;font-size:13px;font-weight:700;margin-top:20px}.win95-list article{border-bottom:1px solid #c0c0c0;display:grid;grid-gap:18px;gap:18px;grid-template-columns:150px 1fr;padding:17px 0}.win95-list article>p{color:#666;font:11px Courier New;margin:3px 0}.win95-list h3{color:#008080;font-size:12px;margin:5px 0 11px}.win95-list div>p{font-size:13px;line-height:1.4;margin:0}.win95-skill-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,1fr)}.win95-skill-grid article h2{color:#000080;font-size:15px}.win95-skill-grid article p{font-size:13px;line-height:1.45}.win95-primary-link{color:#000080;font-size:16px;font-weight:700}.win95-contact__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.win95-contact__links a{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;color:#111;font-size:12px;padding:9px;text-decoration:none}.win95-statusbar{border-top:2px solid #808080;display:flex;font-size:11px;justify-content:space-between;padding:4px}.win95-statusbar span{border:1px inset #fff;padding:3px 7px}.win95-taskbar{align-items:center;background:#c0c0c0;border-top:2px solid #fff;bottom:0;display:flex;gap:8px;height:38px;left:0;padding:0 5px;position:fixed;right:0;z-index:50}.win95-start{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;font:700 14px Arial;padding:5px 8px}.win95-taskbar__app{background:#c0c0c0;border-color:#404040 #fff #fff #404040;border-style:solid;border-width:2px;cursor:pointer;font-size:11px;padding:5px 9px}.win95-taskbar__app.is-minimized{border-color:#fff #404040 #404040 #fff}.win95-taskbar time{border:1px inset #fff;font-size:11px;margin-left:auto;padding:4px 7px}.win95-start-menu{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;bottom:35px;display:grid;left:4px;min-width:210px;position:absolute}.win95-start-menu b{background:#000080;color:#fff;font-size:11px;padding:10px}.win95-start-menu button{background:none;border:0;cursor:pointer;font:12px Arial;padding:10px;text-align:left}.win95-start-menu button:hover{background:#000080;color:#fff}.win95-resize-handle{height:14px;position:absolute;touch-action:none;width:14px;z-index:6}.win95-resize-handle--nw{cursor:nwse-resize;left:-5px;top:-5px}.win95-resize-handle--ne{cursor:nesw-resize;right:-5px;top:-5px}.win95-resize-handle--sw{bottom:-5px;cursor:nesw-resize;left:-5px}.win95-resize-handle--se{bottom:-5px;cursor:nwse-resize;right:-5px}.win95-dialog-backdrop{align-items:center;background:rgba(0,0,0,.22);display:flex;inset:0;justify-content:center;position:fixed;z-index:70}.win95-dialog{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:3px;box-shadow:2px 2px #000;max-width:370px;min-width:290px}.win95-dialog header{background:#000080;color:#fff;font:700 12px Arial;margin:3px 3px 0;padding:5px 7px}.win95-dialog>div{align-items:flex-start;display:flex;font-size:13px;gap:14px;line-height:1.35;padding:22px}.win95-dialog__icon{align-items:center;background:#000080;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;flex:0 0 25px;font:700 17px serif;height:25px;justify-content:center}.win95-dialog>div p{margin:0}.win95-dialog footer{border-top:1px solid #808080;display:flex;gap:8px;justify-content:center;padding:9px}.win95-dialog footer button{background:#c0c0c0;border-color:#fff #404040 #404040 #fff;border-style:solid;border-width:2px;font:12px Arial;min-width:70px;padding:5px}@media (max-width:720px){.terminal-mode-switch{font-size:11px;right:8px;top:8px}.terminal-mode-switch span{display:none}.win95-desktop{padding:12px 10px 46px}.win95-icons{display:none}.win95-window{height:calc(100vh - 60px);min-height:360px;width:calc(100vw - 20px)}.win95-menubar span{display:none}.win95-menubar button{margin-left:0}.win95-toolbar span{display:none}.win95-body{grid-template-columns:1fr}.win95-sidebar{flex-direction:row;overflow-x:auto;padding:7px}.win95-sidebar p{display:none}.win95-sidebar a,.win95-sidebar button{white-space:nowrap}.win95-content{padding:22px 16px}.win95-about__hero{grid-template-columns:1fr}.win95-monitor{max-width:150px}.win95-list article,.win95-projects,.win95-skill-grid,.win95-stats{grid-template-columns:1fr}.win95-list article{gap:8px}.win95-content h1{font-size:35px}}.win95-desktop button,.win95-desktop input,.win95-desktop textarea{font-family:W95FA,"MS Sans Serif",sans-serif!important}.win95-desktop a,.win95-desktop h1,.win95-desktop h2,.win95-desktop h3,.win95-desktop h4,.win95-desktop p,.win95-desktop span{text-shadow:.25px 0 rgba(62,49,28,.28)}body,html{background:var(--terminal-bg);color:var(--terminal-fg);font-family:Source Code Pro,monospace;text-align:left}.terminal-container,body,html{width:100vw;height:100vh;margin:0;padding:0}.terminal-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-x:hidden;overflow-y:hidden;-webkit-overflow-scrolling:touch}.matrix-mode .binary-rain{filter:drop-shadow(0 0 12px rgba(0,255,65,.6))}.boot-sequence{position:fixed;inset:0;z-index:20;background:var(--terminal-bg);color:var(--terminal-fg);display:flex;flex-direction:column;padding:32px 28px;box-sizing:border-box;font-family:Source Code Pro,monospace;letter-spacing:.02em;opacity:1;transition:opacity .4s ease}.boot-sequence--fade{opacity:0;pointer-events:none}.boot-sequence__header{font-size:16px;margin-bottom:20px;color:var(--terminal-fg)}.boot-sequence__skip{position:fixed;right:28px;bottom:24px;color:rgba(207,207,207,.72);font-size:12px}.boot-sequence__body{display:flex;flex-direction:column;gap:8px;font-size:14px}.boot-sequence__line{white-space:pre-wrap}.boot-sequence.theme-1 .boot-sequence__header{color:#0dbc79}.boot-sequence.theme-2 .boot-sequence__header{color:#ff0055}.boot-sequence.theme-3 .boot-sequence__header{color:#88c0d0}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:15}.crt-overlay__scanlines{position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.14) 0,rgba(255,255,255,.08) 1px,rgba(0,0,0,.18) 2px,rgba(0,0,0,.18) 3px);mix-blend-mode:overlay;opacity:.7;animation:scanlines 3s linear infinite}.crt-overlay__flicker{position:absolute;inset:0;background:rgba(255,255,255,.08);opacity:.28;animation:flicker 2s infinite}.crt-overlay__vignette{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(0,0,0,0) 35%,rgba(0,0,0,.7) 100%);opacity:.8}@keyframes scanlines{0%{transform:translateY(0)}to{transform:translateY(4px)}}@keyframes flicker{0%,to{opacity:.08}50%{opacity:.16}}.glitch{position:relative;animation:glitch-skew .45s steps(2)}.glitch:after,.glitch:before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.02);mix-blend-mode:screen;pointer-events:none}.glitch:before{-webkit-clip-path:polygon(0 12%,100% 12%,100% 20%,0 20%);clip-path:polygon(0 12%,100% 12%,100% 20%,0 20%);transform:translateX(-6px);opacity:.6;animation:glitch-slice .45s steps(2)}.glitch:after{-webkit-clip-path:polygon(0 65%,100% 65%,100% 72%,0 72%);clip-path:polygon(0 65%,100% 65%,100% 72%,0 72%);transform:translateX(6px);opacity:.6;animation:glitch-slice .45s steps(2) reverse}.glitch--subtle{animation-duration:.35s}.glitch--intense{animation-duration:.6s}@keyframes glitch-skew{0%{transform:none}15%{transform:translateX(-2px) skewX(1deg)}30%{transform:translateX(2px) skewX(-1deg)}45%{transform:translateX(-3px) skewX(2deg)}60%{transform:translateX(3px) skewX(-2deg)}to{transform:none}}@keyframes glitch-slice{0%{-webkit-clip-path:polygon(0 10%,100% 10%,100% 14%,0 14%);clip-path:polygon(0 10%,100% 10%,100% 14%,0 14%)}20%{-webkit-clip-path:polygon(0 40%,100% 40%,100% 46%,0 46%);clip-path:polygon(0 40%,100% 40%,100% 46%,0 46%)}40%{-webkit-clip-path:polygon(0 70%,100% 70%,100% 76%,0 76%);clip-path:polygon(0 70%,100% 70%,100% 76%,0 76%)}60%{-webkit-clip-path:polygon(0 20%,100% 20%,100% 28%,0 28%);clip-path:polygon(0 20%,100% 20%,100% 28%,0 28%)}80%{-webkit-clip-path:polygon(0 55%,100% 55%,100% 62%,0 62%);clip-path:polygon(0 55%,100% 55%,100% 62%,0 62%)}to{-webkit-clip-path:polygon(0 30%,100% 30%,100% 34%,0 34%);clip-path:polygon(0 30%,100% 30%,100% 34%,0 34%)}}@media (prefers-reduced-motion:reduce){.crt-overlay__flicker,.crt-overlay__scanlines,.glitch{animation:none!important}}.jumpscare-overlay{position:fixed;inset:0;background:radial-gradient(circle,rgba(255,0,0,.7) 0,rgba(0,0,0,.95) 70%);z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Source Code Pro,monospace;text-transform:uppercase;letter-spacing:.14em;color:#ff3b3b;animation:jumpscarePulse .2s infinite}.jumpscare-overlay__message{font-size:clamp(24px,6vw,64px);font-weight:700}.jumpscare-overlay__subtext{margin-top:12px;font-size:clamp(12px,2.2vw,18px);color:#ffd6d6}@keyframes jumpscarePulse{0%{transform:scale(1);filter:blur(0)}to{transform:scale(1.02);filter:blur(1px)}}.rhino-art-viewport{width:min(1200px,100vw);padding:16px 20px 0;display:flex;justify-content:center;box-sizing:border-box}.rhino-art-image{display:block;width:min(100%,1080px);height:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.xterm-wrapper{width:min(1200px,100vw);height:100%;padding:0 20px 20px;margin:0 auto;box-sizing:border-box;display:flex;justify-content:center;flex:1 1}.terminal-bottom-spacer{height:24px;flex-shrink:0}.xterm{width:100%!important;height:100%!important;white-space:nowrap!important;max-width:100%!important;margin:0 auto!important}.xterm-viewport{overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-gutter:stable both-edges}.xterm-viewport::-webkit-scrollbar{height:0}.xterm-screen{white-space:nowrap!important;overflow:visible!important}.xterm-viewport::-webkit-scrollbar{width:6px;height:6px}.xterm-viewport::-webkit-scrollbar-track{background:var(--scrollbar-track)}.xterm-viewport::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.xterm-viewport::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb);filter:brightness(1.2)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:8px;border:2px solid var(--scrollbar-track)}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb);filter:brightness(1.2)}.binary-rain-overlay{position:fixed;inset:0;pointer-events:none;z-index:10;overflow:hidden}.binary-rain-stack{width:var(--side-width,10vw);max-width:15vw;overflow:hidden;height:100%}.binary-rain,.binary-side{display:flex;gap:12px;width:100%;height:100%}.binary-side{flex-direction:row;overflow:hidden}.binary-side.left{direction:rtl}.binary-side.right{direction:ltr}.binary-column{display:inline-flex;flex-direction:column;color:var(--binary-rain-color);text-shadow:0 0 4px var(--binary-rain-color);animation-name:binary-scroll;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform;height:100%}.binary-column>span{display:block;line-height:1.1;-webkit-user-select:none;-moz-user-select:none;user-select:none;writing-mode:vertical-rl;-webkit-text-orientation:upright;text-orientation:upright;letter-spacing:.6px}@keyframes binary-scroll{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.xterm-wrapper{align-self:stretch}@media (max-width:768px){.binary-rain-overlay{display:none!important}.terminal-container{padding:0}}