/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;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}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}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}.block{display:block}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.filter{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,)}@layer base{:root{--color-bg-main:#0b1120;--color-bg-card:#171e2e;--color-bg-input:#1f2937;--color-text-heading:#f9fafb;--color-text-body:#9ca3af;--color-text-muted:#6b7280;--color-text-dark:#0b1120;--color-accent-cyan:#22d3ee;--color-accent-cyan-hover:#06b6d4;--color-accent-gold:#f59e0b;--palette-cyan:#5ffbf1;--palette-cyan-rgb:95,251,241;--palette-teal:#3cc2b6;--palette-teal-rgb:60,194,182;--palette-periwinkle:#86a8e7;--palette-periwinkle-rgb:134,168,231;--sem-cyan:var(--palette-cyan);--sem-cyan-rgb:var(--palette-cyan-rgb);--sem-green:var(--palette-teal);--sem-green-rgb:var(--palette-teal-rgb);--sem-blue:#4a85d9;--sem-blue-rgb:74,133,217;--sem-magenta:#ec3c85;--sem-magenta-rgb:236,60,133;--header-offset:72px;--accent-gradient:linear-gradient(90deg,var(--palette-cyan)0%,var(--palette-teal)50%,var(--palette-periwinkle)100%)}.hero-section,.page-about,.projects-section,.contact-section{position:relative}.hero-section:before,.page-about:before,.projects-section:before,.contact-section:before{content:"";filter:blur(120px);z-index:-1;pointer-events:none;mix-blend-mode:screen;width:1200px;height:700px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-section:before{background:radial-gradient(circle at 30% 30%,rgba(var(--sem-cyan-rgb),.05)0%,rgba(var(--sem-cyan-rgb),.02)30%,transparent 60%)}.page-about:before{background:radial-gradient(circle at 30% 40%,rgba(var(--sem-green-rgb),.05)0%,rgba(var(--sem-green-rgb),.02)30%,transparent 60%)}.projects-section:before{background:radial-gradient(circle at 40% 30%,rgba(var(--sem-blue-rgb),.05)0%,rgba(var(--sem-blue-rgb),.02)30%,transparent 60%)}.contact-section:before{background:radial-gradient(circle at 60% 40%,rgba(var(--sem-magenta-rgb),.05)0%,rgba(var(--sem-magenta-rgb),.02)30%,transparent 60%)}@media(max-width:900px){.hero-section:before,.page-about:before,.projects-section:before,.contact-section:before{display:none}}.palette-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.palette-swatch{border:1px solid #0000000f;border-radius:6px;width:40px;height:28px;box-shadow:0 1px 2px #00000014}.bg-water{background-color:var(--palette-cyan);color:#fff}.bg-forest{background-color:var(--palette-teal);color:#fff}.bg-moss{color:#fff;background-color:#3cc2b6e6}.bg-sand{background-color:var(--palette-periwinkle);color:var(--color-text-dark)}.text-stone{color:var(--color-text-muted)}.text-water-deep{color:#0b1120}.text-black-strong{color:var(--color-text-dark)}.text-primary-color{color:var(--color-accent-cyan)}.bg-primary{background-color:var(--color-accent-cyan);color:#fff}.bg-primary-light{background-color:var(--color-accent-cyan-hover);color:#fff}.bg-primary-muted{background-color:#22d3ee1f}.border-primary{border-color:var(--color-accent-cyan)}.text-accent{color:var(--color-accent-gold)}.text-accent-light{color:#f59e0be6}.text-accent-dark{color:#f59e0bb3}.bg-accent{background-color:var(--color-accent-gold);color:#fff}.bg-accent-subtle{background-color:#f59e0b1f}.bg-accent-dark{color:#fff;background-color:#f59e0bd9}.border-accent{border-color:var(--color-accent-gold)}.border-accent-subtle{border-color:#f59e0b40}.hover\:bg-accent:hover{background-color:var(--color-accent-gold);color:#fff}.hover\:text-accent:hover{color:var(--color-accent-gold)}.underline-accent-hover:hover{text-decoration:underline;text-decoration-color:var(--color-accent-gold);text-decoration-thickness:2px}.text-primary{color:var(--color-text-heading)}.text-secondary{color:var(--color-text-body)}.text-muted{color:var(--color-text-muted)}.text-inverted{color:var(--color-text-dark)}*{box-sizing:border-box;color:var(--color-text-body);margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;color:var(--color-text-heading);font-weight:700;line-height:1.2}h1{font-weight:800}h2{font-weight:700}p,span,li{color:var(--color-text-body);font-weight:500;line-height:1.6}a{color:var(--color-accent-cyan);font-weight:500;line-height:1.6;text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-cyan-hover)}button{background:var(--color-accent-cyan);color:var(--color-text-dark);cursor:pointer;border:none;font-family:inherit;transition:all .2s}button:hover{background:var(--color-accent-cyan-hover)}strong,b{font-weight:700}html{overscroll-behavior:none;scroll-behavior:smooth;max-width:100%;overflow:hidden auto}html,body,#root{height:100%}#root{z-index:0;flex-direction:column;min-height:100vh;display:flex;position:relative}.page-root{z-index:1;flex-direction:column;flex:1 0 auto;min-height:0;display:flex;position:relative}body{background-color:var(--color-bg-main);overscroll-behavior:none;background:var(--color-bg-main);max-width:100%;min-height:100vh;color:var(--color-text-body);flex-direction:column;display:flex;position:relative;overflow:hidden auto}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 20% 0,#bf9e0b08,#0000 50%),radial-gradient(at 80% 100%,#d4c5b005,#0000 50%);position:fixed;inset:0}body:after{display:none}main{flex-direction:column;flex:1 0 auto;display:flex}main.page,.page{min-height:0;color:inherit;background:0 0;flex:1 0 auto}.page-inner{max-width:1100px;margin:0 auto;padding:48px 16px}.container{max-width:1100px;margin:0 auto;padding:0 16px}@media(prefers-reduced-motion:reduce){body:before,body:after{animation:none}}@media(max-width:768px){body:before,body:after{background-size:400px 400px,500px 500px,600px 600px,100% 100%}}h1,h2,h3{color:var(--color-text-heading)}.highlight-name{color:var(--color-accent-gold)}.skip-link{background-color:var(--color-accent-cyan);color:var(--color-text-dark);z-index:9999;border-radius:6px;padding:.5rem 1rem;font-weight:700;transition:top .3s,opacity .2s;position:absolute;top:-100px;left:1rem;box-shadow:0 6px 20px #02061759}.skip-link:focus{outline:none;top:0}}html,body,#root,.app-root{height:100%;min-height:100vh;margin:0;padding:0}#root{flex-direction:column;min-height:100vh;display:flex}.app-root{flex-direction:column;flex:1 0 auto;min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1 0 auto;min-height:0;display:flex}footer.footer{margin-top:0}section{scroll-margin-top:var(--header-offset,72px);margin-bottom:0}.section-wrapper{box-sizing:border-box;justify-content:center;padding:48px 16px;display:flex}.section-container{background:var(--color-bg-card);box-sizing:border-box;border:1px solid #ffffff08;border-radius:12px;width:100%;max-width:1100px;padding:48px;box-shadow:0 8px 30px #03060c99}@media(max-width:640px){.section-wrapper{padding:32px 12px}.section-container{border-radius:10px;padding:24px}}html{scroll-behavior:smooth}@media(max-width:900px){.hero-section:before,.page-about:before,.projects-section:before,.contact-section:before{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes earthyGradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}header{position:fixed;top:0;left:0;right:0;width:100%;z-index:1000;padding:12px 0;margin-bottom:0;border:none;border-bottom:1px solid hsla(35,92%,50%,.15);border-radius:0;box-shadow:none;background:var(--color-bg-main, #0B1120);animation:none!important;backdrop-filter:saturate(120%) blur(6px);-webkit-backdrop-filter:saturate(120%) blur(6px)}header.open,header.scrolled{box-shadow:0 4px 18px #0a0a0a0f}header .container{max-width:none;padding:0}header .navbar{padding:1.28rem 24px}.navbar{display:flex;align-items:center;justify-content:center;gap:16px;position:relative}.header{position:relative;z-index:1001;overflow:visible;color:var(--color-text-heading, #F9FAFB);transition:background-color .3s ease,color .3s ease;background:var(--color-bg-main, #0B1120);animation:none!important}.header:after{display:none}.header a,.header .nav-links a,.header .logo{color:inherit}.nav-links{list-style:none;display:flex;gap:24px;align-items:center;justify-content:center}.nav-links a{text-decoration:none;color:var(--color-text-heading, #F9FAFB);padding:8px 12px;transition:color .2s ease;cursor:pointer;font-weight:500;position:relative}.nav-links a.active{font-weight:600;color:var(--color-accent-cyan, #22D3EE);border-bottom:2px solid transparent;padding-bottom:6px}.nav-links a:hover{color:var(--color-accent-cyan, #22D3EE)}.nav-links a:after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;background:var(--color-accent-cyan, #22D3EE);border-radius:2px;transform:scaleX(0);transform-origin:center;opacity:0;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease;pointer-events:none}.nav-links a:hover:after,.nav-links a:focus:after,.nav-links a.active:after{transform:scaleX(1);opacity:1}.nav-links a:not(.active):hover:after{opacity:.9}.nav-links a:not(.active):hover{color:#fff;background:transparent}.header .nav-links a{color:var(--color-text-heading, #F9FAFB);padding:8px 12px;border-radius:6px;transition:color .18s ease,background-color .18s ease}.header .nav-links a:hover,.header .nav-links a:focus{color:var(--color-accent-cyan, #22D3EE);background:#f5930a0f;outline:none}.logo{position:static;top:auto;right:auto;transform:none;display:flex;align-items:center;gap:8px;margin-left:0}.logo img{height:40px;width:auto;display:block;margin-right:0}.logo .brand{display:inline-flex;align-items:center;gap:8px;color:var(--color-text-heading, #F9FAFB);text-decoration:none;margin-left:0;font-weight:600}.logo .brand:hover,.logo .brand:focus{color:var(--color-accent-cyan, #22D3EE)}.logo img{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.nav-toggle{display:none;background:transparent;border:none;padding:8px;margin-left:8px;cursor:pointer;position:absolute;right:16px}.hamburger,.hamburger:before,.hamburger:after{display:block;width:22px;height:2px;background:var(--color-text-heading, #F9FAFB);border-radius:2px;transition:transform .18s ease,opacity .18s ease;content:""}.hamburger{position:relative}.hamburger:before{position:absolute;left:0;top:-7px}.hamburger:after{position:absolute;left:0;top:7px}.nav-toggle.is-open .hamburger{background:transparent}.nav-toggle.is-open .hamburger:before{transform:translateY(7px) rotate(45deg)}.nav-toggle.is-open .hamburger:after{transform:translateY(-7px) rotate(-45deg)}.nav-links{list-style:none;display:flex;gap:20px;align-items:center;justify-content:center}header.scrolled,header.open.scrolled{background:#0b1120e6;border-bottom-color:#ffffff0f}header.scrolled .nav-links a,header.scrolled .brand,header.scrolled .logo .brand{color:var(--color-text-heading)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:768px){.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.nav-links{position:absolute;right:16px;top:64px;background:var(--color-bg-main, #0B1120);flex-direction:column;gap:0;padding:8px;border-radius:8px;min-width:160px;box-shadow:0 8px 30px #0000001f;display:none}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{display:block;padding:10px 14px;border-radius:6px;width:100%}.navbar{justify-content:center}.nav-toggle{right:16px}}a:focus,button:focus{outline:3px solid rgba(99,102,241,.12);outline-offset:2px}@media(prefers-reduced-motion:reduce){.hamburger,.hamburger:before,.hamburger:after,.nav-links{transition:none!important}}.footer{background-color:var(--color-bg-main);color:var(--color-text-body);text-align:center;padding:0 0 16px;margin-top:0;position:relative;overflow:visible}.footer-divider{border:none;border-top:1px solid hsla(35,92%,50%,.1);opacity:.6;width:100vw;max-width:100%;margin:0 calc(50% - 50vw) 20px;box-sizing:border-box}.footer .container{display:flex;justify-content:center;align-items:center;max-width:1700px;width:calc(100% - 32px);margin:0 auto}.footer-contact{display:flex;flex-direction:column;align-items:center;gap:12px}.footer-heading{font-size:1.5rem;font-weight:600;color:var(--color-text-heading);margin:0}.footer-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 32px;background-color:var(--color-accent-cyan);color:var(--color-text-dark);font-size:1rem;font-weight:600;border-radius:8px;text-decoration:none;transition:all .2s ease}.footer-cta:hover{background-color:var(--color-accent-cyan-hover);transform:translateY(-2px);box-shadow:0 4px 16px #f5930a4d}.footer-bottom{display:flex;justify-content:center;align-items:center;width:100%;padding-top:0;gap:16px}.footer-bottom p{margin:0;font-size:.875rem;color:var(--color-text-muted);text-align:center}@media(max-width:600px){.footer{padding:40px 16px 20px}.footer-bottom{flex-direction:column;gap:16px}}.hero-section{position:relative;width:100%;padding:75px 16px 0;display:flex;align-items:center;justify-content:center;background:transparent;min-height:69vh}.hero-card{background:#0c1424b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(134,168,231,.06);box-shadow:0 12px 30px #02061799;padding:48px;max-width:1700px;width:calc(100% - 32px);margin:0 auto}.hero-container{position:relative;width:100%;max-width:1400px;display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center}.hero-card{--c-amber: var(--color-accent-gold, #C47E1C);--c-green: var(--sem-green, var(--palette-teal));--c-cyan: var(--sem-cyan, var(--palette-cyan));--c-blue: var(--sem-blue, var(--palette-periwinkle));--c-magenta: var(--sem-magenta, #C41C62)}.hero-content{display:flex;flex-direction:column;gap:16px}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.hero-name{font-size:clamp(2rem,5.2vw,3rem);font-weight:900;color:var(--color-accent-gold, #C47E1C);margin:0;line-height:1;letter-spacing:.05em}.hero-greeting{font-size:1rem;color:var(--color-text-muted);margin:0;font-weight:600;letter-spacing:.02em}.hero-title{display:flex;flex-direction:column;gap:4px;font-size:clamp(2.5rem,5vw,3.5rem);font-weight:800;line-height:1.1;margin:0}.title-line{color:var(--color-text-heading)}.hero-title .title-line:first-of-type{color:var(--color-text-heading, #FFFFFF);font-weight:900;font-size:1em}.title-accent{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.88;font-weight:600;font-size:.85em;letter-spacing:.01em}@media(max-width:600px){.hero-title .title-line:first-of-type{font-size:1.02em}.title-accent{font-size:.9em}}.hero-cta{display:flex;gap:16px;margin-top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:1rem;font-weight:600;border-radius:8px;text-decoration:none;transition:transform .22s cubic-bezier(.2,.9,.2,1),box-shadow .22s ease,background-color .22s ease,border-color .22s ease,filter .22s ease;cursor:pointer}.btn-primary{background:var(--color-accent-cyan, var(--palette-cyan));color:var(--color-text-dark, #0B1120);border:none;box-shadow:0 6px 20px rgba(var(--palette-cyan-rgb),.18)}.btn-primary:hover,.btn-primary:focus{box-shadow:0 10px 34px rgba(var(--palette-cyan-rgb),.28);transform:translateY(-2px);background:var(--color-accent-cyan-hover, #06B6D4)}.btn-primary:active{transform:translateY(-1px) scale(.997)}.btn-outline{background:transparent;color:var(--color-text-heading);border:2px solid hsla(35,92%,50%,.45)}.btn-outline:hover,.btn-outline:focus{background:#f59e0b14;border-color:#f5930aa6;transform:translateY(-2px);box-shadow:0 6px 14px #f59e0b0f}.btn-outline:active{transform:translateY(-1px) scale(.997)}.btn:focus{outline:none;box-shadow:0 0 0 4px #f59e0b17}.hero-visual{display:flex;align-items:center;justify-content:center;width:100%;max-width:420px;margin-left:auto;--parallax: 0px}.node-graph{width:100%;border-radius:14px;padding:12px;position:relative;transform:translateY(var(--parallax, 0))}.node-graph svg{display:block;width:100%;height:auto}.node-graph:before{content:"";position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:240px;height:160px;background:radial-gradient(circle at center,rgba(var(--palette-cyan-rgb),.12) 0%,rgba(var(--palette-teal-rgb),.08) 40%,transparent 70%);filter:blur(28px);z-index:-1;pointer-events:none}.node-graph svg .node{transition:fill .2s ease,stroke .2s ease}.sem-amber{fill:var(--c-amber)!important}.sem-green{fill:var(--c-green)!important}.sem-cyan{fill:var(--c-cyan)!important}.sem-blue{fill:var(--c-blue)!important}.sem-magenta{fill:var(--c-magenta)!important}.stroke-amber{stroke:var(--c-amber)!important}.stroke-green{stroke:var(--c-green)!important}.stroke-cyan{stroke:var(--c-cyan)!important}.stroke-blue{stroke:var(--c-blue)!important}.stroke-magenta{stroke:var(--c-magenta)!important}.fill-dark{fill:#0f172a!important}@keyframes floatY{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes floatSmall{0%{transform:translateY(0)}50%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.node,.accent{animation:none!important}}.node-1{transform-origin:center;animation:floatY 6s ease-in-out infinite}.node-2{transform-origin:center;animation:floatSmall 5s ease-in-out .6s infinite}.node-3{transform-origin:center;animation:floatY 7s ease-in-out .2s infinite}.node-4{transform-origin:center;animation:floatSmall 5.6s ease-in-out .3s infinite}.node-5{transform-origin:center;animation:floatY 6.8s ease-in-out .4s infinite}.accent-1{transform-origin:center;animation:pulse 4.2s ease-in-out .2s infinite}.accent-2{transform-origin:center;animation:pulse 4.6s ease-in-out .5s infinite}.accent-3{transform-origin:center;animation:pulse 3.8s ease-in-out .8s infinite}.node-graph{transform:translateY(var(--parallax, 0))}.node-wrap,.accent-wrap{transition:transform .3s cubic-bezier(.2,.9,.2,1);will-change:transform}.accent-wrap{transition:transform .36s cubic-bezier(.2,.9,.2,1)}.hero-visual:hover .node-graph svg .node-1,.hero-visual:hover .node-graph svg .node-5{filter:drop-shadow(0 6px 14px rgba(196,126,28,.22))}#hero svg stop[offset="100%"]{stop-color:var(--color-accent-cyan)}#hero svg stop[offset="0%"]{stop-color:color-mix(in srgb,var(--color-accent-cyan) 70%,white 30%)}.node,.accent{transition:transform .22s ease,opacity .22s ease,filter .22s ease}@media(max-width:900px){.hero-section{min-height:auto;padding:32px 16px 8px}.hero-card{padding:32px;width:calc(100% - 32px);border-radius:16px}.hero-container{grid-template-columns:1fr;gap:32px;text-align:center}.hero-content{align-items:center}.hero-subtext{max-width:100%}.hero-cta{justify-content:center}.hero-visual{order:-1;max-width:320px;margin:0 auto}.node-graph{max-width:240px}.node-graph:before{display:none}}@media(max-width:600px){.hero-section{padding:24px 16px 8px}.hero-card{padding:24px;width:calc(100% - 24px);border-radius:12px}.hero-container{padding:0;gap:24px}.hero-title{font-size:clamp(2rem,8vw,2.5rem)}.hero-subtext{font-size:1rem}.hero-cta{flex-direction:column;width:100%}.btn{width:100%}.node-graph{max-width:200px}.node{width:40px;height:40px;border-radius:10px}.node svg{width:20px;height:20px}}@media(max-width:900px){.node-wrap,.accent-wrap,.node-graph{transform:none!important}}@media(min-width:1200px){.hero-container{grid-template-columns:1.3fr minmax(360px,520px);gap:48px}}.page-about{color:inherit;background:transparent;padding:0 16px 34px;max-width:1700px;width:calc(100% - 32px);margin:0 auto}.page-about .page-inner{max-width:1100px;margin:0 auto}@media(min-width:1600px){.page-about{max-width:2200px}.page-about .page-inner{max-width:1400px}}.page-about{--sec-color: var(--sem-green);--sec-color-rgb: var(--sem-green-rgb)}.page-about .page-title{font-size:2.5rem;font-weight:800;color:var(--color-text-heading);margin:0 0 16px;line-height:1.1}.focus-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.focus-pill{display:inline-block;padding:8px 16px;background:rgba(var(--sec-color-rgb),.08);color:var(--sec-color);font-size:.875rem;font-weight:500;border-radius:50px;letter-spacing:.02em;border:1px solid rgba(var(--sec-color-rgb),.12)}.bio-statement{font-size:1.215rem;line-height:2;color:var(--color-text-body);margin:0;text-align:left;width:100%;box-sizing:border-box}.bio-inner{max-width:none;width:100%}@media(max-width:900px){.bio-inner{margin-left:auto;margin-right:auto}.bio-statement{text-align:left}}@media(max-width:900px){.about__content .bio-statement{text-align:left}}@media(min-width:901px){.bio-inner{margin:0}}.about-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.pill{display:inline-block;padding:6px 10px;background:rgba(var(--sem-green-rgb, 100, 200, 150),.08);color:var(--sem-green);border-radius:999px;font-size:.9rem;font-weight:600}@media(min-width:768px){.about-grid{grid-template-columns:70% 30%}.about__content{padding-right:12px}.about__aside{padding-left:12px}}.about-stack{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;margin-bottom:48px}.stack-card{background:#0c1424b8;border-radius:12px;padding:24px;box-shadow:0 4px 12px #00000026;border:1px solid rgba(var(--palette-periwinkle-rgb, 134, 168, 231),.06);transition:box-shadow .3s ease,transform .3s ease}.stack-card:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px);border-color:rgba(var(--palette-cyan-rgb),.22)}.stack-card h3{font-size:1.25rem;font-weight:700;color:var(--color-text-heading);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--color-accent-cyan);display:inline-block}.interests-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.interests-list li{font-size:.95rem;color:var(--color-text-body);padding:8px 0 8px 20px;position:relative;transition:color .2s ease}.interests-list li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:8px;background:var(--color-accent-cyan);border-radius:50%}.interests-list li:hover{color:var(--color-accent-cyan)}.stack-categories{display:flex;flex-direction:column;gap:24px}.stack-category h4{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.stack-items{display:flex;flex-direction:column;gap:8px}.stack-item{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:#f5930a14;border-radius:8px;border-left:3px solid var(--color-accent-cyan)}.stack-item-name{font-size:.95rem;font-weight:600;color:var(--color-text-heading)}.stack-item-desc{font-size:.8rem;color:var(--color-text-muted);font-style:italic}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:48px}.detail-card{background:#1c1c1c99;border-radius:12px;padding:24px;display:flex;gap:16px;align-items:flex-start;box-shadow:0 4px 12px #00000026;border:1px solid hsla(35,92%,50%,.12);transition:box-shadow .3s ease,transform .3s ease}.detail-card:hover{box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.detail-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f5930a26;border-radius:12px;color:var(--color-accent-cyan)}.detail-icon svg{width:24px;height:24px}.detail-content{flex:1}.detail-content h3{font-size:1.1rem;font-weight:700;color:var(--color-text-heading);margin:0 0 12px}.detail-title{font-size:1rem;font-weight:600;color:var(--color-accent-cyan);margin:0 0 8px}.detail-desc{font-size:.95rem;line-height:1.6;color:var(--color-text-body);margin:0}.philosophy-list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}.philosophy-list li{display:inline-block;padding:6px 12px;background:#f5930a1a;color:var(--color-accent-cyan);font-size:.85rem;font-weight:500;border-radius:6px;border:1px solid hsla(35,92%,50%,.2)}.about-goals{margin-bottom:48px}.goals-card{background:linear-gradient(135deg,var(--color-bg-card) 0%,var(--color-accent-cyan) 100%);border-radius:12px;padding:32px;box-shadow:0 16px 32px #f5930a33}.goals-card h3{font-size:1.25rem;font-weight:700;color:var(--color-text-dark);margin:0 0 24px}.goals-list{display:flex;flex-direction:column;gap:16px}.goal-item{display:flex;gap:16px;align-items:flex-start}.goal-number{flex-shrink:0;font-size:1.5rem;font-weight:800;color:#1c1c1c4d;line-height:1;min-width:40px}.goal-text{font-size:1rem;line-height:1.5;color:var(--color-text-dark)}.services-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;margin-top:3rem;width:100%}@media(min-width:768px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.services-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}.service-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.25rem;transition:transform .22s cubic-bezier(.2,.9,.2,1),box-shadow .22s ease,border-color .22s ease;will-change:transform;background:#0c1424b8;border-radius:12px;border:1px solid rgba(var(--palette-periwinkle-rgb, 134, 168, 231),.06);--service-accent: var(--palette-cyan);width:100%;min-height:140px}.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px #02061299,0 0 28px rgba(var(--palette-cyan-rgb),.06);border-color:rgba(var(--palette-cyan-rgb),.22)}.service-card .service-desc{color:var(--color-text-muted);line-height:1.6;font-size:.98rem;margin:.5rem 0 0}.service-icon-wrap{background:#0c142499;padding:.8rem;border-radius:12px;border:1px solid rgba(255,255,255,.03);margin-bottom:.85rem;box-shadow:0 6px 18px #00000073;transition:background .22s ease,transform .22s ease,box-shadow .22s ease,border-color .22s ease}.service-card:after{content:"";pointer-events:none;position:absolute;inset:0;border-radius:12px;box-shadow:0 10px 40px var(--service-accent);opacity:0;transition:opacity .22s ease,box-shadow .22s ease}.service-card:hover:after{opacity:.06}.service-card--backend-engineering{--service-accent: var(--sem-blue)}.service-card--api-development{--service-accent: var(--sem-magenta)}.service-card--data-engineering{--service-accent: var(--sem-green)}.service-card:hover:after{content:"";pointer-events:none;position:absolute;inset:0;border-radius:12px;box-shadow:0 10px 40px var(--service-accent);opacity:.12;transition:opacity .22s ease,box-shadow .22s ease}.service-card .service-icon-wrap{color:var(--service-accent)}.service-svg{width:44px;height:44px;stroke:currentColor}.services-grid{gap:1.75rem}@media(min-width:768px){.services-grid{gap:2rem}.service-card{padding:1.25rem 1rem}}@media(min-width:1024px){.services-grid{gap:2.5rem}.service-card{padding:1.5rem 1.25rem}}@media(max-width:900px){.about-hero{grid-template-columns:1fr;gap:32px}.avatar-card{position:static;justify-self:center;order:-1}.avatar-card-inner{width:200px;height:240px}.avatar-initials{font-size:3.5rem}.avatar-label{font-size:.8rem}.about-stack,.about-details{grid-template-columns:1fr}.page-about .page-title{text-align:center}.focus-pills{justify-content:center}.bio-statement{text-align:center}}@media(max-width:600px){.page-about{padding:16px 16px 28px}.about-hero{margin-bottom:32px}.page-about .page-title{font-size:2rem}.focus-pill{font-size:.8rem;padding:6px 12px}.bio-statement{font-size:1rem}.stack-card,.detail-card,.goals-card{padding:20px}.detail-card{flex-direction:column;gap:12px}.goals-card{padding:24px}.goal-number{font-size:1.25rem}.goal-text{font-size:.95rem}}.projects-section{padding:0 16px;max-width:1700px;width:calc(100% - 32px);margin:0 auto}.projects-section .page-inner{max-width:1100px;margin:0 auto}@media(min-width:1600px){.projects-section{max-width:2200px}.projects-section .page-inner{max-width:1400px}}.projects-section{--sec-color: var(--sem-blue);--sec-color-rgb: var(--sem-blue-rgb)}.projects-header{margin-bottom:32px;max-width:100%;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.projects-title{font-size:2.5rem;font-weight:800;color:var(--color-text-heading);margin:0 0 16px;line-height:1.1}.projects-intro{font-size:1.1rem;line-height:1.7;color:var(--color-text-body);margin:0;max-width:56rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;align-items:stretch}.project-card{position:relative;background:#0c1424c7;border-radius:12px;overflow:hidden;box-shadow:0 8px 28px #02061299;border:1px solid rgba(var(--palette-periwinkle-rgb,134,168,231),.06);transition:transform .3s ease,box-shadow .3s ease,border-color .22s ease;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px #020612b3,0 0 36px rgba(var(--palette-cyan-rgb),.06);border-color:rgba(var(--palette-cyan-rgb),.22)}.project-card:before{content:"";position:absolute;inset:-1px;border-radius:13px;padding:1px;background:linear-gradient(90deg,rgba(var(--palette-cyan-rgb),.9),rgba(var(--palette-teal-rgb),.9) 50%,rgba(var(--palette-periwinkle-rgb),.9));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .26s ease}.project-card:hover:before{opacity:1}.project-status{position:absolute;top:12px;right:12px;padding:6px 12px;background:#1c1c1ccc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--color-accent-cyan);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:4px}.project-content{padding:24px;display:flex;flex-direction:column;flex:1}.project-header{margin-bottom:12px}.project-title{font-size:1.25rem;font-weight:700;color:var(--color-text-heading);margin:0 0 4px;line-height:1.3}.project-subtitle{font-size:.875rem;color:var(--color-text-body);margin:0;font-weight:500}.project-description{font-size:.925rem;line-height:1.6;color:var(--color-text-body);margin:0 0 16px;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.project-tag{display:inline-block;padding:6px 10px;background-color:rgba(var(--palette-teal-rgb),.15);color:var(--color-text-heading);font-size:.75rem;font-weight:600;border-radius:6px;border:1px solid rgba(var(--palette-teal-rgb),.22)}.project-tag--docker{background-color:rgba(var(--palette-teal-rgb,60,194,182),.12);color:var(--palette-teal);border-color:rgba(var(--palette-teal-rgb,60,194,182),.16)}.project-tag--postgis{background-color:rgba(var(--palette-teal-rgb,60,194,182),.08);color:var(--sem-green);border-color:rgba(var(--palette-teal-rgb,60,194,182),.12)}.project-tag--go{background-color:rgba(var(--palette-cyan-rgb,95,251,241),.08);color:var(--palette-cyan);border-color:rgba(var(--palette-cyan-rgb,95,251,241),.12)}.project-tag--docker:hover,.project-tag--postgis:hover,.project-tag--go:hover{filter:brightness(1.05);transform:translateY(-1px)}.project-metric{display:flex;align-items:baseline;gap:8px;padding:12px 16px;background:#f5930a14;border-radius:8px;margin-bottom:16px;border-left:3px solid var(--color-accent-cyan)}.metric-value{font-size:1.25rem;font-weight:800;color:var(--color-accent-cyan)}.metric-label{font-size:.8rem;color:var(--color-text-body);font-weight:500}.project-links{display:flex;gap:12px;margin-top:auto;padding-top:8px}.project-link{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;font-weight:600;border-radius:8px;text-decoration:none;transition:all .2s ease}.link-github{background:#f4f4f41a;color:var(--color-text-heading);border:1px solid rgba(244,244,244,.2)}.link-github:hover{background:#f4f4f433;transform:translateY(-2px)}.link-demo{background:var(--color-accent-cyan);color:var(--color-text-heading)}.link-demo:hover{background:var(--color-accent-cyan-hover);transform:translateY(-2px);box-shadow:0 4px 12px #f5930a4d}.project-link svg{flex-shrink:0}@media(max-width:900px){.projects-layout{grid-template-columns:1fr;gap:1.5rem;padding:0}.projects-left,.projects-right{padding:0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.projects-intro{max-width:100%}}@media(max-width:600px){.projects-section{padding:32px 16px}.projects-title{font-size:2rem}.projects-intro{font-size:1rem}.projects-grid{grid-template-columns:1fr;gap:24px}.project-content{padding:20px}.project-title{font-size:1.15rem}.project-links{flex-direction:column}.project-link{justify-content:center}}:root{--bg-deep: #0f1115;--card-bg: #181b21;--card-border: rgba(255, 255, 255, .04);--accent: #428fc3;--muted: #9aa0a6;--text-light: #e6e9ee;--input-bg: rgba(255,255,255,.03);--input-border: rgba(255,255,255,.06)}.contact-section{background-color:inherit;display:flex;justify-content:center;padding:1.9rem}.contact-section{--sec-color: var(--text-light);--sec-color-rgb: 230,233,238}.contact-card{width:100%;max-width:980px;background:#111827;border:1px solid rgba(255,255,255,.03);box-shadow:0 8px 30px #020617b3;border-radius:1rem;display:grid;grid-template-columns:320px 1fr;overflow:hidden;align-items:start}.contact-left{padding:2.5rem 2rem;display:flex;align-items:flex-start;justify-content:flex-start;background:transparent}.left-cta{display:flex;flex-direction:column;gap:1rem;max-width:260px}.left-cta h3{margin:0;font-size:1.4rem;font-weight:800;color:var(--color-text-heading);line-height:1.1}.left-cta p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.4}.social-links{display:flex;gap:16px;list-style:none;margin:0;padding:0;align-items:center}.social-links a{display:inline-flex;align-items:center;justify-content:center;width:53px;height:53px;border-radius:8px;color:var(--color-text-heading);text-decoration:none;background:#f59e0b1f;transition:all .2s ease;border:1px solid rgba(255,255,255,.03)}.social-links a:hover,.social-links a:focus{background:#f59e0b2e;border-color:var(--color-accent-cyan);transform:translateY(-2px);outline:none}.email-block{display:flex;align-items:center;gap:1rem;margin-top:1.4rem}.contact-icon{flex:0 0 auto;width:24px;height:24px}.email-icon{color:var(--sec-color)}.email-icon path{stroke:var(--sec-color)!important}.email-link{color:var(--text-light);font-weight:600;font-size:1.05rem;text-decoration:none;opacity:.95}.email-link:hover{color:var(--sec-color)}.social-link .contact-icon{margin:0;width:37px;height:37px}.contact-right{padding:2.25rem 2.5rem;display:flex;align-items:center}.contact-form{width:100%}.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.contact-form label{color:var(--muted);font-size:.85rem;font-weight:700}.contact-form input,.contact-form textarea{background:#273144;border:1px solid rgba(255,255,255,.16);color:var(--text-light);padding:.75rem 1rem;border-radius:.5rem;font-size:1rem;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.contact-form input::-moz-placeholder,.contact-form textarea::-moz-placeholder{color:#e6e9eea8}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#e6e9eea8}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--palette-cyan, #06b6d4);box-shadow:0 0 0 4px #06b6d414}.contact-form textarea{min-height:160px;resize:vertical}.send-button{width:100%;display:inline-flex;align-items:center;justify-content:center}.btn.btn-primary.send-button,.btn.btn-primary.send-button *{color:var(--color-text-dark, #0B1120)}.btn.btn-primary.send-button:hover,.btn.btn-primary.send-button:focus{color:var(--color-text-dark, #0B1120)}.btn.btn-primary.send-button:active{color:var(--color-text-dark, #0B1120)}@media(max-width:820px){.contact-card{grid-template-columns:1fr}.contact-left{padding:1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center}.left-cta{max-width:none;width:100%;align-items:center}.social-links{justify-content:center;flex-wrap:wrap}.email-block{justify-content:center}.contact-right{padding:1.5rem;align-items:stretch}.contact-form{width:100%}.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box}}@media(max-width:420px){.contact-section{padding:1rem .75rem}.contact-left,.contact-right{padding:1rem}.left-cta h3{font-size:1.2rem}.email-link{font-size:.95rem;word-break:break-all}}
