:root{--bg: #050816;--bg-alt: #080b24;--fg: #e5e7eb;--muted: #9ca3af;--accent: #38bdf8;--border: #1f2933}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif;background:radial-gradient(circle at top,#111827 0,#020617 60%);background-attachment:fixed;background-repeat:no-repeat;background-size:cover;min-height:100vh;display:block;width:100%;color:var(--fg)}.app{min-height:100vh}.section{padding:4.5rem 1.5rem}.section.alt{background:transparent}.section.alt .section-inner{position:relative;border-radius:1.5rem;padding:2rem clamp(1.5rem,4vw,2.5rem);background:radial-gradient(circle at top left,rgba(56,189,248,.12),transparent 55%),radial-gradient(circle at bottom right,rgba(56,189,248,.05),transparent 55%),#080b24fa;border:1px solid rgba(148,163,184,.3);box-shadow:0 22px 45px #020617d9;overflow:hidden}.section.alt:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at top center,rgba(56,189,248,.08),transparent 60%);opacity:.8}.section.alt .section-title{letter-spacing:.08em;text-transform:uppercase;font-size:1.1rem;margin-bottom:.35rem}.section.alt .section-intro{max-width:640px}.section-inner{max-width:960px;margin:0 auto}.section-title{font-size:1.8rem;margin:0 0 .5rem}.section-intro{margin:0 0 2rem;color:var(--muted);max-width:540px;line-height:1.6}@media(max-width:768px){.section{padding-inline:1rem}.section.alt .section-inner{padding:1.6rem 1.2rem;border-radius:1.2rem}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.2rem;border-radius:999px;font-size:.9rem;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,transform .1s ease,box-shadow .1s ease,border-color .15s ease}.btn.primary{background:var(--accent);color:#020617;box-shadow:0 0 24px #38bdf866}.btn.primary:hover{transform:translateY(-1px);box-shadow:0 0 32px #38bdf88c}.btn.secondary{background:transparent;color:var(--fg);border-color:#94a3b880}.btn.secondary:hover{border-color:var(--accent)}.contact-submit{align-self:flex-start;margin-top:.25rem}.link{font-size:.85rem;text-decoration:none;color:var(--accent);position:relative}.link:after{content:"";position:absolute;left:0;bottom:-.15rem;width:0;height:1px;background:var(--accent);transition:width .15s ease}.link:hover:after{width:100%}.navbar{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#020617cc;border-bottom:1px solid rgba(15,23,42,.8)}.navbar-inner{width:100%;padding:.75rem clamp(1rem,4vw,3.5rem);display:flex;align-items:center;justify-content:space-between}.logo{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;text-decoration:none;color:var(--fg)}.nav-links{display:flex;gap:1.5rem}.nav-link{font-size:.9rem;text-decoration:none;color:var(--muted);transition:color .15s ease,transform .15s ease}.nav-link:hover{color:var(--accent);transform:translateY(-1px)}.lang-switcher{display:flex;align-items:center;gap:.25rem;font-size:.8rem}.lang-btn{background:transparent;border:none;padding:0;cursor:pointer;color:var(--muted);font:inherit;transition:color .15s ease}.lang-btn:focus{outline:none}.lang-btn:focus-visible{outline:2px solid rgba(56,189,248,.5);outline-offset:2px}.lang-btn.active,.lang-btn:hover{color:var(--accent)}.lang-separator{color:var(--muted)}@media(max-width:768px){.navbar-inner{padding-inline:1rem}}.hero{padding-top:5.5rem}.hero-inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr);gap:2.5rem;align-items:center}.hero-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--accent);margin:0 0 .5rem}.hero-title{font-size:clamp(2.2rem,4vw,3rem);margin:0 0 .75rem}.password-finder-text{display:inline-flex;font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif;font-size:clamp(2.2rem,4vw,3rem);color:var(--fg);white-space:pre-wrap}.password-finder-text.scrambling{color:var(--accent)}.hero-subtitle{margin:0 0 1.5rem;color:var(--muted);line-height:1.6}.hero-actions{display:flex;gap:.75rem}.hero-side{display:flex;justify-content:flex-end}.hero-card{border-radius:1rem;padding:1.2rem 1.3rem;background:radial-gradient(circle at top left,#1e293b,#020617);border:1px solid rgba(148,163,184,.35);box-shadow:0 22px 45px #0f172ae6}.hero-side-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin:0 0 .5rem}.hero-side-text{margin:0;font-size:.95rem;line-height:1.6}@media(max-width:768px){.hero-inner{grid-template-columns:minmax(0,1fr)}.hero-side{justify-content:flex-start}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.project-card{border-radius:1rem;padding:1.2rem 1.3rem;background:#0f172ae6;border:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:scale(1.02);box-shadow:0 20px 35px #02061799}.project-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.project-title{margin:0;font-size:1.05rem}.project-period{font-size:.8rem;color:var(--muted)}.project-description{margin:0;font-size:.9rem;color:var(--muted)}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-size:.75rem;padding:.2rem .5rem;border-radius:999px;background:#0f766e33;border:1px solid rgba(45,212,191,.5)}.project-links{margin-top:.3rem;display:flex;gap:.75rem}.timeline{position:relative;margin-top:1.75rem;padding-left:1.9rem;border-left:none}.timeline:before{content:"";position:absolute;left:.8rem;top:.4rem;bottom:.4rem;width:2px;background:linear-gradient(to bottom,#38bdf8b3,#94a3b84d);opacity:.85}.timeline-item{position:relative;margin-bottom:1.4rem}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;left:.45rem;top:.95rem;width:.8rem;height:.8rem;border-radius:999px;background:var(--accent);box-shadow:0 0 18px #38bdf8b3;border:2px solid rgba(15,23,42,1)}.timeline-content{padding:.9rem 1rem .95rem 1.2rem;margin-left:.3rem;border-radius:1rem;background:#0f172aeb;border:1px solid rgba(51,65,85,.9);box-shadow:0 14px 30px #0f172abf;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.timeline-content:hover{transform:translateY(-2px);box-shadow:0 20px 35px #0f172ae6;border-color:#38bdf880}.timeline-title{margin:0 0 .2rem;font-size:1rem}.timeline-meta{margin:0 0 .45rem;color:var(--muted);font-size:.85rem;letter-spacing:.03em;text-transform:uppercase}.timeline-details{margin:0;padding-left:1rem;color:var(--muted);font-size:.9rem;line-height:1.5}.timeline-details li+li{margin-top:.2rem}@media(max-width:768px){.timeline{padding-left:1.6rem}.timeline:before{left:.7rem}.timeline-dot{left:.35rem}}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:1rem}.contact-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:.3rem}.contact-links{list-style:none;padding:0;margin:0}.contact-links li+li{margin-top:.25rem}.contact-form{margin-top:.25rem;border-radius:1rem;padding:1rem 1.1rem;background:#0f172ae6;border:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.8rem;color:var(--muted)}.field-input,.field-textarea{border-radius:.6rem;border:1px solid rgba(75,85,99,.8);background:#0f172ae6;padding:.55rem .7rem;font-size:.9rem;color:var(--fg);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.field-input::placeholder,.field-textarea::placeholder{color:#94a3b8b3}.field-input:focus,.field-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px #38bdf866;background:#0f172af2}.field-textarea{resize:vertical;min-height:120px}.contact-status{margin-top:.5rem;font-size:.8rem}.contact-status--success{color:#bbf7d0}.contact-status--error{color:#fecaca}.cert-slider{margin-top:1.5rem;display:flex;align-items:stretch;gap:.9rem}.cert-viewport{flex:1;min-height:clamp(320px,65vh,520px)}.cert-item-large{height:100%;display:flex;flex-direction:column}.cert-preview{margin-top:.75rem;border-radius:.9rem;overflow:hidden;border:1px solid var(--border);background:#020617;display:flex;align-items:center;justify-content:center;padding:.4rem}.cert-image{width:100%;max-height:clamp(280px,60vh,520px);border-radius:.6rem;object-fit:contain}.cert-link{margin-top:.9rem;align-self:flex-start}.cert-nav{width:2.4rem;height:2.4rem;border-radius:999px;border:1px solid rgba(51,65,85,.9);background:#0f172af2;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .1s ease,color .15s ease}.cert-nav:focus{outline:none}.cert-nav:focus-visible{outline:2px solid rgba(56,189,248,.45);outline-offset:3px}.cert-nav:hover{background:#0f172a;border-color:#38bdf8b3;color:var(--accent);transform:translateY(-1px);box-shadow:0 0 18px #38bdf866}.cert-index{font-size:.8rem;color:var(--muted)}.cert-dots{margin-top:.9rem;display:flex;justify-content:center;gap:.35rem}.cert-dot-btn{width:7px;height:7px;border-radius:999px;border:none;background:#94a3b873;cursor:pointer;padding:0;transition:transform .15s ease,background .15s ease}.cert-dot-btn.active{background:var(--accent);transform:scale(1.3)}@media(max-width:768px){.cert-slider{flex-direction:column;align-items:stretch}.cert-nav{align-self:center}.cert-image{max-height:320px}}
