/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root{--color-bg:#0a0a0b;--color-bg-alt:#111113;--color-bg-elevated:#18181b;--color-surface:#1f1f23;--color-text:#e4e4e7;--color-text-muted:#a1a1aa;--color-accent:#22d3ee;--color-accent-hover:#67e8f9;--color-accent-dim:rgba(34,211,238,0.15);--color-border:#27272a;--color-border-highlight:#3f3f46;--color-focus:#22d3ee;--color-success:#4ade80;--color-warning:#f59e0b;--color-error:#ef4444;--color-comment:#6b7280;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);--text-sm:clamp(0.875rem,0.8rem + 0.375vw,1rem);--text-base:clamp(1rem,0.925rem + 0.375vw,1.125rem);--text-lg:clamp(1.125rem,1rem + 0.625vw,1.375rem);--text-xl:clamp(1.25rem,1.1rem + 0.75vw,1.625rem);--text-2xl:clamp(1.5rem,1.25rem + 1.25vw,2.25rem);--text-3xl:clamp(2rem,1.5rem + 2.5vw,3.5rem);--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem;--container-max:72rem;--container-padding:var(--space-md);--transition-fast:150ms ease;--transition-base:250ms ease;--transition-smooth:400ms cubic-bezier(0.16,1,0.3,1);--transition-spring:500ms cubic-bezier(0.34,1.56,0.64,1);--animation-duration:600ms;--animation-stagger:100ms;}*,*::before,*::after{box-sizing:border-box;}*{margin:0;padding:0;}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}body{font-family:var(--font-mono);font-size:var(--text-base);line-height:1.7;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}input,button,textarea,select{font:inherit;}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);line-height:1.3;font-weight:600;letter-spacing:-0.02em;}a{color:inherit;text-decoration:none;}ul,ol{list-style:none;}address{font-style:normal;}::selection{background-color:var(--color-accent);color:var(--color-bg);}body.toolbar-fixed{padding-top:0 !important;}.toolbar-fixed .site-header{top:79px;}@media (min-width:61rem){.toolbar-fixed.toolbar-horizontal .site-header{top:79px;}.toolbar-fixed.toolbar-vertical .site-header{top:39px;}}.messages-list{padding:var(--space-sm) var(--container-padding);max-width:var(--container-max);margin-inline:auto;}.messages{padding:var(--space-md);margin-bottom:var(--space-sm);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);background-color:var(--color-bg-elevated);font-family:var(--font-mono);font-size:var(--text-sm);}.messages__header{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);font-weight:600;}.messages__header::before{content:"//";color:var(--color-comment);}.messages--status{border-left-color:var(--color-success);}.messages--status .messages__header{color:var(--color-success);}.messages--warning{border-left-color:var(--color-warning);}.messages--warning .messages__header{color:var(--color-warning);}.messages--error{border-left-color:var(--color-error);}.messages--error .messages__header{color:var(--color-error);}.messages__content{color:var(--color-text-muted);font-family:var(--font-sans);}.messages__content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px;}.messages__content a:hover{color:var(--color-accent-hover);}.tabs{margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border);}.tabs__tab{display:inline-block;}.tabs__link{display:block;padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast);}.tabs__link::before{content:"// ";color:var(--color-comment);}.tabs__link:hover{color:var(--color-accent);}.tabs__link.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent);}.skip-link{position:absolute;top:-100%;left:var(--space-sm);z-index:1000;padding:var(--space-xs) var(--space-sm);background-color:var(--color-accent);color:var(--color-bg);font-size:var(--text-sm);font-weight:500;transition:top var(--transition-fast);}.skip-link:focus{top:0;outline:3px solid var(--color-focus);outline-offset:2px;}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding);}.section{padding-block:var(--space-2xl);}@media (min-width:48rem){.section{padding-block:var(--space-3xl);}}.site-header{position:sticky;top:0;z-index:100;background-color:rgba(10,10,11,0.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-smooth),border-color var(--transition-smooth);}.site-header.is-scrolled{background-color:rgba(10,10,11,0.95);border-bottom-color:var(--color-border-highlight);}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:4rem;}@media (min-width:48rem){.site-header .container{height:5rem;}}.site-logo{display:flex;align-items:center;gap:0.5rem;font-weight:700;font-size:var(--text-lg);transition:color var(--transition-fast);}.site-logo::before{content:">";color:var(--color-accent);}.site-logo:hover{color:var(--color-accent);}.site-logo:focus{outline:3px solid var(--color-focus);outline-offset:4px;}.logo-text{display:inline-block;}.site-logo::after{content:"_";animation:blink 1s step-end infinite;color:var(--color-accent);}@keyframes blink{50%{opacity:0;}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px);}to{opacity:1;transform:translateX(0);}}.main-nav{display:flex;align-items:center;}.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.5rem;height:2.5rem;padding:0;background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:border-color var(--transition-fast);}.nav-toggle:hover{border-color:var(--color-accent);}.nav-toggle:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.nav-toggle-line{display:block;width:1.25rem;height:2px;background-color:var(--color-text);transition:transform var(--transition-fast),opacity var(--transition-fast),background-color var(--transition-fast);}.nav-toggle:hover .nav-toggle-line{background-color:var(--color-accent);}.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(1){transform:translateY(7px) rotate(45deg);}.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(2){opacity:0;}.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(3){transform:translateY(-7px) rotate(-45deg);}.nav-menu{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;gap:0;padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}.nav-menu.is-open{display:flex;}.nav-menu li{border-bottom:1px solid var(--color-border);}.nav-menu li:last-child{border-bottom:none;}.nav-menu a{display:block;padding:var(--space-sm) 0;font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition-fast);}.nav-menu a::before{content:"// ";color:var(--color-comment);}.nav-menu a:hover{color:var(--color-accent);}.nav-menu a:focus{outline:3px solid var(--color-focus);outline-offset:2px;}@media (min-width:48rem){.nav-toggle{display:none;}.nav-menu{position:static;display:flex;flex-direction:row;gap:var(--space-md);padding:0;border:none;background:transparent;}.nav-menu li{border:none;}.nav-menu a{padding:var(--space-xs);font-size:var(--text-sm);}}.hero{display:flex;align-items:center;min-height:calc(100svh - 4rem);padding-block:var(--space-2xl);background-color:var(--color-bg);position:relative;overflow:hidden;}.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--color-border) 1px,transparent 1px),linear-gradient(90deg,var(--color-border) 1px,transparent 1px);background-size:60px 60px;opacity:0.3;pointer-events:none;}.hero-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}.ambient-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:0.4;will-change:transform;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;}.ambient-blob--1{width:500px;height:500px;background:radial-gradient(circle,var(--color-accent) 0%,transparent 70%);top:-20%;left:-10%;animation-name:ambientFloat1;animation-duration:15s;}.ambient-blob--2{width:400px;height:400px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);top:50%;right:-15%;animation-name:ambientFloat2;animation-duration:18s;animation-delay:-5s;}.ambient-blob--3{width:350px;height:350px;background:radial-gradient(circle,#6366f1 0%,transparent 70%);bottom:-10%;left:30%;animation-name:ambientFloat3;animation-duration:20s;animation-delay:-10s;}@keyframes ambientFloat1{0%{transform:translate(0,0) scale(1);}100%{transform:translate(50px,30px) scale(1.1);}}@keyframes ambientFloat2{0%{transform:translate(0,0) scale(1);}100%{transform:translate(-40px,-50px) scale(0.9);}}@keyframes ambientFloat3{0%{transform:translate(0,0) scale(1);}100%{transform:translate(30px,-40px) scale(1.05);}}@media (prefers-reduced-motion:reduce){.ambient-blob{animation:none;}}@media (min-width:48rem){.hero{min-height:calc(100svh - 5rem);padding-block:var(--space-3xl);}}.hero .container{max-width:var(--container-max);position:relative;z-index:1;}.hero-grid{display:grid;gap:var(--space-xl);align-items:center;}@media (min-width:64rem){.hero-grid{grid-template-columns:1fr 1fr;gap:var(--space-xl);}}@media (min-width:80rem){.hero-grid{gap:var(--space-2xl);}}.hero-content{max-width:42rem;}.hero h1{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-md);color:var(--color-text);animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;}.hero h1::before{content:"$ ";color:var(--color-accent);}.hero-tagline{font-size:var(--text-lg);color:var(--color-text-muted);line-height:1.6;margin-bottom:var(--space-lg);font-family:var(--font-sans);animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(var(--animation-stagger) * 1);}.hero-terminal{display:none;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);overflow:hidden;animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(var(--animation-stagger) * 3);}@media (min-width:64rem){.hero-terminal{display:block;}}.hero-terminal .terminal-body{padding:var(--space-xs) var(--space-sm);overflow:hidden;}.hero-terminal .terminal-line--prompt{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--color-border);}.terminal-ascii{font-family:var(--font-mono);font-size:0.28rem;line-height:1.05;margin:0;text-align:left;white-space:pre;letter-spacing:-0.02em;overflow:hidden;}@media (min-width:80rem){.terminal-ascii{font-size:0.32rem;}}@media (min-width:100rem){.terminal-ascii{font-size:0.38rem;}}.ascii-accent{color:var(--color-accent);}.ascii-dark{color:#0e7490;}.ascii-eye{color:#ffffff;}.ascii-smile{color:#ffffff;}.hero-terminal .terminal-line{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.8;color:var(--color-text);}.hero-terminal .terminal-line--output{padding-left:var(--space-sm);}.terminal-key{color:var(--color-text-muted);}.terminal-value{color:var(--color-success);}.cta-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background-color:transparent;color:var(--color-accent);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-accent);transition:background-color var(--transition-smooth),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-smooth);animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(var(--animation-stagger) * 2);}.cta-button::before{content:">";}.cta-button:hover{background-color:var(--color-accent);color:var(--color-bg);box-shadow:0 0 20px rgba(34,211,238,0.3);}.cta-button:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.cta-button:active{transform:translateY(1px);}.section h2{font-size:var(--text-2xl);margin-bottom:var(--space-xl);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);}.section h2::before{content:"## ";color:var(--color-accent);font-weight:400;}.section--about{background-color:var(--color-bg);}.about-content{max-width:48rem;padding:var(--space-lg);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);}.about-content p{margin-bottom:var(--space-md);color:var(--color-text-muted);font-family:var(--font-sans);}.about-content p:last-child{margin-bottom:0;}.about-aside{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px dashed var(--color-border);font-size:var(--text-sm);font-family:var(--font-mono);color:var(--color-comment);font-style:italic;}.section--skills{background-color:var(--color-bg-alt);}.skills-grid{display:grid;gap:var(--space-md);}.skills-grid > .views-element-container,.skills-grid .view,.skills-grid .view-content{display:contents;}@media (min-width:36rem){.skills-grid{grid-template-columns:repeat(2,1fr);}}@media (min-width:64rem){.skills-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-lg);}}.skill-card{padding:var(--space-lg);background-color:var(--color-bg);border:1px solid var(--color-border);transition:border-color var(--transition-fast),transform var(--transition-fast);}.skill-card:hover{border-color:var(--color-border-highlight);transform:translateY(-2px);}.skill-card h3{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-sm);color:var(--color-accent);display:flex;align-items:center;gap:var(--space-xs);}.key{display:inline-flex;align-items:center;justify-content:center;min-width:2em;padding:0.15em 0.4em;font-size:var(--text-xs);font-family:var(--font-mono);font-weight:500;color:var(--color-text-muted);background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-bg) 100%);border:1px solid var(--color-border);border-bottom:3px solid var(--color-border-highlight);border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.05);text-transform:lowercase;}.skill-card p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;font-family:var(--font-sans);}.section--projects{background-color:var(--color-bg);}.projects-list{display:grid;gap:var(--space-lg);}@media (min-width:48rem){.projects-list{gap:var(--space-xl);}}.project-card{padding:var(--space-lg);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);transition:border-color var(--transition-fast);}.project-card:hover{border-color:var(--color-border-highlight);}.project-title{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-sm);color:var(--color-text);}.project-title::before{content:"class ";color:var(--color-comment);font-weight:400;font-size:var(--text-base);}.project-description{color:var(--color-text-muted);margin-bottom:var(--space-md);max-width:50rem;font-family:var(--font-sans);}.project-stack{display:flex;flex-wrap:wrap;gap:var(--space-xs);}.project-stack li{padding:0.375rem 0.75rem;background-color:var(--color-accent-dim);border:1px solid var(--color-accent);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-accent);}.section--contact{background-color:var(--color-bg-alt);}.contact-intro{color:var(--color-text-muted);margin-bottom:var(--space-lg);font-family:var(--font-sans);}.contact-info{display:flex;flex-direction:column;gap:var(--space-md);}.contact-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:500;color:var(--color-text);transition:color var(--transition-fast);}.contact-link::before{content:"->";color:var(--color-accent);transition:transform var(--transition-fast);}.contact-link:hover{color:var(--color-accent);}.contact-link:hover::before{transform:translateX(4px);}.contact-link:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.contact-link--email{font-size:var(--text-lg);}.contact-social{display:flex;gap:var(--space-lg);}.contact-social .contact-link{font-size:var(--text-sm);}.site-footer{padding-block:var(--space-lg);background-color:var(--color-bg);border-top:1px solid var(--color-border);}.site-footer p{font-size:var(--text-sm);color:var(--color-text-muted);}.site-footer p::before{content:"// ";}.page-header{padding-block:var(--space-2xl);background-color:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}@media (min-width:48rem){.page-header{padding-block:var(--space-3xl);}}.page-header h1{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-md);animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;}.page-header h1::before{content:"$ cat ";color:var(--color-accent);font-weight:400;}.page-intro{font-size:var(--text-lg);color:var(--color-text-muted);max-width:42rem;font-family:var(--font-sans);animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;animation-delay:var(--animation-stagger);}.timeline{position:relative;padding-left:var(--space-lg);}.timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--color-accent),var(--color-border) 20%,var(--color-border) 80%,transparent);}@media (min-width:48rem){.timeline{padding-left:var(--space-xl);}}.timeline-item{position:relative;padding-bottom:var(--space-xl);}.timeline-item:last-child{padding-bottom:0;}.timeline-marker{position:absolute;left:calc(-1 * var(--space-lg) - 5px);top:0.375rem;width:12px;height:12px;background-color:var(--color-bg);border:2px solid var(--color-accent);transition:background-color var(--transition-fast),transform var(--transition-fast);}@media (min-width:48rem){.timeline-marker{left:calc(-1 * var(--space-xl) - 5px);}}.timeline-item:hover .timeline-marker{background-color:var(--color-accent);transform:scale(1.2);}.timeline-content{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);padding:var(--space-md);transition:border-color var(--transition-smooth),box-shadow var(--transition-smooth);}@media (min-width:48rem){.timeline-content{padding:var(--space-lg);}}.timeline-item:hover .timeline-content{border-color:var(--color-accent);box-shadow:0 4px 20px rgba(0,0,0,0.3);}.timeline-header{margin-bottom:var(--space-md);}.timeline-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs);}.timeline-company{font-size:var(--text-base);color:var(--color-accent);margin-bottom:var(--space-xs);}.timeline-date{display:inline-block;font-size:var(--text-sm);color:var(--color-text-muted);font-family:var(--font-mono);}.timeline-date::before{content:"// ";color:var(--color-comment);}.timeline-body p{color:var(--color-text-muted);font-family:var(--font-sans);margin-bottom:var(--space-md);}.timeline-tasks{margin-bottom:var(--space-md);padding-left:var(--space-md);}.timeline-tasks li{position:relative;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-sm);padding-left:var(--space-sm);margin-bottom:var(--space-xs);}.timeline-tasks li::before{content:"\2014";position:absolute;left:calc(-1 * var(--space-sm));color:var(--color-accent);}.timeline-stack{display:flex;flex-wrap:wrap;gap:var(--space-xs);}.timeline-stack li{padding:0.25rem 0.625rem;background-color:var(--color-accent-dim);border:1px solid var(--color-accent);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-accent);transition:background-color var(--transition-fast),transform var(--transition-fast);}.timeline-stack li:hover{background-color:var(--color-accent);color:var(--color-bg);transform:translateY(-2px);}.timeline--compact .timeline-content{padding:var(--space-md);}.timeline--compact .timeline-header{margin-bottom:var(--space-sm);}.timeline--compact .timeline-body p{margin-bottom:0;font-size:var(--text-sm);}.section--certifications{background-color:var(--color-bg-alt);}.certifications-grid{display:grid;gap:var(--space-md);}@media (min-width:36rem){.certifications-grid{grid-template-columns:repeat(2,1fr);}}@media (min-width:64rem){.certifications-grid{grid-template-columns:repeat(3,1fr);}}.certification-card{padding:var(--space-lg);background-color:var(--color-bg);border:1px solid var(--color-border);transition:border-color var(--transition-smooth),transform var(--transition-smooth);}.certification-card:hover{border-color:var(--color-accent);transform:translateY(-2px);}.certification-year{display:inline-block;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-accent);margin-bottom:var(--space-sm);padding:0.25rem 0.5rem;background-color:var(--color-accent-dim);border:1px solid var(--color-accent);}.certification-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs);}.certification-issuer{font-size:var(--text-sm);color:var(--color-text-muted);}.skills-categories{display:grid;gap:var(--space-lg);}@media (min-width:36rem){.skills-categories{grid-template-columns:repeat(2,1fr);}}@media (min-width:64rem){.skills-categories{grid-template-columns:repeat(4,1fr);}}.skills-category{padding:var(--space-lg);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-top:2px solid var(--color-accent);}.skills-category h3{font-size:var(--text-base);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-xs);}.skills-list{display:flex;flex-direction:column;gap:var(--space-xs);}.skills-list li{font-size:var(--text-sm);color:var(--color-text-muted);font-family:var(--font-sans);padding-left:var(--space-sm);position:relative;}.skills-list li::before{content:"\00b7";position:absolute;left:0;color:var(--color-accent);}.section--cta{background-color:var(--color-bg-alt);border-top:1px solid var(--color-border);}.cta-block{text-align:center;padding:var(--space-lg);}.cta-text{font-size:var(--text-xl);color:var(--color-text);margin-bottom:var(--space-md);}.cta-text::before{content:"// ";color:var(--color-comment);}.section--contact-form{background-color:var(--color-bg);}.contact-grid{display:grid;gap:var(--space-xl);}@media (min-width:64rem){.contact-grid{grid-template-columns:1fr 320px;gap:var(--space-2xl);}}.contact-form-wrapper{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);padding:var(--space-lg);}@media (min-width:48rem){.contact-form-wrapper{padding:var(--space-xl);}}.form-group{margin-bottom:var(--space-md);}.form-group--submit{margin-bottom:0;margin-top:var(--space-lg);}.form-label{display:block;margin-bottom:var(--space-xs);font-size:var(--text-sm);font-weight:500;color:var(--color-text);}.form-label::before{content:"// ";color:var(--color-comment);}.label-required{color:var(--color-accent);margin-left:0.25rem;}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-comment);}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--color-border-highlight);}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim);}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2322d3ee' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center;padding-right:var(--space-xl);}.form-textarea{resize:vertical;min-height:150px;}.form-submit{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background-color:var(--color-accent);color:var(--color-bg);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-accent);cursor:pointer;transition:background-color var(--transition-smooth),transform var(--transition-fast),box-shadow var(--transition-smooth);}.form-submit::before{content:">";}.form-submit:hover{background-color:var(--color-accent-hover);box-shadow:0 0 20px rgba(34,211,238,0.3);}.form-submit:active{transform:translateY(1px);}.form-submit:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.form-note{margin-top:var(--space-sm);font-size:var(--text-xs);color:var(--color-comment);font-family:var(--font-mono);}.contact-info-aside{display:flex;flex-direction:column;gap:var(--space-lg);}.aside-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);}.aside-title::before{content:"## ";color:var(--color-accent);font-weight:400;}.contact-method h3{font-size:var(--text-sm);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-xs);}.contact-method h3::before{content:"// ";color:var(--color-comment);font-weight:400;}.contact-method p{font-size:var(--text-sm);color:var(--color-text-muted);font-family:var(--font-sans);}.contact-links-list{display:flex;flex-direction:column;gap:var(--space-xs);}.contact-links-list .contact-link{font-size:var(--text-sm);}.availability-status{display:flex;align-items:center;gap:var(--space-xs);}.status-indicator{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease-in-out infinite;}.status-indicator--available{background-color:var(--color-success);box-shadow:0 0 8px var(--color-success);}.status-indicator--busy{background-color:#f59e0b;box-shadow:0 0 8px #f59e0b;}.status-indicator--unavailable{background-color:#ef4444;box-shadow:0 0 8px #ef4444;animation:none;}@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.5;}}.text-muted{color:var(--color-comment);font-family:var(--font-mono);}.page-404{min-height:100vh;display:flex;flex-direction:column;}.error-main{flex:1;display:flex;align-items:center;padding-block:var(--space-2xl);}.error-content{display:grid;gap:var(--space-xl);max-width:48rem;margin-inline:auto;}@media (min-width:48rem){.error-content{gap:var(--space-2xl);}}.error-terminal{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);overflow:hidden;animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;}.terminal-header{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}.terminal-dot{width:12px;height:12px;border-radius:50%;}.terminal-dot--red{background-color:#ef4444;}.terminal-dot--yellow{background-color:#f59e0b;}.terminal-dot--green{background-color:#22c55e;}.terminal-title{margin-left:auto;font-size:var(--text-xs);color:var(--color-comment);font-family:var(--font-mono);}.terminal-body{padding:var(--space-md);}@media (min-width:48rem){.terminal-body{padding:var(--space-lg);}}.terminal-line{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.8;color:var(--color-text);}.terminal-prompt{color:var(--color-accent);margin-right:var(--space-xs);}.terminal-command{color:var(--color-text);}.terminal-line--error{color:#ef4444;}.terminal-error{color:#ef4444;}.terminal-output{color:var(--color-text-muted);}.terminal-cursor{color:var(--color-accent);animation:blink 1s step-end infinite;}.error-message{animation:fadeInUp var(--animation-duration) cubic-bezier(0.16,1,0.3,1) both;animation-delay:calc(var(--animation-stagger) * 2);}.error-title{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md);}.error-code{font-size:var(--text-3xl);font-weight:700;color:var(--color-accent);line-height:1;}.error-text{font-size:var(--text-xl);font-weight:600;color:var(--color-text);}.error-description{font-size:var(--text-base);color:var(--color-text-muted);font-family:var(--font-sans);margin-bottom:var(--space-lg);}.error-suggestions{margin-bottom:var(--space-lg);padding:var(--space-md);background-color:var(--color-bg-elevated);border-left:2px solid var(--color-accent);}.suggestions-title{font-size:var(--text-sm);color:var(--color-comment);font-family:var(--font-mono);margin-bottom:var(--space-sm);}.suggestions-list{display:flex;flex-direction:column;gap:var(--space-xs);}.suggestions-list li{font-size:var(--text-sm);color:var(--color-text-muted);font-family:var(--font-sans);padding-left:var(--space-sm);position:relative;}.suggestions-list li::before{content:">";position:absolute;left:0;color:var(--color-accent);}.error-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);}.error-link{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:underline;text-underline-offset:3px;transition:color var(--transition-fast);}.error-link:hover{color:var(--color-accent);}.error-link:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}.nav-menu a[aria-current="page"]{color:var(--color-accent);}.nav-menu a[aria-current="page"]::after{width:100%;}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;}:focus:not(:focus-visible){outline:none;}::-webkit-scrollbar{width:8px;height:8px;}::-webkit-scrollbar-track{background:var(--color-bg);}::-webkit-scrollbar-thumb{background:var(--color-border-highlight);border-radius:0;}::-webkit-scrollbar-thumb:hover{background:var(--color-accent);}.js-enabled .reveal{opacity:0;transform:translateY(24px);transition:opacity var(--animation-duration) cubic-bezier(0.16,1,0.3,1),transform var(--animation-duration) cubic-bezier(0.16,1,0.3,1);}.js-enabled .reveal.is-visible{opacity:1;transform:translateY(0);}.js-enabled .reveal--left{transform:translateX(-24px);}.js-enabled .reveal--left.is-visible{transform:translateX(0);}.js-enabled .reveal--scale{transform:scale(0.95);}.js-enabled .reveal--scale.is-visible{transform:scale(1);}.js-enabled .reveal-stagger>.reveal:nth-child(1){transition-delay:0ms;}.js-enabled .reveal-stagger>.reveal:nth-child(2){transition-delay:80ms;}.js-enabled .reveal-stagger>.reveal:nth-child(3){transition-delay:160ms;}.js-enabled .reveal-stagger>.reveal:nth-child(4){transition-delay:240ms;}.js-enabled .reveal-stagger>.reveal:nth-child(5){transition-delay:320ms;}.js-enabled .reveal-stagger>.reveal:nth-child(6){transition-delay:400ms;}.nav-menu a{position:relative;}.nav-menu a::after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background-color:var(--color-accent);transition:width var(--transition-smooth);}.nav-menu a:hover::after{width:100%;}.skill-card{transition:border-color var(--transition-smooth),transform var(--transition-smooth),box-shadow var(--transition-smooth);}.skill-card:hover{border-color:var(--color-accent);transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.3);}.project-card{transition:border-color var(--transition-smooth),box-shadow var(--transition-smooth);}.project-card:hover{border-color:var(--color-accent);box-shadow:0 4px 16px rgba(0,0,0,0.2);}.project-stack li{transition:background-color var(--transition-fast),transform var(--transition-fast);}.project-stack li:hover{background-color:var(--color-accent);color:var(--color-bg);transform:translateY(-2px);}.about-content{transition:border-color var(--transition-smooth);}.about-content:hover{border-left-color:var(--color-accent-hover);}.webform-submission-form .form-item{margin-bottom:var(--space-md);}.webform-submission-form .form-item--error input,.webform-submission-form .form-item--error select,.webform-submission-form .form-item--error textarea{border-color:var(--color-error);}.webform-submission-form label{display:block;margin-bottom:var(--space-xs);font-size:var(--text-sm);font-weight:500;color:var(--color-text);}.webform-submission-form label::before{content:"// ";color:var(--color-comment);}.webform-submission-form .form-required::after{content:" *";color:var(--color-accent);}.webform-submission-form input[type="text"],.webform-submission-form input[type="email"],.webform-submission-form input[type="tel"],.webform-submission-form input[type="url"],.webform-submission-form input[type="password"],.webform-submission-form select,.webform-submission-form textarea{width:100%;padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);}.webform-submission-form input::placeholder,.webform-submission-form textarea::placeholder{color:var(--color-comment);}.webform-submission-form input:hover,.webform-submission-form select:hover,.webform-submission-form textarea:hover{border-color:var(--color-border-highlight);}.webform-submission-form input:focus,.webform-submission-form select:focus,.webform-submission-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim);}.webform-submission-form select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2322d3ee' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-sm) center;padding-right:var(--space-xl);}.webform-submission-form textarea{resize:vertical;min-height:150px;}.webform-submission-form .form-actions{margin-top:var(--space-lg);}.webform-submission-form .webform-button--submit,.webform-submission-form button[type="submit"]{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background-color:var(--color-accent);color:var(--color-bg);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-accent);cursor:pointer;transition:background-color var(--transition-smooth),transform var(--transition-fast),box-shadow var(--transition-smooth);}.webform-submission-form .webform-button--submit::before,.webform-submission-form button[type="submit"]::before{content:">";}.webform-submission-form .webform-button--submit:hover,.webform-submission-form button[type="submit"]:hover{background-color:var(--color-accent-hover);box-shadow:0 0 20px rgba(34,211,238,0.3);}.webform-submission-form .webform-button--submit:active,.webform-submission-form button[type="submit"]:active{transform:translateY(1px);}.webform-submission-form .webform-button--submit:focus,.webform-submission-form button[type="submit"]:focus{outline:3px solid var(--color-focus);outline-offset:2px;}.webform-submission-form .form-item--error-message{margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-mono);}.webform-submission-form .form-item--error-message::before{content:"// ";}.webform-confirmation{background-color:var(--color-bg-elevated);border:1px solid var(--color-success);padding:var(--space-xl);text-align:center;}.webform-confirmation__message{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-md);}.webform-confirmation__back a{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background-color:transparent;color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-accent);text-decoration:none;transition:background-color var(--transition-smooth);}.webform-confirmation__back a:hover{background-color:var(--color-accent);color:var(--color-bg);}@media print{.site-header,.nav-toggle,.skip-link,.cta-button{display:none;}body{font-size:12pt;line-height:1.5;color:#000;background:#fff;}.section{padding-block:1rem;page-break-inside:avoid;}.hero::before{display:none;}a[href]::after{content:" (" attr(href) ")";font-size:0.8em;}h1::before,h2::before,h3::before,.site-logo::before,.site-logo::after,.nav-menu a::before,.contact-link::before,.site-footer p::before{content:none;}}
