:root{
    --bg:#0B0C10;
    --panel:rgba(13,15,20,.86);
    --ink:#F4F1EA;
    --muted:#A6ABB8;
    --accent:#E2956A;
    --accent-2:#F0D9B5;
    --line:rgba(166,171,184,.16);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{
    background:var(--bg);color:var(--ink);
    font-family:'Manrope',sans-serif;font-weight:300;line-height:1.7;
    overflow-x:hidden;
  }
  ::selection{background:var(--accent);color:var(--bg)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

  #scene{position:fixed;inset:0;z-index:0;cursor:grab}
  #scene.dragging{cursor:grabbing}
  #track{position:relative;z-index:-1}

  #loader{
    position:fixed;inset:0;z-index:100;background:var(--bg);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
    transition:opacity .7s ease;
  }
  #loader.done{opacity:0;pointer-events:none}
  #loader .ring{width:64px;height:64px;border-radius:50%;
    border:1px solid var(--line);border-top-color:var(--accent);
    animation:spin 1s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  #loader .pct{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.22em;color:var(--muted)}
  #loader .pct b{color:var(--accent);font-weight:500}

  @media (hover:hover) and (pointer:fine){
    body{cursor:none}
    a,button,.proj,#scene{cursor:none}
  }
  #cur-dot,#cur-ring{position:fixed;top:0;left:0;z-index:90;pointer-events:none;border-radius:50%;
    transform:translate(-50%,-50%)}
  #cur-dot{width:6px;height:6px;background:var(--accent)}
  #cur-ring{width:34px;height:34px;border:1px solid rgba(226,149,106,.55);
    transition:width .25s,height .25s,border-color .25s}
  #cur-ring.hot{width:54px;height:54px;border-color:var(--accent-2)}
  @media (hover:none){#cur-dot,#cur-ring{display:none}}

  #progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:40;
    background:linear-gradient(90deg,var(--accent),var(--accent-2));}

  nav{position:fixed;top:0;left:0;right:0;z-index:30;
    display:flex;justify-content:space-between;align-items:center;
    padding:1.2rem 5vw;
    background:linear-gradient(to bottom,rgba(11,12,16,.92),rgba(11,12,16,0));}
  .logo{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--ink);text-decoration:none}
  .logo span{color:var(--accent)}
  nav ul{display:flex;gap:1.8rem;list-style:none}
  nav button.nl{background:none;border:none;
    color:var(--muted);font-family:'Manrope';font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;
    padding:.2rem 0;border-bottom:1px solid transparent;transition:all .25s}
  nav button.nl:hover,nav button.nl.active{color:var(--ink);border-color:var(--accent)}

  #dots{position:fixed;right:1.6rem;top:50%;transform:translateY(-50%);z-index:30;
    display:flex;flex-direction:column;gap:1rem}
  #dots button{width:10px;height:10px;border-radius:50%;
    border:1px solid var(--muted);background:transparent;transition:all .3s;padding:0}
  #dots button.on{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(226,149,106,.7)}

  #hud{position:fixed;left:5vw;bottom:1.6rem;z-index:20;
    font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.14em;
    color:var(--muted);text-transform:uppercase;line-height:2;user-select:none}
  #hud b{color:var(--accent);font-weight:500}
  @media (max-width:880px){#hud{display:none}}

  .panel{
    position:fixed;z-index:10;
    top:50%;transform:translateY(calc(-50% + 60px));
    width:min(530px,86vw);
    max-height:78vh;overflow-y:auto;
    background:var(--panel);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border:1px solid var(--line);border-radius:20px;
    padding:2.4rem 2.5rem;
    opacity:0;pointer-events:none;
    box-shadow:0 30px 80px rgba(0,0,0,.5);
    scrollbar-width:thin;scrollbar-color:var(--accent) transparent;
  }
  .panel.left{left:5vw}
  .panel.right{right:5vw}
  .panel::-webkit-scrollbar{width:4px}
  .panel::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}

  .fx{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .panel.active .fx{opacity:1;transform:none}

  .eyebrow{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.18em;color:var(--accent);margin-bottom:1.1rem}
  h1,h2{font-family:'Syne',sans-serif;font-weight:700;letter-spacing:-.01em}
  h1{font-size:clamp(2.2rem,5.4vw,3.4rem);line-height:1.06}
  h1 em{font-style:normal;background:linear-gradient(100deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
  h2{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:1.2rem}
  .lead{color:var(--muted);font-size:.96rem}
  .lead strong{color:var(--ink);font-weight:600}

  .term{margin-top:1.8rem;background:rgba(8,9,12,.85);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .term-bar{display:flex;gap:.42rem;padding:.6rem .9rem;border-bottom:1px solid var(--line)}
  .term-bar i{width:.58rem;height:.58rem;border-radius:50%;background:#23252e}
  .term-bar i:first-child{background:var(--accent)}
  .term-body{font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:1rem 1.1rem;color:var(--muted);line-height:1.9}
  .term-body .p{color:var(--accent)}
  .term-body .s{color:var(--ink)}
  .caret{display:inline-block;width:.55em;height:1.05em;background:var(--accent);vertical-align:-2px;animation:blink 1.1s steps(1) infinite}
  @keyframes blink{50%{opacity:0}}

  .hint{margin-top:1.6rem;font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
  .hint b{color:var(--ink);font-weight:500}

  .stat-row{display:flex;gap:2rem;margin-top:1.8rem;flex-wrap:wrap}
  .stat .num{font-family:'Syne';font-weight:800;font-size:1.7rem;color:var(--accent)}
  .stat .lbl{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

  .timeline{border-left:1px solid var(--line);margin-top:.4rem}
  .titem{position:relative;padding:0 0 1.7rem 1.6rem}
  .titem:last-child{padding-bottom:0}
  .titem::before{content:"";position:absolute;left:-5px;top:.45rem;width:9px;height:9px;border-radius:50%;
    background:var(--bg);border:2px solid var(--accent)}
  .titem .when{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.12em;color:var(--accent)}
  .titem h3{font-family:'Syne';font-weight:700;font-size:1rem;margin:.25rem 0 .1rem;color:var(--ink)}
  .titem .org{color:var(--muted);font-size:.84rem}
  .titem p{color:var(--muted);font-size:.85rem;margin-top:.4rem}
  .titem ul{list-style:none;margin-top:.5rem}
  .titem ul li{color:var(--muted);font-size:.84rem;padding:.12rem 0}
  .titem ul li::before{content:"▸ ";color:var(--accent)}

  .skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.4rem}
  .skill-box{border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;background:rgba(8,9,12,.5);
    transition:border-color .3s}
  .skill-box:hover{border-color:var(--accent)}
  .skill-box h3{font-family:'JetBrains Mono',monospace;font-weight:500;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
  .skill-box ul{list-style:none}
  .skill-box li{color:var(--muted);font-size:.84rem;padding:.16rem 0}
  .skill-box li::before{content:"▸ ";color:var(--accent)}
  .certs{margin-top:1rem;border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;background:rgba(8,9,12,.5)}
  .certs h3{font-family:'JetBrains Mono',monospace;font-weight:500;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
  .certs span{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--ink);
    border:1px solid var(--line);border-radius:999px;padding:.24rem .7rem;margin:.2rem .25rem .2rem 0}

  .proj{border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.4rem;margin-bottom:1rem;
    background:rgba(8,9,12,.5);transition:border-color .3s,transform .3s}
  .proj:hover{border-color:var(--accent);transform:translateX(6px)}
  .proj .idx{font-family:'JetBrains Mono',monospace;font-size:.64rem;color:var(--accent);letter-spacing:.16em}
  .proj h3{font-family:'Syne';font-weight:700;font-size:1rem;margin:.4rem 0 .35rem}
  .proj p{color:var(--muted);font-size:.85rem}
  .proj .stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
  .proj .stack span{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:var(--ink);
    border:1px solid var(--line);border-radius:999px;padding:.22rem .6rem}
  .proj a{color:var(--accent);text-decoration:none;font-size:.8rem}
  .proj a:hover{text-decoration:underline}

  .cta{display:inline-block;margin-top:1.6rem;text-decoration:none;
    font-family:'Syne';font-weight:700;font-size:.9rem;color:var(--bg);
    background:linear-gradient(100deg,var(--accent),var(--accent-2));
    padding:.95rem 2.2rem;border-radius:999px;transition:transform .3s,box-shadow .3s}
  .cta:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(226,149,106,.35)}
  .contact-list{margin-top:1.4rem;font-family:'JetBrains Mono',monospace;font-size:.78rem;line-height:2.2;color:var(--muted)}
  .contact-list b{color:var(--accent);font-weight:500}
  .socials{display:flex;gap:1.6rem;margin-top:1.6rem;flex-wrap:wrap}
  .socials a{font-family:'JetBrains Mono',monospace;font-size:.76rem;color:var(--muted);
    text-decoration:none;border-bottom:1px solid transparent;transition:all .25s}
  .socials a:hover{color:var(--ink);border-color:var(--accent)}

  #scrollcue{position:fixed;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:20;
    font-family:'JetBrains Mono',monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
    color:var(--muted);display:flex;align-items:center;gap:.7rem;transition:opacity .5s}
  #scrollcue::after{content:"";width:1px;height:34px;background:var(--accent);
    animation:drip 2s ease-in-out infinite}
  @keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

  @media (max-width:880px){
    nav ul{display:none}
    #dots{right:.9rem}
    .panel.left,.panel.right{left:50%;right:auto;transform:translate(-50%,0);
      top:auto;bottom:4.5rem;max-height:56vh;width:92vw;padding:1.8rem 1.6rem}
    .skill-grid{grid-template-columns:1fr}
  }
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
    .fx{opacity:1;transform:none}
  }

/* ---------- open to work rozeti ---------- */
.badge{display:flex;align-items:center;gap:.5rem;
  font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.18em;color:var(--muted)}
.badge i{width:7px;height:7px;border-radius:50%;background:#4ade80;
  box-shadow:0 0 8px rgba(74,222,128,.8);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}

/* ---------- nav resume linki ---------- */
nav a.nl{color:var(--muted);text-decoration:none;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.2rem 0;border-bottom:1px solid transparent;transition:all .25s}
nav a.nl:hover{color:var(--ink);border-color:var(--accent)}
nav a.nl.resume{color:var(--accent)}

/* ---------- ikincil cta ---------- */
.cta-alt{display:inline-block;margin:1.6rem 0 0 .8rem;text-decoration:none;
  font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--accent);
  border:1px solid var(--accent);padding:.9rem 1.6rem;border-radius:999px;
  transition:all .3s}
.cta-alt:hover{background:rgba(226,149,106,.12);transform:translateY(-3px)}
@media (max-width:880px){.cta-alt{margin-left:0;margin-top:.9rem}}

/* ---------- canlı github satırı ---------- */
.gh-live{display:flex;align-items:center;gap:.55rem;margin:-.4rem 0 1rem;
  font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.1em;color:var(--muted)}
.gh-live i{width:6px;height:6px;border-radius:50%;background:#4ade80;
  box-shadow:0 0 8px rgba(74,222,128,.8);animation:pulse 1.8s ease-in-out infinite;flex:none}
.gh-live b{color:var(--accent);font-weight:500}

/* ---------- yazdırma: temiz CV görünümü ---------- */
@media print{
  #scene,#loader,nav,#dots,#hud,#scrollcue,#progress,#cur-dot,#cur-ring,#track,.hint,.term{display:none!important}
  body{background:#fff;color:#111;cursor:auto}
  .panel{position:static!important;opacity:1!important;transform:none!important;
    pointer-events:auto!important;width:auto;max-height:none;overflow:visible;
    background:#fff;border:none;border-bottom:1px solid #ddd;border-radius:0;
    box-shadow:none;padding:1.2rem 0;margin:0 1cm;backdrop-filter:none}
  .fx{opacity:1!important;transform:none!important}
  h1,h2,.titem h3,.proj h3{color:#111}
  h1 em{-webkit-text-fill-color:#B35F35;color:#B35F35;background:none}
  .lead,.titem p,.titem ul li,.proj p,.skill-box li,.contact-list{color:#333}
  .eyebrow,.titem .when,.proj .idx,.skill-box h3,.certs h3{color:#B35F35}
  .skill-box,.proj,.certs{background:#fff;border-color:#ddd}
  .stat .num{color:#B35F35;-webkit-text-fill-color:#B35F35}
  .cta,.cta-alt{display:none}
  .socials a{color:#333;border:none}
}

/* ---------- JS/3D yuklenemezse statik yedek ---------- */
.fallback #scene,.fallback #loader,.fallback #scrollcue,.fallback #hud,
.fallback #dots,.fallback #cur-dot,.fallback #cur-ring,.fallback #track{display:none!important}
.fallback .panel{position:static!important;opacity:1!important;transform:none!important;
  pointer-events:auto!important;margin:7rem auto 2rem;max-height:none}
.fallback .panel~.panel{margin-top:2rem}
.fallback .fx{opacity:1!important;transform:none!important}
.fallback body{cursor:auto}

/* ---------- skip link (klavye kullanicilari) ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--accent);color:var(--bg);padding:.8rem 1.4rem;border-radius:0 0 10px 0;
  font-family:'JetBrains Mono',monospace;font-size:.75rem;text-decoration:none}
.skip:focus{left:0}

/* ---------- panel ici kaydirma sayfayi surüklemesin ---------- */
.panel{overscroll-behavior:contain}

/* ---------- mobil: panel icinde rahat kaydirma ---------- */
@media (max-width:880px){
  .panel{-webkit-overflow-scrolling:touch}
}

/* ---------- dokunmatik hedef boyutu (min 44px) ---------- */
#dots button{position:relative}
#dots button::after{content:"";position:absolute;inset:-16px}

/* ---------- yuksek kontrast tercihi ---------- */
@media (prefers-contrast:more){
  :root{--muted:#CFD3DC;--line:rgba(207,211,220,.4)}
  .panel{background:rgba(8,9,12,.96)}
}

/* ---------- kopyalanabilir alanlar ---------- */
.copyable{background:none;border:none;padding:0;
  font-family:'JetBrains Mono',monospace;font-size:inherit;color:var(--muted);
  border-bottom:1px dashed var(--line);transition:color .25s,border-color .25s}
.copyable:hover{color:var(--ink);border-color:var(--accent)}
.copyable::after{content:" ⧉";color:var(--accent);font-size:.85em}

/* ---------- toast ---------- */
#toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,20px);z-index:80;
  background:rgba(13,15,20,.95);backdrop-filter:blur(12px);
  border:1px solid var(--accent);border-radius:999px;
  padding:.7rem 1.4rem;color:var(--ink);
  font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:90vw;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#toast.on{opacity:1;transform:translate(-50%,0)}
