/* ============================================================
   projektek.css — a projektek.html oldalra jellemző, egyedi
   stílusok. A korábbi <style id="tw-inline"> melletti,
   beégetett "DARK theme" blokk tartalma, változtatás nélkül
   kiemelve. Tartalmaz néhány közös szabályt is (pl. :root
   színek), ami már megvan a style.css-ben is — ez szándékos,
   biztonsági okból nem lett kiszűrve.
   ============================================================ */
    /* ── DARK theme (default) ── */
    :root {
      --bg:#000807; --surface:#161929; --elevated:#2C2A4A;
      --text:#EDE6FA; --text2:#D3C6F1; --muted:#B9A6E8;
      --accent:#907AD6; --accent-d:#4F518C; --accent-l:#DABFFF; --pop:#9D4EDD; --btn:#5B3F9E; --btn-h:#7C5CD6;
      --accent-rgb:144,122,214;
      --border:rgba(var(--accent-rgb),.25); --glass:rgba(255,255,255,.04); --shadow:rgba(0,0,0,.6);
    }
    /* ── LIGHT theme ── */
    .lm {
      --bg:#F5EEDF; --surface:#ECDFC6; --elevated:#E4D2AE;
      --text:#2A170D; --text2:#3B2515; --muted:#6A4A33;
      --accent:#7A4A2C; --accent-d:#592D1B; --accent-l:#8A6446;
      --accent-rgb:122,74,44; --btn:#3D2B26; --btn-h:#5E3E35; --btn-hfg:#fff; --pop:#3D2B26;
      --border:rgba(var(--accent-rgb),.22); --glass:rgba(var(--accent-rgb),.06); --shadow:rgba(50,20,5,.2);
    }

    *,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
    html { scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:rgba(var(--accent-rgb),.32) transparent; overflow-y:scroll; overflow-x:hidden; max-width:100vw; }
    html::-webkit-scrollbar { width:5px; }
    html::-webkit-scrollbar-track { background:transparent; }
    html::-webkit-scrollbar-thumb { background:rgba(var(--accent-rgb),.32); border-radius:99px; }
    html::-webkit-scrollbar-thumb:hover { background:rgba(var(--accent-rgb),.6); }
    html.lm { scrollbar-color:rgba(var(--accent-rgb),.35) transparent; }
    html.lm::-webkit-scrollbar-thumb { background:rgba(var(--accent-rgb),.35) !important; }
    html.lm::-webkit-scrollbar-thumb:hover { background:rgba(var(--accent-rgb),.65) !important; }

    body {
      font-family:'Quicksand',sans-serif;
      background:var(--bg); color:var(--text);
      line-height:1.65;
      transition:background .4s ease,color .4s ease;
      overflow-x:hidden; max-width:100vw;
    }
    @media(max-width:767px) { body { padding-bottom:calc(64px + env(safe-area-inset-bottom)); } }

    /* ── Progress bar ── */
    #pb { position:fixed; top:0; left:0; height:2px; width:0%; background:var(--accent); z-index:9999; transition:width .1s linear; }

    /* ── Aurora ── */
    #aurora { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
    .ab { position:absolute; border-radius:50%; filter:blur(80px); opacity:.12; animation:aA 18s ease-in-out infinite; }
    .lm .ab { opacity:.07; filter:blur(80px) sepia(1) hue-rotate(-40deg) saturate(.8); }
    @keyframes aA { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(60px,-40px) scale(1.15)} 66%{transform:translate(-40px,50px) scale(.88)} }

    /* ── Particles ── */
    #bgc { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.45; }
    .lm #bgc { opacity:.28; }

    /* ── Geo shapes ── */
    .geo { position:absolute; pointer-events:none; opacity:.06; animation:gf 22s ease-in-out infinite; }
    .lm .geo { background:rgba(var(--accent-rgb),.85) !important; }
    @keyframes gf { 0%,100%{transform:translate(0,0) rotate(0deg)} 25%{transform:translate(22px,-28px) rotate(90deg)} 50%{transform:translate(-16px,-18px) rotate(180deg)} 75%{transform:translate(26px,14px) rotate(270deg)} }

    /* ── Grid overlay ── */
    #grid { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.011; background-image:repeating-linear-gradient(0deg,transparent,transparent 49px,rgba(var(--accent-rgb),1) 50px),repeating-linear-gradient(90deg,transparent,transparent 49px,rgba(var(--accent-rgb),1) 50px); }
    .lm #grid { opacity:.018; filter:sepia(1) hue-rotate(-30deg); }

    /* ── Glass / Gradient text ── */
    .glass { background:var(--glass); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border:1px solid var(--border); }
    .gt { background:linear-gradient(135deg,var(--accent),var(--accent-l)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

    /* ── Scroll reveal ── */
    .rv       { opacity:0; transform:translateY(32px) scale(.97); filter:blur(4px); transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1),filter .55s ease; }
    .rv-left  { opacity:0; transform:translateX(-36px) scale(.97); filter:blur(3px); transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1),filter .55s ease; }
    .rv-right { opacity:0; transform:translateX(36px) scale(.97); filter:blur(3px); transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1),filter .55s ease; }
    .rv.on,.rv-left.on,.rv-right.on { opacity:1; transform:translate(0) scale(1); filter:blur(0); }
    .d1{transition-delay:.06s}.d2{transition-delay:.13s}.d3{transition-delay:.20s}.d4{transition-delay:.28s}.d5{transition-delay:.36s}

    /* ── TOP NAV ── */
    #tnav { position:fixed; top:0; left:0; right:0; z-index:1000;
            background:rgba(0,8,7,.92); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
            box-shadow:0 1px 0 var(--border);
            transition:background .35s,box-shadow .35s;
            animation:navSlideDown .55s cubic-bezier(.22,1,.36,1) .1s both; }
    #tnav.sc { background:rgba(0,8,7,.96); }
    .lm #tnav { background:rgba(245, 238, 223,.96); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 1px 0 var(--border); }
    .lm #tnav.sc { background:rgba(245, 238, 223,.99); }
    @keyframes navSlideDown { from{transform:translateY(-100%);opacity:0} to{transform:translateY(0);opacity:1} }

    /* ── TRUE CENTER LINKS - minden oldalon azonos pozíció ── */
    @media(min-width:768px){
      #dlinks {
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        transform:translate(-50%,-50%) !important;
        display:flex !important;
      }
    }

    .nl { position:relative; color:var(--muted); font-weight:600; font-size:.95rem; text-decoration:none; padding:.28rem .6rem; border-radius:.45rem; transition:color .2s,background .2s,transform .24s cubic-bezier(.34,1.56,.64,1) !important; }
    .nl::after { content:''; position:absolute; bottom:-4px; left:.6rem; width:0; height:2px; background:var(--accent); border-radius:2px; transition:width .36s cubic-bezier(.34,1.56,.64,1) !important; }
    .nl:hover,.nl.on { color:var(--accent); }
    .nl.on { background:rgba(var(--accent-rgb),.07); }
    .nl:hover::after,.nl.on::after { width:calc(100% - 1.2rem); }
    .nl:hover { transform:translateY(-2px) !important; }
    .nl.on::before { content:''; position:absolute; top:50%; left:.3rem; transform:translateY(-50%); width:4px; height:4px; border-radius:50%; background:var(--accent); animation:navDotPop .3s cubic-bezier(.34,1.56,.64,1) forwards; }
    @keyframes navDotPop { from{transform:translateY(-50%) scale(0)} to{transform:translateY(-50%) scale(1)} }
    .lm .nl.on { background:rgba(var(--accent-rgb),.08); }

    /* ── BOTTOM NAV (mobile) ── */
    #bnav { position:fixed; bottom:0; left:0; right:0; z-index:7001; background:rgba(0,8,7,.96); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-top:1px solid var(--border); padding-bottom:env(safe-area-inset-bottom); display:none; }
    .lm #bnav { background:rgba(245, 238, 223,.96); }
    @media(max-width:767px){ #bnav { display:flex; } #dlinks { display:none; } }
    .bi { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:.55rem .25rem; color:var(--muted); text-decoration:none; font-size:.58rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; transition:color .2s; flex:1; gap:3px; }
    .bi.on,.bi:hover { color:var(--accent); }
    .bi svg { width:22px; height:22px; transition:transform .28s cubic-bezier(.34,1.56,.64,1); }
    .bi:hover svg { transform:translateY(-4px) scale(1.14); }
    .bi.on svg { transform:scale(1.18); }

    /* ── BUTTONS ── */
    .bp { display:inline-flex; align-items:center; gap:.45rem; padding:.85rem 2rem; font-family:'Quicksand',sans-serif; font-weight:700; font-size:1rem; color:#fff; background:var(--btn); border:2px solid var(--btn); border-radius:.75rem; text-decoration:none; cursor:pointer; position:relative; overflow:hidden; transition:background .22s,border-color .22s,transform .32s cubic-bezier(.34,1.56,.64,1) !important; }
    .bp:hover { color:var(--btn-hfg); background:var(--btn-h); border-color:var(--btn-h); transform:translateY(-4px) scale(1.045) !important; }
    .bs { display:inline-flex; align-items:center; gap:.45rem; padding:.85rem 2rem; font-family:'Quicksand',sans-serif; font-weight:700; font-size:1rem; color:var(--text); background:transparent; border:2px solid var(--border); border-radius:.75rem; text-decoration:none; cursor:pointer; position:relative; overflow:hidden; transition:border-color .22s,background .22s,transform .32s cubic-bezier(.34,1.56,.64,1),color .22s !important; }
    .bs:hover { border-color:var(--accent); background:rgba(var(--accent-rgb),.1); transform:translateY(-4px) scale(1.04) !important; color:var(--accent); }

    /* ── Ripple ── */
    .rp { position:relative; overflow:hidden; }
    .rs { position:absolute; border-radius:50%; background:rgba(255,255,255,.2); transform:scale(0); animation:rA .65s ease-out forwards; pointer-events:none; }
    @keyframes rA { to{transform:scale(4);opacity:0} }

    /* ── Tag pill ── */
    .tg { display:inline-block; padding:.22rem .7rem; font-family:'JetBrains Mono',monospace; font-size:.68rem; color:var(--accent); background:rgba(var(--accent-rgb),.12); border:1px solid var(--border); border-radius:999px; }
    .lm .tg { color:var(--accent); background:rgba(var(--accent-rgb),.09); border-color:rgba(var(--accent-rgb),.22); }

    /* ── Scroll-to-top ── */
    #scroll-top { position:fixed; bottom:5rem; right:1.25rem; width:44px; height:44px; border-radius:50%; background:var(--accent); box-shadow:0 4px 18px rgba(var(--accent-rgb),.45); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(20px) scale(.85); transition:opacity .3s,transform .3s cubic-bezier(.34,1.56,.64,1); z-index:900; }
    #scroll-top.show { opacity:1; transform:translateY(0) scale(1); }
    #scroll-top:hover { transform:translateY(-4px) scale(1.1) !important; }
    #scroll-top svg { color:#fff; width:20px; height:20px; }
    @media(max-width:767px) { #scroll-top { bottom:5.5rem; right:.85rem; } }

    /* ── Page loader / fade ── */
    #page-fade { position:fixed; inset:0; z-index:99997; background:var(--bg); opacity:0; pointer-events:none; transition:opacity .22s ease; }
    #page-fade.out { opacity:1; pointer-events:all; }
    body { animation:pageFadeIn .3s ease forwards; }
    @keyframes pageFadeIn { from{opacity:0} to{opacity:1} }
        #page-loader { position:fixed; inset:0; z-index:99999; background:var(--bg); display:flex; align-items:center; justify-content:center; transition:opacity 1.4s cubic-bezier(.22,1,.36,1),visibility 1.4s cubic-bezier(.22,1,.36,1); }
    #page-loader.done { opacity:0; visibility:hidden; pointer-events:none; }
    #loader-canvas { position:absolute; inset:0; pointer-events:none; }
    .loader-center { position:relative; width:110px; height:110px; display:flex; align-items:center; justify-content:center; z-index:2; }
    .ring-outer { position:absolute; inset:0; animation:spinCW 2.4s linear infinite; }
    .ring-inner { position:absolute; inset:16px; animation:spinCCW 1.6s linear infinite; }
    @keyframes spinCW { to { transform:rotate(360deg); } }
    @keyframes spinCCW { to { transform:rotate(-360deg); } }
    .ring-outer circle { fill:none; stroke:var(--accent); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:195 130; opacity:.8; }
    .ring-inner circle { fill:none; stroke:var(--accent-l); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:108 76; opacity:.55; }
    .loader-logo { font-family:system-ui,-apple-system,sans-serif; font-weight:900; font-size:1.9rem; letter-spacing:-.05em; line-height:1; background:linear-gradient(135deg,var(--accent) 20%,var(--accent-l) 80%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:logoPulse 1.8s ease-in-out infinite; position:relative; z-index:1; user-select:none; }
    .loader-glow { position:absolute; inset:22px; border-radius:50%; background:radial-gradient(circle,rgba(var(--accent-rgb),.09) 0%,transparent 70%); pointer-events:none; }
    @keyframes logoPulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.55;transform:scale(.94);} }

    /* ── Skeleton ── */
    @keyframes shimmer { 0%{background-position:-600px 0} 100%{background-position:600px 0} }
    .sk { border-radius:.5rem; background:linear-gradient(90deg,var(--surface) 25%,var(--elevated) 50%,var(--surface) 75%); background-size:600px 100%; animation:shimmer 1.6s infinite linear; }

    /* ── LIGHT MODE overrides ── */
    .lm #pb { background:var(--accent); }
    .lm #bgc { opacity:.18; }
    .lm #grid { opacity:.018; filter:sepia(1) hue-rotate(-30deg); }
    .lm .tg { color:var(--accent); background:rgba(var(--accent-rgb),.09); border-color:rgba(var(--accent-rgb),.22); }
    .lm .nl.on { background:rgba(var(--accent-rgb),.08); }
    .lm .fp.on { background:var(--accent); border-color:var(--accent); }
    .lm .fp:hover { border-color:var(--accent); color:var(--accent); }
    .lm .bs:hover { border-color:var(--accent); background:rgba(var(--accent-rgb),.08); color:var(--accent); }
    .lm #tbtn { background:rgba(var(--accent-rgb),.1) !important; }
    .lm .gt { background:linear-gradient(135deg,var(--accent),var(--accent-l)) !important; -webkit-background-clip:text !important; -webkit-text-fill-color:transparent !important; background-clip:text !important; }
    .lm #scroll-top { box-shadow:0 4px 18px rgba(var(--accent-rgb),.4); }

    /* ══════════════════════
       PROJEKTEK-SPECIFIC
    ══════════════════════ */

    /* ── Filter pills ── */
    .fp { padding:.28rem .75rem; border:1px solid var(--border); border-radius:999px; background:transparent; color:var(--muted); font-size:.7rem; font-weight:700; cursor:pointer; white-space:nowrap; font-family:'JetBrains Mono',monospace; letter-spacing:.03em; flex-shrink:0; transition:border-color .22s,color .22s,background .22s,transform .22s cubic-bezier(.34,1.56,.64,1); display:inline-flex; align-items:center; gap:.3rem; }
    .fp:hover { border-color:var(--accent); color:var(--accent-l); transform:translateY(-2px) scale(1.04); }
    .fp.on { background:var(--accent); color:#fff; border-color:var(--accent); }
    .fp.on:hover { color:#fff; }
    .lm .fp.on { background:var(--accent); border-color:var(--accent); }
    .lm .fp:hover { border-color:var(--accent); color:var(--accent); }

    /* ── Search ── */
    #proj-search-wrap { margin-left:auto; flex:1; max-width:320px; display:flex; align-items:center; gap:.4rem; padding:.32rem .55rem; border:1px solid var(--border); border-radius:.55rem; background:var(--glass); transition:border-color .2s; }
    #proj-search-wrap:focus-within { border-color:var(--accent); }
    #proj-search { background:transparent; border:none; outline:none; font-family:'JetBrains Mono',monospace; font-size:.7rem; color:var(--text); width:100%; min-width:0; flex:1; }
    #proj-search::placeholder { color:var(--muted); }
    #proj-search-clear { display:none; background:none; border:none; cursor:pointer; color:var(--muted); padding:0; line-height:1; transition:color .15s; flex-shrink:0; }
    #proj-search-clear:hover { color:var(--accent); }
    #proj-search-wrap.active #proj-search-clear { display:block; }

    /* ── Project grid - padding adja a hover transform légterét ── */
    #projektek-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; padding:1.25rem; margin:-1.25rem; }
    @media(min-width:640px){ #projektek-grid { grid-template-columns:repeat(2,1fr); gap:1.5rem; } }
    @media(min-width:1024px){ #projektek-grid { grid-template-columns:repeat(3,1fr); gap:1.75rem; } }

    /* ── Project card ── */
    .pc { background:linear-gradient(160deg,var(--elevated) 0%,var(--surface) 100%); border-radius:1.35rem; border:1px solid rgba(var(--accent-rgb),.18); overflow:hidden; cursor:pointer; position:relative; will-change:transform; transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .35s ease; box-shadow:0 4px 24px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04); }
    .pc::before { content:''; position:absolute; inset:0; border-radius:1.35rem; background:linear-gradient(135deg,rgba(var(--accent-rgb),.2) 0%,rgba(218,191,255,.06) 50%,transparent 100%); opacity:0; z-index:0; transition:opacity .35s ease .05s; pointer-events:none; }
    .pc::after { content:''; position:absolute; inset:0; border-radius:1.35rem; background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(var(--accent-rgb),.07) 0%,transparent 70%); opacity:0; z-index:0; transition:opacity .35s ease .05s; pointer-events:none; }
    .pc:hover { border-color:rgba(var(--accent-rgb),.5); transform:translateY(-12px) scale(1.018); box-shadow:0 8px 16px rgba(0,0,0,.35),0 32px 80px rgba(0,0,0,.6),0 0 0 1px rgba(var(--accent-rgb),.38),0 0 55px rgba(var(--accent-rgb),.1); }
    .pc:hover::before,.pc:hover::after { opacity:1; }
    .lm .pc { box-shadow:0 2px 16px rgba(50,20,5,.12),inset 0 1px 0 rgba(255,255,255,.5); }
    .lm .pc::before { background:linear-gradient(135deg,rgba(var(--accent-rgb),.4) 0%,rgba(139,78,42,.12) 50%,transparent 100%); }
    .lm .pc:hover { box-shadow:0 24px 60px rgba(var(--accent-rgb),.18),0 0 0 1px rgba(var(--accent-rgb),.42); }

    /* ── Preview area ── */
    .pp { aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; z-index:1; }
    .pp[style*="background-image"] { background-size:cover; background-position:center; }
    .pp[style*="background-image"]::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.05) 0%,rgba(0,0,0,.5) 100%); z-index:0; }
    .pp::before { content:''; position:absolute; inset:0; z-index:3; background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.045) 50%,transparent 60%); background-size:200% 100%; opacity:0; transition:opacity .3s; pointer-events:none; }
    .pc:hover .pp::before { opacity:1; animation:ppShimmer 1.7s ease infinite; }
    @keyframes ppShimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
    .pv-icon { position:relative; z-index:2; color:rgba(255,255,255,.88); transition:transform .38s cubic-bezier(.34,1.56,.64,1),filter .38s ease; filter:drop-shadow(0 0 18px rgba(255,255,255,.25)); }
    .pc:hover .pv-icon { transform:scale(1.15) translateY(-3px); filter:drop-shadow(0 0 30px rgba(255,255,255,.58)); }

    /* ── Terminal overlay ── */
    .pc-terminal { position:absolute; inset:0; z-index:4; background:linear-gradient(160deg,rgba(5,0,20,.9) 0%,rgba(0,0,0,.88) 100%); backdrop-filter:blur(6px) saturate(1.2); display:flex; flex-direction:column; justify-content:center; padding:1.35rem 1.4rem; font-family:'JetBrains Mono',monospace; font-size:.72rem; gap:.32rem; opacity:0; transition:opacity .32s ease; border-bottom:1px solid rgba(var(--accent-rgb),.18); }
    .pc:hover .pc-terminal { opacity:1; }
    .pc-terminal::before { content:'● ● ●'; position:absolute; top:.6rem; left:1rem; font-size:.5rem; letter-spacing:.35rem; color:rgba(255,255,255,.18); pointer-events:none; }
    .t-cmd { color:#DABFFF; letter-spacing:.02em; }
    .t-comment { color:#4b5563; }
    .t-success { color:#34d399; }
    .t-link { color:#7dd3fc; text-decoration:underline; text-underline-offset:3px; }

    /* ── Card body ── */
    .pc-body { padding:1.1rem 1.3rem 1.3rem; position:relative; z-index:1; }
    .pc-title { font-family:'Quicksand',sans-serif; font-weight:800; font-size:1rem; margin:.4rem 0 .35rem; color:var(--text); line-height:1.3; transition:color .25s ease; }
    .pc:hover .pc-title { color:var(--accent-l); }
    .pc-desc { font-size:.82rem; color:var(--muted); line-height:1.6; margin-bottom:.7rem; transition:color .25s; }
    .pc:hover .pc-desc { color:var(--text2); }
    .pc-tags { display:flex; flex-wrap:wrap; gap:.35rem; }

    /* ── Tag pill ── */
    .tg { display:inline-block; padding:.22rem .7rem; font-family:'JetBrains Mono',monospace; font-size:.68rem; color:var(--accent); background:rgba(var(--accent-rgb),.1); border:1px solid var(--border); border-radius:999px; transition:background .2s,border-color .2s,transform .22s cubic-bezier(.34,1.56,.64,1),color .2s; }
    .pc:hover .tg:hover { background:rgba(var(--accent-rgb),.22); border-color:rgba(var(--accent-rgb),.48); transform:translateY(-2px) scale(1.05); color:var(--accent-l); }
    .lm .tg { color:var(--accent); background:rgba(var(--accent-rgb),.09); border-color:rgba(var(--accent-rgb),.22); }

    /* ── Type badges ── */
    .type-badge { display:inline-block; padding:.2rem .65rem; font-family:'JetBrains Mono',monospace; font-size:.65rem; font-weight:700; border-radius:999px; border:1px solid; transition:transform .22s cubic-bezier(.34,1.56,.64,1); }
    .type-badge:hover { transform:translateY(-1px) scale(1.04); }
    .type-sajat   { color:#DABFFF; background:rgba(144,122,214,.15); border-color:rgba(144,122,214,.35); }
    .type-iskolai { color:#93c5fd; background:rgba(37,99,235,.14);  border-color:rgba(37,99,235,.35); }
    .type-kliens  { color:#fcd34d; background:rgba(217,119,6,.14);  border-color:rgba(217,119,6,.35); }
    .type-wip     { color:#fde68a; background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.35); }
    .type-mind    { color:var(--muted); background:rgba(var(--accent-rgb),.08); border-color:var(--border); }
    .lm .type-sajat   { color:#6d28d9; background:rgba(109,40,217,.1);  border-color:rgba(109,40,217,.25); }
    .lm .type-iskolai { color:#1d4ed8; background:rgba(29,78,216,.1);   border-color:rgba(29,78,216,.25); }
    .lm .type-kliens  { color:#b45309; background:rgba(180,83,9,.1);    border-color:rgba(180,83,9,.25); }
    .lm .type-wip     { color:#d97706; background:rgba(217,119,6,.1);   border-color:rgba(217,119,6,.25); }

    /* ── Status badges ── */
    .status-badge { display:inline-flex; align-items:center; gap:.3rem; padding:.2rem .65rem; font-family:'JetBrains Mono',monospace; font-size:.65rem; font-weight:700; border-radius:999px; border:1px solid; transition:transform .22s cubic-bezier(.34,1.56,.64,1); }
    .status-badge:hover { transform:translateY(-1px) scale(1.04); }
    .status-live { color:var(--st-fg); background:var(--st-bg); border-color:var(--st-bd); }
    .status-done { color:#93c5fd; background:rgba(96,165,250,.12); border-color:rgba(96,165,250,.35); }
    .status-wip  { color:#fde68a; background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.35); }
    .status-live::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--st-fg); flex-shrink:0; }
    .lm .status-done { color:#2563eb; background:rgba(37,99,235,.1); border-color:rgba(37,99,235,.25); }
    .lm .status-wip  { color:#d97706; background:rgba(217,119,6,.1); border-color:rgba(217,119,6,.25); }

    /* Modal */
    #proj-modal { position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,.65); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); display:none; align-items:flex-end; justify-content:center; padding:0; }
    @media(min-width:640px){ #proj-modal { align-items:center; padding:1rem; } }
    .lm #proj-modal { background:rgba(30,10,60,.35); }
    #proj-modal.open { display:flex; }
    .modal-inner { background:var(--surface); border:1px solid var(--border); border-radius:1.5rem 1.5rem 0 0; width:100%; max-height:88dvh; overflow-y:auto; animation:mSlideUp .32s cubic-bezier(.22,1,.36,1); }
    @media(min-width:640px){ .modal-inner { border-radius:1.5rem; max-width:580px; max-height:90vh; animation:mIn .28s cubic-bezier(.22,1,.36,1); } }
    .lm .modal-inner { box-shadow:0 20px 60px var(--shadow); }
    .modal-inner::before { content:''; display:block; width:40px; height:4px; background:var(--border); border-radius:99px; margin:1rem auto .25rem; }
    @media(min-width:640px){ .modal-inner::before { display:none; } }
    @keyframes mIn { from{opacity:0;transform:scale(.95) translateY(12px)} to{opacity:1;transform:scale(1) translateY(0)} }
    @keyframes mSlideUp { from{transform:translateY(100%);opacity:.7} to{transform:translateY(0);opacity:1} }
    .modal-head { height:140px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
    .modal-head [data-modal-icon] { color:rgba(255,255,255,.85); filter:drop-shadow(0 0 20px rgba(255,255,255,.25)); }
    .modal-close { position:absolute; top:.75rem; right:.75rem; width:32px; height:32px; border-radius:50%; background:rgba(0,0,0,.35); border:none; cursor:pointer; color:#fff; font-size:1.2rem; display:flex; align-items:center; justify-content:center; transition:background .2s; }
    .modal-close:hover { background:rgba(0,0,0,.6); }
    .modal-body { padding:1.25rem 1.5rem 1.75rem; }
    .modal-title { font-family:'Quicksand',sans-serif; font-weight:800; font-size:1.35rem; margin-bottom:.5rem; color:var(--text); }
    .modal-detail { font-size:.88rem; color:var(--muted); line-height:1.7; margin-bottom:1.25rem; }
    .modal-links { display:flex; gap:.65rem; flex-wrap:wrap; align-items:center; }
    .modal-links .bp, .modal-links .bs { padding:.6rem 1.25rem; font-size:.875rem; }

    #nores { display:none; text-align:center; padding:4rem 1rem; }

    @media(prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition-duration:.01ms!important} }

    /* Minimalista TM logó */
    #tnav a.gt, footer .gt { background:none !important; -webkit-text-fill-color:currentColor !important; color:var(--text) !important; transition:color .2s ease; }
    #tnav a.gt:hover, footer a.gt:hover { color:var(--accent) !important; }