:root{
    --bg:#0a0b0e;
    --panel:#15171c;
    --panel2:#1b1e25;
    --line:#262931;
    --text:#e8e9ec;
    --muted:#80868f;
    --accent:#ff5454;
    --accent-dim:rgba(255,84,84,.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);color:var(--text);margin:0;
    font-family:'Space Grotesk',sans-serif;
    overflow-x:hidden;
  }
  .mono{font-family:'JetBrains Mono',monospace;}

  /* ambient glow background */
  .glow{
    position:fixed;top:-200px;left:50%;transform:translateX(-50%);
    width:900px;height:600px;
    background:radial-gradient(circle, var(--accent-dim) 0%, transparent 70%);
    pointer-events:none;z-index:0;
  }

  .wrap{max-width:920px;margin:0 auto;padding:48px 24px 100px;position:relative;z-index:1;}
  .topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;}
  .logo{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--accent);}
  .lang-switch{display:flex;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:3px;}
  .lang-switch a{background:transparent;border:none;color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:.75rem;padding:6px 12px;border-radius:6px;cursor:pointer;transition:.2s;text-decoration:none;display:inline-block;}
  .lang-switch a.active{background:var(--accent);color:#0a0b0e;}
  .lang-switch a:hover:not(.active){color:var(--text);}

  /* reveal-on-load animation utility */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);}
  .reveal.in{opacity:1;transform:translateY(0);}

  .hero{padding:8px 0 40px;border-bottom:1px solid var(--line);margin-bottom:48px;}
  .hero .tag{font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:.78rem;margin-bottom:14px;}
  .hero .tag::before{content:"// ";}
  .hero .tag .cursor{display:inline-block;width:7px;height:14px;background:var(--accent);margin-left:4px;animation:blink 1s steps(1) infinite;vertical-align:middle;}
  @keyframes blink{50%{opacity:0;}}
  .hero h1{font-size:clamp(2.4rem,6vw,3.6rem);font-weight:700;margin:0 0 8px;
    background:linear-gradient(90deg,#fff,#9aa0aa);
    -webkit-background-clip:text;background-clip:text;color:transparent;}
  .hero .role{color:var(--muted);font-size:1.05rem;margin-bottom:24px;}
  .contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;}
  .contact-grid .item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:.82rem;transition:.25s;}
  .contact-grid .item:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,84,84,.08);}
  .contact-grid .item .k{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;}

  section{margin-bottom:56px;}
  .section-title{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-size:1.05rem;font-weight:500;cursor:pointer;user-select:none;}
  .section-title .num{font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:.85rem;}
  .section-title .sec-chevron{margin-left:auto;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--muted);transition:transform .3s, border-color .2s, color .2s;}
  section.collapsed .section-title .sec-chevron{transform:rotate(-90deg);}
  section.collapsed .section-title{margin-bottom:0;}
  .section-title:hover .sec-chevron{border-color:var(--accent);color:var(--accent);}
  .section-body{overflow:hidden;transition:max-height .4s cubic-bezier(.2,.7,.3,1), opacity .3s ease;}
  section.collapsed .section-body{max-height:0 !important;opacity:0;}

  /* ===== Szétnyitható timeline (accordion) ===== */
  .timeline{position:relative;margin-left:8px;padding-left:28px;}
  .timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--line);}
  .t-item{position:relative;margin-bottom:10px;}
  .t-item::before{content:"";position:absolute;left:-27px;top:14px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);transform:translateX(-50%);transition:.3s;}
  .t-item.open::before{box-shadow:0 0 0 4px var(--accent-dim);}
  .t-head{
    cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:10px;
    padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;
    transition:border-color .2s, background .2s;
  }
  .t-head:hover{border-color:#3a3f49;}
  .t-item.open .t-head{border-color:var(--accent);background:var(--panel2);}
  .t-head-left{min-width:0;}
  .t-date{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--accent);margin-bottom:4px;}
  .t-role{font-size:1.02rem;font-weight:600;margin:0;}
  .t-org{color:var(--muted);font-size:.82rem;}
  .t-chevron{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--muted);transition:transform .3s;}
  .t-item.open .t-chevron{transform:rotate(45deg);color:var(--accent);border-color:var(--accent);}
  .t-body{
    overflow:hidden;max-height:0;transition:max-height .35s ease;
  }
  .t-body-inner{padding:14px 16px 4px;font-size:.88rem;color:#b6b9bf;line-height:1.6;}

  /* skills */
  .skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
  .skill-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:.25s;}
  .skill-card:hover{border-color:var(--accent);transform:translateY(-2px);}
  .skill-card .name{font-size:.88rem;margin-bottom:8px;display:flex;justify-content:space-between;}
  .skill-card .name .lvl{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:.7rem;}
  .skill-card .track{height:5px;background:#0a0b0e;border-radius:4px;overflow:hidden;}
  .skill-card .fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#ff9b54);border-radius:4px;transition:width 1s cubic-bezier(.2,.8,.2,1);}

  .lang-row{display:flex;gap:14px;flex-wrap:wrap;}
  .lang-pill{background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:10px 18px;font-size:.85rem;display:flex;gap:10px;align-items:center;transition:.25s;cursor:default;}
  .lang-pill:hover{border-color:var(--accent);transform:translateY(-2px);}
  .lang-pill .lvl{font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:.72rem;background:#0a0b0e;padding:2px 8px;border-radius:20px;}

  footer{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:.78rem;font-family:'JetBrains Mono',monospace;}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
  }

/* ===== Cookie consent MODÁL (Google Consent Mode v2) ===== */
.cookie-overlay{
  position:fixed;inset:0;z-index:60;
  background:rgba(10,11,14,.78);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.cookie-overlay.visible{opacity:1;pointer-events:auto;}
.cookie-modal{
  background:var(--panel2);border:1px solid var(--line);border-radius:16px;
  padding:0;max-width:460px;width:100%;max-height:88vh;overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  transform:translateY(12px) scale(.98);transition:transform .3s ease;
}
.cookie-overlay.visible .cookie-modal{transform:translateY(0) scale(1);}

.cookie-modal-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:22px 24px;border-bottom:1px solid var(--line);
}
.cookie-modal-header h2{
  margin:0;font-size:1.02rem;font-weight:700;letter-spacing:.02em;
  text-transform:uppercase;display:flex;align-items:center;gap:10px;
}
.cookie-icon{color:var(--accent);font-size:1.1rem;}
.cookie-close{
  background:transparent;border:none;color:var(--muted);font-size:1.6rem;line-height:1;
  cursor:pointer;padding:0 4px;transition:.2s;
}
.cookie-close:hover{color:var(--accent);}

.cookie-intro{margin:20px 24px 4px;font-size:.86rem;color:var(--muted);line-height:1.55;}

.cookie-category{padding:16px 24px;border-bottom:1px solid var(--line);}
.cookie-category-row{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.cookie-category-title{font-size:.92rem;font-weight:600;color:var(--text);}
.cookie-category-desc{margin:8px 0 0;font-size:.8rem;color:var(--muted);line-height:1.5;}

/* kapcsoló (toggle switch) */
.cookie-toggle{
  flex-shrink:0;width:46px;height:26px;border-radius:14px;
  background:var(--line);border:1px solid var(--line);position:relative;
  cursor:pointer;padding:0;transition:background .2s, border-color .2s;
}
.cookie-toggle-knob{
  position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:var(--text);transition:transform .2s ease;
}
.cookie-toggle[aria-checked="true"]{background:var(--accent);border-color:var(--accent);}
.cookie-toggle[aria-checked="true"] .cookie-toggle-knob{transform:translateX(20px);background:#0a0b0e;}
.cookie-toggle.disabled{
  background:var(--accent-dim);border-color:var(--accent);cursor:default;opacity:.7;
}
.cookie-toggle.disabled .cookie-toggle-knob{transform:translateX(20px);background:var(--accent);}

.cookie-modal-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;
  padding:20px 24px 24px;
}
.cookie-modal-actions button{
  font-family:'Space Grotesk',sans-serif;font-size:.85rem;font-weight:600;
  padding:10px 20px;border-radius:8px;cursor:pointer;border:1px solid var(--line);
  background:transparent;color:var(--muted);transition:.2s;
}
.cookie-modal-actions button:hover{border-color:var(--accent);color:var(--text);}
.cookie-modal-actions button.primary{background:var(--accent);color:#0a0b0e;border-color:var(--accent);}
.cookie-modal-actions button.primary:hover{opacity:.9;}

/* ===== Lebegő cookie-beállítások gomb (bal alsó sarok) ===== */
.cookie-fab{
  position:fixed;left:20px;bottom:20px;z-index:45;
  width:46px;height:46px;border-radius:50%;
  background:var(--panel2);border:1px solid var(--line);
  color:var(--accent);font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.35);
  transition:.2s;
}
.cookie-fab:hover{border-color:var(--accent);transform:translateY(-2px);}
@media (max-width:480px){
  .cookie-fab{width:40px;height:40px;left:14px;bottom:14px;font-size:1.05rem;}
}

/* kontakt-kártya ikonok - monokróm, a label színét követik */
.contact-grid .item .k{display:flex;align-items:center;gap:6px;}
.contact-grid .item .k i{color:var(--accent);font-size:.85rem;}

/* skill-kategóriák */
.skill-category{margin-bottom:26px;}
.skill-category:last-child{margin-bottom:0;}
.skill-category-title{
  font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.skill-category-title::after{content:"";flex:1;height:1px;background:var(--line);}

/* ===== Certifikátok lista ===== */
.cert-list{display:flex;flex-direction:column;gap:10px;}
.cert-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;transition:.2s;
}
.cert-row:hover{border-color:#3a3f49;}
.cert-title{font-size:1.02rem;font-weight:600;margin:0 0 2px;}
.cert-meta{color:var(--muted);font-size:.82rem;}
.cert-view-btn{
  flex-shrink:0;width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:var(--accent);
  font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:.2s;
}
.cert-view-btn:hover{border-color:var(--accent);background:var(--accent-dim);}

/* ===== Certifikát-kép modál (lightbox) ===== */
.cert-overlay{
  position:fixed;inset:0;z-index:60;
  background:rgba(10,11,14,.85);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;pointer-events:none;transition:opacity .3s ease;
}
.cert-overlay.visible{opacity:1;pointer-events:auto;}
.cert-modal{
  background:var(--panel2);border:1px solid var(--line);border-radius:16px;
  padding:0;max-width:640px;width:100%;max-height:90vh;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  transform:translateY(12px) scale(.98);transition:transform .3s ease;
  display:flex;flex-direction:column;
}
.cert-overlay.visible .cert-modal{transform:translateY(0) scale(1);}
.cert-modal-header{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;border-bottom:1px solid var(--line);
  font-weight:600;font-size:.95rem;
}
.cert-modal img{width:100%;height:auto;display:block;max-height:75vh;object-fit:contain;background:#000;}

/* ===== Referencia-galéria (portfólió) ===== */
.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.portfolio-filter{
  font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.04em;
  text-transform:uppercase;padding:7px 14px;border-radius:20px;
  border:1px solid var(--line);background:transparent;color:var(--muted);
  cursor:pointer;transition:.2s;
}
.portfolio-filter:hover{border-color:var(--accent);color:var(--text);}
.portfolio-filter.active{background:var(--accent);border-color:var(--accent);color:#0a0b0e;}

.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.portfolio-card{
  position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  background:var(--panel);padding:0;cursor:pointer;aspect-ratio:4/3;
  display:block;width:100%;text-align:left;
}
.portfolio-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease;}
.portfolio-card:hover img{transform:scale(1.05);}
.portfolio-card-title{
  position:absolute;left:0;right:0;bottom:0;padding:10px 12px;
  background:linear-gradient(180deg,transparent,rgba(10,11,14,.92));
  color:#fff;font-size:.82rem;font-weight:600;
}

/* ===== Kapcsolat-űrlap (jelenleg backend nélkül, csak mezők) ===== */
.contact-form{display:flex;flex-direction:column;gap:16px;max-width:520px;}
.contact-form-row{display:flex;flex-direction:column;gap:6px;}
.contact-form-row label{font-size:.78rem;color:var(--muted);font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.04em;}
.contact-form-row input,
.contact-form-row textarea{
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:10px 12px;color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:.92rem;
  resize:vertical;transition:.2s;
}
.contact-form-row input:focus,
.contact-form-row textarea:focus{outline:none;border-color:var(--accent);}
.contact-form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.contact-submit{
  background:var(--accent);color:#0a0b0e;border:none;border-radius:8px;
  padding:11px 24px;font-weight:600;font-size:.92rem;cursor:pointer;transition:.2s;
}
.contact-submit:hover{opacity:.9;}
.contact-form-note{font-size:.8rem;color:var(--muted);}

/* ===== Profilkép (hero avatar) ===== */
.hero-top{display:flex;align-items:center;gap:22px;margin-bottom:14px;}
.hero-avatar{
  width:84px;height:84px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2px solid var(--accent);background:var(--panel);
}
.hero-top-text{min-width:0;}
.hero-top-text .tag{margin-bottom:6px;}
.hero-top-text h1{margin:0 0 4px;}
.hero-top-text .role{margin-bottom:0;}

@media (max-width:480px){
  .hero-top{flex-direction:column;align-items:flex-start;gap:14px;}
  .hero-avatar{width:72px;height:72px;}
}
