*{box-sizing:border-box}:root{--bg-main: #020617;--panel-bg: #0b1018;--panel-border: rgba(148, 163, 184, .26);--brand: #38bdf8;--brand-dark: #0ea5e9;--text-main: #e2e8f0;--text-muted: #cbd5e1;--shadow-soft: 0 16px 34px rgba(2, 6, 23, .45);--card-front: #0f172a;--card-back: #1e293b;--card-back-strong: #334155;--particle-cyan: rgba(56, 189, 248, .58);--particle-blue: rgba(14, 165, 233, .5);--particle-ice: rgba(125, 211, 252, .45)}body{margin:0;font-family:Outfit,sans-serif;color:var(--text-main);background:var(--bg-main)}.site-main{display:flex;flex-direction:column;align-items:center}.section{width:min(1200px,calc(100% - 32px));margin:18px auto;padding:100px 28px 46px;border-radius:24px;border:1px solid var(--panel-border);background:var(--panel-bg);box-shadow:var(--shadow-soft);text-align:center;position:relative;overflow:hidden;animation:sectionReveal .9s ease both}.hero{min-height:52vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.panel{min-height:40vh}h1{margin:0 0 18px;font-size:clamp(2rem,4vw,3rem);color:var(--brand-dark)}.hero h1{animation:titleGlow 3.4s ease-in-out infinite alternate}h3{margin:0}p{max-width:980px;margin:0 auto;color:var(--text-muted);line-height:1.7;font-size:1.05rem}.site-header{position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#020617c7;border-bottom:1px solid rgba(148,163,184,.2)}.site-nav ul{list-style:none;margin:0;padding:16px 20px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.site-nav a{position:relative;text-decoration:none;color:#e2e8f0;font-weight:600;font-size:.95rem;padding:8px 12px;border-radius:999px;transition:all .2s ease}.site-nav a:after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;border-radius:999px;background:#7dd3fc;transform:scaleX(0);transform-origin:center;transition:transform .25s ease}.site-nav a:hover,.site-nav a.active{background:#38bdf829;color:#7dd3fc}.site-nav a:hover:after,.site-nav a.active:after{transform:scaleX(1)}.site-footer{text-align:center;padding:24px;color:#94a3b8}.card-container,.article-grid{margin-top:30px;display:flex;flex-wrap:wrap;justify-content:center;gap:22px}.project-grid{margin-top:30px;display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:22px;justify-content:center}.card,.article-item{width:300px;perspective:1000px;margin:8px}.project-item{width:100%;max-width:360px;perspective:1000px;margin:0}.card,.project-item,.article-item{height:auto}.card-inner,.project-card,.article-card{width:100%;height:100%;position:relative;border-radius:16px;box-shadow:0 10px 24px #5827582e;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;transition:filter .25s ease;background:var(--card-back-strong);color:#e2e8f0}.card:hover .card-inner,.project-item:hover .project-card,.article-item:hover .article-card{filter:drop-shadow(0 10px 18px rgba(14,165,233,.25))}.card .card-inner{background:var(--card-back)}a,.button-link{display:inline-block;margin-top:6px;padding:10px 16px;border-radius:8px;border:0;text-decoration:none;background:#38bdf83d;color:#e2e8f0;font-weight:600;transition:background-color .2s ease}.project-card p,.article-card p{margin:0}.project-card strong,.article-card strong{color:#7dd3fc;font-weight:700}.card-back a:hover,.button-link:hover{background:var(--brand-dark);color:#fff}.competences-grid{margin-top:26px;display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.skill-card{width:120px;padding:16px;border-radius:14px;background:#111827;border:1px solid rgba(148,163,184,.24);box-shadow:0 8px 20px #0206175c;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.skill-card:hover{transform:translateY(-6px);border-color:#38bdf880;box-shadow:0 12px 24px #0ea5e933}.e5-card{width:175px;padding:16px;border-radius:14px;background:#111827;border:1px solid rgba(148,163,184,.24);box-shadow:0 8px 20px #0206175c;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.e5-card:hover{transform:translateY(-6px);border-color:#38bdf880;box-shadow:0 12px 24px #0ea5e933}.competence-icon{width:64px;height:64px;object-fit:contain}.timeline{position:relative;width:min(860px,100%);margin:26px auto 0}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:6px;margin-left:-3px;border-radius:999px;background:#38bdf8}.timeline-item{margin:20px 0;padding:14px;background:#111827;border-radius:12px;box-shadow:0 8px 16px #02061757;position:relative;transition:transform .25s ease,box-shadow .25s ease}.timeline-item:hover{transform:translateY(-3px);box-shadow:0 12px 20px #0ea5e929}.timeline-item.left{text-align:right;padding-right:52%}.timeline-item.right{text-align:left;padding-left:52%}.timeline-dot{position:absolute;top:50%;left:50%;width:16px;height:16px;transform:translate(-50%,-50%);background:#0ea5e9;border-radius:50%}.cv-image,.tableau-image{margin-top:18px;width:min(360px,100%);border-radius:14px;box-shadow:0 10px 22px #58275824;border:1px solid rgba(148,163,184,.28);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .35s ease,filter .35s ease;transform-origin:center}.cv-image:hover,.tableau-image:hover{transform:translateY(-8px) scale(1.03);border-color:#7dd3fcb3;box-shadow:0 20px 34px #0ea5e93d,0 0 0 1px #38bdf833;filter:saturate(1.08) brightness(1.04)}.cv-image:active,.tableau-image:active{transform:translateY(-3px) scale(1.01)}.contact-panel{min-height:auto}.contact-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:30px}.contact-info h2{font-size:1.5rem;color:var(--brand);margin-bottom:30px;text-align:left}.info-items{display:flex;flex-direction:column;gap:24px}.info-item{display:flex;gap:16px;text-align:left}.info-icon{font-size:2rem;min-width:50px;display:flex;align-items:center;justify-content:center}.info-item h4{margin:0 0 6px;color:#e2e8f0;font-size:1.1rem}.info-item p{margin:0;color:#cbd5e1;font-size:.95rem}.contact-link{display:inline-block;margin-top:8px;color:var(--brand);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .2s ease}.contact-link:hover{color:var(--brand-dark);text-decoration:underline}.contact-form{width:100%;max-width:550px;text-align:left;display:flex;flex-direction:column;gap:22px}.form-group{display:flex;flex-direction:column;gap:8px}.contact-form label{font-weight:600;color:#cbd5e1;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:2px solid rgba(148,163,184,.25);background:#0f172a99;color:#e2e8f0;border-radius:12px;font:inherit;transition:all .3s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--brand);background:#0f172ae6;box-shadow:0 0 16px #38bdf826}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#cbd5e180}.error{font-size:.85rem;color:#f87171;display:none}.contact-form input:invalid:not(:placeholder-shown),.contact-form textarea:invalid:not(:placeholder-shown){border-color:#f87171}.char-count{font-size:.8rem;color:#64748b;align-self:flex-end}.submit-btn{margin-top:12px;padding:14px 32px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);color:#fff;font-weight:600;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s ease;box-shadow:0 4px 15px #38bdf840}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #38bdf859}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.btn-icon{font-size:1.2rem}.status-message{margin-top:16px;padding:16px 20px;border-radius:12px;background:#84cc161a;border:1.5px solid rgba(132,204,22,.3);color:#86efac;display:flex;gap:12px;align-items:flex-start;animation:slideIn .3s ease}.status-message.error{background:#f871711a;border-color:#f871714d;color:#fca5a5}.status-icon{font-size:1.4rem;min-width:30px;display:flex;align-items:center;justify-content:center}.status-message strong{display:block;margin-bottom:4px}.status-message p{margin:0;font-size:.9rem}@media(max-width:768px){.contact-wrapper{grid-template-columns:1fr;gap:30px}.contact-form{max-width:100%}}.status{margin-top:10px;font-weight:600}.status.success{color:#86efac}.status.error{color:#fca5a5}.contact-link{display:inline-block;margin-top:6px;padding:10px 16px;border-radius:8px;border:0;text-decoration:none;background:var(--brand);color:#fff;font-weight:600;transition:background-color .2s ease}.contact-link:hover{background:var(--brand-dark);color:#fff}.particle{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--particle-color, var(--particle-cyan));box-shadow:0 0 10px var(--particle-color, var(--particle-cyan));animation:moveParticle var(--particle-duration, 15s) linear infinite}@media(max-width:900px){.section{width:calc(100% - 20px);padding:92px 16px 30px}.timeline:before{left:16px;margin-left:0}.timeline-item,.timeline-item.left,.timeline-item.right{text-align:left;padding-left:42px;padding-right:10px}.timeline-dot{left:16px}.project-grid{grid-template-columns:1fr;justify-items:center}}@media(prefers-reduced-motion:reduce){.cv-image,.tableau-image{transition:none}}@keyframes moveParticle{0%{transform:translateY(100vh) translate(0);opacity:0}50%{opacity:1}to{transform:translateY(-100vh) translate(90px);opacity:0}}@keyframes sectionReveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes titleGlow{0%{text-shadow:0 0 0 rgba(56,189,248,0)}to{text-shadow:0 0 18px rgba(56,189,248,.35)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.section,.hero h1,.particle,.card-inner,.project-card,.article-card{animation:none!important;transition:none!important}}
