:root{--bg: #f9fcff;--bg-alt: #dee4ea;--appbar-from: #dee4ea;--appbar-to: #eff2f6;--card: #dee4ea54;--card-hover: #dee4ea;--text: #000000;--line: #000000;--ink: #1f2933;--ink-hover: #3e4c59;--on-ink: #ffffff;--accent: #ca292d;--slate: #52606d;--muted: #7b8794;--mist: #dee4ea;--mist-deep: #cbd4dd;--field: #f3f6f9;--surface: #ffffffb3;--surface-solid: #ffffff;--border-soft: lightgrey;--shadow: rgba(0, 0, 0, .24);--panel-glow: rgba(255, 255, 255, .7);--panel-shade: rgba(82, 96, 109, .12);--track: rgba(82, 96, 109, .14);--pulse-glow: rgba(255, 255, 255, .9);--logo-filter: none;color-scheme:light}[data-theme=dark]{--bg: #10151c;--bg-alt: #1a222c;--appbar-from: #1a222c;--appbar-to: #141a22;--card: rgba(255, 255, 255, .04);--card-hover: rgba(255, 255, 255, .08);--text: #e4e9ef;--line: #e4e9ef;--ink: #e4e9ef;--ink-hover: #c3ccd6;--on-ink: #10151c;--accent: #ff6b6f;--slate: #aab6c3;--muted: #7d8a99;--mist: #253041;--mist-deep: #1b232e;--field: #18202a;--surface: rgba(22, 29, 38, .85);--surface-solid: #1c242e;--border-soft: #2c3644;--shadow: rgba(0, 0, 0, .5);--panel-glow: rgba(255, 255, 255, .05);--panel-shade: rgba(0, 0, 0, .25);--track: rgba(170, 182, 195, .12);--pulse-glow: rgba(170, 182, 195, .6);--logo-filter: invert(1) hue-rotate(180deg) brightness(1.3);color-scheme:dark}body{background-color:var(--bg);color:var(--text)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Poppins,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea,select{font:inherit}.App{height:100vh;height:100dvh;display:flex;flex-direction:column}.vertical-navigation{width:240px}.vertical-navigation .nav-link:before{content:"";width:20px;display:inline-block;background-color:var(--line);height:2px;vertical-align:middle;margin-right:5px;transition:width .5s}.vertical-navigation .nav-link.active:before,.vertical-navigation .nav-link:hover:before{width:70px}.menu-txt>span{font-size:1rem;font-weight:500}@media(prefers-reduced-motion:reduce){.vertical-navigation .nav-link:before{transition:none}}.social-links{margin-right:1rem;color:var(--line);transition:color .2s,transform .2s}.social-links:hover{color:var(--accent);transform:scale(1.1)}@media(prefers-reduced-motion:reduce){.social-links{transition:none}}.contact-band{background-color:var(--bg);background-image:linear-gradient(147deg,var(--bg) 0%,var(--bg-alt) 74%);border-top:1px solid var(--mist)}.contact-form-card{position:relative;background-color:var(--surface);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);height:100%}.contact-form-card .edge{position:absolute;background-color:var(--ink);transition:transform .7s ease-out}.contact-form-card .edge-left{left:0;top:0;bottom:0;width:2px;transform:scaleY(0);transform-origin:center;transition-duration:1s;transition-timing-function:ease-in-out}.contact-form-card .edge-top,.contact-form-card .edge-bottom{left:0;right:70%;height:2px;transform:scaleX(0);transform-origin:left;transition-delay:.5s}.contact-form-card .edge-top{top:0}.contact-form-card .edge-bottom{bottom:0}.contact-form-card.is-visible .edge-left,.contact-form-card:hover .edge-left,.contact-form-card:focus-within .edge-left{transform:scaleY(1)}.contact-form-card.is-visible .edge-top,.contact-form-card.is-visible .edge-bottom,.contact-form-card:hover .edge-top,.contact-form-card:hover .edge-bottom,.contact-form-card:focus-within .edge-top,.contact-form-card:focus-within .edge-bottom{transform:scaleX(1)}.tech-panel{position:relative;overflow:hidden;height:100%;color:var(--ink);background:radial-gradient(circle at 85% 15%,var(--panel-glow),transparent 55%),radial-gradient(circle at 10% 90%,var(--panel-shade),transparent 50%),linear-gradient(160deg,var(--mist) 0%,var(--mist-deep) 100%);border-left:1px solid var(--track)}.tech-panel .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.tech-panel .prompt{color:var(--muted)}.tech-panel .command{color:var(--ink);font-weight:600}.tech-panel .output{color:var(--slate)}.tech-panel .caret{display:inline-block;width:.55em;height:1.05em;margin-left:2px;vertical-align:text-bottom;background-color:var(--accent);animation:caret-blink 1s steps(1) infinite}.tech-panel .window-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background-color:var(--muted);opacity:.5}.tech-panel .panel-link{color:var(--ink);display:inline-flex;transition:color .2s,transform .2s}.tech-panel .panel-link:hover{color:var(--slate);transform:translateY(-2px)}@keyframes caret-blink{50%{opacity:0}}.event-stream{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.event-stream .track{fill:none;stroke:var(--track);stroke-width:1}.event-stream .pulse{fill:none;stroke:var(--slate);stroke-width:2;stroke-linecap:round;stroke-dasharray:6 94;filter:drop-shadow(0 0 3px var(--pulse-glow));animation:event-flow linear infinite}.event-stream .node{fill:var(--slate);opacity:.35;animation:node-glow 3s ease-in-out infinite}@keyframes event-flow{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}@keyframes node-glow{0%,to{opacity:.25}50%{opacity:.8}}@media(prefers-reduced-motion:reduce){.event-stream .pulse,.event-stream .node,.tech-panel .caret{animation:none}.contact-form-card .edge,.tech-panel .panel-link{transition:none}}.about-container{flex:1;min-height:0;background-color:var(--bg);background-image:linear-gradient(147deg,var(--bg-alt) 0%,var(--bg) 74%);overflow-y:auto;scrollbar-width:none;scroll-behavior:smooth}.about-container::-webkit-scrollbar{width:5px}.about-container::-webkit-scrollbar-thumb{background-color:var(--border-soft);border-radius:10px}.glass-look{background-color:var(--card);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:10px}.glass-look-hover:hover{background-color:var(--card-hover);cursor:pointer}.open-in-new{margin-left:2px;vertical-align:-2px;transition:transform .25s}.glass-look-hover:hover .open-in-new{transform:translate(3px,-2px)}@media(prefers-reduced-motion:reduce){.open-in-new{transition:none}}.nav-btn:after{content:"";display:block;width:0%;height:2px;margin:auto;background-color:var(--accent);transition:width .5s}.nav-btn.active:after,.nav-btn:hover:after{width:100%}@media(prefers-reduced-motion:reduce){.nav-btn:after{transition:none}}
