@media print{#root>div>*:not(.professional-cv){display:none!important}.professional-cv{display:block!important;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:10.5pt;line-height:1.3;color:#000;background-color:#fff}*{background-color:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important;transition:none!important;animation:none!important;transform:none!important;filter:none!important;opacity:1!important}.cv-section{margin-bottom:.4cm;page-break-inside:avoid}.cv-header{text-align:center;margin-bottom:.4cm;border-bottom:1pt solid #000;padding-bottom:.2cm}.cv-header h1{font-size:16pt;margin:0 0 .1cm;font-weight:700}.cv-header h2{font-size:12pt;margin:0 0 .2cm;font-weight:400}.cv-contact{display:flex;flex-wrap:wrap;justify-content:center;-moz-column-gap:.7cm;column-gap:.7cm;row-gap:.1cm;font-size:9pt}.cv-section-title{font-size:11pt;text-transform:uppercase;margin:0 0 .2cm;padding-bottom:.05cm;border-bottom:.5pt solid #000;font-weight:700}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);-moz-column-gap:.3cm;column-gap:.3cm;row-gap:.1cm}.skill-category-title{font-size:10pt;font-weight:700;margin:0 0 .1cm}.skill-category ul{margin:0 0 .2cm;padding-left:.3cm}.skill-category li{margin-bottom:.05cm;font-size:9pt}.cv-job{margin-bottom:.3cm}.job-header h3{font-size:10pt;font-weight:700;margin:0}.job-period{font-style:italic;font-size:9pt;margin-bottom:.1cm}.job-responsibilities{margin:.1cm 0 0;padding-left:.3cm}.job-responsibilities li{margin-bottom:.05cm;font-size:9pt}.cv-project{margin-bottom:.2cm}.cv-project h3{font-size:10pt;font-weight:700;margin:0}.cv-project p{margin:0 0 .05cm;font-size:9pt}.project-tech{font-size:8pt;font-style:italic}.cv-certifications{display:grid;grid-template-columns:repeat(2,1fr);gap:.1cm .3cm}.cert-row{display:flex;justify-content:space-between;font-size:9pt}.cert-row span:first-child{font-weight:700}.cert-row span:last-child{font-style:italic}@page{size:A4 portrait;margin:1cm}}body.print-mode .professional-cv{display:block!important}body.print-mode header,body.print-mode .theme-toggle,body.print-mode .language-selector,body.print-mode .print-button,body.print-mode footer,body.print-mode canvas,body.print-mode #background-animation{display:none!important}*,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Outfit,Inter,-apple-system,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Mono,SF Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.bottom-10{bottom:2.5rem}.bottom-6{bottom:1.5rem}.bottom-\[-1px\]{bottom:-1px}.left-0{left:0}.left-1\/2{left:50%}.left-\[-1px\]{left:-1px}.left-\[-4px\]{left:-4px}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.right-\[-1px\]{right:-1px}.top-0{top:0}.top-2{top:.5rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[-1px\]{top:-1px}.top-\[20px\]{top:20px}.z-0{z-index:0}.z-10{z-index:10}.z-40{z-index:40}.z-\[1000\]{z-index:1000}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[9999\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3\.5{margin-top:.875rem}.mt-8{margin-top:2rem}.mt-\[60px\]{margin-top:60px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-24{height:6rem}.h-8{height:2rem}.h-\[5px\]{height:5px}.h-full{height:100%}.h-px{height:1px}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-2{width:.5rem}.w-8{width:2rem}.w-\[5px\]{width:5px}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[500px\]{max-width:500px}.max-w-\[560px\]{max-width:560px}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.object-cover{-o-object-fit:cover;object-fit:cover}.object-top{-o-object-position:top;object-position:top}.p-0{padding:0}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-5{padding-left:1.25rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:JetBrains Mono,Fira Mono,SF Mono,monospace}.text-\[0\.65rem\]{font-size:.65rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.no-underline{text-decoration-line:none}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);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)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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)}.grayscale{--tw-grayscale: grayscale(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)}.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)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[filter\]{transition-property:filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--bg-void: #06080d;--bg-primary: #0b0f1a;--bg-surface: #111827;--bg-elevated: #1a2332;--bg-glass: rgba(17, 24, 37, .7);--border-subtle: rgba(100, 255, 218, .08);--border-medium: rgba(100, 255, 218, .15);--border-active: rgba(100, 255, 218, .4);--accent: #64ffda;--accent-dim: rgba(100, 255, 218, .15);--accent-glow: rgba(100, 255, 218, .06);--accent-secondary: #38bdf8;--accent-warm: #f59e0b;--text-primary: #e2e8f0;--text-secondary: #8892b0;--text-tertiary: #4a5568;--gradient-hero: linear-gradient(135deg, #0b0f1a 0%, #0f172a 40%, #0b1628 100%);--gradient-accent: linear-gradient(135deg, #64ffda, #38bdf8);--particle-color: 100, 255, 218;--font-display: "Syne", sans-serif;--font-body: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace;--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}[data-theme=light]{--bg-void: #f1f5f9;--bg-primary: #ffffff;--bg-surface: #f8fafc;--bg-elevated: #e2e8f0;--bg-glass: rgba(255, 255, 255, .8);--border-subtle: rgba(2, 132, 199, .12);--border-medium: rgba(2, 132, 199, .25);--border-active: rgba(2, 132, 199, .5);--accent: #0284c7;--accent-dim: rgba(2, 132, 199, .1);--accent-glow: rgba(2, 132, 199, .08);--accent-secondary: #0ea5e9;--accent-warm: #d97706;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--gradient-hero: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 40%, #e2e8f0 100%);--gradient-accent: linear-gradient(135deg, #0284c7, #0ea5e9);--particle-color: 2, 132, 199}html{scroll-padding-top:80px;overflow-x:hidden}#about,#experience,#projects,#certifications,#handbook,#contact,#hero{scroll-margin-top:80px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{font-family:var(--font-body);background:var(--bg-void);color:var(--text-primary);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .4s,color .4s}::-moz-selection{background:var(--accent);color:var(--bg-primary)}::selection{background:var(--accent);color:var(--bg-primary)}section{padding-top:4rem;padding-bottom:4rem}@media (min-width: 768px){section{padding-top:6rem;padding-bottom:6rem}}section{position:relative;z-index:2}#about,#experience,#projects,#certifications,#contact{min-height:100vh;display:flex;flex-direction:column;justify-content:center}.section-inner{margin-left:auto;margin-right:auto;width:100%;max-width:64rem;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.section-inner{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1024px){.section-inner{padding-left:2rem;padding-right:2rem}}.section-label{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}.section-label:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse-dot 2s ease-in-out infinite}.section-heading{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1;letter-spacing:-.03em;margin-bottom:24px;color:var(--text-primary);text-wrap:balance}.section-title{position:relative;margin-bottom:2.5rem;display:flex;width:100%;align-items:center;font-size:1.5rem;line-height:2rem;font-weight:700}@media (min-width: 640px){.section-title{font-size:1.875rem;line-height:2.25rem}}.section-title{font-family:var(--font-display);white-space:nowrap;color:var(--text-primary)}.section-title .number{margin-right:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:400}@media (min-width: 640px){.section-title .number{font-size:1.25rem;line-height:1.75rem}}.section-title .number{font-family:var(--font-mono);color:var(--accent)}.section-title:after{content:"";position:relative;margin-left:1rem;display:block;height:1px;width:10rem}@media (min-width: 640px){.section-title:after{width:15rem}}.section-title:after{background:var(--accent)}.btn{font-family:var(--font-mono);font-size:.8rem;font-weight:500;padding:14px 28px;border-radius:12px;text-decoration:none;transition:all .3s var(--ease-out-expo);cursor:pointer;border:none;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--accent);color:var(--bg-primary)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--accent-glow)}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--border-medium)}.btn-outline:hover{background:var(--accent-dim);border-color:var(--accent);transform:translateY(-2px)}.cta-button{display:inline-block;border-radius:.25rem;background-color:transparent;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;line-height:1;font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent);transition:all .25s cubic-bezier(.645,.045,.355,1)}.cta-button:hover{background:var(--accent-dim);transform:translateY(-1px)}a{color:var(--accent);transition:all .25s cubic-bezier(.645,.045,.355,1)}.glass{background:var(--bg-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-subtle)}@media (min-width: 769px){.glass{backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}}.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}.reveal-d4{transition-delay:.4s}.stagger .reveal{transition-delay:calc(var(--i, 0) * .06s)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes blink-border{0%,to{border-color:var(--accent)}50%{border-color:transparent}}@keyframes hReveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes ring-pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}@keyframes scroll-anim{0%{top:-50%}to{top:150%}}.fade-in{animation:fadeIn .5s ease forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.print-only{display:none}.skills-list{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:.5rem;column-gap:.5rem;row-gap:.5rem}@media (min-width: 640px){.skills-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-list li{position:relative;padding-left:1.5rem;font-size:.875rem;line-height:1.25rem;font-family:var(--font-mono);color:var(--text-secondary)}.skills-list li:before{content:"▹";position:absolute;left:0;color:var(--accent)}.job-description ul{margin-top:1rem;padding-left:0}.job-description li{position:relative;margin-bottom:.5rem;padding-left:1.5rem;color:var(--text-secondary)}.job-description li:before{content:"▹";position:absolute;left:0;color:var(--accent)}.tech-icon{margin-right:.5rem;display:inline-block;vertical-align:middle}.prose{color:var(--text-primary);max-width:100%}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--text-primary);font-family:var(--font-display);margin-top:2rem;margin-bottom:1rem;font-weight:600;line-height:1.25}.prose h1{font-size:1.875rem;line-height:2.25rem}.prose h2{font-size:1.5rem;line-height:2rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.prose h3{font-size:1.25rem;line-height:1.75rem}.prose h4{font-size:1.125rem;line-height:1.75rem}.prose p{margin-top:1rem;margin-bottom:1rem}.prose a{color:var(--accent);text-decoration:none}.prose a:hover{text-decoration:underline}.prose ul,.prose ol{margin-top:1rem;margin-bottom:1rem;padding-left:1.5rem}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-top:.5rem;margin-bottom:.5rem}.prose blockquote{border-left:4px solid var(--accent);padding-left:1rem;padding-top:.5rem;padding-bottom:.5rem;margin-top:1rem;margin-bottom:1rem;background:var(--bg-surface);border-radius:0 .375rem .375rem 0;font-style:italic}.prose pre{background:var(--bg-surface);padding:1rem;border-radius:.375rem;overflow-x:auto;margin-top:1rem;margin-bottom:1rem}.prose pre code{background-color:transparent;padding:0;font-size:.875rem;line-height:1.7}.prose img{margin-top:1rem;margin-bottom:1rem;margin-left:auto;margin-right:auto;max-width:100%;border-radius:.375rem}.prose hr{margin-top:2rem;margin-bottom:2rem;border-top:1px solid var(--border-subtle)}.prose table{margin-top:1.5rem;margin-bottom:1.5rem;width:100%;border-collapse:collapse}.prose th{background:var(--bg-surface);border:1px solid var(--border-subtle);padding:.5rem 1rem;text-align:left}.prose td{border:1px solid var(--border-subtle);padding:.5rem 1rem}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;font-family:var(--font-mono);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em;position:relative}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}.dark pre[class*=language-]{background:#1a1c25;box-shadow:0 2px 6px #00000026}.light pre[class*=language-]{background:#282a36;box-shadow:0 2px 6px #0000001a}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6272a4}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#50fa7b}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#f8f8f2}.token.atrule,.token.attr-value,.token.keyword{color:#ff79c6}.token.function,.token.class-name{color:#8be9fd}.token.regex,.token.important,.token.variable{color:#f1fa8c}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-]:before{content:attr(data-language);position:absolute;top:0;right:0;padding:.2em .5em;font-size:.7em;color:#f8f8f2;background:#44475a;border-radius:0 .3em;text-transform:uppercase;letter-spacing:.05em}pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre.line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #6272a4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#6272a4;display:block;padding-right:.8em;text-align:right}.dark .text-dark-text-primary{color:#f1f5f9!important}.dark .text-dark-text-secondary{color:#cbd5e1!important}.dark .status-badge-published{background-color:#22c55e40!important;color:#dcfce7!important}.dark .status-badge-draft{background-color:#f59e0b40!important;color:#fef3c7!important}.dark .admin-button{background-color:#1e293b!important;color:#f8fafc!important;border-color:#475569!important}.dark .admin-button:hover{background-color:#334155!important}.dark .admin-button-primary{background-color:#065f46!important;color:#d1fae5!important}.dark .admin-button-primary:hover{background-color:#047857!important}.dark .admin-button-danger{background-color:#991b1b!important;color:#fee2e2!important}.dark .admin-button-danger:hover{background-color:#b91c1c!important}.dark .admin-table th{color:#f1f5f9!important;background-color:#1e293b!important}.dark .admin-table tr{border-color:#334155!important}.dark .admin-table tr:hover{background-color:#334155!important}.dark .admin-table td{color:#e2e8f0!important}.dark .admin-input,.dark .admin-textarea,.dark .admin-select{background-color:#1e293b!important;color:#f8fafc!important;border-color:#475569!important}.dark .admin-input:focus,.dark .admin-textarea:focus,.dark .admin-select:focus{border-color:#0ea5e9!important;box-shadow:0 0 0 2px #0ea5e933!important}.dark td .status-badge{padding:.25rem .5rem;border-radius:.375rem;font-weight:500}.dark td .status-badge-published{background-color:#065f46!important;color:#d1fae5!important}.dark td .status-badge-draft{background-color:#92400e!important;color:#fef3c7!important}.dark .publish-button{background-color:#065f46!important;color:#d1fae5!important}.dark .unpublish-button{background-color:#92400e!important;color:#fef3c7!important}.dark .admin-modal{background-color:#1e293b!important;color:#f8fafc!important;border:1px solid #475569!important}.dark .admin-modal-header{border-bottom-color:#475569!important}.dark .admin-modal-footer{border-top-color:#475569!important}.dark .admin-area a{color:#38bdf8}.dark .admin-area a:hover{color:#7dd3fc}.dark .admin-action-button{background-color:#1e40af!important;color:#fff!important}.dark .admin-action-button:hover{background-color:#2563eb!important}.dark .admin-primary-button{background-color:#047857!important;color:#fff!important}.dark .admin-primary-button:hover{background-color:#059669!important}.admin-dashboard-container{background-color:#0f172a;color:#f1f5f9}.dark .new-post-button{background-color:#0d9488!important;color:#fff!important;display:flex!important;align-items:center!important}.dark .new-post-button:hover{background-color:#14b8a6!important}.dark .admin-navbar a{color:#f8fafc!important}.dark .admin-navbar a:hover{color:#38bdf8!important}.glass,.skill-node,.stat-card,.timeline-card,.project-card,.cert-card,.cert-group-card,.sidebar-widget,.contact-link{transition:background-color .4s,color .4s,border-color .4s,box-shadow .4s}.skill-node:hover{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--accent-dim)!important;transform:translateY(-2px);box-shadow:0 4px 20px var(--accent-glow)}.timeline-card:hover{border-color:var(--border-medium)!important;transform:translate(4px);box-shadow:0 8px 40px #00000026}.project-card{transition:transform .4s var(--ease-out-expo),border-color .4s,box-shadow .4s,background-color .4s}.project-card:hover{border-color:var(--border-medium)!important;transform:translateY(-6px);box-shadow:0 20px 50px #00000026}.project-card:hover .project-gradient{opacity:1!important}.project-card:hover .project-icon-wrap{background:var(--accent)!important;color:var(--bg-primary)!important}.project-card:hover .project-title-text{color:var(--accent)!important}.project-card:hover .tech-tag{border-color:var(--border-medium)!important;color:var(--accent)!important}.hero-orb{border-radius:999px;filter:blur(50px)}.hero-orb-accent{top:-15%;left:-10%;width:55vw;height:55vw;max-width:780px;max-height:780px;background:radial-gradient(circle at center,var(--accent) 0%,transparent 60%)}.hero-orb-warm{bottom:-20%;right:-10%;width:60vw;height:60vw;max-width:880px;max-height:880px;background:radial-gradient(circle at center,var(--accent-warm) 0%,transparent 60%)}@media (min-width: 769px){.hero-orb{filter:blur(90px)}.hero-orb-warm{filter:blur(110px)}}@media (max-width: 480px){.hero-orb{filter:blur(36px)}}.handbook-section{padding-top:4rem;padding-bottom:4rem}@media (min-width: 768px){.handbook-section{padding-top:6rem;padding-bottom:6rem}}.handbook-section{position:relative;z-index:2}.handbook-section-inner{margin-left:auto;margin-right:auto;width:100%;max-width:64rem;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.handbook-section-inner{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1024px){.handbook-section-inner{padding-left:2rem;padding-right:2rem}}.handbook-section-header{margin:0 0 2.5rem}.handbook-section-sub{font-size:1rem;line-height:1.6;color:var(--text-secondary);margin:.5rem 0 0;max-width:640px;text-wrap:pretty}@media (max-width: 768px){.handbook-section-header{margin-bottom:1.75rem}}.handbook-window{position:relative;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden;transition:border-color .4s var(--ease-out-expo),box-shadow .4s var(--ease-out-expo);box-shadow:0 10px 40px #00000040}.handbook-window:hover{border-color:var(--border-active);box-shadow:0 24px 70px -12px #64ffda2e,0 10px 40px #00000059}[data-theme=light] .handbook-window:hover{box-shadow:0 24px 70px -12px #0284c738,0 10px 40px #00000014}.handbook-chrome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.handbook-chrome-dots{display:flex;align-items:center;gap:6px}.handbook-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.handbook-urlbar{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:6px 18px;flex:1;max-width:380px;margin:0 auto;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:999px;font-family:var(--font-mono);font-size:.78rem;color:var(--text-secondary);text-decoration:none;transition:color .2s var(--ease-out-expo),border-color .2s var(--ease-out-expo)}.handbook-urlbar:hover{color:var(--accent);border-color:var(--border-medium);text-decoration:none}.handbook-chrome-open{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:var(--text-tertiary);text-decoration:none;transition:color .2s var(--ease-out-expo),background .2s var(--ease-out-expo)}.handbook-chrome-open:hover{color:var(--accent);background:var(--accent-dim)}.handbook-content{position:relative;padding:1.75rem 1.25rem 1.5rem}@media (min-width: 768px){.handbook-content{padding:2rem 2rem 1.75rem}}.handbook-hero{max-width:680px;margin:0 auto 1.75rem}.handbook-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.85rem}.handbook-eyebrow-sm{font-size:.68rem;margin-top:.5rem;margin-bottom:.55rem}.handbook-path-block:first-child .handbook-eyebrow-sm{margin-top:0}.handbook-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}.handbook-title{font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.1rem);font-weight:700;line-height:1.1;letter-spacing:-.03em;color:var(--text-primary);margin:0 0 .85rem;text-wrap:balance}.handbook-lede{font-size:.95rem;line-height:1.6;color:var(--text-secondary);margin:0;text-wrap:pretty}.handbook-lede code{font-family:var(--font-mono);font-size:.92em;color:var(--accent);background:var(--accent-dim);padding:2px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.handbook-paths{max-width:680px;margin:0 auto;padding:.5rem 0 1.25rem;display:flex;flex-direction:column;gap:.75rem}.handbook-path-block{display:block}.handbook-path-intro{font-size:.9rem;line-height:1.55;color:var(--text-secondary);margin:0 0 .35rem;text-wrap:pretty}.handbook-rows{display:flex;flex-direction:column}.handbook-row{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:baseline;padding:1rem 0;border-top:1px solid var(--border-subtle);color:inherit;text-decoration:none;transition:padding-left .25s var(--ease-out-expo)}.handbook-row:last-child{border-bottom:1px solid var(--border-subtle)}.handbook-row:hover{text-decoration:none;color:inherit;padding-left:1rem}.handbook-row:hover .handbook-row-label,.handbook-row:hover .handbook-row-arrow{color:var(--accent)}.handbook-row-label{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);transition:color .2s var(--ease-out-expo)}.handbook-row-arrow{font-family:var(--font-mono);font-size:1rem;color:var(--text-tertiary);transition:color .2s var(--ease-out-expo),transform .25s var(--ease-out-expo)}.handbook-row:hover .handbook-row-arrow{transform:translate(4px)}@media (max-width: 600px){.handbook-row{padding:.75rem 0}.handbook-row-label{font-size:1rem}.handbook-row:hover{padding-left:0}}.handbook-signoff{max-width:680px;margin:1rem auto 0;padding:0;color:var(--text-tertiary);font-size:.8rem;line-height:1.55}.handbook-signoff p{margin:0}.handbook-signoff-link{color:var(--text-secondary);text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:color .2s var(--ease-out-expo),border-color .2s var(--ease-out-expo)}.handbook-signoff-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.cert-group-card{transition:transform .4s var(--ease-out-expo),border-color .4s,box-shadow .4s}.cert-group-card:hover{border-color:var(--border-medium)!important;transform:translateY(-4px)}.contact-link:hover{color:var(--accent)!important;border-color:var(--accent)!important;background:var(--accent-dim)!important;transform:translateY(-2px)}.photo-img:hover{filter:grayscale(0) contrast(1)!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-snap-type:none!important}.reveal{opacity:1!important;transform:none!important}}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:opacity-70:hover{opacity:.7}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width: 640px){.sm\:bottom-8{bottom:2rem}.sm\:right-6{right:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-7{gap:1.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}}@media (min-width: 768px){.md\:left-\[12px\]{left:12px}.md\:left-\[16px\]{left:16px}.md\:col-span-1{grid-column:span 1 / span 1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:row-span-2{grid-row:span 2 / span 2}.md\:block{display:block}.md\:hidden{display:none}.md\:h-32{height:8rem}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:gap-4{gap:1rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:1.75rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:pl-\[72px\]{padding-left:72px}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[1\.2fr_1fr\]{grid-template-columns:1.2fr 1fr}.lg\:gap-20{gap:5rem}}@media (min-width: 1280px){.xl\:right-20{right:5rem}.xl\:flex{display:flex}}@media print{.print\:hidden{display:none}}
