*{-webkit-user-select:none;user-select:none}#navbar{justify-content:space-between;align-items:center;padding:2rem 6rem;border-bottom:1px solid var(--border);background:var(--bg-translucent-nav);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.navbar__logo{font-family:var(--font-mono);font-size:1.7rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:.6rem;text-decoration:none}.navbar__logo__path{color:var(--accent)}.navbar__logo__sigil{color:var(--text-muted)}.navbar__links{gap:2.4rem}.navbar__links__link{font-family:var(--font-mono);font-size:1.4rem;color:var(--text-muted);padding:.6rem 0;border-bottom:2px solid transparent;text-decoration:none;transition:color .18s ease,border-color .18s ease}.navbar__links__link:hover{color:var(--accent-soft)}.navbar__links__link.active{color:var(--accent);border-bottom-color:var(--accent)}.navbar__logo:focus-visible,.navbar__links__link:focus-visible{outline:2px solid var(--accent-soft);outline-offset:4px}@media screen and (max-width: 700px){#navbar{flex-direction:column;gap:1.6rem;padding:1.6rem 2rem}.navbar__links{gap:1.6rem}}.prompt{font-family:var(--font-mono);font-size:1.3rem;color:var(--accent);letter-spacing:.08em;display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;overflow:hidden}.prompt__sigil{opacity:.7}.prompt__command{display:inline-block;overflow:hidden;white-space:nowrap}.cursor{display:inline-block;width:1rem;height:4rem;background:var(--accent);animation:blink 1.1s steps(2,start) infinite}@keyframes blink{50%{opacity:0}}.btn{font-family:var(--font-sans);font-size:1.4rem;font-weight:600;padding:1.1rem 2rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.btn:hover{transform:translateY(-2px)}.btn:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.btn--solid{background:var(--accent);color:var(--bg)}.btn--solid:hover{box-shadow:0 6px 24px var(--accent-glow)}.btn--ghost{background:transparent;color:var(--accent);border-color:var(--border-bright)}.btn--ghost:hover{background:var(--accent-dim);border-color:var(--accent)}.chip{font-family:var(--font-mono);font-size:1.2rem;color:var(--accent-soft);background:var(--accent-dim);border:1px solid var(--border-bright);border-radius:var(--radius);padding:.5rem 1rem;white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.card:hover{border-color:var(--border-bright);transform:translateY(-3px);box-shadow:var(--shadow-card)}button.card{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0;text-align:left;font:inherit;color:inherit}button.card:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.section-header{margin:6rem 0 3rem}.section-header__title{font-size:3.2rem;font-weight:800;letter-spacing:-.02em;color:var(--text);margin:.8rem 0 1.2rem}.section-header__rule{height:1px;background:linear-gradient(90deg,var(--accent),transparent)}.reveal-phone{font-family:var(--font-mono);font-size:1.4rem;color:var(--accent);background:transparent;border:1px dashed var(--border-bright);border-radius:var(--radius);padding:.6rem 1.2rem;cursor:pointer;text-decoration:none}.reveal-phone:hover{background:var(--accent-dim)}.reveal-phone--shown{border-style:solid;cursor:text}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.hero{display:grid;grid-template-columns:1fr 1.4fr;gap:6rem;padding:8rem 6rem;align-items:center;max-width:1400px;margin:0 auto}.window{border:1px solid var(--border-bright);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-window)}.window__bar{display:flex;align-items:center;gap:.8rem;padding:1rem 1.4rem;background:var(--surface-2);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:1.1rem;color:var(--text-faint)}.window__dot{width:1rem;height:1rem;border-radius:50%}.window__bar img,.window img{width:100%;display:block}.hero__wordmark{font-size:5.2rem;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:1.2rem 0 .8rem;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.hero__wordmark__first{color:var(--text)}.hero__wordmark__last{color:var(--accent);font-weight:400}.hero__role{font-family:var(--font-mono);font-size:1.4rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase}.hero__bio{font-size:1.7rem;line-height:1.7;color:var(--text-muted);max-width:58ch;margin:2.4rem 0}.hero__ctas{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:3.6rem}.hero__links{display:flex;gap:2rem;margin:1.2rem 0 3rem}.hero__links a{display:inline-flex;line-height:0}.hero__links a:focus-visible{outline:2px solid var(--accent-soft);outline-offset:4px;border-radius:var(--radius)}.hero__links img{width:3rem;height:3rem;transition:transform .18s ease,filter .18s ease}.hero__links a:hover img{transform:translateY(-3px);filter:drop-shadow(0 4px 12px var(--accent-glow))}.hero__contact{display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start;font-family:var(--font-mono);font-size:1.4rem}.hero__contact a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--border-bright)}.hero__contact a:hover{color:var(--accent)}@media screen and (max-width: 900px){.hero{grid-template-columns:1fr;padding:4rem 2.4rem;gap:4rem}.hero__wordmark{font-size:3.6rem}}.page{max-width:1300px;margin:0 auto;padding:2rem 6rem 8rem;width:100%}.skill-groups{display:flex;flex-direction:column;gap:2.4rem}.skill-group{display:grid;grid-template-columns:10rem 1fr;gap:2rem;align-items:start}.skill-group__key{font-family:var(--font-mono);font-size:1.4rem;color:var(--accent);padding-top:.6rem}.skill-group__chips{display:flex;flex-wrap:wrap;gap:.8rem}.skill-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(38rem,1fr));gap:2rem}.skill-block{display:flex;gap:1.6rem;padding:2.4rem;height:100%}.skill-block__icon{width:3.2rem;height:3.2rem;fill:var(--accent);flex-shrink:0}.skill-block__title{font-size:1.8rem;color:var(--text);margin:0 0 .8rem}.skill-block__desc{font-size:1.4rem;line-height:1.7;color:var(--text-muted);margin:0}@media screen and (max-width: 800px){.page{padding:2rem 2.4rem 6rem}.skill-group{grid-template-columns:1fr;gap:1rem}}.projects__filters{display:flex;gap:1.6rem;flex-wrap:wrap;margin-bottom:3.2rem}.projects__filter{font-family:var(--font-mono);font-size:1.3rem;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1.4rem;cursor:pointer;transition:all .18s ease}.projects__filter:hover{color:var(--accent-soft);border-color:var(--border-bright)}.projects__filter--active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.projects__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(34rem,1fr));gap:2.4rem}.project-card{overflow:hidden;cursor:pointer;display:flex;flex-direction:column}.project-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--surface-2)}.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,filter .3s ease}.project-card:hover .project-card__media img{transform:scale(1.05);filter:brightness(.4)}.project-card__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease;font-family:var(--font-mono);font-size:1.3rem;color:var(--accent)}.project-card:hover .project-card__overlay{opacity:1}.project-card__tag{position:absolute;top:1rem;right:1rem;font-family:var(--font-mono);font-size:1.1rem;padding:.4rem .8rem;border-radius:var(--radius);background:var(--bg-translucent);border:1px solid var(--border-bright);color:var(--accent-soft);z-index:2}.project-card__body{padding:1.8rem;display:flex;flex-direction:column;gap:1.2rem;flex-grow:1}.project-card__name{font-size:1.8rem;font-weight:700;color:var(--text);margin:0;display:flex;align-items:center;gap:1rem}.project-card__name img{height:2.4rem;max-width:6rem;object-fit:contain}.project-card__chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto}@media screen and (max-width: 800px){.projects__list{grid-template-columns:1fr}}.page__lede{font-size:1.6rem;line-height:1.7;color:var(--text-muted);max-width:60ch;margin:-1.6rem 0 3.2rem}.lightbox-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:3rem;background:var(--overlay-scrim)}.lightbox{position:relative;width:100%;max-width:108rem;max-height:90vh;display:grid;grid-template-columns:3fr 2fr;background:var(--surface);border:1px solid var(--border-bright);border-radius:var(--radius-lg);box-shadow:var(--shadow-window);overflow:hidden}.lightbox__close{position:absolute;top:1.2rem;right:1.2rem;z-index:2;width:3.6rem;height:3.6rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-bright);background:var(--overlay-icon-bg);color:var(--text);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.lightbox__close:hover{border-color:var(--accent);color:var(--accent-soft);background:var(--accent-dim)}.lightbox__close:focus-visible,.lightbox__nav:focus-visible,.lightbox__thumb:focus-visible,.lightbox__link:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}.lightbox__gallery{display:flex;flex-direction:column;gap:1.2rem;padding:2.4rem;background:var(--surface-2);min-width:0}.lightbox__stage{position:relative;flex:1;min-height:28rem;display:flex;align-items:center;justify-content:center}.lightbox__image{max-width:100%;max-height:60vh;object-fit:contain;border-radius:var(--radius);background:var(--bg)}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-bright);background:var(--overlay-icon-bg);color:var(--text);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.lightbox__nav:hover{border-color:var(--accent);color:var(--accent-soft);background:var(--accent-dim)}.lightbox__nav--prev{left:.5rem}.lightbox__nav--next{right:.5rem}.lightbox__counter{align-self:center;font-family:var(--font-mono);font-size:1.3rem;letter-spacing:.08em;color:var(--text-muted)}.lightbox__thumbs{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:.2rem}.lightbox__thumb{flex:0 0 auto;width:7rem;height:5rem;padding:0;border-radius:var(--radius);border:2px solid transparent;overflow:hidden;background:var(--surface);cursor:pointer}.lightbox__thumb img{display:block;width:100%;height:100%;object-fit:cover}.lightbox__thumb:hover{border-color:var(--border-bright)}.lightbox__thumb--active{border-color:var(--accent)}.lightbox__info{display:flex;flex-direction:column;gap:1.6rem;padding:3rem;overflow-y:auto;min-width:0}.lightbox__title{margin:0;font-size:2.6rem;font-weight:800;color:var(--text)}.lightbox__tags{display:flex;flex-wrap:wrap;gap:.8rem}.lightbox__description{margin:0;font-size:1.4rem;line-height:1.7;color:var(--text-muted);white-space:pre-line}.lightbox__links{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:auto}.lightbox__link{display:inline-flex;align-items:center;gap:.8rem;padding:.9rem 1.4rem;border-radius:var(--radius);border:1px solid var(--border-bright);background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:1.3rem;font-weight:600;text-decoration:none;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.lightbox__link:hover{border-color:var(--accent);color:var(--accent-soft);background:var(--accent-dim)}.lightbox__link__icon{width:2.4rem;height:2.4rem;object-fit:contain}@media screen and (max-width: 800px){.lightbox-overlay{padding:1.2rem}.lightbox{grid-template-columns:1fr;max-height:92vh;overflow-y:auto}.lightbox__info{padding:2rem}}.jobs{display:grid;grid-template-columns:1fr 3fr;min-height:44rem;width:100%;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}@media screen and (max-width: 1000px){.jobs{grid-template-columns:1fr 2fr}}@media (max-width: 768px){.jobs{grid-template-columns:1fr;min-height:auto}}.jobs__rail{display:flex;flex-direction:column;background-color:var(--surface-2);border-right:1px solid var(--border);height:100%;overflow-y:auto}.jobs__rail__item{display:flex;gap:1.6rem;align-items:center;padding:2rem 2.4rem;cursor:pointer;position:relative;background:transparent;border:none;border-left:3px solid transparent;text-align:left;font-family:var(--font-sans);transition:background-color .2s ease,border-color .2s ease}.jobs__rail__item__logo{flex-shrink:0;width:6rem;height:4.2rem;background-color:var(--text);border-radius:var(--radius);padding:0 .6rem}.jobs__rail__item__logo img{width:100%;height:100%;object-fit:contain}.jobs__rail__item__title{font-size:1.5rem;font-weight:700;color:var(--text-muted);transition:color .2s ease}.jobs__rail__item__underline{width:3px;height:100%;position:absolute;left:0;top:0;background-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.jobs__rail__item:hover,.jobs__rail__item--active{background-color:var(--accent-dim)}.jobs__rail__item--active .jobs__rail__item__title{color:var(--accent)}.jobs__detail__content{display:flex;flex-direction:column;padding:3.2rem;gap:2rem}.jobs__detail__content__title{font-size:2.4rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:1rem}.jobs__detail__content__title__link{width:1.8rem;height:1.8rem;fill:var(--text-muted)}.jobs__detail__meta{display:flex;gap:2.4rem;align-items:center}.jobs__detail__meta__rail{width:1px;height:6rem;background-color:var(--accent);position:relative}.jobs__detail__meta__rail:after{content:"";width:1.2rem;height:1.2rem;background-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);border-radius:50%;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.jobs__detail__meta__info{display:flex;flex-direction:column;gap:.8rem}.jobs__detail__meta__role{font-size:1.7rem;font-weight:700;color:var(--text)}.jobs__detail__meta__date{display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:1.3rem;color:var(--accent)}.jobs__detail__meta__date__icon{width:1.4rem;height:1.4rem;fill:var(--accent)}.jobs__detail__bullets{display:flex;flex-direction:column;gap:1.2rem}.jobs__detail__bullets__item{font-size:1.5rem;line-height:1.6;font-weight:400;color:var(--text-muted);position:relative;padding-left:1.8rem}.jobs__detail__bullets__item:before{content:"";width:.5rem;height:.5rem;background-color:var(--accent);border-radius:50%;position:absolute;left:0;top:.7rem}.education-list{display:flex;flex-direction:column;gap:1.6rem}.education-card{display:flex;gap:2rem;padding:2.4rem;align-items:flex-start}.education-card__icon{width:3.2rem;height:3.2rem;fill:var(--accent);flex-shrink:0}.education-card__body{display:flex;flex-direction:column;gap:.8rem;width:100%}.education-card__header{display:flex;align-items:center;justify-content:space-between;gap:1.6rem;flex-wrap:wrap}.education-card__title{font-size:1.8rem;font-weight:700;color:var(--text);margin:0}.education-card__subtitle{font-size:1.4rem;line-height:1.6;color:var(--text-muted);margin:0}.education-card__location{display:flex;align-items:center;gap:.6rem;font-size:1.3rem;color:var(--text-faint)}.education-card__location__icon{width:1.4rem;height:1.4rem;fill:var(--text-faint)}.certificate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(26rem,1fr));gap:2rem}.certificate-card{overflow:hidden;cursor:pointer;display:flex;flex-direction:column}.certificate-card__media{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}.certificate-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.certificate-card:hover .certificate-card__media img{transform:scale(1.05)}.certificate-card__body{padding:1.6rem;display:flex;flex-direction:column;gap:1.2rem;flex-grow:1}.certificate-card__title{font-size:1.5rem;font-weight:700;color:var(--text);margin:0;line-height:1.4}@media screen and (max-width: 800px){.certificate-grid{grid-template-columns:1fr}}#root .bg-video,.bg-video{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.bg-video video{width:100%;height:100%;object-fit:cover}.bg-video:after{content:"";position:absolute;inset:0;background:var(--bg-translucent)}@media (prefers-reduced-motion: reduce){.bg-video{display:none}}:root{--bg: #0a0e0a;--surface: #111a11;--surface-2: #162116;--border: #1e2b1e;--border-bright: #2f4a2f;--accent: #22c55e;--accent-soft: #86efac;--accent-dim: rgba(34, 197, 94, .12);--accent-glow: rgba(34, 197, 94, .28);--bg-translucent: rgba(10, 14, 10, .85);--bg-translucent-nav: rgba(10, 14, 10, .75);--text: #e2e8f0;--text-muted: #94a3b8;--text-faint: #64748b;--shadow-card: 0 12px 32px rgba(0, 0, 0, .45);--shadow-window: 0 24px 60px rgba(0, 0, 0, .5);--overlay-scrim: rgba(5, 8, 5, .82);--overlay-icon-bg: rgba(10, 14, 10, .65);--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--radius: 6px;--radius-lg: 12px}.flex{display:flex}.hide{display:none}.clickablelink{cursor:pointer;-webkit-user-select:none;user-select:none}.clickablelink:active{scale:.95}.flex-column{flex-direction:column}.grid-bg{background-image:linear-gradient(var(--accent-dim) 1px,transparent 1px),linear-gradient(90deg,var(--accent-dim) 1px,transparent 1px);background-size:22px 22px}*,*:before,*:after{box-sizing:border-box}html{font-size:62.5%}body{font-family:var(--font-sans);margin:0;background-color:var(--bg);color:var(--text)}#root{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg);position:relative;overflow-x:hidden}#root:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(var(--accent-dim) 1px,transparent 1px),linear-gradient(90deg,var(--accent-dim) 1px,transparent 1px);background-size:44px 44px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 40%,transparent 100%)}#root:after{content:"";position:fixed;top:-20vh;left:50%;width:70vw;height:60vh;transform:translate(-50%);pointer-events:none;z-index:0;background:radial-gradient(circle,var(--accent-glow),transparent 65%);filter:blur(90px);opacity:.5}#root>*{position:relative;z-index:1}@media screen and (max-width: 1200px){html{font-size:55%}}
