.theme-blueprint{--bp-line:rgba(99,230,255,.12);--bp-paper:#0b1728;color:#eefbff;background:#08111f}
.theme-blueprint .bp-page{position:relative;min-height:100vh;background-image:linear-gradient(var(--bp-line) 1px,transparent 1px),linear-gradient(90deg,var(--bp-line) 1px,transparent 1px),linear-gradient(rgba(99,230,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(99,230,255,.05) 1px,transparent 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px}
.theme-blueprint .bp-ruler{position:fixed;z-index:5;left:10px;top:120px;bottom:40px;display:flex;flex-direction:column;justify-content:space-around;border-left:1px solid var(--accent);color:var(--accent);font:600 9px/1 'IBM Plex Sans',sans-serif;letter-spacing:.15em}.theme-blueprint .bp-ruler span{padding-left:8px}
.theme-blueprint .std-nav{top:12px;border:1px solid var(--accent);border-radius:0;background:rgba(8,17,31,.92);box-shadow:0 0 34px rgba(99,230,255,.08);backdrop-filter:blur(18px)}
.theme-blueprint .std-nav a{color:#eefbff}.theme-blueprint .std-brand:before{content:"SYS://";color:var(--accent);font-size:10px;letter-spacing:.12em}.theme-blueprint .std-nav nav a{border-radius:0;font-weight:600}.theme-blueprint .std-nav nav a:hover{background:rgba(99,230,255,.12)}
.theme-blueprint .std-nav-action,.theme-blueprint .std-primary{border:1px solid var(--accent);border-radius:0!important;background:transparent!important;color:var(--accent)!important}
.theme-blueprint .std-shell{padding-top:88px}.theme-blueprint .std-hero{position:relative;min-height:660px;border-left:1px solid var(--accent);padding-left:clamp(24px,4vw,56px)}
.theme-blueprint .std-hero:before{content:"PRIMARY PROFILE / REV.01";position:absolute;left:0;top:35px;color:var(--accent);font-size:9px;letter-spacing:.18em;transform:rotate(90deg) translateY(-100%);transform-origin:left top}
.theme-blueprint .std-kicker{color:var(--accent)}.theme-blueprint .std-hero h1{font-weight:600;letter-spacing:-.055em;line-height:.92}.theme-blueprint .std-headline{color:#eefbff;font-weight:500}.theme-blueprint .std-secondary{border:1px solid #91a9bd!important;border-radius:0!important}
.theme-blueprint .std-quick{color:#91a9bd}.theme-blueprint .std-portrait{border:1px solid var(--accent);border-radius:0;background:linear-gradient(135deg,rgba(99,230,255,.05),rgba(99,230,255,.18));box-shadow:14px 14px 0 rgba(99,230,255,.1)}
.theme-blueprint .std-portrait:before,.theme-blueprint .std-portrait:after{content:"";position:absolute;z-index:2;width:38px;height:38px;border-color:var(--accent)}.theme-blueprint .std-portrait:before{left:-7px;top:-7px;border-left:2px solid;border-top:2px solid}.theme-blueprint .std-portrait:after{right:-7px;bottom:-7px;border-right:2px solid;border-bottom:2px solid}.theme-blueprint .std-socials a{border:1px solid var(--accent);border-radius:0;background:#08111f;color:var(--accent)}
.theme-blueprint .std-stats{border-color:var(--bp-line)}.theme-blueprint .std-stats>div+div{border-color:var(--bp-line)}.theme-blueprint .std-stats b{color:var(--accent);font-weight:500}
.theme-blueprint .std-section{position:relative;border-color:var(--bp-line)}.theme-blueprint .std-section:before{content:"";position:absolute;left:0;top:0;width:6px;height:6px;border:1px solid var(--accent)}.theme-blueprint .std-section-index{color:var(--accent)}.theme-blueprint .std-section h2{font-weight:500;letter-spacing:-.025em}.theme-blueprint .std-summary p{font-size:clamp(21px,2.7vw,36px);font-weight:400;line-height:1.45}
.theme-blueprint .std-timeline article,.theme-blueprint .std-compact-list article{border-color:var(--bp-line)}.theme-blueprint .std-timeline time,.theme-blueprint .std-compact-list time{color:var(--accent)}
.theme-blueprint .std-projects article{border:1px solid var(--bp-line);border-radius:0;background:rgba(11,23,40,.88);box-shadow:none}.theme-blueprint .std-projects article:nth-child(3n+1){background:rgba(99,230,255,.07)}.theme-blueprint .std-projects article>a{color:var(--accent)}
.theme-blueprint .std-skills>div,.theme-blueprint .std-languages>div{border:1px solid var(--bp-line);border-radius:0;background:rgba(11,23,40,.72)}
.theme-blueprint .std-contact{border:1px solid var(--accent);border-radius:0;background:#06101d;box-shadow:14px 14px 0 rgba(99,230,255,.08)}.theme-blueprint .std-contact-form input,.theme-blueprint .std-contact-form textarea{border-color:rgba(99,230,255,.35);border-radius:0;background:rgba(99,230,255,.04)}
@media(max-width:920px){.theme-blueprint .bp-ruler{display:none}.theme-blueprint .std-hero{min-height:auto}.theme-blueprint .std-portrait{justify-self:start}}
@media(max-width:640px){.theme-blueprint .std-hero{padding-left:18px}.theme-blueprint .std-section{padding-left:12px}.theme-blueprint .std-hero h1{font-size:clamp(44px,15vw,68px)}}
.theme-blueprint.design-card-preview .bp-ruler{display:none}.theme-blueprint.design-card-preview .std-nav{position:relative}

/* ---- Hareket katmanı ----
   Tema teknik bir çizim masasını taklit ediyor; hareket de o dili konuşmalı:
   ızgara yavaşça kayar, bir tarama çizgisi sayfayı tarar, logonun yanındaki
   imleç yanıp söner. Üçü de yazılımcı/mühendis çağrışımı taşır.

   Ölçüldü: bu blok eklenmeden önce temada TEK BİR animasyon yoktu.

   İki fren var ve ikisi de gerekli: "hareket: kapalı" portfolyo sahibinin
   tercihi, azaltılmış hareket ise ziyaretçinin işletim sistemi tercihi.
   Yalnızca background-position, transform ve opacity canlandırılır — üçü de
   düzen hesabı tetiklemez, zayıf cihazlarda da akıcı kalır. */
@keyframes bp-grid-drift {
  from { background-position: 0 0, 0 0, 0 0, 0 0; }
  to { background-position: 80px 80px, 80px 80px, 16px 16px, 16px 16px; }
}
@keyframes bp-scan {
  0% { transform: translateY(-12vh); opacity: 0; }
  8% { opacity: .55; }
  92% { opacity: .55; }
  100% { transform: translateY(112vh); opacity: 0; }
}
@keyframes bp-blink { 0%, 48% { opacity: 1; } 52%, 100% { opacity: 0; } }

@media (prefers-reduced-motion: no-preference) {
  body.theme-blueprint:not(.motion-kapali) .bp-page { animation: bp-grid-drift 38s linear infinite; }

  /* Tarama çizgisi sayfanın üstünde yüzer. .bp-page'e transform UYGULANMAZ
     (yalnızca background-position canlanıyor), bu yüzden position:fixed olan
     bu çocuk ekrana göre konumlanmaya devam eder. */
  body.theme-blueprint:not(.motion-kapali) .bp-page::after {
    content: ""; position: fixed; z-index: 4; left: 0; right: 0; top: 0; height: 2px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
    pointer-events: none;
    animation: bp-scan 9s linear infinite;
  }

  body.theme-blueprint:not(.motion-kapali) .std-brand::after {
    content: "_"; margin-left: 2px; color: var(--accent);
    animation: bp-blink 1.1s steps(1, end) infinite;
  }
}

/* Kart küçük resminde hareket yok: küçük resim tek kare olarak alınıyor ve
   tarama çizgisi o karede rastgele bir yerde donmuş görünüyordu. */
.theme-blueprint.design-card-preview .bp-page,
.theme-blueprint.design-card-preview .bp-page::after,
.theme-blueprint.design-card-preview .std-brand::after { animation: none; }
.theme-blueprint.design-card-preview .bp-page::after { display: none; }

