:root{--bg:#0a0a0a;--bg-card:#ffffff08;--bg-card-hover:#ffffff0f;--bg-glass:#0f0f0fcc;--text:#e8e8e8;--text-muted:#888;--text-dim:#555;--green:#2ecc40;--green-bright:#4cff6e;--green-dark:#1a9e30;--green-glow:#2ecc4026;--green-glow-strong:#2ecc404d;--border:#ffffff0f;--border-hover:#2ecc404d;--shadow:0 8px 32px #0006;--shadow-glow:0 0 30px #2ecc4014;--radius:16px;--radius-sm:10px;--font:"Outfit", system-ui, -apple-system, sans-serif;--font-display:"Fraunces", Georgia, serif;--max-w:1140px;--gutter:1.25rem}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::selection{background:var(--green);color:#000}img{max-width:100%;height:auto;display:block}a{color:var(--green);text-decoration:none;transition:color .2s}a:hover{color:var(--green-bright)}.container{width:100%;max-width:var(--max-w);padding:0 var(--gutter);margin:0 auto}.header{z-index:100;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);border-bottom:1px solid var(--border);position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;gap:1rem;height:68px;display:flex}.header__logo{align-items:center;display:flex}.header__logo img{width:auto;height:42px}.header__nav{align-items:center;gap:2rem;display:flex}.header__nav a{color:var(--text-muted);font-size:.88rem;font-weight:500;transition:color .2s;position:relative}.header__nav a:after{content:"";background:var(--green);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.header__nav a:hover{color:var(--text)}.header__nav a:hover:after{width:100%}.header__nav .header__cta{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:999px;align-items:center;padding:.5rem 1.2rem;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 0 20px #2ecc4033}.header__nav .header__cta:hover{background:var(--green-bright);color:#000;transform:translateY(-1px);box-shadow:0 0 30px #2ecc4066}.header__nav .header__cta:after{content:none}.header__toggle{cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.header__toggle span{background:var(--text);border-radius:2px;width:22px;height:2px;margin:5px 0;transition:all .3s;display:block}.hero{padding:clamp(4rem,12vw,8rem) 0 clamp(3rem,8vw,5rem);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle, var(--green-glow) 0%, transparent 70%);pointer-events:none;width:600px;height:600px;position:absolute;top:-200px;right:-200px}.hero__content{z-index:1;max-width:700px;position:relative}.hero__badge{background:var(--green-glow);color:var(--green);border:1px solid #2ecc4033;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.4rem 1rem;font-size:.78rem;font-weight:600;display:inline-flex}.hero__badge:before{content:"";background:var(--green);width:7px;height:7px;box-shadow:0 0 8px var(--green);border-radius:50%;animation:2s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.hero__name{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);margin-bottom:1.25rem;font-size:clamp(2.5rem,7vw,4rem);font-weight:700;line-height:1.1}.hero__name .highlight{background:linear-gradient(135deg, var(--green), var(--green-bright));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__tagline{color:var(--text-muted);max-width:540px;margin-bottom:2rem;font-size:clamp(1.05rem,2.2vw,1.25rem);line-height:1.7}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.6rem;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex}.btn--primary{background:var(--green);color:#000;box-shadow:0 0 20px #2ecc4040}.btn--primary:hover{background:var(--green-bright);color:#000;transform:translateY(-2px);box-shadow:0 4px 30px #2ecc4066}.btn--outline{color:var(--text);border:1.5px solid var(--border);background:0 0}.btn--outline:hover{border-color:var(--green);color:var(--green);box-shadow:0 0 15px #2ecc401a}.section{padding:clamp(3.5rem,8vw,5.5rem) 0;scroll-margin-top:80px}.section__header{margin-bottom:2.5rem}.section__label{letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:.6rem;font-size:.72rem;font-weight:700;display:inline-block}.section__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:clamp(1.6rem,4vw,2.25rem);font-weight:600;line-height:1.2}.section+.section{border-top:1px solid var(--border)}.about__text p{color:var(--text-muted);max-width:650px;margin-bottom:1rem;line-height:1.75}.focus-chips{flex-wrap:wrap;gap:.5rem;margin-top:1.75rem;display:flex}.focus-chip{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);padding:.45rem .9rem;font-size:.82rem;font-weight:500;transition:border-color .2s,color .2s}.focus-chip:hover{border-color:var(--green);color:var(--green)}.exp-list{flex-direction:column;gap:1rem;display:flex}.exp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:border-color .25s,box-shadow .25s,background .25s}.exp-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);box-shadow:var(--shadow-glow)}.exp-card__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.85rem;display:flex}.exp-card__role{color:var(--text);font-size:1.05rem;font-weight:600}.exp-card__company{color:var(--text-muted);margin-top:.15rem;font-size:.88rem}.exp-card__period{color:var(--green);white-space:nowrap;background:var(--green-glow);border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:600}.exp-card__bullets{margin:0;padding-left:1.1rem}.exp-card__bullets li{color:var(--text-muted);margin-bottom:.4rem;font-size:.9rem;line-height:1.55}.projects-grid{grid-template-columns:1fr;gap:1rem;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.35rem;transition:all .3s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(135deg, var(--green-glow) 0%, transparent 50%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.project-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow), var(--shadow-glow);transform:translateY(-3px)}.project-card:hover:before{opacity:1}.project-card__top{z-index:1;justify-content:space-between;align-items:flex-start;gap:.6rem;margin-bottom:.6rem;display:flex;position:relative}.project-card__name{color:var(--text);align-items:center;gap:.4rem;font-size:1rem;font-weight:600;display:flex}.project-card__emoji{font-size:1.15rem;line-height:1}.project-card__domain{text-transform:uppercase;letter-spacing:.06em;color:var(--green);background:var(--green-glow);white-space:nowrap;border:1px solid #2ecc4026;border-radius:4px;flex-shrink:0;padding:.2rem .55rem;font-size:.65rem;font-weight:700}.project-card__blurb{color:var(--text-muted);z-index:1;flex-grow:1;margin-bottom:.85rem;font-size:.84rem;line-height:1.55;position:relative}.project-card__stack{z-index:1;flex-wrap:wrap;gap:.3rem;margin-top:auto;display:flex;position:relative}.stack-tag{border:1px solid var(--border);color:var(--text-dim);background:#ffffff0a;border-radius:5px;padding:.2rem .5rem;font-size:.68rem;font-weight:500;transition:color .2s,border-color .2s}.project-card:hover .stack-tag{color:var(--text-muted);border-color:#2ecc4026}.skills-section{background:linear-gradient(180deg, #2ecc4008 0%, var(--bg) 100%);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:clamp(3.5rem,8vw,5.5rem) 0;scroll-margin-top:80px}.skills-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.15rem 1.25rem;transition:border-color .2s}.skill-card:hover{border-color:var(--border-hover)}.skill-card__label{text-transform:uppercase;letter-spacing:.1em;color:var(--green);margin-bottom:.5rem;font-size:.72rem;font-weight:700}.skill-card__items{color:var(--text-muted);font-size:.86rem;line-height:1.65}.contact__info{flex-direction:column;gap:1.25rem;display:flex}.contact__row{flex-wrap:wrap;gap:.65rem;display:flex}.contact__link{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);align-items:center;gap:.4rem;padding:.6rem 1.15rem;font-size:.88rem;font-weight:500;transition:all .2s;display:inline-flex}.contact__link:hover{border-color:var(--green);color:var(--green);box-shadow:0 0 15px #2ecc401a}.footer{border-top:1px solid var(--border);text-align:center;color:var(--text-dim);margin-top:auto;padding:2.5rem 0;font-size:.82rem}@media (width>=550px){:root{--gutter:1.75rem}.projects-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){:root{--gutter:2.5rem}.projects-grid,.skills-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1100px){.skills-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=768px){.header__toggle{display:block}.header__nav{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:2rem var(--gutter);opacity:0;pointer-events:none;z-index:99;background:#0a0a0af7;flex-direction:column;align-items:stretch;gap:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s;position:fixed;inset:68px 0 0;transform:translate(100%)}.header__nav.open{opacity:1;pointer-events:all;transform:translate(0)}.header__nav a{border-bottom:1px solid var(--border);padding:1rem 0;font-size:1.15rem}.header__nav a:after{display:none}.header__nav a:last-child{border-bottom:none}.header__nav .header__cta{text-align:center;justify-content:center;margin-top:1.5rem;padding:.85rem;font-size:1rem}}@media (width>=769px){.header__toggle{display:none}}
