*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--text:#e0e0e0;--text-muted:#888;--green:#4ec970;--red:#e06c75;--cyan:#56b6c2;--title-bar:#1a1a1a;--chip-border:#444;--chip-hover:#222}html,body{background:var(--bg);height:100%;color:var(--text);font-family:JetBrains Mono,monospace;font-size:14px;overflow-x:hidden}.terminal-window{background:var(--bg);border:1px solid #333;flex-direction:column;max-width:900px;height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (min-width:641px){.terminal-window{border-radius:8px;height:calc(100vh - 48px);margin:24px auto}}.title-bar{background:var(--title-bar);-webkit-user-select:none;user-select:none;border-bottom:1px solid #333;flex-shrink:0;align-items:center;gap:8px;padding:10px 14px;display:flex}@media (min-width:641px){.title-bar{border-radius:8px 8px 0 0}}.title-dots{gap:6px;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.title-text{color:var(--text-muted);margin-left:8px;font-size:13px}.terminal-output{scrollbar-width:thin;scrollbar-color:#333 transparent;flex:1;padding:16px;overflow-y:auto}.output-line{white-space:pre-wrap;word-wrap:break-word;min-height:1.6em;line-height:1.6}.input-line{border-top:1px solid #222;flex-shrink:0;align-items:center;padding:8px 16px;display:flex}.prompt{color:var(--green);-webkit-user-select:none;user-select:none;margin-right:4px}.input-text{min-width:0;caret-color:var(--text);color:var(--text);overflow-wrap:break-word;word-break:break-all;outline:none;flex:1}.input-echo{color:var(--text)}.chips{border-top:1px solid #222;flex-wrap:wrap;flex-shrink:0;gap:8px;padding:10px 16px;display:flex}.chip{color:var(--text-muted);border:1px solid var(--chip-border);cursor:pointer;background:0 0;border-radius:14px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:12px;transition:background .15s,border-color .15s,color .15s}.chip:hover{background:var(--chip-hover);border-color:var(--text-muted);color:var(--text)}.chip:active{background:#333}@media (max-width:640px){.terminal-window{height:100vh;border:none;border-radius:0;height:100dvh}.title-bar{border-radius:0}.terminal-output{padding:12px;font-size:13px}.input-text{font-size:16px}.input-line{padding:8px 12px}.chips{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.chip{flex-shrink:0;padding:6px 14px;font-size:13px}}.hidden{display:none!important}.fade-in{animation:.4s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-cyan{color:var(--cyan)}.text-muted{color:var(--text-muted)}.terminal-output a{color:var(--cyan);text-underline-offset:2px;cursor:pointer;z-index:1;text-decoration:underline;position:relative}.terminal-output a:hover{color:var(--text)}.project-entry{margin-bottom:1em}.project-entry:last-child{margin-bottom:0}.terminal-output a.detail-toggle{color:var(--text-muted);cursor:pointer;font-size:.85em;text-decoration:none}.terminal-output a.detail-toggle:hover{color:var(--cyan)}.detail-content{margin-top:.3em;padding-left:4ch}.confirm-option{color:var(--text-muted);cursor:pointer;border-radius:3px;padding:1px 6px}.confirm-option.confirm-selected{background:var(--cyan);color:var(--bg)}.confirm-option:hover{text-decoration:underline}.confetti-canvas{pointer-events:none;z-index:1000;width:100vw;height:100vh;position:fixed;top:0;left:0}.terminal-output::-webkit-scrollbar{width:6px}.terminal-output::-webkit-scrollbar-track{background:0 0}.terminal-output::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.input-text:empty:after{content:" ";border-left:2px solid var(--text);margin-left:-1px;animation:1s step-end infinite blink}.input-text:focus:empty:after{content:""}@keyframes blink{50%{border-color:#0000}}.skip-btn{color:var(--text-muted);border:1px solid var(--text-muted);cursor:pointer;z-index:10;background:0 0;border-radius:4px;padding:4px 14px;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:color .2s,border-color .2s;position:absolute;bottom:16px;right:16px}.skip-btn:hover{color:var(--text);border-color:var(--text)}::selection{background:#56b6c24d}html[data-theme=dark]{--surface:#111;--border:#1e1e1e;--accent:#0f8;--text-landing:#fff;--text-secondary:#a0a0a0}.landing-page{color:var(--text-landing);background:0 0;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.landing-page :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.landing-page [data-animate]{opacity:0;transition:opacity .48s cubic-bezier(.25,1,.5,1),transform .48s cubic-bezier(.25,1,.5,1)}.landing-page [data-animate=fade-up]{transform:translateY(20px)}.landing-page [data-animate=fade-left]{transform:translate(-20px)}.landing-page [data-animate=fade-right]{transform:translate(20px)}.landing-page [data-animate=scale-in]{transition-duration:.36s;transform:scale(.96)}.landing-page [data-animate].visible{opacity:1;transform:translateY(0)translate(0)scale(1)}@media (prefers-reduced-motion:reduce){.landing-page [data-animate]{opacity:1;transition:none;transform:none}}.section{max-width:1100px;margin:0 auto;padding:120px 24px}.section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-family:JetBrains Mono,Courier New,monospace;font-size:12px;font-weight:500}.section-title{color:var(--text-landing);margin-bottom:56px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:max(28px,min(4vw,40px));font-weight:700;line-height:1.2}.landing-page .tag{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:400;transition:border-color .15s,background .15s}.landing-page .tag:hover{border-color:var(--accent);background:#00ff880d}.nav{z-index:100;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;top:0;left:0;right:0}.nav.scrolled{-webkit-backdrop-filter:blur(12px);background:#0a0a0ad9}.nav-inner{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:20px 24px;display:flex}.nav-logo{color:var(--text-landing);letter-spacing:.02em;font-family:JetBrains Mono,Courier New,monospace;font-size:14px;font-weight:500;text-decoration:none}.nav-logo:hover{color:var(--accent)}.nav-hamburger{display:none}.nav-links{gap:32px;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;text-decoration:none;transition:color .15s cubic-bezier(.25,1,.5,1);position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .2s cubic-bezier(.25,1,.5,1);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--text-landing)}.nav-links a:hover:after{transform:scaleX(1)}.page-bloom{pointer-events:none;z-index:-1;--bloom-x:20%;--bloom-y:40%;background:radial-gradient(ellipse at var(--bloom-x) var(--bloom-y), #00ff880d 0%, transparent 55%);position:fixed;top:0;bottom:0;left:0;right:0}.hero{align-items:center;min-height:100vh;padding-top:80px;display:flex;position:relative;overflow:hidden}.hero-grain{pointer-events:none;opacity:.032;mix-blend-mode:overlay;z-index:0;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.hero-inner{z-index:1;grid-template-columns:5fr 7fr;align-items:center;gap:56px;width:100%;max-width:1100px;margin:0 auto;padding:0 24px;display:grid;position:relative}.hero-left{flex-direction:column;gap:12px;display:flex}.hero-headshot{object-fit:cover;width:120px;height:120px;box-shadow:0 0 0 2px #0a0a0a, 0 0 0 4px var(--accent);border-radius:50%;margin-bottom:12px}.hero-name{color:var(--text-landing);letter-spacing:-.02em;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:max(40px,min(5vw,64px));font-weight:700;line-height:1.1}.hero-accent-line{background:var(--accent);width:0;height:2px;animation:.6s ease-out .3s forwards accentLineGrow}@keyframes accentLineGrow{to{width:100%}}@media (prefers-reduced-motion:reduce){.hero-accent-line{width:100%;animation:none}}.hero-title{color:var(--text-muted);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;font-weight:400;line-height:1.5}.hero-bio{color:var(--text-secondary);max-width:480px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.75}.hero-ctas{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.btn-primary{color:#0a0a0a;background:var(--accent);border-radius:6px;padding:12px 24px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1);animation:2s ease-in-out infinite ctaPulse}.btn-primary:hover{opacity:.9;animation:none;transform:translateY(-2px)}.btn-primary:active{opacity:1;transform:scale(.97)}@keyframes ctaPulse{0%,to{box-shadow:0 0 #0f86}50%{box-shadow:0 0 0 10px #0f80}}@media (prefers-reduced-motion:reduce){.btn-primary{animation:none}}.btn-secondary{color:var(--text-landing);border:1px solid var(--border);background:0 0;border-radius:6px;padding:12px 24px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.btn-secondary:active{transform:scale(.97)}.cli-wrapper{border-radius:12px;position:relative}@property --border-progress{syntax:"<angle>";inherits:false;initial-value:0deg}.cli-wrapper:before{content:"";background:conic-gradient(from -90deg, var(--accent) var(--border-progress), transparent var(--border-progress));-webkit-mask-composite:xor;pointer-events:none;z-index:2;opacity:0;border-radius:13px;padding:1px;animation:1.5s cubic-bezier(.16,1,.3,1) .4s forwards borderTrace;position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes borderTrace{0%{--border-progress:0deg;opacity:1}78%{--border-progress:360deg;opacity:1}to{--border-progress:360deg;opacity:0}}@media (prefers-reduced-motion:reduce){.page-bloom{display:none}.cli-wrapper:before{opacity:0;animation:none}.hero-grain{display:none}}.cli-window,.cli-window *{font-family:JetBrains Mono,Courier New,monospace}.cli-window{background:#111;border:1px solid #1e1e1e;border-radius:12px;overflow:hidden}.cli-chrome{-webkit-user-select:none;user-select:none;background:#1a1a1a;border-bottom:1px solid #1e1e1e;align-items:center;gap:8px;padding:10px 14px;display:flex}.cli-dots{gap:6px;display:flex}.cli-title-text{color:#555;margin-left:8px;font-family:JetBrains Mono,Courier New,monospace;font-size:12px}#terminal{height:420px;overflow:hidden}.cli-window .terminal-window{border:none;border-radius:0;max-width:100%;height:100%;margin:0}.cli-window .terminal-window .title-bar{display:none}.timeline{padding-left:32px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:8px;bottom:8px;left:0}.timeline-entry{margin-bottom:48px;position:relative}.timeline-entry:last-child{margin-bottom:0}.timeline-marker{background:var(--accent);border:2px solid #0a0a0a;border-radius:50%;width:12px;height:12px;transition:transform .3s ease-out;position:absolute;top:6px;left:-38px;transform:scale(0)}.landing-page .timeline-entry.visible .timeline-marker{transform:scale(1)}.timeline-role{color:var(--text-landing);margin-bottom:4px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:18px;font-weight:700}.timeline-company{color:var(--text-secondary);margin-bottom:4px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px}.timeline-dates{color:var(--text-secondary);margin-bottom:12px;font-family:JetBrains Mono,Courier New,monospace;font-size:12px}.timeline-desc{color:var(--text-secondary);max-width:640px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.75}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:16px;padding:32px;transition:border-color .22s cubic-bezier(.25,1,.5,1),transform .22s cubic-bezier(.25,1,.5,1),box-shadow .22s cubic-bezier(.25,1,.5,1);display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 40px #00ff8817}.project-name{color:var(--text-landing);flex-wrap:wrap;align-items:center;gap:8px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;font-weight:700;display:flex}.project-badge{color:var(--accent);border:1px solid var(--accent);opacity:.8;border-radius:3px;padding:1px 6px;font-family:JetBrains Mono,Courier New,monospace;font-size:10px;font-weight:400}.project-oneliner{color:var(--text-secondary);flex:1;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;line-height:1.65}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-links{gap:16px;margin-top:4px;display:flex}.project-link{color:var(--accent);font-family:JetBrains Mono,Courier New,monospace;font-size:12px;text-decoration:none;transition:opacity .15s}.project-link:hover{opacity:.7}.project-card:last-child:nth-child(odd){grid-column:1/-1;max-width:50%}.skills-grid{flex-direction:column;gap:40px;display:flex}.skill-group{flex-direction:column;gap:12px;display:flex}.skill-category{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:500}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.education-grid{grid-template-columns:1fr 1fr;gap:48px;display:grid}.education-card{flex-direction:column;gap:8px;display:flex}.education-institution{color:var(--text-landing);margin-bottom:4px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:20px;font-weight:700}.education-degree{color:var(--text-secondary);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.4}.education-meta{color:var(--text-secondary);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px}.education-dates{color:var(--text-secondary);font-family:JetBrains Mono,Courier New,monospace;font-size:12px}.education-gpa{color:var(--accent);margin-top:4px;font-family:JetBrains Mono,Courier New,monospace;font-size:13px}.education-awards,.education-coursework{color:var(--text-secondary);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;line-height:1.6}.coursework-label{color:var(--text-landing);font-weight:700}.footer{border-top:1px solid var(--border);padding:80px 0}.footer-inner{flex-direction:column;gap:24px;max-width:1100px;margin:0 auto;padding:0 24px;display:flex}.footer-heading{color:var(--text-landing);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:28px;font-weight:700}.footer-links{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.footer-link{color:var(--text-secondary);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--accent)}.footer-social{align-items:center;gap:6px;display:flex}.footer-resume{color:var(--accent);border:1px solid var(--accent);border-radius:4px;width:-moz-fit-content;width:fit-content;padding:8px 16px;font-family:JetBrains Mono,Courier New,monospace;font-size:13px;text-decoration:none;transition:background .15s}.footer-resume:hover{background:#00ff8814}.footer-copy{color:var(--text-secondary);opacity:.5;font-family:JetBrains Mono,Courier New,monospace;font-size:12px}@media (max-width:768px){.hero-inner{grid-template-columns:1fr;gap:24px;padding-top:8px}.hero{min-height:auto;padding-top:96px;padding-bottom:56px}.hero-headshot{width:84px;height:84px}.hero-name{font-size:max(34px,min(9vw,52px))}.hero-bio{max-width:none}.hero-ctas{flex-direction:column;gap:12px}.btn-primary,.btn-secondary{text-align:center;width:100%;padding:14px 24px}.hero-right{display:none}.nav-links{gap:20px}.nav-links a{padding:12px 0;font-size:13px;display:block}.timeline:before{display:none}.timeline{padding-left:0}.timeline-marker{display:none}.timeline-entry{border-bottom:1px solid var(--border);padding-bottom:28px}.timeline-entry:last-child{border-bottom:none;padding-bottom:0}.projects-grid{grid-template-columns:1fr}.project-card:last-child:nth-child(odd){grid-column:auto;max-width:100%}.education-grid{grid-template-columns:1fr;gap:32px}.section{padding:88px 24px}.section-title{margin-bottom:44px}.footer-links{gap:16px}}@media (max-width:640px){.nav-links{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;z-index:99;background:#0a0a0af7;flex-direction:column;gap:0;padding:8px 0 16px;transition:opacity .2s cubic-bezier(.25,1,.5,1),transform .2s cubic-bezier(.25,1,.5,1);position:fixed;top:60px;left:0;right:0;transform:translateY(-6px)}.nav-links li{width:100%}.nav-links a{color:var(--text-secondary);border-bottom:none;width:100%;padding:14px 24px;font-size:15px;font-weight:500;display:block}.nav-links a:hover{color:var(--accent)}.nav-links a:after{display:none}.nav-open .nav-links{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-hamburger{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;transition:background .15s;display:flex}.nav-hamburger:hover{background:#ffffff0f}.nav-hamburger span{background:var(--text-landing);transform-origin:50%;border-radius:2px;width:100%;height:2px;transition:transform .25s cubic-bezier(.25,1,.5,1),opacity .2s,background .15s;display:block}.nav-hamburger:hover span{background:var(--text-landing)}.nav-open .nav-hamburger span:first-child{background:var(--accent);transform:translateY(7px)rotate(45deg)}.nav-open .nav-hamburger span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-open .nav-hamburger span:nth-child(3){background:var(--accent);transform:translateY(-7px)rotate(-45deg)}}@media (max-width:480px){.section{padding:64px 20px}.hero-inner,.footer-inner{padding:0 20px}.nav-inner{padding:14px 20px}.hero{padding-top:76px;padding-bottom:40px}.hero-inner{gap:20px}.hero-headshot{width:72px;height:72px}.hero-left{gap:8px}.hero-name{font-size:max(32px,min(10vw,44px))}.hero-title{font-size:14px;line-height:1.6}.hero-bio{font-size:15px;line-height:1.7}.hero-ctas{gap:10px;margin-top:4px}.project-card{gap:12px;padding:20px}.projects-grid{gap:14px}.skills-grid{gap:28px}.section-title{margin-bottom:32px}.section-label{margin-bottom:8px}.footer{padding:56px 0}.footer-links{flex-direction:column;align-items:flex-start;gap:4px}.footer-link,.footer-social{align-items:center;min-height:44px;padding:10px 0;font-size:15px;display:flex}.project-modal-overlay{align-items:flex-end;padding:0}.project-modal{border-radius:20px 20px 0 0;width:100%;max-width:100%;max-height:88vh;padding:28px 20px 40px}.modal-title{font-size:20px}}@media (max-width:360px){.hero-name{font-size:30px}.btn-primary,.btn-secondary{padding:13px 20px;font-size:13px}}.timeline-company-link{color:inherit;border-bottom:1px solid var(--accent);text-decoration:none;transition:color .15s,border-color .15s}.timeline-company-link:hover{color:var(--accent)}.project-card[data-project-id]{cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.project-card[data-project-id]:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 40px #0006}.project-card[data-project-id] .project-links a{z-index:2;position:relative}.project-modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;opacity:0;background:#000000bf;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.project-modal-overlay[hidden]{display:none}.project-modal-overlay.modal-visible{opacity:1}.project-modal{scrollbar-width:thin;scrollbar-color:#333 transparent;background:#0f0f0f;border:1px solid #222;border-radius:16px;width:100%;max-width:680px;max-height:85vh;padding:40px;transition:transform .25s;position:relative;overflow-y:auto;transform:translateY(20px)}.project-modal-overlay.modal-visible .project-modal{transform:translateY(0)}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #333;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;line-height:1;transition:border-color .15s,color .15s;display:flex;position:absolute;top:20px;right:20px}.modal-close:hover{border-color:var(--accent);color:var(--accent)}.modal-header{margin-bottom:20px}.modal-label{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:500}.modal-title{color:var(--text-landing);font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:26px;font-weight:700;line-height:1.2}.modal-tags{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.modal-body{color:var(--text-secondary);margin-bottom:28px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.75}.modal-body p+p{margin-top:12px}.modal-links{flex-wrap:wrap;gap:12px;display:flex}.modal-link{color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:8px 16px;font-family:JetBrains Mono,Courier New,monospace;font-size:13px;text-decoration:none;transition:background .15s}.modal-link:hover{background:#00ff8814}@property --input-glow{syntax:"<number>";inherits:false;initial-value:0}@property --dot-l{syntax:"<number>";inherits:false;initial-value:.38}@property --dot-c{syntax:"<number>";inherits:false;initial-value:.035}.chatbot-container{z-index:1000;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.chatbot-toggle{cursor:pointer;color:#64836c;color:color(display-p3 .418463 .511082 .42992);color:lab(51.9421% -15.1749 8.93792);background:#060806;background:color(display-p3 .0239063 .0310719 .0246619);background:lab(2.02171% -.818931 .473565);border:1px solid #1a211c;border:1px solid color(display-p3 .10892 .12957 .111284);border:1px solid lab(12.0269% -4.23514 2.48797);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;transition:border-color .18s,color .18s,background .18s;display:flex}.chatbot-toggle:hover{color:#55ff95;color:color(display-p3 .369107 1.02531 .534528);color:lab(90.6102% -84.8384 51.6199);background:#080c09;background:color(display-p3 .0351107 .0481238 .0365697);background:lab(3.11915% -1.55216 .895223);border-color:#55ff95;border-color:color(display-p3 .369107 1.02531 .534528);border-color:lab(90.6102% -84.8384 51.6199)}.chatbot-panel{transform-origin:100% 100%;background:#030504;background:color(display-p3 .0144483 .018845 .0149123);background:lab(1.22509% -.502482 .290528);border:1px solid #171c18;border:1px solid color(display-p3 .0928327 .110138 .094793);border:1px solid lab(9.68035% -3.6286 2.13093);border-radius:10px;flex-direction:column;width:354px;height:476px;display:none;overflow:hidden}.chatbot-panel.is-open{display:flex}.chatbot-header{background:#040605;background:color(display-p3 .0185132 .0246125 .0191605);background:lab(1.59254% -.696927 .40265);border-bottom:1px solid #131714;border-bottom:1px solid color(display-p3 .0770821 .0911496 .0786557);border-bottom:1px solid lab(7.35212% -2.77185 1.60416);flex-shrink:0;justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.chatbot-header-info{align-items:center;gap:10px;display:flex}.chatbot-avatar{color:#55ff95;color:color(display-p3 .369107 1.02531 .534528);color:lab(90.6102% -84.8384 51.6199);letter-spacing:.02em;background:#09120c;background:color(display-p3 .0438627 .0685484 .0470893);background:lab(4.59985% -3.55073 2.03143);border:1px solid #212c24;border:1px solid color(display-p3 .137817 .171713 .141921);border:1px solid lab(16.772% -6.67088 3.9262);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;display:flex}.chatbot-name{color:#d1dad3;color:color(display-p3 .826336 .85469 .829221);color:lab(86.2692% -4.21605 2.46787);letter-spacing:-.01em;margin:0;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;line-height:1.2}.chatbot-status{color:#55ff95;color:color(display-p3 .369107 1.02531 .534528);color:lab(90.6102% -84.8384 51.6199);opacity:.75;align-items:center;gap:5px;margin:0;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.3;display:flex}.chatbot-status:before{content:"";background:#55ff95;background:color(display-p3 .369107 1.02531 .534528);background:lab(90.6102% -84.8384 51.6199);border-radius:50%;width:5px;height:5px;display:inline-block}.chatbot-close{color:#484f49;color:color(display-p3 .286684 .310316 .289208);color:lab(32.9082% -4.22364 2.47583);cursor:pointer;background:0 0;border:none;padding:4px;font-family:JetBrains Mono,monospace;font-size:15px;line-height:1;transition:color .15s}.chatbot-close:hover{color:#9da89f;color:color(display-p3 .622732 .657451 .626356);color:lab(67.7626% -5.42563 3.17825)}.chatbot-messages{scrollbar-width:thin;scrollbar-color:oklch(22% .01 152) transparent;background:#030403;background:color(display-p3 .0110253 .0140566 .0113432);background:lab(.919016% -.346482 .200519);flex-direction:column;flex:1;gap:8px;padding:14px;display:flex;overflow-y:auto}.chatbot-message{opacity:1;transition:opacity .22s ease-out,transform .28s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(0)}@starting-style{.chatbot-message{opacity:0;transform:translateY(9px)}}@media (prefers-reduced-motion:reduce){.chatbot-message{transition:none}}.chatbot-message.user{justify-content:flex-end}.chatbot-message.bot{justify-content:flex-start}.chatbot-bubble{word-break:break-word;border-radius:6px;max-width:82%;padding:9px 13px;font-family:Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13.5px;line-height:1.58}.chatbot-message.user .chatbot-bubble{color:#c9d5cb;color:color(display-p3 .795814 .832087 .799557);color:lab(84.0029% -5.42337 3.17588);background:#08120b;background:color(display-p3 .0398068 .0702511 .0440671);background:lab(4.63505% -4.31226 2.45508);border:1px solid #202c23;border:1px solid color(display-p3 .135672 .172725 .140249);border:1px solid lab(16.7979% -7.28354 4.28975);border-bottom-right-radius:2px}.chatbot-message.bot .chatbot-bubble{color:#b2bab4;color:color(display-p3 .703489 .727069 .705885);color:lab(74.6422% -3.61362 2.11513);background:#070a08;background:color(display-p3 .0295203 .0390106 .0305257);background:lab(2.52788% -1.08448 .626704);border:1px solid #171c18;border:1px solid color(display-p3 .0928327 .110138 .094793);border:1px solid lab(9.68035% -3.6286 2.13093);border-bottom-left-radius:2px}.chatbot-typing .chatbot-bubble{align-items:center;gap:5px;padding:13px 16px;display:flex}.chatbot-typing .chatbot-bubble span{--dot-l:.38;--dot-c:.035;background:oklch(var(--dot-l) var(--dot-c) 152);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite chatbot-dot}.chatbot-typing .chatbot-bubble span:nth-child(2){animation-delay:.2s}.chatbot-typing .chatbot-bubble span:nth-child(3){animation-delay:.4s}@keyframes chatbot-dot{0%,60%,to{--dot-l:.38;--dot-c:.035;transform:translateY(0)}30%{--dot-l:.82;--dot-c:.22;transform:translateY(-5px)}}.chatbot-input-area{background:#040605;background:color(display-p3 .0185132 .0246125 .0191605);background:lab(1.59254% -.696927 .40265);border-top:1px solid #131714;border-top:1px solid color(display-p3 .0770821 .0911496 .0786557);border-top:1px solid lab(7.35212% -2.77185 1.60416);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.chatbot-input{--input-glow:0;color:#b7c1b9;color:color(display-p3 .724482 .754158 .727526);color:lab(77.0025% -4.51854 2.64553);box-shadow:0 0 0 calc(var(--input-glow) * 3px) oklch(89% .27 152 / calc(var(--input-glow) * .14));background:#020302;background:color(display-p3 .00818942 .0101562 .00839403);background:lab(.668699% -.224859 .130281);border:1px solid #171c18;border:1px solid color(display-p3 .0947483 .109142 .0963381);border:1px solid lab(9.65398% -3.0208 1.77258);border-radius:5px;outline:none;flex:1;padding:7px 11px;font-family:JetBrains Mono,monospace;font-size:13px;transition:border-color .15s,--input-glow .38s cubic-bezier(.16,1,.3,1)}.chatbot-input::placeholder{color:#393f3b;color:color(display-p3 .228905 .245132 .230612);color:lab(25.8947% -3.01512 1.76661)}.chatbot-input:focus{--input-glow:1;border-color:#55ff95;border-color:color(display-p3 .369107 1.02531 .534528);border-color:lab(90.6102% -84.8384 51.6199)}.chatbot-input:disabled{opacity:.35;cursor:not-allowed}.chatbot-send{cursor:pointer;color:#526a58;color:color(display-p3 .342143 .413415 .350808);color:lab(42.5306% -12.1309 7.1407);background:#0a110c;background:color(display-p3 .0458176 .067677 .0485821);background:lab(4.58215% -3.16626 1.81589);border:1px solid #202922;border:1px solid color(display-p3 .132607 .160005 .135817);border:1px solid lab(15.5597% -5.45041 3.20429);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:border-color .15s,color .15s;display:flex}.chatbot-send:hover{color:#55ff95;color:color(display-p3 .369107 1.02531 .534528);color:lab(90.6102% -84.8384 51.6199);border-color:#55ff95;border-color:color(display-p3 .369107 1.02531 .534528);border-color:lab(90.6102% -84.8384 51.6199)}.chatbot-send:disabled{opacity:.25;cursor:not-allowed}
