@import "https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;700&display=swap";:root{--bg:#010204;--bg-elevated:#06090c;--text:#a9b7c6;--text-strong:#edf4ff;--muted:#6a7888;--accent:#54c1ff;--accent-soft:#8ed8ff;--border:#68809638;--border-strong:#68809659;--grid-line:#54c1ff0b;--shadow:0 30px 80px #00000073;--sans:"Space Grotesk", "Segoe UI", sans-serif;--heading:"Chakra Petch", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:18px/1.5 var(--sans);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#54c1ff14,#0000 28%),linear-gradient(#040608 0%,#010204 48%,#020305 100%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;opacity:.2;background-color:#0000;background-image:linear-gradient(90deg,#ffffff04 1px,#0000 1px),linear-gradient(#ffffff04 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:40px 40px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0}a{transition:color .18s,border-color .18s,background-color .18s}#root{border-inline:1px solid var(--border);width:min(1520px,100%);min-height:100svh;box-shadow:var(--shadow);background:linear-gradient(#040608fa,#010204fa);margin:0 auto}h1,h2,p{margin:0}@media (width<=1080px){:root{font-size:16px}#root{border-inline:0;width:100%}}.shell{flex-direction:column;min-height:100svh;display:flex;overflow:clip}.masthead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:2rem;padding:1.6rem 2.25rem;display:flex}.brand{color:var(--text-strong);font-family:var(--heading);letter-spacing:-.05em;font-size:2rem;font-weight:700;text-decoration:none}.nav{align-items:center;gap:1.75rem;display:flex}.nav a{color:var(--muted);font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;font-size:.82rem;text-decoration:none}.nav a:hover,.nav a:focus-visible,.contact-links a:hover,.contact-links a:focus-visible{color:var(--accent-soft)}.nav__cta{border:1px solid var(--accent);padding:.95rem 1.35rem;box-shadow:inset 0 0 0 1px #54c1ff1f;color:var(--accent)!important}.hero-grid{flex:1;grid-template-columns:minmax(0,1.08fr) minmax(18rem,.92fr);display:grid}.hero-copy,.stack-panel{padding:4.5rem 3.4rem 3.5rem;position:relative}.hero-copy{flex-direction:column;justify-content:center;gap:1.8rem;min-height:42rem;animation:.9s cubic-bezier(.2,.8,.2,1) both rise-in;display:flex}.hero-copy:before,.stack-panel:before{content:"";pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000006b,#0000 90%);mask-image:linear-gradient(#0000006b,#0000 90%)}.stack-panel{border-left:1px solid var(--border);background:linear-gradient(#06090cc7,#030507f5);flex-direction:column;gap:2.25rem;animation:.95s cubic-bezier(.2,.8,.2,1) .12s both slide-in;display:flex}.eyebrow,.stack-label,.stats dt{color:var(--accent);font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;margin:0;font-size:.82rem}.eyebrow:before{content:"• "}.hero-title{font-family:var(--heading);letter-spacing:-.08em;text-transform:lowercase;flex-wrap:wrap;margin:0;font-size:clamp(4rem,10vw,8.5rem);line-height:.92;display:flex}.hero-title span{color:var(--text-strong);display:inline}.hero-title .accent{color:var(--accent);text-shadow:0 0 16px #54c1ff52,0 0 40px #54c1ff24}.intro{max-width:40rem;color:var(--text);font-size:1.1rem;line-height:1.9}.hero-actions{flex-wrap:wrap;gap:1rem;display:flex}.button{min-width:11rem;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;justify-content:center;align-items:center;padding:1rem 1.4rem;font-size:.84rem;text-decoration:none;transition:color .18s,background-color .18s,border-color .18s,transform .18s;display:inline-flex}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button--primary{background:var(--accent);border:1px solid var(--accent);color:#02131c;box-shadow:0 0 40px #54c1ff2e}.button--ghost{border:1px solid var(--border-strong);color:var(--muted)}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;display:grid}.stats div{border-top:1px solid var(--border);padding-top:1rem}.stats dd{color:var(--text-strong);margin:.55rem 0 0;font-size:1rem}.stack-block,.contact-card{z-index:1;position:relative}.stack-list{margin:1rem 0 0;padding:0;list-style:none}.stack-list li{border-bottom:1px solid var(--border);color:var(--text-strong);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;font-size:1.02rem;display:flex}.stack-list li:after{content:"•";color:var(--muted);font-size:1.25rem}.stack-list--compact li{font-size:.98rem}.contact-links{gap:.85rem;margin-top:1rem;display:grid}.contact-links a{color:var(--text-strong);font-family:var(--mono);border-bottom:1px solid var(--border);padding-bottom:.85rem;font-size:.95rem;text-decoration:none}.projects-section{border-top:1px solid var(--border);padding:3.25rem 0 0;position:relative}.projects-section:before{content:"";pointer-events:none;background:radial-gradient(circle at 18% 0,#54c1ff14,#0000 35%);position:absolute;inset:0}.section-heading{grid-template-columns:auto 1fr;align-items:center;gap:1.25rem;padding:0 3.4rem 2rem;display:grid}.section-heading__index{color:var(--accent);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;font-size:.82rem;font-weight:500}.section-heading h2{color:var(--text-strong);font-family:var(--heading);letter-spacing:-.06em;align-items:center;gap:1.5rem;margin:0;font-size:clamp(2.4rem,4vw,4.25rem);display:flex}.section-heading h2:after{content:"";background:linear-gradient(90deg, var(--border-strong), transparent);flex:1;height:1px}.projects-grid{z-index:1;border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:relative}.project-card{cursor:pointer;border-right:1px solid var(--border);border-bottom:1px solid var(--border);isolation:isolate;opacity:0;background:linear-gradient(#05080bdb,#020406fa);flex-direction:column;gap:1.35rem;min-height:19rem;padding:2rem;animation:.8s cubic-bezier(.22,1,.36,1) forwards card-reveal;display:flex;position:relative;transform:translateY(30px)}.project-card:before{content:"";pointer-events:none;opacity:0;z-index:-1;background:linear-gradient(120deg,#0000 18%,#54c1ff1a 50%,#0000 82%);transition:opacity .22s,transform .42s;position:absolute;inset:0;transform:translate(-30%)}.project-card:after{content:"";pointer-events:none;border:1px solid #0000;transition:border-color .22s,box-shadow .22s;position:absolute;inset:1px}.project-card:hover,.project-card:focus-within{transition:transform .22s;transform:translateY(-6px)}.project-card:focus-visible{outline-offset:-2px;outline:2px solid #54c1ff99}.project-card:hover:before,.project-card:focus-within:before{opacity:1;transform:translate(10%)}.project-card:hover:after,.project-card:focus-within:after{border-color:#54c1ff38;box-shadow:inset 0 0 0 1px #54c1ff1f}.project-card:first-child{animation-delay:80ms}.project-card:nth-child(2){animation-delay:.15s}.project-card:nth-child(3){animation-delay:.22s}.project-card:nth-child(4){animation-delay:.29s}.project-card:nth-child(5){animation-delay:.36s}.project-card:nth-child(6){animation-delay:.43s}.project-card__topline{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-card__meta,.project-card__id{color:var(--accent);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;font-size:.78rem}.project-card__id{color:var(--muted)}.project-card h3{font-family:var(--heading);letter-spacing:-.05em;margin:0;font-size:2rem}.project-card h3 a{color:var(--text-strong);text-decoration:none}.project-card h3 a:hover,.project-card h3 a:focus-visible{color:var(--accent-soft)}.project-card__description{color:var(--text);flex:1;font-size:1rem;line-height:1.9}.project-card__link{color:var(--accent);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:.82rem;text-decoration:none}.project-card__link:hover,.project-card__link:focus-visible{color:var(--accent-soft)}.project-tags{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.project-tags li{border:1px solid var(--border-strong);color:var(--muted);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;background:#05090ce6;padding:.45rem .72rem;font-size:.75rem}.experience-section{border-top:1px solid var(--border);padding:3.25rem 0 0;position:relative}.experience-section:before{content:"";pointer-events:none;background:radial-gradient(circle at 24% 0,#54c1ff0f,#0000 38%);position:absolute;inset:0}.experience-list{z-index:1;border-top:1px solid var(--border);position:relative}.experience-row{border-bottom:1px solid var(--border);opacity:0;grid-template-columns:minmax(15rem,18rem) minmax(0,1fr);gap:2rem;padding:2.6rem 2rem;animation:.76s cubic-bezier(.22,1,.36,1) forwards row-reveal;display:grid;transform:translateY(28px)}.experience-row:first-child{animation-delay:.12s}.experience-row:nth-child(2){animation-delay:.22s}.experience-row:nth-child(3){animation-delay:.32s}.experience-row:nth-child(4){animation-delay:.42s}.experience-meta{align-content:start;gap:.75rem;display:grid}.experience-period{color:var(--accent);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.98rem}.experience-company{color:var(--muted);font-family:var(--mono);margin:0;font-size:1rem}.experience-body h3{color:var(--text-strong);font-family:var(--heading);letter-spacing:-.05em;margin:0 0 1.4rem;font-size:clamp(2rem,3vw,2.6rem)}.experience-points{gap:1.1rem;margin:0;padding:0;list-style:none;display:grid}.experience-points li{color:var(--text);padding-left:1.25rem;font-size:1rem;line-height:1.85;position:relative}.experience-points li:before{content:"›";color:var(--accent);font-family:var(--mono);position:absolute;top:0;left:0}.contact-section{border-top:1px solid var(--border);padding:3.25rem 0 0;position:relative}.contact-section:before{content:"";pointer-events:none;background:radial-gradient(circle at 22% 0,#54c1ff0f,#0000 40%);position:absolute;inset:0}.contact-grid{z-index:1;border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:relative}.contact-tile{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:11.2rem;color:inherit;opacity:0;background:linear-gradient(#04070aeb,#020406fa);flex-direction:column;gap:1rem;padding:2.5rem 2.5rem 2rem;text-decoration:none;animation:.76s cubic-bezier(.22,1,.36,1) forwards row-reveal;display:flex;position:relative;transform:translateY(26px)}.contact-tile:first-child{animation-delay:.12s}.contact-tile:nth-child(2){animation-delay:.19s}.contact-tile:nth-child(3){animation-delay:.26s}.contact-tile:nth-child(4){animation-delay:.33s}.contact-tile:nth-child(5){animation-delay:.4s}.contact-tile:nth-child(6){animation-delay:.47s}.contact-tile:before{content:"";opacity:0;background:linear-gradient(120deg,#0000 20%,#54c1ff14 50%,#0000 80%);transition:opacity .22s,transform .42s;position:absolute;inset:0;transform:translate(-25%)}.contact-tile:after{content:"";border:1px solid #0000;transition:border-color .22s,box-shadow .22s;position:absolute;inset:1px}.contact-tile:hover,.contact-tile:focus-visible{transition:transform .22s;transform:translateY(-6px)}.contact-tile:hover:before,.contact-tile:focus-visible:before{opacity:1;transform:translate(8%)}.contact-tile:hover:after,.contact-tile:focus-visible:after{border-color:#54c1ff38;box-shadow:inset 0 0 0 1px #54c1ff1f}.contact-tile__label,.contact-tile__icon{z-index:1;position:relative}.contact-tile__label{color:var(--muted);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:.84rem}.contact-tile__value{z-index:1;color:var(--text-strong);font-family:var(--heading);max-width:15rem;margin:0;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.25;position:relative}.contact-tile__icon{color:var(--muted);font-family:var(--mono);align-self:flex-end;margin-top:auto;font-size:1.55rem;transition:color .22s,transform .22s}.contact-tile:hover .contact-tile__icon,.contact-tile:focus-visible .contact-tile__icon{color:var(--accent-soft);transform:translate(2px,-2px)}@keyframes rise-in{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(42px)}to{opacity:1;transform:translate(0)}}@keyframes card-reveal{0%{opacity:0;transform:translateY(30px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes row-reveal{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){.hero-grid{grid-template-columns:1fr}.stack-panel{border-left:0;border-top:1px solid var(--border)}.hero-copy,.stack-panel{padding:2.4rem 1.5rem}.section-heading{padding:0 1.5rem 1.5rem}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-row{grid-template-columns:1fr;gap:1.4rem;padding:2.2rem 1.5rem}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.masthead{flex-direction:column;align-items:flex-start;padding:1.35rem 1.25rem}.brand{font-size:1.7rem}.nav{flex-wrap:wrap;gap:.9rem 1.1rem}.hero-copy{gap:1.5rem;min-height:auto}.hero-title{font-size:clamp(3rem,22vw,5rem)}.intro{font-size:1rem;line-height:1.75}.stats{grid-template-columns:1fr}.button{width:100%}.projects-section{padding-top:2.2rem}.section-heading{grid-template-columns:1fr;gap:.7rem}.section-heading h2{font-size:2.4rem}.section-heading h2:after{display:none}.projects-grid{grid-template-columns:1fr}.project-card{min-height:auto;padding:1.5rem 1.25rem}.project-card h3{font-size:1.65rem}.experience-section{padding-top:2.2rem}.experience-row{padding:1.75rem 1.25rem}.experience-body h3{margin-bottom:1rem;font-size:1.8rem}.contact-section{padding-top:2.2rem}.contact-grid{grid-template-columns:1fr}.contact-tile{min-height:auto;padding:1.7rem 1.25rem}.contact-tile__value{max-width:none;font-size:1.45rem}}@media (prefers-reduced-motion:reduce){.hero-copy,.stack-panel,.project-card,.experience-row,.contact-tile{opacity:1;animation:none;transform:none}.button,.project-card,.project-card:before,.project-card:after,.nav a,.contact-links a,.contact-tile,.contact-tile:before,.contact-tile:after,.contact-tile__icon{transition:none}}
