:root{--color-background: #0a0a0a;--color-surface: #111111;--color-surface-elevated: #171717;--color-text-primary: #ededed;--color-text-secondary: #a1a1a1;--color-text-muted: #666666;--color-accent: #FD4F01;--color-accent-soft: rgba(253, 79, 1, .1);--color-accent-glow: rgba(253, 79, 1, .15);--color-link-hover: #ffffff;--color-border: #1f1f1f;--color-border-hover: #2a2a2a;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", monospace;--font-size-hero: clamp(2.5rem, 8vw, 4rem);--font-size-title: clamp(1.25rem, 3vw, 1.5rem);--font-size-heading: clamp(1rem, 2vw, 1.125rem);--font-size-body: 1rem;--font-size-small: .875rem;--font-size-xs: .75rem;--space-section: 3rem;--space-element: 1.25rem;--space-tight: .5rem;--max-width: 680px;--sidebar-width: 180px;--container-padding: clamp(1.5rem, 5vw, 2rem);--ease-out: cubic-bezier(.33, 1, .68, 1);--duration-fast: .15s;--duration-normal: .2s;--grid-color: rgba(255, 255, 255, .03)}[data-theme=light]{--color-background: #ffffff;--color-surface: #fafafa;--color-surface-elevated: #f5f5f5;--color-text-primary: #0a0a0a;--color-text-secondary: #525252;--color-text-muted: #737373;--color-accent: #FD4F01;--color-accent-soft: rgba(253, 79, 1, .08);--color-link-hover: #000000;--color-border: #e5e5e5;--color-border-hover: #d4d4d4;--grid-color: rgba(0, 0, 0, .03)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,svg,video{max-width:100%;height:auto}body{font-family:var(--font-body);font-size:var(--font-size-body);font-weight:400;line-height:1.7;color:var(--color-text-primary);background-color:var(--color-background);background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:18px 18px;background-position:center top;background-attachment:fixed;min-height:100vh;overflow-x:hidden}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:var(--sidebar-width);height:100vh;display:flex;flex-direction:column;justify-content:center;padding:2rem 1.5rem;z-index:100}.nav-links{display:flex;flex-direction:column;gap:.25rem;list-style:none}.nav-item{position:relative}.nav-link{display:block;padding:.375rem 0;color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-small);font-weight:400;transition:color var(--duration-fast) var(--ease-out)}.nav-link:hover,.nav-link.active{color:var(--color-text-primary)}.nav-dot{display:none}.sidebar-footer{margin-top:2rem;padding-top:1rem;display:flex;flex-direction:row;gap:.5rem}.theme-toggle,.terminal-toggle{display:flex;align-items:center;justify-content:center;padding:.5rem;width:auto;border:none;background:transparent;color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--font-size-small);font-weight:400;cursor:pointer;transition:color var(--duration-fast) var(--ease-out);border-radius:4px}.theme-toggle:hover,.terminal-toggle:hover{color:var(--color-text-primary);background:var(--color-surface)}.theme-toggle svg,.terminal-toggle svg{width:14px;height:14px;opacity:.7}.icon-sun{display:none}.icon-moon,[data-theme=light] .icon-sun{display:block}[data-theme=light] .icon-moon,.mobile-header,.mobile-nav,.mobile-nav-overlay{display:none}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;overflow-x:hidden}.container{max-width:var(--max-width);margin:0 auto;padding:var(--container-padding);padding-top:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;gap:var(--space-section)}.page-content{animation:fadeIn .4s var(--ease-out) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.section{opacity:0;animation:fadeIn .4s var(--ease-out) forwards}.profile{animation-delay:.05s}.section:nth-of-type(1){animation-delay:.1s}.section:nth-of-type(2){animation-delay:.15s}.section:nth-of-type(3){animation-delay:.2s}.section:nth-of-type(4){animation-delay:.25s}.profile{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem;opacity:0;animation:fadeIn .4s var(--ease-out) forwards}.name{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:clamp(1.75rem,5vw,2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1;color:var(--color-text-primary)}.name-accent{color:var(--color-text-muted)}.title{font-size:clamp(.9rem,2.5vw,1.0625rem);font-weight:400;color:var(--color-text-secondary);line-height:1.4}.location{font-size:var(--font-size-small);color:var(--color-text-muted);font-weight:500}.social-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem}.social-links a{font-size:var(--font-size-small);color:var(--color-text-muted);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.social-links a:hover{color:var(--color-text-primary);text-decoration:underline}.section{display:flex;flex-direction:column;gap:var(--space-element)}.section-title{font-size:22px;font-weight:800;color:var(--color-text-primary);margin-bottom:.5rem}.section-title:before{display:none}.summary-text{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:1.7;max-width:60ch}.summary-text strong{color:var(--color-text-primary);font-weight:500}.experience-item{display:flex;flex-direction:column;gap:.5rem;padding-left:0;border-left:none}.experience-item:hover{border-color:transparent}.experience-title{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary)}.experience-list{padding-left:1.25rem;display:flex;flex-direction:column;gap:.25rem}.experience-list li{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:1.6}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-border);margin-top:1rem}.bento-card{background:var(--color-background);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.bento-card:hover{background:var(--color-surface)}.bento-card:before{display:none}.bento-tag{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:500}.bento-title{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary);line-height:1.3}.bento-role{font-size:var(--font-size-small);color:var(--color-text-secondary)}.bento-description{font-size:var(--font-size-small);color:var(--color-text-muted);line-height:1.5;flex-grow:1}.bento-date{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:auto}@media(max-width:768px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.bento-grid{grid-template-columns:1fr}}.projects-grid,.problem-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--color-border)}@media(max-width:700px){.projects-grid,.problem-grid{grid-template-columns:1fr}}.project-card,.problem-card,.module-card{padding:1.5rem;background:var(--color-background);display:flex;flex-direction:column;position:relative}.project-card:hover,.problem-card:hover,.module-card:hover{background:var(--color-surface)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.project-icon{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.project-status{font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.project-status.active{color:var(--color-accent);text-transform:uppercase}.project-status.building{color:var(--color-text-muted)}.project-title{font-size:var(--font-size-heading);font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.project-description{font-size:var(--font-size-small);color:var(--color-text-secondary);line-height:1.6;margin-bottom:1rem;flex-grow:1}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{font-size:var(--font-size-xs);color:var(--color-text-muted)}.tag:before{content:"#"}.project-link{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-small);color:var(--color-text-secondary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.project-link:hover{color:var(--color-text-primary)}.project-link.disabled{color:var(--color-text-muted);cursor:default}.past-projects{display:flex;flex-direction:column;gap:.5rem}.past-project-item{padding:1rem 0;border-bottom:1px solid var(--color-border)}.past-project-item:last-child{border-bottom:none}.past-project-item:hover{background:transparent}.past-project-item h3{font-size:var(--font-size-body);font-weight:500;color:var(--color-text-primary);margin-bottom:.25rem}.past-project-item p{font-size:var(--font-size-small);color:var(--color-text-secondary)}.form-input{width:100%;max-width:400px;padding:.75rem 0;font-family:var(--font-body);font-size:var(--font-size-body);color:var(--color-text-primary);background:transparent;border:none;border-bottom:1px solid var(--color-border);transition:border-color var(--duration-fast) var(--ease-out)}.form-input:focus{outline:none;border-color:var(--color-text-primary)}.form-input::placeholder{color:var(--color-text-muted)}.submit-button,.cta-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-body);font-size:var(--font-size-body);font-weight:500;color:var(--color-background);background:var(--color-text-primary);border:none;cursor:pointer;text-decoration:none;transition:opacity var(--duration-fast) var(--ease-out)}.submit-button:hover,.cta-button:hover{opacity:.8}.course-badge{display:inline-block;font-size:var(--font-size-small);color:var(--color-text-muted);margin-bottom:.5rem}.course-tagline{font-size:var(--font-size-title);font-weight:400;color:var(--color-text-secondary);margin:.25rem 0 .75rem}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1rem 0}.meta-item{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-small);color:var(--color-text-secondary)}.meta-item svg{color:var(--color-text-muted);width:1rem;height:1rem}.module-card{flex-direction:row;gap:1rem;border-bottom:1px solid var(--color-border);background:transparent;padding:1.25rem 0}.module-card:last-child{border-bottom:none}.module-number{font-size:var(--font-size-small);font-weight:600;color:var(--color-text-muted);line-height:1;min-width:24px}.module-content h3{font-size:var(--font-size-body);font-weight:500;color:var(--color-text-primary);margin-bottom:.25rem}.module-content p{font-size:var(--font-size-small);color:var(--color-text-secondary);margin-bottom:.5rem}.module-tag{font-size:var(--font-size-xs);color:var(--color-text-muted)}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}@media(max-width:768px){.details-grid{grid-template-columns:1fr;gap:1.5rem}}.detail-item h3{font-size:var(--font-size-body);font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.detail-item p{font-size:var(--font-size-small);color:var(--color-text-secondary)}.course-cta{text-align:center;padding:2rem 0;border-top:1px solid var(--color-border);margin-top:1rem}.newsletter-header{margin-bottom:1rem}.newsletter-description{color:var(--color-text-secondary);margin-top:.5rem;max-width:500px}.newsletter-form{margin-top:1.5rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:var(--font-size-small);font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.form-note{margin-top:1rem;font-size:var(--font-size-small);color:var(--color-text-muted)}.newsletter-benefits{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.benefits-title{font-size:var(--font-size-heading);font-weight:600;margin-bottom:1rem}.benefits-list{display:flex;flex-direction:column;gap:.5rem}.benefit-item{display:flex;align-items:flex-start;gap:.5rem;color:var(--color-text-secondary);font-size:var(--font-size-small)}.benefit-icon{color:var(--color-text-muted);flex-shrink:0;margin-top:.2rem}.problem-number{display:block;font-size:var(--font-size-small);font-weight:600;color:var(--color-text-muted);margin-bottom:.5rem}.problem-card h3{font-size:var(--font-size-body);font-weight:500;color:var(--color-text-primary);margin-bottom:.25rem}.problem-card p{font-size:var(--font-size-small);color:var(--color-text-secondary);font-style:italic}.modules-list{display:flex;flex-direction:column;gap:0}@media(max-width:768px){:root{--sidebar-width: 0px;--mobile-header-height: 52px}.layout{flex-direction:column}.desktop-nav{display:none}.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:var(--mobile-header-height);padding:0 1.25rem;background:var(--color-background);border-bottom:1px solid var(--color-border);z-index:200}.mobile-brand{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary);text-decoration:none;letter-spacing:-.01em}.mobile-actions{display:flex;align-items:center;gap:.25rem}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;padding:.5rem;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);border-radius:4px}.mobile-menu-toggle:hover{color:var(--color-text-primary)}.mobile-menu-toggle svg{width:18px;height:18px}.mobile-menu-toggle .icon-close,.mobile-menu-toggle.active .icon-hamburger{display:none}.mobile-menu-toggle.active .icon-close{display:block}.mobile-nav{display:block;position:fixed;top:var(--mobile-header-height);left:0;right:0;background:var(--color-background);border-bottom:1px solid var(--color-border);z-index:199;transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.mobile-nav.open{transform:translateY(0);opacity:1;pointer-events:auto}.mobile-nav.closing{transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1)}.mobile-nav-links{list-style:none;display:flex;flex-direction:column;padding:.5rem 0}.mobile-nav-item{border-bottom:1px solid var(--color-border)}.mobile-nav-item:last-child{border-bottom:none}.mobile-nav-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-body);font-weight:400;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.mobile-nav-link:hover{color:var(--color-text-primary);background:var(--color-surface)}.mobile-nav-link.active{color:var(--color-text-primary);font-weight:500}.mobile-nav-overlay{display:block;position:fixed;inset:0;top:var(--mobile-header-height);background:#00000080;z-index:198;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)}.mobile-nav-overlay.open{opacity:1;pointer-events:auto}.main-content{margin-left:0;margin-top:var(--mobile-header-height);margin-bottom:0}.container{padding:1.5rem;gap:2.5rem}.mobile-header .theme-toggle,.mobile-header .terminal-toggle{padding:.5rem}.mobile-header .theme-toggle svg,.mobile-header .terminal-toggle svg{width:14px;height:14px;opacity:.7}}@media(max-width:480px){.bento-grid,.projects-grid{gap:0}.form-input{max-width:100%}}@media(max-width:360px){.container{padding:1rem;gap:2rem}.mobile-header{padding:0 .75rem}.mobile-nav-link{padding:.75rem}.bento-card,.project-card,.problem-card,.module-card{padding:1rem}}.terminal-overlay{position:fixed;inset:0;background:#000000f2;z-index:9999;display:none;place-items:center;padding:2rem;opacity:0;transition:opacity .2s var(--ease-out)}.terminal-overlay.active{display:grid;opacity:1}.terminal-container{width:100%;max-width:800px;height:80vh;max-height:min(600px,80vh);background:var(--color-background);border:1px solid var(--color-border);overflow:hidden;display:flex;flex-direction:column}.terminal-overlay.active .terminal-container{transform:none}.terminal-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.terminal-buttons{display:none}.terminal-title{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.terminal-body{flex:1;padding:1rem;overflow-y:auto;font-family:var(--font-mono);font-size:var(--font-size-small);line-height:1.6;display:flex;flex-direction:column}.terminal-body::-webkit-scrollbar{width:4px}.terminal-body::-webkit-scrollbar-track{background:transparent}.terminal-body::-webkit-scrollbar-thumb{background:var(--color-border)}.terminal-output{flex:1;white-space:pre-wrap;word-break:break-word}.terminal-output .line{margin-bottom:.25rem}.terminal-output .prompt{color:var(--color-text-muted)}.terminal-output .command{color:var(--color-text-primary)}.terminal-output .output{color:var(--color-text-secondary)}.terminal-output .error{color:#ef4444}.terminal-output .success{color:#22c55e}.terminal-output .info{color:#3b82f6}.terminal-output .warning{color:var(--color-text-secondary)}.terminal-output .ascii-art{color:var(--color-text-muted);line-height:1.15}.terminal-output .highlight{color:var(--color-text-primary);font-weight:500}.terminal-output .dim{color:var(--color-text-muted)}.terminal-input-line{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.terminal-prompt{color:var(--color-text-muted)}#terminalInput{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-small)}#terminalInput::placeholder{color:var(--color-text-muted)}.terminal-output a{color:var(--color-text-secondary);text-decoration:underline}.terminal-output a:hover{color:var(--color-text-primary)}@media(max-width:768px){.terminal-overlay{padding:0}.terminal-container{max-width:100%;height:100vh;max-height:100vh}.terminal-body{font-size:var(--font-size-xs)}.terminal-output .ascii-art{font-size:.55rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media print{.sidebar{display:none}.main-content{margin-left:0}.section,.profile{animation:none;opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}a:focus-visible,button:focus-visible,input:focus-visible{outline:1px solid var(--color-text-primary);outline-offset:2px}::selection{background:var(--color-accent-soft);color:var(--color-text-primary)}
