:root{--ink:#07171d;--paper:#f3f1e9;--lime:#c7ff4a;--cyan:#69e4ff;--muted:#9fafb3;--line:rgba(243,241,233,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}::selection{background:var(--lime);color:var(--ink)}main{overflow:hidden;background:radial-gradient(circle at 82% 8%,rgba(105,228,255,.14),transparent 28rem),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,72px 72px,72px 72px}.wrap{width:min(1360px,calc(100% - 64px));margin:auto}.header{min-height:96px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line)}.logo{font-weight:900;display:inline-flex;align-items:center}.logo img{height:34px;width:auto;display:block;transition:transform .2s ease,filter .2s ease}.logo:hover img{transform:translateY(-1px);filter:drop-shadow(0 0 10px rgba(199,255,74,.35))}.logo span,.terminal b{color:var(--lime)}nav{display:flex;gap:28px}nav a{color:#aebbbf;font-size:.75rem;font-weight:700}nav a:hover{color:var(--lime)}.available{justify-self:end;display:flex;align-items:center;gap:10px;color:#c1cbce;font:600 .7rem ui-monospace,monospace}.available i{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(199,255,74,.1),0 0 18px var(--lime)}.hero{min-height:calc(100vh - 170px);padding:72px 0 60px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr);align-items:center;gap:8vw}.eyebrow{margin:0;color:var(--lime);font:700 .75rem ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase}.hero h1{margin:30px 0 0;font-size:clamp(4.3rem,7.3vw,8.4rem);line-height:.89;letter-spacing:-.075em}.hero h1 em{display:block;color:var(--ink);font-style:normal;-webkit-text-stroke:1.5px var(--paper)}.intro{max-width:720px;margin:38px 0 0;color:#b7c3c6;font-size:1.1rem;line-height:1.75}.actions{margin-top:34px;display:flex;gap:14px}.button{min-height:52px;padding:0 20px;display:inline-flex;align-items:center;border:1px solid rgba(243,241,233,.25);font-size:.82rem;font-weight:760;transition:.18s}.button:hover{transform:translateY(-3px);background:var(--paper);color:var(--ink)}.button.primary{background:var(--lime);border-color:var(--lime);color:var(--ink)}.profile{padding:26px;border:1px solid rgba(105,228,255,.35);background:rgba(11,34,42,.88);box-shadow:28px 28px 0 var(--lime)}.profile-head{display:flex;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--line);font:400 .72rem ui-monospace,monospace;color:#b7c3c6}.profile-head b{padding:6px 9px;border-radius:99px;background:rgba(199,255,74,.12);color:var(--lime)}.metrics{padding:30px 0;display:grid;grid-template-columns:1fr 1fr;gap:18px}.metrics div{min-height:112px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line)}.metrics strong{font-size:2.5rem}.metrics small{color:var(--muted);text-transform:uppercase}.pipeline{color:var(--cyan);font:.7rem ui-monospace,monospace}.tags{display:flex;flex-wrap:wrap;gap:8px;align-content:start}.profile .tags{margin:26px 0}.tags span{padding:8px 10px;border:1px solid var(--line);color:#c5d0d2;font:.63rem ui-monospace,monospace}.terminal{padding-top:18px;border-top:1px solid var(--line);color:#c5d0d2;font:.68rem/1.6 ui-monospace,monospace}.strip{min-height:74px;padding:0 26px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;border:1px solid var(--line)}.strip span{text-align:center;color:#aebbbf;font-size:.7rem;font-weight:700;text-transform:uppercase}.section{padding:132px 0;border-top:1px solid var(--line)}.section-head{margin-bottom:76px;display:grid;grid-template-columns:.55fr 2.25fr;gap:54px}.section-head h2{max-width:950px;margin:0;font-size:clamp(3.2rem,6vw,6.7rem);line-height:.92;letter-spacing:-.07em}.section-head div>p{max-width:690px;color:var(--muted);line-height:1.75}.projects{border-top:1px solid var(--line)}.project{padding:58px 0;display:grid;grid-template-columns:.28fr 1.45fr .62fr;gap:42px;border-bottom:1px solid var(--line)}.number{color:var(--lime);font:.8rem ui-monospace,monospace}.impact{margin:0!important;color:var(--cyan)!important;font:.67rem ui-monospace,monospace!important;text-transform:uppercase}.project h3{margin:18px 0 0;font-size:clamp(2rem,3.8vw,4rem);line-height:1;letter-spacing:-.055em}.project div>p{color:#aebbbf;line-height:1.75}.project ul{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;list-style:none}.project li{position:relative;padding-left:18px;color:#ccd4d6;font-size:.8rem}.project li:before{content:"+";position:absolute;left:0;color:var(--lime)}.capabilities{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.capabilities article{min-height:265px;padding:34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.capabilities span{color:var(--lime);font:.68rem ui-monospace,monospace;text-transform:uppercase}.capabilities h3{margin:34px 0 0;font-size:clamp(1.55rem,2.4vw,2.5rem)}.capabilities p{margin-top:48px;color:#8fa1a6;font:.68rem/1.75 ui-monospace,monospace}.experience-grid{margin-top:106px;display:grid;grid-template-columns:1.55fr .75fr;gap:9vw}.timeline{border-top:1px solid var(--line)}.timeline article{padding:36px 0;display:grid;grid-template-columns:.45fr 1.55fr;gap:32px;border-bottom:1px solid var(--line)}.timeline article>span{color:var(--lime);font:.7rem ui-monospace,monospace}.timeline h3{margin:0}.timeline b{display:block;margin-top:8px;color:var(--cyan);font:.66rem ui-monospace,monospace}.timeline p{color:var(--muted);line-height:1.65}.credentials{padding:34px;border:1px solid rgba(199,255,74,.35);background:rgba(199,255,74,.045)}.credentials div{padding:26px 0;border-bottom:1px solid var(--line)}.credentials small{display:block;color:#8fa1a6;text-transform:uppercase}.credentials strong{display:block;margin-top:10px}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.notes article{min-height:330px;padding:28px;display:flex;flex-direction:column;border:1px solid var(--line);background:rgba(243,241,233,.035);transition:.18s}.notes article:hover{transform:translateY(-8px);border-color:var(--cyan)}.notes small{color:#91a2a7;text-transform:uppercase}.notes h3{margin-top:64px;font-size:clamp(1.45rem,2.4vw,2.3rem)}.notes b{margin-top:auto;align-self:flex-end;color:var(--cyan)}.contact{padding:145px 0 130px;border-top:1px solid var(--line)}.contact h2{max-width:1050px;margin:30px 0 0;font-size:clamp(4rem,8vw,9rem);line-height:.86;letter-spacing:-.08em}.contact>p:not(.eyebrow){max-width:690px;color:#adbbbe;font-size:1.04rem;line-height:1.75}.contact-meta{margin-top:58px;padding-top:24px;display:flex;justify-content:space-between;border-top:1px solid var(--line);color:#aebbbf;font:.72rem ui-monospace,monospace}.contact a{color:var(--paper)}.contact a:hover{color:var(--lime)}.footer{min-height:92px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;border-top:1px solid var(--line);color:#788b91;font:.64rem ui-monospace,monospace}.footer span:nth-child(2){text-align:center}.footer a{justify-self:end}@media(max-width:1100px){.header{grid-template-columns:1fr auto}.header nav{display:none}.hero{grid-template-columns:1fr;gap:70px}.profile{width:min(680px,calc(100% - 24px))}.section-head,.project{grid-template-columns:.35fr 1.65fr}.project>.tags{grid-column:2}.experience-grid{grid-template-columns:1fr}.notes{grid-template-columns:1fr}}@media(max-width:720px){.wrap{width:calc(100% - 34px)}.available{max-width:185px;text-align:right}.hero{min-height:auto;padding:54px 0 88px}.hero h1{font-size:clamp(3.35rem,16vw,5rem)}.actions{flex-direction:column}.button{justify-content:center}.profile{padding:20px;box-shadow:12px 12px 0 var(--lime)}.metrics,.strip,.section-head,.project,.project ul,.capabilities,.timeline article{grid-template-columns:1fr}.strip{gap:20px;padding:24px}.section{padding:92px 0}.section-head{gap:24px;margin-bottom:54px}.section-head h2{font-size:clamp(3.1rem,14vw,4.7rem)}.project>.tags{grid-column:auto}.contact{padding:98px 0 92px}.contact h2{font-size:clamp(3.7rem,18vw,5.5rem)}.contact-meta{gap:20px;flex-direction:column}.footer{padding:28px 0;grid-template-columns:1fr;gap:13px}.footer span:nth-child(2){text-align:left}.footer a{justify-self:start}}
/* ===== Motion layer (additive — identity/layout untouched above) ===== */

/* Ambient drifting grid on the page background */
main{background-position:0 0,0 0,0 0;animation:grid-drift 34s linear infinite}
@keyframes grid-drift{to{background-position:0 0,72px 72px,-72px 72px}}

/* Soft glow orb behind the hero */
.hero{position:relative}
.hero::before{content:"";position:absolute;top:-18%;right:-8%;width:40vw;height:40vw;max-width:640px;max-height:640px;border-radius:50%;background:radial-gradient(circle,rgba(199,255,74,.15),rgba(105,228,255,.09) 45%,transparent 72%);filter:blur(64px);pointer-events:none;animation:orb-drift 17s ease-in-out infinite alternate}
@keyframes orb-drift{to{transform:translate(-5%,6%) scale(1.08)}}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--d,0) * 90ms)}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* Cursor-follow glow on profile & credentials cards */
.glow-card{position:relative;overflow:hidden}
.glow-card::before{content:"";position:absolute;inset:0;background:radial-gradient(280px circle at var(--gx,50%) var(--gy,50%),rgba(105,228,255,.18),transparent 68%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.glow-card:hover::before{opacity:1}

/* Status dot + system-profile ping pulse */
.available i{animation:pulse-dot 2.4s ease-in-out infinite}
.profile-head b{display:inline-flex;align-items:center;gap:6px}
.ping{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime);animation:pulse-dot 2.4s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 5px rgba(199,255,74,.1),0 0 18px var(--lime)}50%{box-shadow:0 0 0 9px rgba(199,255,74,.18),0 0 26px var(--lime)}}

/* Blinking terminal caret */
.terminal .caret{display:inline-block;width:7px;height:1em;margin-left:3px;background:var(--lime);vertical-align:-2px;animation:caret-blink 1s steps(1) infinite}
@keyframes caret-blink{50%{opacity:0}}

/* Tag chips stagger in once their card is revealed, plus a hover glow */
.profile .tags span{opacity:0;transform:translateY(6px)}
.profile.is-visible .tags span{animation:tag-in .5s ease forwards;animation-delay:calc(.15s + var(--i,0) * 70ms)}
@keyframes tag-in{to{opacity:1;transform:translateY(0)}}
.tags span{transition:border-color .2s ease,color .2s ease,box-shadow .2s ease}
.tags span:hover{border-color:var(--cyan);color:var(--paper);box-shadow:0 0 14px rgba(105,228,255,.25)}

/* Pipeline "data flow" pulse */
.pipeline{display:flex;flex-wrap:wrap;gap:7px}
.pipe-arrow{color:var(--muted);opacity:.55}
.pipe-step{animation:pipe-pulse 3.2s ease-in-out infinite}
.pipeline .pipe-step:nth-child(3){animation-delay:.5s}
.pipeline .pipe-step:nth-child(5){animation-delay:1s}
.pipeline .pipe-step:nth-child(7){animation-delay:1.5s}
@keyframes pipe-pulse{0%,80%,100%{opacity:1;text-shadow:none}40%{opacity:.4;text-shadow:0 0 10px var(--cyan)}}

/* Active nav link + animated underline */
nav a{position:relative;padding-bottom:4px}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--lime);transition:width .25s ease}
nav a:hover::after,nav a.active::after{width:100%}
nav a.active{color:var(--lime)}

/* Button shine sweep */
.button{position:relative;overflow:hidden}
.button::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .55s ease}
.button:hover::before{left:120%}

/* Project rows: accent bar sweeps in on hover */
.project{position:relative;transition:padding-left .25s ease,background-color .25s ease}
.project::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(var(--lime),var(--cyan));transition:width .25s ease}
.project:hover{padding-left:16px;background:rgba(199,255,74,.03)}
.project:hover::before{width:3px}

/* Capability & credential cards: quiet lift + border glow */
.capabilities article,.credentials{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.capabilities article:hover{transform:translateY(-4px);box-shadow:inset 0 1px 0 rgba(105,228,255,.25)}
.credentials:hover{border-color:rgba(199,255,74,.55)}

/* Timeline rows: subtle marker glow on hover */
.timeline article{transition:padding-left .25s ease}
.timeline article:hover{padding-left:10px}
.timeline article:hover>span{text-shadow:0 0 12px var(--lime)}

@media(max-width:720px){.hero::before{width:70vw;height:70vw}}

/* ===== "Let's talk?" CTA + contact dialog ===== */
.talk-fab{position:fixed;right:28px;bottom:28px;z-index:60;display:inline-flex;align-items:center;gap:10px;padding:0 22px;min-height:56px;border:1px solid var(--lime);border-radius:999px;background:var(--lime);color:var(--ink);font:800 .85rem Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em;cursor:pointer;box-shadow:0 10px 34px rgba(199,255,74,.28);transition:transform .22s ease,box-shadow .22s ease;animation:fab-float 4.5s ease-in-out infinite}
.talk-fab:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 16px 40px rgba(199,255,74,.4)}
.talk-fab:active{transform:translateY(-1px) scale(.98)}
.talk-fab-dot{width:8px;height:8px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px rgba(7,23,29,.15);animation:pulse-dot-dark 2.2s ease-in-out infinite}
@keyframes fab-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pulse-dot-dark{0%,100%{box-shadow:0 0 0 4px rgba(7,23,29,.15)}50%{box-shadow:0 0 0 7px rgba(7,23,29,.06)}}

.talk-dialog{padding:0;border:1px solid rgba(105,228,255,.35);border-radius:18px;background:#0b222a;color:var(--paper);width:min(520px,calc(100vw - 40px));box-shadow:0 30px 90px rgba(0,0,0,.55);animation:talk-in .28s cubic-bezier(.16,1,.3,1)}
.talk-dialog::backdrop{background:rgba(4,12,15,.72);backdrop-filter:blur(3px)}
.talk-dialog[open]{display:block}
@keyframes talk-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.talk-form{padding:30px 30px 26px;display:flex;flex-direction:column;gap:16px}
.talk-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.talk-form-head h3{margin:8px 0 0;font-size:1.5rem;letter-spacing:-.03em}
.talk-close{width:34px;height:34px;flex:none;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--paper);cursor:pointer;font-size:.9rem;transition:.18s}
.talk-close:hover{border-color:var(--cyan);color:var(--cyan);transform:rotate(90deg)}
.talk-field{display:flex;flex-direction:column;gap:7px;font-size:.82rem}
.talk-field>span{color:#9fb0b4;font:700 .68rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em}
.talk-field input,.talk-field textarea{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(243,241,233,.04);color:var(--paper);font:.9rem Inter,ui-sans-serif,system-ui,sans-serif;resize:vertical;transition:border-color .18s ease,box-shadow .18s ease}
.talk-field input:focus,.talk-field textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(105,228,255,.15)}
.talk-field input:invalid:not(:placeholder-shown){border-color:rgba(255,120,120,.6)}
.talk-captcha input{max-width:120px}
.talk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}
.talk-status{margin:0;min-height:1.2em;font:600 .78rem ui-monospace,monospace}
.talk-status[data-state="ok"]{color:var(--lime)}
.talk-status[data-state="error"]{color:#ff8b8b}
.talk-actions{margin-top:4px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.talk-actions .button{min-height:48px}
.talk-actions .button[disabled]{opacity:.6;cursor:progress}
.talk-fallback{color:#9fb0b4;font:.75rem ui-monospace,monospace;text-decoration:underline;text-underline-offset:3px}
.talk-fallback:hover{color:var(--cyan)}
@media(max-width:520px){.talk-fab{right:16px;bottom:16px;padding:0 18px;min-height:50px}.talk-form{padding:24px 20px 22px}}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.profile .tags span{opacity:1!important;transform:none!important}.talk-fab{animation:none}}
