:root{--color-background: #222222;--color-surface: #2a2a2a;--color-text-primary: #eeeeee;--color-text-secondary: #aaaaaa;--color-text-accent: #757575;--color-link-hover: #ffffff;--color-border: #333333;--font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-name: clamp(2.25rem, 6vw, 3rem);--font-size-title: clamp(1.3rem, 3vw, 1.7rem);--font-size-section-title: clamp(1.125rem, 2.25vw, 1.3rem);--font-size-body: clamp(1rem, 1.8vw, 1.125rem);--font-size-small: clamp(.9375rem, 1.5vw, 1rem);--font-size-nav: .875rem;--spacing-section: clamp(1.5rem, 4vw, 2rem);--spacing-item: .625rem;--spacing-inline: .25rem;--max-width: 900px;--nav-width: 180px;--padding-container: clamp(1.5rem, 5vw, 2.5rem);--transition-fast: .15s ease-out;--transition-normal: .25s ease-out;--transition-slow: .35s ease-out;--transition-page: .3s ease}[data-theme=light]{--color-background: #f5f5f5;--color-surface: #ffffff;--color-text-primary: #222222;--color-text-secondary: #555555;--color-text-accent: #888888;--color-link-hover: #000000;--color-border: #e0e0e0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-body);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh;transition:background-color var(--transition-normal),color var(--transition-normal)}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:var(--nav-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:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-nav);font-weight:500;border-radius:8px;transition:color var(--transition-normal) ease-out;position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--color-text-primary);opacity:0;transition:opacity var(--transition-fast);border-radius:8px}.nav-link:hover{color:var(--color-text-primary)}.nav-link:hover:before{opacity:.05}.nav-dot{width:6px;height:6px;border-radius:50%;border:1.5px solid var(--color-text-accent);background-color:transparent;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.nav-link:hover .nav-dot{border-color:var(--color-text-primary);background-color:var(--color-text-primary)}.nav-link.active{color:var(--color-text-primary)}.nav-link.active .nav-dot{background-color:var(--color-text-primary);border-color:var(--color-text-primary);transform:scale(1.2)}.sidebar-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border)}.theme-toggle{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;width:100%;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-nav);font-family:var(--font-family);font-weight:500;cursor:pointer;border-radius:8px;transition:all var(--transition-fast)}.theme-toggle:hover{color:var(--color-text-primary)}.theme-toggle svg{width:16px;height:16px;transition:transform var(--transition-normal)}[data-theme=light] .theme-toggle svg{transform:rotate(180deg)}.icon-sun{display:none}.icon-moon,[data-theme=light] .icon-sun{display:block}[data-theme=light] .icon-moon{display:none}.main-content{flex:1;margin-left:var(--nav-width);min-height:100vh}.container{max-width:var(--max-width);margin:0 auto;padding:var(--padding-container);display:flex;flex-direction:column;gap:var(--spacing-section)}.page-content{animation:fadeInUp .5s ease forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section{opacity:0;animation:fadeInUp .6s ease forwards}.profile{animation-delay:.1s}.section:nth-of-type(1){animation-delay:.15s}.section:nth-of-type(2){animation-delay:.2s}.section:nth-of-type(3){animation-delay:.25s}.section:nth-of-type(4){animation-delay:.3s}.section:nth-of-type(5){animation-delay:.35s}.profile{display:flex;flex-direction:column;gap:var(--spacing-inline);opacity:0;animation:fadeInUp .6s ease forwards}.name{font-size:var(--font-size-name);font-weight:700;letter-spacing:-.02em;line-height:1.2}.name-accent{color:var(--color-text-accent)}.title{font-size:var(--font-size-title);font-weight:700;letter-spacing:.01em}.location{font-size:var(--font-size-small);font-weight:400;letter-spacing:.01em}.social-links{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;margin-top:.5rem}.social-links a{font-size:var(--font-size-small);color:var(--color-text-primary);text-decoration:none;position:relative;transition:color var(--transition-fast)}.social-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background-color:var(--color-text-primary);transition:width var(--transition-normal)}.social-links a:hover:after{width:100%}.social-links a:hover{color:var(--color-link-hover)}.section{display:flex;flex-direction:column;gap:var(--spacing-item)}.section-title{font-size:var(--font-size-section-title);font-weight:700;letter-spacing:.01em;color:var(--color-text-primary)}.summary-text{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:1.7}.experience-item{display:flex;flex-direction:column;gap:.25rem}.experience-title{font-size:var(--font-size-body);font-weight:700;color:var(--color-text-primary);letter-spacing:.01em}.experience-list{padding-left:1rem;display:flex;flex-direction:column;gap:.125rem}.experience-list li{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:1.6}.newsletter-header{margin-bottom:1.5rem}.newsletter-description{color:var(--color-text-secondary);margin-top:.5rem;max-width:600px}.newsletter-form{margin-top:2rem}.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-input{width:100%;max-width:400px;padding:.875rem 1rem;font-size:var(--font-size-body);font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;transition:all var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-text-primary);box-shadow:0 0 0 3px #eeeeee1a}[data-theme=light] .form-input:focus{box-shadow:0 0 0 3px #2222221a}.form-input::placeholder{color:var(--color-text-accent)}.submit-button{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:var(--font-size-body);font-family:var(--font-family);font-weight:600;color:var(--color-background);background-color:var(--color-text-primary);border:none;border-radius:8px;cursor:pointer;transition:all var(--transition-fast)}.submit-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.submit-button:active{transform:translateY(0)}.submit-button svg{width:18px;height:18px;transition:transform var(--transition-fast)}.submit-button:hover svg{transform:translate(4px)}.form-note{margin-top:1rem;font-size:var(--font-size-small);color:var(--color-text-accent)}.newsletter-benefits{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--color-border)}.benefits-title{font-size:var(--font-size-section-title);font-weight:700;margin-bottom:1rem}.benefits-list{display:flex;flex-direction:column;gap:.75rem}.benefit-item{display:flex;align-items:flex-start;gap:.75rem;color:var(--color-text-secondary)}.benefit-icon{color:var(--color-text-primary);flex-shrink:0;margin-top:.2rem}.course-hero{text-align:left}.course-badge{display:inline-block;padding:.375rem .75rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:100px;font-size:var(--font-size-small);font-weight:500;color:var(--color-text-secondary);margin-bottom:1rem}.course-tagline{font-size:var(--font-size-title);font-weight:500;color:var(--color-text-secondary);margin:.5rem 0 1rem}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1.5rem 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-accent)}.cta-button{display:inline-flex;align-items:center;gap:.5rem;width:fit-content;padding:.875rem 1.5rem;background-color:var(--color-text-primary);color:var(--color-background);text-decoration:none;font-size:var(--font-size-body);font-weight:600;border-radius:8px;transition:all var(--transition-fast);margin-top:.5rem}.cta-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.cta-button svg{transition:transform var(--transition-fast)}.cta-button:hover svg{transform:translate(4px)}.problem-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:600px){.problem-grid{grid-template-columns:1fr}}.problem-card{padding:1.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;transition:all var(--transition-normal)}.problem-card:hover{border-color:var(--color-text-accent);transform:translateY(-2px)}.problem-number{display:block;font-size:var(--font-size-small);font-weight:700;color:var(--color-text-accent);margin-bottom:.5rem}.problem-card h3{font-size:var(--font-size-body);font-weight:600;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:1rem}.module-card{display:flex;gap:1rem;padding:1.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;transition:all var(--transition-normal)}.module-card:hover{border-color:var(--color-text-accent);transform:translate(4px)}.module-number{font-size:var(--font-size-title);font-weight:700;color:var(--color-text-accent);line-height:1}.module-content h3{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.module-content p{font-size:var(--font-size-small);color:var(--color-text-secondary);margin-bottom:.75rem}.module-tag{display:inline-block;padding:.25rem .5rem;background-color:var(--color-background);border-radius:4px;font-size:.75rem;font-weight:500;color:var(--color-text-accent)}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media(max-width:768px){.details-grid{grid-template-columns:1fr}}.detail-item h3{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary);margin-bottom:.75rem}.detail-item p{font-size:var(--font-size-small);color:var(--color-text-secondary);margin-bottom:.25rem}.course-cta{text-align:center;padding:2rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px}.course-cta .section-title{margin-bottom:.75rem}.course-cta .summary-text{max-width:600px;margin:0 auto 1.5rem}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:700px){.projects-grid{grid-template-columns:1fr}}.project-card{padding:1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;transition:all var(--transition-normal);display:flex;flex-direction:column}.project-card:hover{border-color:var(--color-text-accent);transform:translateY(-4px);box-shadow:0 8px 30px #0000001f}[data-theme=light] .project-card:hover{box-shadow:0 8px 30px #00000014}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:var(--color-background);border-radius:12px;color:var(--color-text-primary)}.project-status{padding:.25rem .625rem;border-radius:100px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.project-status.active{background-color:#4caf5026;color:#4caf50}.project-status.building{background-color:#ffc10726;color:#ffc107}.project-title{font-size:var(--font-size-section-title);font-weight:700;color:var(--color-text-primary);margin-bottom:.75rem}.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{padding:.25rem .5rem;background-color:var(--color-background);border-radius:4px;font-size:.75rem;font-weight:500;color:var(--color-text-accent)}.project-link{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--font-size-small);font-weight:500;color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast)}.project-link:hover{color:var(--color-link-hover)}.project-link svg{flex-shrink:0}.project-link.disabled{color:var(--color-text-accent);cursor:default}.past-projects{display:flex;flex-direction:column;gap:1rem}.past-project-item{padding:1.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;transition:all var(--transition-normal)}.past-project-item:hover{border-color:var(--color-text-accent)}.past-project-item h3{font-size:var(--font-size-body);font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.past-project-item p{font-size:var(--font-size-small);color:var(--color-text-secondary);line-height:1.6}.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.bento-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:all var(--transition-normal)}.bento-card:hover{border-color:var(--color-text-accent);transform:translateY(-2px)}.bento-tag{display:inline-block;width:fit-content;padding:.25rem .5rem;background:var(--color-background);border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-accent)}.bento-title{font-size:var(--font-size-body);font-weight:700;color:var(--color-text-primary);line-height:1.2}.bento-role{font-size:var(--font-size-small);font-weight:500;color:var(--color-text-secondary)}.bento-description{font-size:var(--font-size-small);color:var(--color-text-secondary);line-height:1.5;flex-grow:1}.bento-date{font-size:.75rem;color:var(--color-text-accent);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}}@media(max-width:768px){:root{--nav-width: 100%}.layout{flex-direction:column}.sidebar{position:fixed;top:auto;bottom:0;left:0;width:100%;height:auto;flex-direction:row;justify-content:center;align-items:center;padding:.75rem 1rem;background-color:var(--color-background);border-top:1px solid var(--color-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-links{flex-direction:row;gap:.5rem}.nav-link{padding:.5rem .75rem;font-size:.8125rem}.nav-link:hover{transform:translateY(-2px)}.nav-dot{width:5px;height:5px}.sidebar-footer{margin-top:0;margin-left:.5rem;padding-top:0;padding-left:.5rem;border-top:none;border-left:1px solid var(--color-border)}.theme-toggle{padding:.5rem}.theme-toggle span{display:none}.main-content{margin-left:0;margin-bottom:70px}.container{padding:1.25rem;gap:1.25rem}.social-links{gap:.75rem}}@media(max-width:480px){.sidebar{padding:.5rem .75rem}.nav-links{gap:.25rem}.nav-link{padding:.5rem .625rem;font-size:.75rem}.nav-dot{display:none}.sidebar-footer{margin-left:.25rem;padding-left:.25rem}}@media(max-width:360px){.sidebar{padding:.5rem}.nav-links{gap:.125rem}.nav-link{padding:.5rem;font-size:.6875rem}.sidebar-footer{margin-left:.125rem;padding-left:.125rem}.theme-toggle{padding:.375rem}}@media print{.sidebar{display:none}.main-content{margin-left:0}:root{--color-background: #ffffff;--color-text-primary: #000000;--color-text-secondary: #333333;--color-text-accent: #666666}.section,.profile{animation:none;opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}::selection{background-color:var(--color-text-accent);color:var(--color-text-primary)}.terminal-toggle{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;width:100%;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-nav);font-family:var(--font-family);font-weight:500;cursor:pointer;border-radius:8px;transition:all var(--transition-fast);margin-top:.5rem}.terminal-toggle:hover{color:var(--color-text-primary)}.terminal-toggle svg{width:16px;height:16px}.terminal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000e6;z-index:9999;display:none;justify-content:center;align-items:center;padding:2rem;opacity:0;transition:opacity .3s ease}.terminal-overlay.active{display:flex;opacity:1}.terminal-container{width:100%;max-width:900px;height:80vh;max-height:600px;background-color:var(--color-background);border-radius:12px;overflow:hidden;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px var(--color-border);display:flex;flex-direction:column;transform:scale(.95) translateY(20px);transition:transform .3s ease}.terminal-overlay.active .terminal-container{transform:scale(1) translateY(0)}.terminal-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.terminal-buttons{display:flex;gap:.5rem}.terminal-btn{width:12px;height:12px;border-radius:50%;cursor:pointer;transition:opacity .2s}.terminal-btn:hover{opacity:.8}.terminal-btn.close{background-color:#ff5f56}.terminal-btn.minimize{background-color:#ffbd2e}.terminal-btn.maximize{background-color:#27c93f}.terminal-title{font-family:IBM Plex Mono,monospace;font-size:.75rem;color:var(--color-text-secondary);flex:1;text-align:center;margin-right:3rem}.terminal-body{flex:1;padding:1rem;overflow-y:auto;font-family:IBM Plex Mono,monospace;font-size:.875rem;line-height:1.6;display:flex;flex-direction:column}.terminal-body::-webkit-scrollbar{width:8px}.terminal-body::-webkit-scrollbar-track{background:var(--color-background)}.terminal-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.terminal-body::-webkit-scrollbar-thumb:hover{background:var(--color-text-accent)}.terminal-output{flex:1;white-space:pre-wrap;word-break:break-word}.terminal-output .line{margin-bottom:.25rem}.terminal-output .prompt{color:#39d353}.terminal-output .command{color:var(--color-text-primary)}.terminal-output .output{color:var(--color-text-secondary)}.terminal-output .error{color:#f85149}.terminal-output .success{color:#39d353}.terminal-output .info{color:#58a6ff}.terminal-output .warning{color:#d29922}.terminal-output .ascii-art{color:#39d353;line-height:1.15;letter-spacing:.05em;font-weight:500}.terminal-output .highlight{color:var(--color-text-primary);font-weight:500}.terminal-output .dim{color:var(--color-text-accent)}.terminal-input-line{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;position:relative}.terminal-prompt{color:#39d353;font-weight:500;white-space:nowrap}#terminalInput{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:IBM Plex Mono,monospace;font-size:.875rem;caret-color:#39d353;padding:0}#terminalInput::placeholder{color:var(--color-text-accent)}.terminal-cursor{display:inline-block;width:8px;height:1.2em;background-color:#39d353;animation:blink 1s step-end infinite;position:absolute;right:0;pointer-events:none;display:none}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.terminal-output a{color:#58a6ff;text-decoration:none;transition:color .2s}.terminal-output a:hover{color:#79c0ff;text-decoration:underline}@media(max-width:768px){.terminal-toggle{padding:.5rem;margin-top:0;margin-left:.5rem;width:auto}.terminal-toggle span{display:none}.terminal-overlay{padding:0}.terminal-container{max-width:100%;height:100vh;max-height:100vh;border-radius:0}.terminal-body{font-size:.75rem;padding:.75rem}.terminal-output .ascii-art{font-size:.5rem;line-height:1.1}.terminal-prompt{font-size:.75rem}#terminalInput{font-size:.875rem}.terminal-title{display:none}}@media(max-width:480px){.terminal-body{font-size:.6875rem;padding:.5rem}.terminal-output .ascii-art{font-size:.4rem;letter-spacing:-.5px}.terminal-header{padding:.5rem .75rem}.terminal-btn{width:10px;height:10px}}@media(max-width:360px){.terminal-output .ascii-art{display:none}}
