/* HERO */
#about{min-height:calc(100vh - var(--nav));display:flex;align-items:center;position:relative;overflow:hidden}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 10%,transparent 75%);pointer-events:none;z-index:0}
.hero-inner{position:relative;z-index:1;display:flex;align-items:center;gap:3rem;flex-wrap:wrap}
.hero-text{flex:1;min-width:280px}
.hero-h1{font-family:var(--ff);font-weight:800;font-size:clamp(2rem,5vw,3.5rem);line-height:1.15;margin-bottom:1.2rem}
.hero-body{color:var(--ts);font-size:.95rem;max-width:500px;line-height:1.8;margin-bottom:1.5rem}
.btn-accent{background:var(--accent);color:#0b0e13;font-family:var(--fm);font-size:.83rem;font-weight:700;padding:.6rem 1.35rem;border-radius:7px;border:none;cursor:pointer;transition:box-shadow var(--tr),transform var(--tr);display:inline-flex;align-items:center;gap:.5rem}
.btn-accent:hover{box-shadow:0 0 20px var(--accent-glow);transform:translateY(-1px);color:#0b0e13}
.btn-ghost{background:transparent;color:var(--ts);font-family:var(--fm);font-size:.83rem;padding:.6rem 1.35rem;border-radius:7px;border:1px solid var(--border);cursor:pointer;transition:border-color var(--tr),color var(--tr),box-shadow var(--tr);display:inline-flex;align-items:center;gap:.5rem}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}
.btns{display:flex;flex-wrap:wrap;gap:.85rem}
.avatar-wrap{flex-shrink:0;position:relative;width:260px;height:260px;margin:0 auto}
.avatar-circle{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--bg-card),#1a2535);border:2px solid var(--border-acc);display:flex;align-items:center;justify-content:center;font-size:5.5rem;color:var(--tm);box-shadow:0 0 60px var(--accent-glow)}
.avatar-ring{position:absolute;inset:-12px;border-radius:50%;border:1px dashed var(--border-acc);animation:spin 18s linear infinite}
.dot{position:absolute;width:10px;height:10px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent);animation:pdot 2.2s ease-in-out infinite}
.dot1{top:8%;right:12%}.dot2{bottom:12%;left:5%;animation-delay:1.1s}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pdot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}

/* SKILLS */
#skills{background:var(--bg-alt)}
.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;margin-top:2rem}
.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:1.4rem;transition:border-color var(--tr),box-shadow var(--tr),transform var(--tr)}
.skill-card:hover{border-color:var(--border-acc);box-shadow:0 0 22px var(--accent-glow);transform:translateY(-2px)}
.sk-header{display:flex;align-items:center;gap:.6rem;font-family:var(--ff);font-weight:700;font-size:.97rem;color:var(--tp);padding-bottom:.85rem;border-bottom:1px solid var(--border);margin-bottom:1.1rem}
.sk-header i{color:var(--accent);font-size:1.1rem}
.sk-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.sk-list li{display:flex;align-items:center;justify-content:space-between}
.sk-name{font-size:.87rem;color:var(--tp)}
.badge{font-family:var(--fm);font-size:.68rem;padding:.14rem .5rem;border-radius:20px;font-weight:600;letter-spacing:.04em}
.b-adv{background:rgba(0,200,150,.15);color:var(--accent);border:1px solid rgba(0,200,150,.3)}
.b-int{background:rgba(99,180,255,.12);color:#63b4ff;border:1px solid rgba(99,180,255,.3)}
.b-beg{background:rgba(127,142,160,.12);color:var(--ts);border:1px solid var(--border)}

/* PORTFOLIO */
#portfolio{background:var(--bg)}
.ptable-block{margin-top:2.5rem}
.ptable-title{font-family:var(--ff);font-weight:700;font-size:1.1rem;color:var(--tp);display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem}
.sdot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}
.sdot-a{background:var(--accent);box-shadow:0 0 7px var(--accent);animation:pdot 2s ease-in-out infinite}
.sdot-c{background:#63b4ff}
.sdot-r{background:var(--tm)}
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
table.pt{width:100%;border-collapse:collapse;font-family:var(--fm);font-size:.82rem;color:var(--tp)}
table.pt thead tr{background:var(--bg-card)}
table.pt thead th{color:var(--ts);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;padding:.75rem 1rem;border-bottom:1px solid var(--border);white-space:nowrap;font-weight:400}
table.pt tbody tr{border-bottom:1px solid var(--border);transition:background var(--tr)}
table.pt tbody tr:last-child{border-bottom:none}
table.pt tbody tr:hover{background:var(--bg-card-hov)}
table.pt tbody td{padding:.8rem 1rem;vertical-align:middle}
.td-name{color:var(--accent);font-weight:600}
.td-name-muted{color:var(--ts)}
.kw{display:inline-block;font-size:.7rem;padding:.1rem .45rem;border-radius:4px;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(0,200,150,.2);margin:2px 2px 2px 0}
.kw-m{background:rgba(127,142,160,.08);color:var(--tm);border-color:var(--border)}
.plinks a{color:var(--ts);font-size:1rem;margin-right:.45rem;transition:color var(--tr)}
.plinks a:hover{color:var(--accent)}

/* CONTACT */
#contact{background:linear-gradient(180deg,var(--bg) 0%,#0d1520 100%);position:relative;overflow:hidden}
#contact::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 100%,var(--accent-glow) 0%,transparent 70%);pointer-events:none}
.contact-intro{text-align:center;max-width:520px;margin:0 auto 2.5rem;position:relative;z-index:1}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;position:relative;z-index:1}
.contact-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;padding:1.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);text-decoration:none;color:var(--tp);transition:border-color var(--tr),box-shadow var(--tr),transform var(--tr)}
.contact-card:hover{border-color:var(--border-acc);box-shadow:0 0 28px var(--accent-glow);transform:translateY(-3px);color:var(--tp)}
.contact-card i{font-size:1.8rem;color:var(--accent);transition:transform var(--tr)}
.contact-card:hover i{transform:scale(1.15)}
.cc-label{font-family:var(--ff);font-weight:700;font-size:.88rem}
.cc-val{font-size:.75rem;color:var(--ts)}


@media(max-width:900px){
  .hero-inner{flex-direction:column;text-align:center}
  .hero-body{margin:0 auto 1.5rem}
  .btns{justify-content:center}
  .avatar-wrap{width:200px;height:200px}
  .avatar-circle{font-size:4rem}
}
@media(max-width:700px){
  .nav-links,.lang-wrap{display:none}
  .hamburger{display:flex}
  section{padding:3.5rem 0}
  table.pt thead th,table.pt tbody td{padding:.6rem .7rem}
}