:root{--ink:#12151a;--ink-soft:#3a424c;--muted:#6b7380;--line:#d5dbe3;--paper:#f3f5f7;--paper-deep:#e6eaf0;--surface:#fff;--accent:#1a5f52;--accent-hover:#134940;--accent-soft:#d7ebe6;--accent-wash:rgba(26,95,82,.08);--danger:#b42318;--warn:#9a6700;--shadow:0 18px 40px rgba(18,21,26,.08);--radius:4px;--nav-h:72px;--max:1100px;--font-display:"Syne",sans-serif;--font-body:"IBM Plex Sans",sans-serif;--font-mono:"IBM Plex Mono",monospace;--ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3f5f7;background:var(--paper);color:#12151a;color:var(--ink);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-body);font-size:17px;line-height:1.6;margin:0;overflow-x:hidden}code{font-family:IBM Plex Mono,monospace;font-family:var(--font-mono)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}::selection{background:#d7ebe6;background:var(--accent-soft);color:#12151a;color:var(--ink)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#b57bff,#7a5a9e);border:2px solid #0a0810;border-radius:8px}::-webkit-scrollbar-track{background:#120e18}*{scrollbar-color:#7a5a9e #120e18;scrollbar-width:thin}:root{--bg:#0a0810;--panel:#100d16;--panel-raised:#15111c;--line:#2c2736;--line-soft:#1d1824;--text:#e7ebee;--dim:#838a94;--faint:#4e5560;--accent:#b57bff;--accent-soft:rgba(181,123,255,.14);--mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;--sans:"IBM Plex Sans",system-ui,sans-serif}.home-wrapper{background:#0a0810;background:var(--bg);color:#e7ebee;color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;font-family:var(--sans);min-height:100vh;overflow:hidden}.home-wrapper:before{background-image:linear-gradient(hsla(0,0%,100%,.025) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.025) 1px,transparent 0),radial-gradient(circle at 15% 18%,rgba(181,123,255,.07),transparent 14%);background-size:48px 48px,48px 48px,100% 100%;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.75) 80%,transparent);mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.75) 80%,transparent);opacity:.85;pointer-events:none;position:fixed;z-index:0}.section-wrap,.terminal-footer,.terminal-nav{margin:0 auto;position:relative;width:min(100% - 48px,1120px);z-index:1}.terminal-nav{align-items:center;border-bottom:1px solid #1d1824;border-bottom:1px solid var(--line-soft);display:flex;font:12px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:12px var(--mono);gap:40px;height:82px}.wordmark{color:#e7ebee;color:var(--text);font-weight:600;white-space:nowrap}.eyebrow i,.terminal-status i,.wordmark i{background:#b57bff;background:var(--accent);border-radius:50%;box-shadow:0 0 11px #b57bff;box-shadow:0 0 11px var(--accent);display:inline-block;height:6px;margin-right:8px;width:6px}.wordmark span{color:#838a94;color:var(--dim)}.nav-links{align-items:center;display:flex;flex:1 1;gap:28px}.nav-links a,.nav-resume{color:#4e5560;color:var(--faint);transition:color .16s ease}.nav-links a:hover,.nav-resume:hover{color:#b57bff;color:var(--accent)}.nav-resume{border:1px solid #2c2736;border:1px solid var(--line);border-radius:4px;padding:8px 11px}.hero-section{grid-gap:clamp(48px,9vw,120px);align-items:center;display:grid;gap:clamp(48px,9vw,120px);grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);min-height:min(72vh,640px);padding:56px 0 72px}.contact-detail,.eyebrow,.project-meta,.project-number,.section-label,.terminal-caption{color:#838a94;color:var(--dim);font:10px/1.5 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:10px/1.5 var(--mono);letter-spacing:.04em}.eyebrow{align-items:center;border:1px solid #2c2736;border:1px solid var(--line);border-radius:999px;display:inline-flex;margin:0 0 24px;padding:6px 10px}.contact-section h2,.content-section h2,.hero-copy h1{color:#f5f7f5;font:500 clamp(2.5rem,5vw,4.6rem)/.98 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:500 clamp(2.5rem,5vw,4.6rem)/.98 var(--mono);letter-spacing:-.065em;margin:0}.hero-copy h1 span{color:#65706a;font-weight:400}.hero-copy h1 strong{color:#b57bff;color:var(--accent);display:block;font-weight:500}.role{color:#838a94;color:var(--dim);font:11px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px var(--mono);margin:18px 0 0}.role b{color:#334039;padding:0 5px}.hero-description{color:#c3cbc6;font-size:15px;line-height:1.8;margin:26px 0 0;max-width:510px}.hero-description em{color:#b57bff;color:var(--accent);font-style:normal}.hero-actions{display:flex;gap:12px;margin-top:26px}.contact-form button,.primary-button,.secondary-button{border-radius:4px;font:11px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px var(--mono);padding:11px 15px;transition:background .16s ease,-webkit-transform .16s ease;transition:transform .16s ease,background .16s ease;transition:transform .16s ease,background .16s ease,-webkit-transform .16s ease}.contact-form button,.primary-button{background:#b57bff;background:var(--accent);border:1px solid #b57bff;border:1px solid var(--accent);color:#061018;font-weight:600}.contact-form button:hover,.primary-button:hover{background:#d2b0ff;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.secondary-button{background:hsla(0,0%,100%,.015);border:1px solid #2c2736;border:1px solid var(--line);color:#838a94;color:var(--dim)}.secondary-button:hover{border-color:#46524b;color:#e7ebee;color:var(--text)}.social-quicklinks{display:flex;gap:18px;margin-top:28px}.social-quicklinks a{color:#4e5560;color:var(--faint);font:10px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:10px var(--mono)}.social-quicklinks a:hover{color:#b57bff;color:var(--accent)}.assistant-shell{background:rgba(10,8,16,.92);border:1px solid #2c2736;border:1px solid var(--line);border-radius:8px;box-shadow:-10px 12px 0 rgba(181,123,255,.03),0 0 50px rgba(0,0,0,.3);display:flex;flex-direction:column;min-height:420px;overflow:hidden}.terminal-bar{align-items:center;border-bottom:1px solid #1d1824;border-bottom:1px solid var(--line-soft);color:#838a94;color:var(--dim);display:flex;font:10px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:10px var(--mono);gap:12px;min-height:40px;padding:0 14px}.terminal-lights{display:flex;gap:6px}.terminal-lights span{background:#3a3148;border-radius:50%;height:9px;width:9px}.terminal-lights span:first-child{background:#ff5f57}.terminal-lights span:nth-child(2){background:#febc2e}.terminal-lights span:nth-child(3){background:#28c840;box-shadow:0 0 8px rgba(40,200,64,.35)}.terminal-bar p{margin:0 auto}.terminal-status{color:#b57bff;color:var(--accent);font-size:9px}.terminal-status i{height:4px;margin-right:4px;width:4px}.assistant-messages{cursor:text;flex:1 1;max-height:320px;overflow-y:auto;padding:16px 16px 8px;scrollbar-color:#7a5a9e #120e18;scrollbar-width:thin}.assistant-messages::-webkit-scrollbar{width:8px}.assistant-messages::-webkit-scrollbar-track{background:#120e18;border-radius:8px}.assistant-messages::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#b57bff,#7a5a9e);border:2px solid #120e18;border-radius:8px}.assistant-messages::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#d2b0ff,#b57bff)}.term-line{margin-bottom:10px}.term-line p,.term-line pre{font:11px/1.55 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px/1.55 var(--mono);margin:0;white-space:pre-wrap;word-break:break-word}.term-prompt{color:#5dde7a;font-weight:600}.term-input p{color:#e7ebee;color:var(--text)}.term-output pre{color:#c5ccd6}.term-hint pre,.term-system pre{color:#4e5560;color:var(--faint);font-size:10px}.term-error pre{color:#ff8f8f}.typing-caret{-webkit-animation:caret-blink .7s steps(1) infinite;animation:caret-blink .7s steps(1) infinite;background:#b57bff;background:var(--accent);display:inline-block;height:1em;margin-left:2px;vertical-align:text-bottom;width:7px}@-webkit-keyframes caret-blink{50%{opacity:0}}@keyframes caret-blink{50%{opacity:0}}.term-shortcuts{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 12px}.term-shortcuts button{background:transparent;border:1px solid #2c2736;border:1px solid var(--line);border-radius:999px;color:#838a94;color:var(--dim);cursor:pointer;font:9px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:9px var(--mono);padding:6px 10px;white-space:nowrap}.term-shortcuts button:hover{border-color:#6b4f8a;color:#b57bff;color:var(--accent)}.assistant-input input:disabled,.term-shortcuts button:disabled{cursor:not-allowed;opacity:.55}.assistant-input{align-items:center;background:#0a0810;border:1px solid #2c2736;border:1px solid var(--line);display:flex;gap:8px;margin:0 14px 14px;padding:9px 10px}.assistant-input .term-prompt{font:14px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:14px var(--mono)}.assistant-input input{background:transparent;border:0;color:#e7ebee;color:var(--text);flex:1 1;font:11px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px var(--mono);min-width:0;outline:0}.assistant-input input::-webkit-input-placeholder{color:#4e5560;color:var(--faint)}.assistant-input input::placeholder{color:#4e5560;color:var(--faint)}.content-section{padding:48px 0}.section-label{align-items:center;display:flex;gap:7px;margin-bottom:12px}.section-label>span{color:#b57bff;color:var(--accent)}.section-label small{color:#4e5560;color:var(--faint);font-size:9px;margin-left:auto}.contact-section h2,.content-section h2{font-size:clamp(2rem,3.5vw,3rem);letter-spacing:-.055em}.project-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-top:28px}.project-card{background:rgba(18,22,20,.72);border:1px solid #2c2736;border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column;min-height:282px;padding:18px;transition:border-color .18s ease,background .18s ease,-webkit-transform .18s ease;transition:border-color .18s ease,transform .18s ease,background .18s ease;transition:border-color .18s ease,transform .18s ease,background .18s ease,-webkit-transform .18s ease}.project-card:hover{background:#101512;border-color:#6b4f8a;-webkit-transform:translateY(-4px);transform:translateY(-4px)}.project-number{color:#b57bff;color:var(--accent);margin:0 0 13px}.project-card h3{color:#f0f3f1;font:500 17px/1.45 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:500 17px/1.45 var(--mono);margin:0}.project-meta{color:#4e5560;color:var(--faint);margin:9px 0 10px}.project-card>p:not(.project-number):not(.project-meta){color:#b1bbb5;font-size:12px;line-height:1.65;margin:0}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:18px}.project-tags span{color:#b57bff;color:var(--accent);font:9px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:9px var(--mono)}.project-card>a{color:#838a94;color:var(--dim);font:10px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:10px var(--mono);margin-top:14px}.project-card>a:hover{color:#b57bff;color:var(--accent)}.career-timeline{list-style:none;margin:32px 0 0;padding:8px 0 0;position:relative}.career-timeline:before{background:linear-gradient(180deg,#b57bff,rgba(181,123,255,.35) 18%,#2c2736 55%,#1d1824);background:linear-gradient(to bottom,var(--accent),rgba(181,123,255,.35) 18%,var(--line) 55%,var(--line-soft));bottom:0;content:"";left:50%;position:absolute;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:2px}.career-timeline-item{grid-gap:40px;align-items:start;display:grid;gap:40px;grid-template-columns:1fr 1fr;margin:0 0 28px;position:relative}.career-timeline-item:last-child{margin-bottom:0}.career-timeline-node{background:#0a0810;background:var(--bg);border:2px solid #b57bff;border:2px solid var(--accent);border-radius:50%;box-shadow:0 0 0 5px #0a0810;box-shadow:0 0 0 5px var(--bg);height:14px;left:50%;position:absolute;top:28px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:14px;z-index:2}.career-timeline-item.is-current .career-timeline-node{background:#b57bff;background:var(--accent);box-shadow:0 0 0 5px #0a0810,0 0 16px rgba(181,123,255,.45);box-shadow:0 0 0 5px var(--bg),0 0 16px rgba(181,123,255,.45)}.career-timeline-item.is-left .career-card{grid-column:1;justify-self:end}.career-timeline-item.is-right .career-card{grid-column:2;justify-self:start}.career-card{background:linear-gradient(180deg,rgba(181,123,255,.05),transparent 40%),rgba(16,13,22,.92);border:1px solid #2c2736;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 36px rgba(0,0,0,.28);padding:20px 22px 22px;position:relative;width:min(100%,460px)}.career-timeline-item.is-left .career-card:after,.career-timeline-item.is-right .career-card:after{background:rgba(16,13,22,.92);border:1px solid #2c2736;border:1px solid var(--line);content:"";height:12px;position:absolute;top:28px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:12px}.career-timeline-item.is-left .career-card:after{border-bottom:0;border-left:0;right:-7px}.career-timeline-item.is-right .career-card:after{border-right:0;border-top:0;left:-7px}.career-card-header{grid-gap:12px;border-bottom:1px solid #1d1824;border-bottom:1px solid var(--line-soft);display:grid;gap:12px;padding-bottom:14px}.career-card-heading{align-items:flex-start;display:flex;flex-wrap:wrap;gap:10px 12px}.career-card-heading h3{color:#e7ebee;color:var(--text);flex:1 1 12rem;font:600 1rem/1.35 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:600 1rem/1.35 var(--mono);margin:0}.career-card-company{align-items:center;background:rgba(181,123,255,.12);border:1px solid rgba(181,123,255,.28);border-radius:999px;color:#b57bff;color:var(--accent);display:inline-flex;font:500 10px/1 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:500 10px/1 var(--mono);letter-spacing:.02em;padding:4px 10px;white-space:nowrap}.career-card-meta{color:#838a94;color:var(--dim);display:flex;flex-wrap:wrap;font:11px/1.4 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px/1.4 var(--mono);gap:8px 16px;justify-content:space-between}.career-card-meta p{margin:0}.career-card-meta em{color:#838a94;color:var(--dim);font-style:italic}.career-card-now{color:#b57bff;color:var(--accent);font-style:normal}.career-card-meta time{color:#4e5560;color:var(--faint);white-space:nowrap}.career-card-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}.career-card-tags li{border:1px solid #2c2736;border:1px solid var(--line);border-radius:999px;color:#838a94;color:var(--dim);font:9px/1 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:9px/1 var(--mono);padding:3px 8px}.career-card-duties{grid-gap:10px;display:grid;gap:10px;list-style:none;margin:14px 0 0;padding:0}.career-card-duties li{color:#b4bdc6;font-size:13px;line-height:1.65;padding-left:14px;position:relative}.career-card-duties li:before{color:#b57bff;color:var(--accent);content:"›";font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-family:var(--mono);left:0;position:absolute;top:0}.about-strip{border-bottom:1px solid #1d1824;border-bottom:1px solid var(--line-soft);border-top:1px solid #1d1824;border-top:1px solid var(--line-soft);padding:25px 0}.about-strip p{color:#838a94;color:var(--dim);font:11px/1.9 IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:11px/1.9 var(--mono);margin:0}.about-strip span{color:#b57bff;color:var(--accent)}.contact-section{grid-gap:clamp(44px,9vw,130px);display:grid;gap:clamp(44px,9vw,130px);grid-template-columns:1fr 1fr;padding:40px 0 56px}.email-link{border-bottom:1px solid #2c2736;border-bottom:1px solid var(--line);color:#e7ebee;color:var(--text);display:inline-block;font:clamp(1rem,2vw,1.45rem) IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:clamp(1rem,2vw,1.45rem) var(--mono);margin-top:38px}.email-link span,.email-link:hover{color:#b57bff;color:var(--accent)}.contact-detail{color:#838a94;color:var(--dim);line-height:1.9;margin:30px 0 0}.contact-detail b{color:#b57bff;color:var(--accent);font-weight:400}.contact-detail a{border-bottom:1px solid #2c2736;border-bottom:1px solid var(--line);color:#e7ebee;color:var(--text);transition:color .16s ease,border-color .16s ease}.contact-detail a:hover{border-color:#b57bff;border-color:var(--accent);color:#b57bff;color:var(--accent)}.contact-form{grid-gap:16px;background:rgba(18,22,20,.7);border:1px solid #2c2736;border:1px solid var(--line);border-radius:7px;display:grid;gap:16px;padding:23px}.contact-form label{grid-gap:7px;color:#838a94;color:var(--dim);display:grid;font:9px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:9px var(--mono);gap:7px;letter-spacing:.08em;text-transform:uppercase}.contact-form label i{color:#b57bff;color:var(--accent);font-style:normal}.contact-form input,.contact-form textarea{background:#090c0a;border:1px solid #2c2736;border:1px solid var(--line);border-radius:4px;color:#e7ebee;color:var(--text);font:12px IBM Plex Sans,system-ui,sans-serif;font:12px var(--sans);outline:0;padding:10px;resize:vertical;width:100%}.contact-form input:focus,.contact-form textarea:focus{border-color:#7a5a9e}.contact-form textarea::-webkit-input-placeholder{color:#4e5560;color:var(--faint)}.contact-form textarea::placeholder{color:#4e5560;color:var(--faint)}.contact-form button{cursor:pointer;justify-self:end;margin-top:4px}.contact-form button[disabled]{cursor:not-allowed;opacity:.6;-webkit-transform:none;transform:none}.form-status{font:10px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:10px var(--mono);margin:0}.form-status-success{color:#b57bff;color:var(--accent)}.form-status-error{color:#ff7b7b}.form-status-warning{color:#e6c97a}.terminal-footer{border-top:1px solid #1d1824;border-top:1px solid var(--line-soft);color:#4e5560;color:var(--faint);display:flex;font:9px IBM Plex Mono,SFMono-Regular,Consolas,monospace;font:9px var(--mono);justify-content:space-between;padding:25px 0 34px}.terminal-footer span{color:#838a94;color:var(--dim)}@media (max-width:800px){.terminal-nav{gap:18px;height:64px}.nav-links{display:none}.nav-resume{margin-left:auto}.hero-section{grid-template-columns:1fr;min-height:0;padding:40px 0 56px}.assistant-shell{min-height:350px}.contact-section,.project-grid{grid-template-columns:1fr}.project-grid{gap:10px}.career-timeline:before{left:12px;-webkit-transform:none;transform:none}.career-timeline-item{gap:0;grid-template-columns:1fr;margin-bottom:18px;padding-left:36px}.career-timeline-node{left:12px;top:24px}.career-timeline-item.is-left .career-card,.career-timeline-item.is-right .career-card{grid-column:1;justify-self:stretch;width:100%}.career-timeline-item.is-left .career-card:after,.career-timeline-item.is-right .career-card:after{border-bottom:1px solid #2c2736;border-bottom:1px solid var(--line);border-left:1px solid #2c2736;border-left:1px solid var(--line);border-right:0;border-top:0;left:-7px;right:auto}.section-label small{display:none}}@media (max-width:480px){.section-wrap,.terminal-footer,.terminal-nav{width:min(100% - 30px,1120px)}.wordmark{font-size:10px}.hero-copy h1{font-size:2.65rem}.hero-actions{flex-direction:column}.primary-button,.secondary-button{text-align:center}.terminal-footer{grid-gap:10px;display:grid;gap:10px}}
/*# sourceMappingURL=main.87b150b0.css.map*/