@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Oswald:wght@400;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}.dark{--bg:#0a0a0a;--bg-alt:#111;--text:#f0f0f0;--muted:#888;--border:#2a2a2a;--red:#e63946;--green:#2dc653;--card-bg:#141414}html{scroll-behavior:smooth}body{overflow-x:hidden}.app{background:var(--bg);color:var(--text);min-height:100vh;font-family:Share Tech Mono,monospace;font-size:14px;line-height:1.6;position:relative}.scanlines{pointer-events:none;z-index:999;background:repeating-linear-gradient(#0000 0 3px,#0000000a 3px 4px);position:fixed;inset:0}.side-banner{z-index:50;pointer-events:none;border:none;flex-direction:column;align-items:center;gap:0;width:40px;display:flex;position:fixed;top:0;bottom:0;overflow:hidden}.side-banner--left{border-right:1px solid var(--border);left:0}.side-banner--right{border-left:1px solid var(--border);right:0}.side-icon{width:40px;height:40px;color:var(--border);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;transition:color .3s;display:flex}.side-banner--left .side-icon:nth-child(3n){color:var(--green);opacity:.4}.side-banner--left .side-icon:nth-child(5n){color:var(--red);opacity:.3}.side-banner--right .side-icon:nth-child(4n){color:var(--green);opacity:.4}.side-banner--right .side-icon:nth-child(7n){color:var(--red);opacity:.3}.nav{z-index:100;background:var(--bg);border-bottom:1px solid var(--green);border-left:1px solid var(--border);border-right:1px solid var(--border);align-items:center;gap:2rem;padding:1rem 2rem;display:flex;position:fixed;top:0;left:40px;right:40px}.nav__logo{cursor:pointer;color:var(--green);letter-spacing:2px;white-space:nowrap;font-family:Oswald,sans-serif;font-size:1.2rem;font-weight:700}.pixel-bracket{color:var(--red)}.nav__links{flex:1;gap:1.5rem;list-style:none;display:flex}.nav__links button{color:var(--muted);cursor:pointer;letter-spacing:1px;background:0 0;border:none;padding:0;font-family:Share Tech Mono,monospace;font-size:.78rem;transition:color .15s}.nav__links button:hover{color:var(--green)}.lang-switcher{gap:2px;display:flex}.lang-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;letter-spacing:1px;background:0 0;padding:.25rem .5rem;font-family:Share Tech Mono,monospace;font-size:.7rem;transition:all .15s}.lang-btn:hover{border-color:var(--green);color:var(--green)}.lang-btn.active{background:var(--green);color:#000;border-color:var(--green)}.hero{align-items:center;gap:4rem;max-width:900px;min-height:100vh;margin:0 auto;padding:8rem 2rem 4rem;display:flex}.hero__left{flex-direction:column;flex-shrink:0;align-items:center;gap:1rem;display:flex}.hero__avatar{border:2px solid var(--green);width:140px;height:140px;color:var(--green);padding:1rem}.hero__avatar svg{width:100%;height:100%}.hero__status{color:var(--green);letter-spacing:1px;text-align:center;align-items:center;gap:.5rem;font-size:.62rem;display:flex}.status-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero__tag{color:var(--red);letter-spacing:1px;margin-bottom:.5rem;font-size:.8rem}.hero__name{letter-spacing:-1px;margin-bottom:.4rem;font-family:Oswald,sans-serif;font-size:clamp(3rem,8vw,6rem);font-weight:700;line-height:.95}.hero__name span{color:var(--red)}.hero__role{color:var(--muted);letter-spacing:1px;margin-bottom:1rem;font-size:.8rem}.hero__divider{background:var(--green);width:60px;height:3px;margin-bottom:1.25rem}.hero__desc{color:var(--muted);max-width:480px;margin-bottom:1rem;font-size:.85rem;line-height:1.8}.hero__contacts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:.72rem;display:flex}.sep{color:var(--red)}.hero__ctas{flex-wrap:wrap;gap:1rem;display:flex}.btn{cursor:pointer;letter-spacing:1px;border:none;padding:.65rem 1.5rem;font-family:Share Tech Mono,monospace;font-size:.8rem;text-decoration:none;transition:all .15s;display:inline-block}.btn--primary{background:var(--green);color:#000}.btn--primary:hover{background:var(--red)}.btn--outline{color:var(--text);border:1px solid var(--border);background:0 0}.btn--outline:hover{border-color:var(--red);color:var(--red)}.btn:disabled{opacity:.5;cursor:not-allowed}.section{padding:5rem 2rem}.section--alt{background:var(--bg-alt)}.section__inner{max-width:900px;margin:0 auto}.section__title{letter-spacing:2px;border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding-bottom:1rem;font-family:Oswald,sans-serif;font-size:2rem;font-weight:700}.section__hint{color:var(--muted);margin-top:-2rem;margin-bottom:2rem;font-size:.78rem}.skills__grid{border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;display:grid}.skill-card{background:var(--card-bg);border-right:1px solid var(--border);padding:1.5rem}.skill-card:last-child{border-right:none}.skill-card__header{color:var(--green);letter-spacing:2px;border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.5rem;font-size:.7rem}.skill-card ul{flex-direction:column;gap:.4rem;list-style:none;display:flex}.skill-card li{color:var(--muted);font-size:.82rem}.arr{color:var(--red);margin-right:.3rem}.cert-banner{border:1px solid var(--green);color:var(--green);letter-spacing:.5px;align-items:center;gap:1rem;margin-top:1.5rem;padding:.85rem 1.25rem;font-size:.78rem;display:flex}.cert-icon{flex-shrink:0;font-size:1rem}.projects__grid{border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;display:grid}.project-card{background:var(--card-bg);color:var(--text);border-right:1px solid var(--border);cursor:default;flex-direction:column;transition:background .15s;display:flex}.project-card--clickable{cursor:pointer}.project-card:last-child{border-right:none}.project-card:hover{background:var(--bg-alt)}.project-card__img{aspect-ratio:16/9;border-bottom:1px solid var(--border);width:100%;position:relative;overflow:hidden}.project-card__img img{object-fit:cover;width:100%;height:100%}.project-card__placeholder{background:var(--bg);width:100%;height:100%;color:var(--muted);letter-spacing:1px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;font-size:.75rem;display:flex}.placeholder-hint{color:var(--border);font-size:.65rem}.project-card__count{color:var(--green);border:1px solid var(--green);background:#000000b3;padding:.2rem .5rem;font-size:.65rem;position:absolute;bottom:.5rem;right:.5rem}.project-card__body{flex-direction:column;flex:1;gap:.5rem;padding:1.25rem;display:flex}.project-card__body h3{letter-spacing:1px;font-family:Oswald,sans-serif;font-size:1rem;font-weight:600}.project-card__body p{color:var(--muted);flex:1;font-size:.78rem;line-height:1.6}.project-card__tags{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.project-card__tags span{border:1px solid var(--border);color:var(--muted);padding:.15rem .5rem;font-size:.65rem}.project-card__link{color:var(--green);letter-spacing:1px;margin-top:.75rem;font-size:.72rem;text-decoration:none;transition:color .15s;display:inline-block}.project-card__link:hover{color:var(--red)}.lightbox{z-index:1000;background:#000000f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lb__img{object-fit:contain;border:1px solid var(--border);max-width:90vw;max-height:85vh}.lb__close{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;width:36px;height:36px;font-family:Share Tech Mono,monospace;font-size:1rem;transition:all .15s;position:absolute;top:1.5rem;right:2rem}.lb__close:hover{border-color:var(--red);color:var(--red)}.lb__prev,.lb__next{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;width:44px;height:44px;font-family:Share Tech Mono,monospace;font-size:1.5rem;transition:all .15s;position:absolute;top:50%;transform:translateY(-50%)}.lb__prev{left:2rem}.lb__next{right:2rem}.lb__prev:hover,.lb__next:hover{border-color:var(--green);color:var(--green)}.lb__counter{color:var(--muted);letter-spacing:2px;font-size:.75rem;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes trainPuff{0%{transform:translate(0)}50%{transform:translate(6px)}to{transform:translate(0)}}@keyframes typewriter{0%{width:0}to{width:100%}}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.reveal.revealed{opacity:1;transform:translateY(0)}.hero__content-wrap{animation:.7s both fadeUp}.hero__left{animation:.6s .1s both fadeIn}.hero__right{animation:.7s .2s both slideRight}.hero__name{animation:.6s .3s both fadeUp}.hero__desc{animation:.6s .4s both fadeUp}.hero__ctas{animation:.6s .5s both fadeUp}.train{padding-left:3.5rem;position:relative}.train__track{background:repeating-linear-gradient(to bottom, var(--green) 0px, var(--green) 10px, transparent 10px, transparent 18px);border-radius:2px;width:4px;position:absolute;top:8px;bottom:60px;left:1.35rem}.train__station{align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex;position:relative}.station__connector{background:var(--green);width:1.8rem;height:2px;position:absolute;top:.7rem;left:-2.1rem}.station--future .station__connector{background:var(--border);border-top:2px dashed var(--border);background:0 0}.station__node{color:var(--green);background:var(--bg);z-index:1;padding:0 3px;font-size:1.1rem;line-height:1;position:absolute;top:.25rem;left:-2.6rem}.station--future .station__node{color:var(--red)}.station__card{background:var(--card-bg);border:1px solid var(--border);border-left:4px solid var(--green);flex:1;padding:1.1rem 1.25rem;transition:transform .2s,border-color .2s;position:relative;overflow:hidden}.station__card:hover{border-color:var(--green);transform:translate(4px)}.station--future .station__card{border-left-color:var(--red);background:#e6394608;border-style:dashed}.station--future .station__card:hover{border-color:var(--red)}.station__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.station__year{color:var(--red);letter-spacing:1px;font-size:.7rem}.station__check{color:var(--green);letter-spacing:1px;border:1px solid var(--green);padding:.1rem .4rem;font-size:.62rem}.station__badge{color:var(--red);border:1px solid var(--red);letter-spacing:1px;padding:.1rem .4rem;font-size:.62rem}.blink{animation:1.5s infinite blink}.station__card h3{letter-spacing:1px;margin-bottom:.3rem;font-family:Oswald,sans-serif;font-size:1rem;font-weight:600}.station__place{color:var(--green);align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.75rem;display:flex}.station--future .station__place{color:var(--muted)}.station__icon{font-size:.9rem}.station__desc{color:var(--muted);font-size:.78rem;line-height:1.6}.station__stamp{color:var(--green);opacity:.2;letter-spacing:3px;font-family:Oswald,sans-serif;font-size:.6rem;font-weight:700;position:absolute;bottom:.6rem;right:.75rem;transform:rotate(-8deg)}.station__unis{flex-direction:column;gap:2px;margin:.75rem 0;display:flex}.uni-link{border:1px solid var(--border);background:var(--bg);align-items:center;gap:.75rem;padding:.5rem .75rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.uni-link:hover{border-color:var(--green);background:#2dc6530d}.uni-link__name{color:var(--text);letter-spacing:1px;min-width:90px;font-family:Oswald,sans-serif;font-size:.85rem;font-weight:600}.uni-link__sub{color:var(--muted);flex:1;font-size:.72rem}.uni-link__arr{color:var(--border);font-size:.8rem;transition:color .15s}.uni-link:hover .uni-link__arr{color:var(--green)}.train__loco{margin-top:.5rem;margin-left:-1rem;font-size:1.8rem;animation:1s infinite trainPuff;display:inline-block}.contact__sub{color:var(--muted);margin-top:-2rem;margin-bottom:2rem;font-size:.8rem}.contact__layout{grid-template-columns:1fr 1.4fr;align-items:start;gap:2.5rem;max-width:900px;display:grid}.contact__links{border:1px solid var(--border);flex-direction:column;gap:0;display:flex}.contact__card{background:var(--card-bg);color:var(--text);border-bottom:1px solid var(--border);grid-template-columns:80px 1fr auto;align-items:center;gap:.75rem;padding:.9rem 1rem;text-decoration:none;transition:background .15s;display:grid}.contact__card:last-child{border-bottom:none}.contact__card:hover{background:var(--bg)}.contact__card:hover .contact__arr{color:var(--green)}.contact__label{color:var(--green);letter-spacing:1.5px;font-size:.65rem}.contact__val{color:var(--muted);word-break:break-all;font-size:.72rem}.contact__arr{color:var(--border);font-size:.9rem;transition:color .15s}.contact__form{flex-direction:column;gap:1.25rem;display:flex}.form__field{flex-direction:column;gap:.4rem;display:flex}.form__field label{color:var(--green);letter-spacing:2px;font-size:.7rem}.form__field input,.form__field textarea{background:var(--card-bg);border:1px solid var(--border);color:var(--text);resize:vertical;outline:none;padding:.65rem .85rem;font-family:Share Tech Mono,monospace;font-size:.82rem;transition:border-color .15s}.form__field input:focus,.form__field textarea:focus{border-color:var(--green)}.form__field input::placeholder,.form__field textarea::placeholder{color:var(--border)}.form__status{letter-spacing:1px;padding:.65rem 1rem;font-size:.8rem}.form__status--ok{border:1px solid var(--green);color:var(--green)}.form__status--err{border:1px solid var(--red);color:var(--red)}.footer{border-top:1px solid var(--green);color:var(--muted);letter-spacing:1px;justify-content:space-between;padding:1.25rem 2rem;font-size:.7rem;display:flex}@media (width<=900px){.side-banner{display:none}.nav{padding:.8rem 1.5rem;left:0;right:0}.nav__links{display:none}.hero{text-align:center;flex-direction:column;gap:2rem;padding:7rem 1.5rem 3rem}.hero__divider{margin:0 auto 1.25rem}.hero__ctas{justify-content:center}.section{padding:4rem 1.5rem}.skills__grid{grid-template-columns:1fr 1fr}.skill-card{border-right:none;border-bottom:1px solid var(--border)}.projects__grid{grid-template-columns:1fr}.project-card{border-right:none;border-bottom:1px solid var(--border)}.contact__layout{grid-template-columns:1fr;gap:2rem}.footer{flex-direction:column;gap:.5rem;padding:1rem 1.5rem}.lb__prev{left:.5rem}.lb__next{right:.5rem}}
