@import "https://fonts.googleapis.com/css2?family=Overpass:ital,wght@0,100..900;1,100..900&family=Squada+One&display=swap";@import "https://fonts.googleapis.com/css2?family=Overpass+Mono:wght@300..700&display=swap";*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.absolute{position:absolute}.hidden{display:none}.resize{resize:both}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}html,body,#root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0a;min-height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--jwst-black:#0a0a0a;--jwst-beryllium:#c9a227;--jwst-white:#f5f5f5}.screen-reader-text{z-index:999;color:#fff;opacity:0;background-color:#000;padding:1em;position:absolute;left:-9999px}h1,h2,h3,h4,h5,h6{color:var(--jwst-white);margin:0;font-family:Squada One,sans-serif;font-weight:400}h3,h4{font-weight:300}p,span{color:var(--jwst-white);font-family:Overpass,sans-serif;font-weight:200}a,a:visited{color:inherit;text-decoration:none;transition-duration:.3s;position:relative}a:before,a:after{content:none}:root{--font-family-body:"Overpass", sans-serif;--font-family-heading:"Squada One", sans-serif}html,body{scroll-behavior:smooth;background-color:var(--jwst-black);height:100%;margin:0;padding:0;position:relative;overflow-x:hidden}.App{font-family:var(--font-family-body);scroll-snap-type:y mandatory;scroll-behavior:smooth;background-color:var(--jwst-black);height:100vh;font-weight:200;position:relative;overflow:hidden auto}.App:before,.App:after{content:"";pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0}.App:before{background-image:radial-gradient(1px 1px at 20px 30px,#fffc,#0000),radial-gradient(1px 1px at 40px 70px,#fff9,#0000),radial-gradient(1px 1px at 50px 160px,#ffffffb3,#0000),radial-gradient(1px 1px at 90px 40px,#ffffff80,#0000),radial-gradient(1px 1px at 130px 80px,#fff9,#0000),radial-gradient(1px 1px at 160px 120px,#fffc,#0000),radial-gradient(1px 1px at 200px 50px,#ffffff80,#0000),radial-gradient(1px 1px at 220px 180px,#ffffffb3,#0000),radial-gradient(1px 1px at 260px 90px,#fff9,#0000),radial-gradient(1px 1px at 300px 140px,#fffc,#0000),radial-gradient(1px 1px at 340px 30px,#ffffff80,#0000),radial-gradient(1px 1px at 380px 200px,#ffffffb3,#0000),radial-gradient(1px 1px at 420px 110px,#fff9,#0000),radial-gradient(1px 1px at 460px 60px,#fffc,#0000),radial-gradient(1px 1px at 500px 170px,#ffffff80,#0000);background-size:550px 220px;animation:8s ease-in-out infinite alternate twinkle}.App:after{background-image:radial-gradient(2px 2px at 100px 50px,#ffffffe6,#0000),radial-gradient(2px 2px at 250px 150px,#c9a227b3,#0000),radial-gradient(1.5px 1.5px at 350px 100px,#fffc,#0000),radial-gradient(2px 2px at 450px 200px,#fff9,#0000),radial-gradient(1.5px 1.5px at 150px 180px,#c9a22780,#0000),radial-gradient(2px 2px at 550px 80px,#ffffffb3,#0000),radial-gradient(1.5px 1.5px at 50px 120px,#fffc,#0000),radial-gradient(2px 2px at 400px 30px,#c9a22799,#0000);background-size:600px 250px;animation:12s ease-in-out infinite alternate-reverse twinkle}@keyframes twinkle{0%{opacity:.5}to{opacity:1}}.welcome-section{--scroll-progress:0;--hex-scale:1;--name-scale:1;--subtitle-opacity:1;--indicator-opacity:1;z-index:1;scroll-snap-align:start;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:relative}.welcome-content{box-sizing:border-box;transform-origin:top;justify-content:center;align-items:center;width:100%;padding:0 4rem;display:flex}.ascii-container{max-width:50%;height:50vh;min-height:400px;transform:scale(var(--hex-scale));transform-origin:50%;will-change:transform;flex:1;justify-content:center;align-items:center;transition:transform 50ms ease-out;display:flex;position:relative}.ascii-container table,.ascii-container td{background:0 0!important}.name-container{max-width:50%;transform:scale(var(--name-scale));transform-origin:0;will-change:transform;flex-direction:column;flex:1;align-items:flex-start;padding-left:2rem;transition:transform 50ms ease-out;display:flex}.welcome-name{color:#c9a227;text-transform:uppercase;margin:0;font-family:Squada One,sans-serif;font-size:clamp(3rem,8vw,6rem);line-height:1.1}.welcome-subtitle{color:#f5f5f5;opacity:calc(.8 * var(--subtitle-opacity));will-change:opacity;margin:1rem 0 0;font-family:Overpass,sans-serif;font-size:clamp(1rem,2vw,1.5rem);font-weight:200;transition:opacity 50ms ease-out}.scroll-indicator{opacity:var(--indicator-opacity);will-change:opacity;flex-direction:column;align-items:center;gap:.5rem;transition:opacity 50ms ease-out;animation:2s ease-in-out infinite bounce;display:flex;position:absolute;bottom:2rem}.scroll-indicator span{color:#c9a227;text-transform:uppercase;letter-spacing:2px;font-family:Overpass,sans-serif;font-size:1rem;transform:none}.scroll-arrow{border-bottom:2px solid #c9a227;border-right:2px solid #c9a227;width:20px;height:20px;transform:rotate(45deg)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.site-header{z-index:100;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0af2;border-bottom:1px solid #c9a2274d;align-items:center;gap:1rem;height:60px;padding:0 2rem;transition:transform .3s,opacity .3s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.site-header.is-visible{opacity:1;transform:translateY(0)}.header-hex{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:#c9a227;flex-shrink:0;width:32px;height:32px;animation:12s linear infinite spin-slow}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-name{color:#c9a227;text-transform:uppercase;letter-spacing:.05em;margin:0;font-family:Squada One,sans-serif;font-size:1.25rem}.header-social{color:var(--jwst-white);align-items:center;gap:.5rem;margin-left:auto;display:flex}.social-link{color:#f5f5f5;opacity:.6;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.social-link:hover{color:#c9a227;opacity:1;background:#c9a2271a}.social-icon{width:25px;height:25px}.social-icon path{fill:currentColor}@media (width<=768px){.welcome-content{text-align:center;flex-direction:column;padding:2rem}.ascii-container{transform-origin:50%;flex:none;width:100%;max-width:100%;height:45vh;min-height:280px}.name-container{transform-origin:50%;flex:none;align-items:center;max-width:100%;margin-top:1rem;padding-left:0}.welcome-name{font-size:2.5rem}.welcome-subtitle{font-size:1rem}.site-header{padding:0 1rem}.header-social{gap:.25rem}.social-link{width:32px;height:32px}.social-icon{width:16px;height:16px}.header-hex{width:24px;height:24px}.header-name{font-size:1rem}}.content-section{--beryllium-gold:var(--jwst-beryllium);--text-primary:var(--jwst-white);--terminal-green:#4ade80;--terminal-amber:#fbbf24;z-index:1;scroll-snap-align:start;width:100%;min-height:100vh;position:relative}.content-desktop{box-sizing:border-box;align-items:stretch;max-width:1600px;min-height:100vh;margin:0 auto;padding:80px 2rem 2rem;display:flex}.terminal-display{background:#0a0a0ab3;flex-direction:column;flex:1;min-height:600px;max-height:calc(100vh - 80px - 4rem);display:flex;position:relative;overflow:hidden}.hud-bracket{z-index:10;width:40px;height:40px;position:absolute}.hud-bracket:before,.hud-bracket:after{content:"";background:var(--beryllium-gold);position:absolute}.hud-bracket-tl{top:0;left:0}.hud-bracket-tl:before{width:40px;height:2px;top:0;left:0}.hud-bracket-tl:after{width:2px;height:40px;top:0;left:0}.hud-bracket-tr{top:0;right:0}.hud-bracket-tr:before{width:40px;height:2px;top:0;right:0}.hud-bracket-tr:after{width:2px;height:40px;top:0;right:0}.hud-bracket-bl{bottom:0;left:0}.hud-bracket-bl:before{width:40px;height:2px;bottom:0;left:0}.hud-bracket-bl:after{width:2px;height:40px;bottom:0;left:0}.hud-bracket-br{bottom:0;right:0}.hud-bracket-br:before{width:40px;height:2px;bottom:0;right:0}.hud-bracket-br:after{width:2px;height:40px;bottom:0;right:0}.scan-lines{pointer-events:none;z-index:5;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000026 2px 4px);position:absolute;inset:0}.hud-bar{z-index:6;justify-content:space-between;padding:.75rem 3rem;display:flex;position:relative}.hud-bar-top{border-bottom:1px solid #c9a22733}.hud-bar-bottom{border-top:1px solid #c9a22733;margin-top:auto}.hud-data-group{align-items:center;gap:.5rem;display:flex}.hud-label{color:var(--text-primary);letter-spacing:.1em;opacity:.7;font-family:Overpass Mono,monospace;font-size:.65rem}.hud-value{font-family:var(--font-family-body);color:var(--text-primary);letter-spacing:.05em;font-size:.75rem}.hud-value-mono{font-family:Overpass Mono,monospace}.hud-status-nominal{color:#4ade80}.hud-status-degraded{color:#fbbf24}.hud-status-critical{color:#f87171;animation:1s ease-in-out infinite pulse-critical}@keyframes pulse-critical{0%,to{opacity:1}50%{opacity:.5}}.terminal-content{z-index:6;flex:1;min-height:0;padding:1rem;display:flex;position:relative;overflow:hidden}.section-display{flex-direction:column;width:100%;height:100%;display:flex}.section-display.animate-content-enter{animation:.6s cubic-bezier(.4,0,.2,1) content-enter}@keyframes content-enter{0%{opacity:0;filter:blur(8px);transform:scale(.92)}40%{opacity:.6;filter:blur(2px)}to{opacity:1;filter:blur();transform:scale(1)}}.section-display.animate-content-enter .section-header-display{animation:.5s cubic-bezier(.4,0,.2,1) .15s both content-element-enter}.section-display.animate-content-enter .section-body{animation:.5s cubic-bezier(.4,0,.2,1) .25s both content-element-enter}.section-display.animate-content-enter .section-meta{animation:.5s cubic-bezier(.4,0,.2,1) .35s both content-element-enter}@keyframes content-element-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section-display.animate-content-swap{animation:.5s cubic-bezier(.4,0,.2,1) content-swap}@keyframes content-swap{0%{opacity:0;filter:blur(4px);transform:translate(-20px)scale(.98)}50%{opacity:.5;filter:blur(1px)}to{opacity:1;filter:blur();transform:translate(0)scale(1)}}.section-display.animate-content-swap .section-header-display{animation:.4s cubic-bezier(.4,0,.2,1) 50ms both content-element-in}.section-display.animate-content-swap .section-body{animation:.4s cubic-bezier(.4,0,.2,1) .1s both content-element-in}.section-display.animate-content-swap .section-meta{animation:.4s cubic-bezier(.4,0,.2,1) .15s both content-element-in}@keyframes content-element-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.section-header-display{border-bottom:1px solid #c9a2274d;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.section-marker{color:var(--beryllium-gold);font-family:Overpass Mono,monospace;font-size:1.5rem;animation:1s step-end infinite blink}.section-title{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:2rem}.section-body{scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding-right:1rem;overflow-y:auto}.section-body::-webkit-scrollbar{display:none}.section-body-wrapper{flex:1;min-height:0;display:flex;position:relative}.custom-scroll-track{z-index:10;background:#c9a22759;border-left:1px solid #c9a22733;width:8px;height:100%;position:absolute;top:0;right:0}.custom-scroll-thumb{background:var(--beryllium-gold);cursor:pointer;width:100%;min-height:30px;transition:background .15s;position:absolute;top:0;right:0}.custom-scroll-thumb:hover,.custom-scroll-thumb:active{background:var(--jwst-white)}.custom-scroll-track.hidden{opacity:0;pointer-events:none}.section-meta{color:var(--text-primary);opacity:.5;letter-spacing:.1em;gap:2rem;margin-top:auto;padding-top:2rem;font-family:Overpass Mono,monospace;font-size:.7rem;display:flex}.content-text{flex-direction:column;gap:1.5rem;display:flex}.content-paragraph{font-family:var(--font-family-body);color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:300;line-height:1.8}.content-experience{flex-direction:column;gap:2rem;display:flex}.experience-item{border-left:2px solid #c9a2274d;padding-left:1rem}.experience-header{justify-content:space-between;align-items:baseline;margin-bottom:.25rem;display:flex}.experience-role{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.05em;font-size:1.5rem}.experience-period{color:var(--text-primary);opacity:.6;font-family:Overpass Mono,monospace;font-size:.75rem}.experience-company{font-family:var(--font-family-body);color:var(--text-primary);opacity:.8;margin-bottom:.75rem;font-size:.9rem;display:block}.experience-description{margin:0;padding-left:1.25rem;list-style:none}.experience-description li{font-family:var(--font-family-body);color:var(--text-primary);margin-bottom:.5rem;font-size:.95rem;font-weight:300;line-height:1.6;position:relative}.experience-description li:before{content:">";color:var(--beryllium-gold);opacity:.5;font-family:Overpass Mono,monospace;position:absolute;left:-1.25rem}.content-freelancing{flex-direction:column;gap:2rem;display:flex}.freelancing-item{background:#c9a2270d;border:1px solid #c9a22726;padding:1rem}.freelancing-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.freelancing-project{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.05em;font-size:1.5rem}.freelancing-period{color:var(--text-primary);opacity:.7;font-family:Overpass Mono,monospace;font-size:.7rem}.freelancing-client{font-family:var(--font-family-body);color:var(--text-primary);opacity:.6;margin-bottom:.75rem;font-size:.85rem;display:block}.freelancing-description{font-family:var(--font-family-body);color:var(--text-primary);margin:0 0 1rem;padding-left:1rem;font-size:.95rem;font-weight:300;line-height:1.6;list-style:none}.freelancing-description li{margin-bottom:.3rem;position:relative}.freelancing-description li:before{content:">";color:var(--beryllium-gold);opacity:.5;position:absolute;left:-1rem}.skills{-webkit-margin-before:1rem;flex-wrap:wrap;gap:.4rem;margin-block-start:1rem;display:flex}.content-projects{flex-direction:column;gap:2rem;display:flex}.project-item{background:#c9a2270d;border:1px solid #c9a22726;padding:1rem}.project-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.project-name{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.05em;font-size:1.5rem}.project-link{color:var(--beryllium-gold);opacity:.7;font-family:Overpass Mono,monospace;font-size:.7rem;text-decoration:none;transition:opacity .2s}.project-link:hover{opacity:1}.project-description{font-family:var(--font-family-body);color:var(--text-primary);margin:0 0 1rem;font-size:.95rem;font-weight:300;line-height:1.6}.project-tech{flex-wrap:wrap;gap:.4rem;display:flex}.tech-tag,.skill-tag{font-family:var(--font-family-body);color:var(--text-primary);letter-spacing:.05em;cursor:crosshair;background:#ffffff0d;border:1px solid #c9a227bf;padding:5px 8px 3px;font-size:.75rem}.skill-tag:hover{background:#c9a22726;border-color:#c9a22766}.content-contact{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;height:100%;display:flex}.contact-messages{flex-direction:column;gap:1rem;display:flex}.contact-message{font-family:var(--font-family-body);color:var(--text-primary);max-width:500px;margin:0;font-size:1.25rem;font-weight:300;line-height:1.8}.contact-links{--hex-size:130px;--hex-height:calc(var(--hex-size) * 1.1547);--hex-margin:3px;--hex-total:calc(var(--hex-size) + 2 * var(--hex-margin));--border-width:2px;grid-template-columns:repeat(4, calc(var(--hex-total) / 2));justify-content:center;justify-items:center;width:fit-content;display:grid}.contact-link:first-child{grid-area:1/1/auto/3}.contact-link:nth-child(2){grid-area:1/3/auto/5}.contact-link:nth-child(3){margin-top:calc(var(--hex-size) * -.25);grid-area:2/2/auto/4}.contact-link{width:var(--hex-size);height:var(--hex-height);cursor:pointer;clip-path:polygon(0% 25%,0% 75%,50% 100%,100% 75%,100% 25%,50% 0%);animation:.4s cubic-bezier(.4,0,.2,1) both contact-hex-in;animation-delay:calc(.15s + var(--card-index) * 80ms);background:#c9a227d9;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;transition:background .3s;display:flex;position:relative}@keyframes contact-hex-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.contact-link:before{content:"";top:var(--border-width);left:var(--border-width);width:calc(100% - var(--border-width) * 2);height:calc(100% - var(--border-width) * 2);clip-path:polygon(0% 25%,0% 75%,50% 100%,100% 75%,100% 25%,50% 0%);z-index:0;background:#0f0f0ff7;transition:background .3s;position:absolute}.contact-link:hover{background:var(--text-primary)}.contact-link:hover:before{background:#0a0a0a}.contact-link-icon{z-index:1;width:28px;height:28px;color:var(--beryllium-gold);transition:color .3s;position:relative}.contact-link:hover .contact-link-icon{color:var(--text-primary)}.contact-link-icon-text{z-index:1;color:var(--beryllium-gold);font-family:Overpass Mono,monospace;font-size:.7rem;position:relative}.contact-link-label{z-index:1;font-family:var(--font-family-heading);color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;font-size:.95rem;position:relative}.standby-display{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;width:100%;height:100%;min-height:0;animation:.5s cubic-bezier(.4,0,.2,1) standby-fade-in;display:flex;overflow-y:auto}@keyframes standby-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.standby-display .standby-about{animation:.4s cubic-bezier(.4,0,.2,1) .1s both standby-element-in}.standby-display .module-grid{animation:.4s cubic-bezier(.4,0,.2,1) .2s both standby-element-in}@keyframes standby-element-in{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.standby-about{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;max-width:500px;display:flex}.standby-portrait{width:250px;height:250px;position:relative}.portrait-image{object-fit:cover;width:100%;height:100%}.portrait-image:hover{filter:grayscale(0%)contrast()}.portrait-frame{pointer-events:none;position:absolute;inset:-4px}.portrait-frame:before,.portrait-frame:after{content:"";background:var(--beryllium-gold);z-index:1;transition:all .3s;position:absolute}.portrait-frame:before{border-top:2px solid var(--beryllium-gold);border-left:2px solid var(--beryllium-gold);background:0 0;width:22px;height:22px;top:-1px;left:-1px}.portrait-frame:after{border-bottom:2px solid var(--beryllium-gold);border-right:2px solid var(--beryllium-gold);background:0 0;width:22px;height:22px;bottom:-1px;right:-1px}.standby-portrait:hover .portrait-frame:before,.standby-portrait:focus .portrait-frame:before{border-color:#c9a22780;top:-5px;left:-5px}.standby-portrait:hover .portrait-frame:after,.standby-portrait:focus .portrait-frame:after{border-color:#c9a22780;bottom:-5px;right:-5px}.standby-blurb{font-family:var(--font-family-body);color:var(--text-primary);opacity:.9;margin:0;font-size:1rem;font-weight:300;line-height:1.7}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.module-grid{--s:125px;--m:2px;--border-width:2px;--hex-total:calc(var(--s) + 2 * var(--m));--hex-height:calc(var(--s) * 1.1547);grid-template-columns:repeat(6, calc(var(--hex-total) / 2));justify-content:center;justify-items:center;width:fit-content;margin:1.25rem auto;display:grid}.module-grid .module-card:first-child{grid-area:1/1/auto/3}.module-grid .module-card:nth-child(2){grid-area:1/3/auto/5}.module-grid .module-card:nth-child(3){grid-area:1/5/auto/7}.module-grid .module-card:nth-child(4){margin-top:calc(var(--s) * -.26);grid-area:2/2/auto/4}.module-grid .module-card:nth-child(5){margin-top:calc(var(--s) * -.26);grid-area:2/4/auto/6}.module-card{width:var(--s);height:calc(var(--s) * 1.1547);cursor:pointer;text-align:center;animation:.4s cubic-bezier(.4,0,.2,1) both module-card-in;animation-delay:calc(.25s + var(--card-index) * 50ms);clip-path:polygon(0% 25%,0% 75%,50% 100%,100% 75%,100% 25%,50% 0%);background:#c9a227d9;flex-direction:column;justify-content:center;align-items:center;padding:.5rem;transition:background .3s;display:flex;position:relative;overflow:hidden}.module-card:before{content:"";top:var(--border-width);left:var(--border-width);width:calc(100% - var(--border-width) * 2);height:calc(100% - var(--border-width) * 2);clip-path:polygon(0% 25%,0% 75%,50% 100%,100% 75%,100% 25%,50% 0%);z-index:0;background:#0f0f0ff7;transition:background .3s;position:absolute}.module-card:after{content:"";z-index:10;pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000 0%,#c9a22780 50%,#0000 100%);width:100%;height:100%;position:absolute;top:0;left:-150%}.module-card:hover{background:var(--text-primary)}.module-card:hover:before{background:#0a0a0a}.module-card.clicked:after{opacity:1;animation:.5s ease-out forwards hex-shimmer}@keyframes hex-shimmer{0%{left:-150%}to{left:150%}}@keyframes module-card-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.module-card-title{font-family:var(--font-family-heading);color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;z-index:1;margin-bottom:.2rem;font-size:1.25rem;position:relative}.module-card-summary{font-family:var(--font-family-body);color:var(--text-primary);opacity:.8;z-index:1;font-size:.7rem;font-weight:300;line-height:1.3;position:relative}.module-card-arrow{display:none}.module-card.clicked{animation:.3s ease-out hex-pulse}@keyframes hex-pulse{0%{background:#c9a2270d}50%{background:#c9a22740}to{background:#c9a2270d}}.sidebar-nav{background:#0a0a0a80;border-left:1px solid #0000;flex-direction:column;flex-shrink:0;width:0;margin-left:0;transition:width .5s cubic-bezier(.4,0,.2,1),margin-left .5s cubic-bezier(.4,0,.2,1),border-color .5s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.sidebar-nav.sidebar-visible{border-left-color:#c9a22733;width:220px;margin-left:2rem}.sidebar-nav .sidebar-inner{flex-direction:column;width:220px;height:100%;display:flex}.sidebar-nav.animate-slide-in .sidebar-header,.sidebar-nav.animate-slide-in .sidebar-item,.sidebar-nav.animate-slide-in .sidebar-footer{opacity:0;animation:.35s forwards sidebar-item-slide-in;animation-delay:calc(.15s + var(--item-index) * 40ms);transform:translate(20px)}@keyframes sidebar-item-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sidebar-nav.animate-slide-out .sidebar-header,.sidebar-nav.animate-slide-out .sidebar-item,.sidebar-nav.animate-slide-out .sidebar-footer{animation:.2s forwards sidebar-item-slide-out;animation-delay:calc(var(--item-index) * 20ms)}@keyframes sidebar-item-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.sidebar-header{border-bottom:1px solid #c9a22733;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.sidebar-title{color:var(--beryllium-gold);letter-spacing:.15em;font-family:Overpass Mono,monospace;font-size:.7rem}.sidebar-count{color:var(--text-primary);opacity:.5;background:#c9a2271a;border-radius:2px;padding:.2rem .5rem;font-family:Overpass Mono,monospace;font-size:.65rem}.sidebar-menu{flex-direction:column;flex:1;padding:.5rem 0;display:flex}.sidebar-item{color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex;position:relative;overflow:hidden}.sidebar-item:before{content:"";z-index:2;background:0 0;width:2px;transition:background .2s;position:absolute;top:0;bottom:0;left:0}.sidebar-item:after{content:"";z-index:0;background:#c9a22714;transition:transform .25s;position:absolute;inset:0;transform:translate(100%)}.sidebar-item:hover:after{transform:translate(0)}.sidebar-item:hover:before{background:#c9a2274d}.sidebar-item.active:after{background:#c9a2271f;transform:translate(0)}.sidebar-item.active:before{background:var(--beryllium-gold)}.sidebar-item-indicator{z-index:1;background:0 0;border:1px solid #c9a2274d;width:6px;height:6px;transition:all .2s;position:relative}.sidebar-item.active .sidebar-item-indicator{background:var(--beryllium-gold);border-color:var(--beryllium-gold);box-shadow:0 0 8px #c9a22780}.sidebar-item-number{z-index:1;color:var(--beryllium-gold);opacity:.5;min-width:1.5rem;font-family:Overpass Mono,monospace;font-size:.65rem;position:relative}.sidebar-item.active .sidebar-item-number{opacity:1}.sidebar-item-label{z-index:1;font-family:var(--font-family-heading);text-transform:uppercase;letter-spacing:.05em;flex:1;font-size:.9rem;position:relative}.sidebar-item-arrow{z-index:1;color:var(--beryllium-gold);opacity:0;font-family:Overpass Mono,monospace;font-size:.8rem;transition:opacity .2s,transform .2s;position:relative}.sidebar-item:hover .sidebar-item-arrow,.sidebar-item.active .sidebar-item-arrow{opacity:1}.sidebar-item.active .sidebar-item-arrow{animation:1s ease-in-out infinite arrow-pulse}@keyframes arrow-pulse{0%,to{transform:translate(0)}50%{transform:translate(3px)}}.sidebar-item-home{border-bottom:1px solid #c9a22726;margin-bottom:.5rem}.sidebar-item-icon{z-index:1;color:var(--beryllium-gold);opacity:.7;font-family:Overpass Mono,monospace;font-size:.9rem;transition:all .2s;position:relative}.sidebar-item-home:hover .sidebar-item-icon{opacity:1;transform:translate(-3px)}.sidebar-footer{border-top:1px solid #c9a22733;padding:1rem 1.25rem}.sidebar-status{color:var(--terminal-green);letter-spacing:.1em;align-items:center;gap:.5rem;font-family:Overpass Mono,monospace;font-size:.65rem;display:flex}.status-dot{background:var(--terminal-green);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite status-pulse}@keyframes status-pulse{0%,to{box-shadow:0 0 4px #4ade8080}50%{box-shadow:0 0 12px #4ade80cc}}.sidebar-status-offline{color:#f87171}.sidebar-status-offline .status-dot{background:#f87171;animation:.5s ease-in-out infinite status-pulse-critical}.sidebar-status-slow{color:#fbbf24}.sidebar-status-slow .status-dot{background:#fbbf24;animation:1.5s ease-in-out infinite status-pulse-slow}@keyframes status-pulse-critical{0%,to{opacity:1;box-shadow:0 0 4px #f8717180}50%{opacity:.5;box-shadow:0 0 12px #f87171cc}}@keyframes status-pulse-slow{0%,to{box-shadow:0 0 4px #fbbf2480}50%{box-shadow:0 0 12px #fbbf24cc}}.content-mobile{display:none}@media (width<=1024px){.content-desktop{display:none}.content-mobile{scroll-snap-type:y mandatory;flex-direction:column;height:100vh;display:flex;overflow-y:auto}.mobile-slide{scroll-snap-align:start;box-sizing:border-box;justify-content:center;align-items:center;min-height:100vh;padding:70px 1rem 1.5rem;display:flex}.mobile-terminal{background:#0a0a0ab3;flex-direction:column;width:100%;height:100%;min-height:400px;display:flex;position:relative}.mobile-bracket{z-index:10;width:24px;height:24px;position:absolute}.mobile-bracket:before,.mobile-bracket:after{content:"";background:var(--beryllium-gold);position:absolute}.mobile-bracket-tl{top:0;left:0}.mobile-bracket-tl:before{width:24px;height:2px;top:0;left:0}.mobile-bracket-tl:after{width:2px;height:24px;top:0;left:0}.mobile-bracket-tr{top:0;right:0}.mobile-bracket-tr:before{width:24px;height:2px;top:0;right:0}.mobile-bracket-tr:after{width:2px;height:24px;top:0;right:0}.mobile-bracket-bl{bottom:0;left:0}.mobile-bracket-bl:before{width:24px;height:2px;bottom:0;left:0}.mobile-bracket-bl:after{width:2px;height:24px;bottom:0;left:0}.mobile-bracket-br{bottom:0;right:0}.mobile-bracket-br:before{width:24px;height:2px;bottom:0;right:0}.mobile-bracket-br:after{width:2px;height:24px;bottom:0;right:0}.mobile-scan-lines{pointer-events:none;z-index:5;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000001a 2px 4px);position:absolute;inset:0}.mobile-hud-bar{z-index:6;justify-content:space-between;align-items:center;padding:.6rem 1.5rem;display:flex;position:relative}.mobile-hud-top{border-bottom:1px solid #c9a22733}.mobile-hud-bottom{border-top:1px solid #c9a22733;margin-top:auto}.mobile-hud-label{color:var(--beryllium-gold);letter-spacing:.1em;opacity:.7;font-family:Overpass Mono,monospace;font-size:1rem}.mobile-hud-value{color:var(--text-primary);letter-spacing:.05em;font-family:Overpass Mono,monospace;font-size:1rem}.mobile-hud-status{color:#4ade80;letter-spacing:.1em;align-items:center;gap:.4rem;font-family:Overpass Mono,monospace;font-size:1rem;display:flex}.mobile-status-dot{background:#4ade80;border-radius:50%;width:5px;height:5px;box-shadow:0 0 6px #4ade8099}.mobile-hud-id{color:var(--text-primary);opacity:.5;letter-spacing:.05em;font-family:Overpass Mono,monospace;font-size:1rem}.mobile-terminal-content{z-index:6;flex-direction:column;flex:1;padding:1.5rem;display:flex;position:relative}.mobile-section-header{border-bottom:1px solid #c9a2274d;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.mobile-marker{color:var(--beryllium-gold);font-family:Overpass Mono,monospace;font-size:1rem;animation:1s step-end infinite blink}.mobile-title{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:1.5rem}.mobile-section-body{flex:1;overflow-y:auto}.mobile-section-body p{font-family:var(--font-family-body);color:var(--text-primary);margin:0;font-size:1rem;font-weight:300;line-height:1.7}.mobile-content-text p{margin-bottom:1rem}.mobile-content-text p:last-child{margin-bottom:0}.mobile-content-experience,.mobile-content-freelancing,.mobile-content-projects{flex-direction:column;gap:1.25rem;display:flex}.mobile-experience-item,.mobile-freelancing-item,.mobile-project-item{border-left:2px solid #c9a2274d;padding-left:.75rem}.mobile-experience-role,.mobile-freelancing-project,.mobile-project-name{font-family:var(--font-family-heading);color:var(--beryllium-gold);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:1.25rem}.mobile-experience-company,.mobile-freelancing-client,.mobile-project-tech{font-family:var(--font-family-body);color:var(--text-primary);opacity:.7;font-size:1rem}.mobile-content-contact p{margin-bottom:1.25rem}.mobile-contact-links{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}a.mobile-contact-link,a.mobile-contact-link:visited{font-family:var(--font-family-body);color:var(--beryllium-gold);background:#c9a2271a;border:1px solid #c9a2274d;padding:.5rem 1rem;font-size:1rem;text-decoration:none}}
