/* Appitbe — tek dosya stil.
   Mobil öncelikli. Bütün animasyonlar transform/opacity üzerinden çalışır,
   böylece telefonda da düzen yeniden hesaplanmaz (60 fps hedefi). */

:root {
  --mor: #7c5cff;
  --mavi: #5b8cff;
  --yesil: #22c1a4;
  --zemin: #07070b;
  --zemin-2: #0d0d15;
  --kart: rgba(255,255,255,.035);
  --cizgi: rgba(255,255,255,.09);
  --metin: #eceaf5;
  --soluk: #9a97ad;
  --en: 1180px;
  --yumusak: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--zemin);
  color: var(--metin);
  font: 400 16px/1.65 ui-sans-serif, -apple-system, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3 { margin: 0; line-height: 1.1; letter-spacing: -.025em; font-weight: 600; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
ol { margin: 0; padding: 0; list-style: none; }

.atla {
  position: fixed; top: -100px; left: 12px; z-index: 100;
  background: var(--mavi); color: #fff; padding: 10px 16px; border-radius: 10px;
  transition: top .2s;
}
.atla:focus { top: 12px; }

/* ---------- arka plan ---------- */
.fon { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }

.kure {
  position: absolute; border-radius: 50%;
  filter: blur(90px); opacity: .5;
  will-change: transform;
}
.kure-1 {
  width: 60vmax; height: 60vmax; top: -22vmax; right: -18vmax;
  background: radial-gradient(circle at 30% 30%, var(--mor), transparent 62%);
  animation: suzul-1 26s var(--yumusak) infinite alternate;
}
.kure-2 {
  width: 52vmax; height: 52vmax; bottom: -20vmax; left: -16vmax;
  background: radial-gradient(circle at 60% 40%, var(--mavi), transparent 62%);
  animation: suzul-2 32s var(--yumusak) infinite alternate;
}
@keyframes suzul-1 { to { transform: translate3d(-8vmax, 10vmax, 0) scale(1.12); } }
@keyframes suzul-2 { to { transform: translate3d(9vmax, -8vmax, 0) scale(1.08); } }

/* ince ızgara — derinlik hissi verir, dikkat dağıtmaz */
.izgara {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 35%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 35%, transparent 78%);
}

/* ---------- üst çubuk ---------- */
.ust {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; gap: 20px;
  max-width: var(--en); margin: 0 auto;
  padding: 14px 20px;
  transition: background .3s, border-color .3s, backdrop-filter .3s;
  border-bottom: 1px solid transparent;
}
.ust.kaydi {
  background: rgba(7,7,11,.72);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom-color: var(--cizgi);
}

.marka { display: flex; align-items: center; gap: 9px; margin-right: auto; }
.marka-im { width: 26px; height: 26px; color: var(--mavi); flex: none; }
.marka-ad { font-weight: 650; letter-spacing: -.03em; font-size: 19px; }

.menu { display: none; gap: 26px; font-size: 14.5px; color: var(--soluk); }
.menu a { position: relative; padding: 4px 0; transition: color .2s; }
.menu a::after {
  content: ""; position: absolute; left: 0; bottom: 0; height: 1.5px; width: 100%;
  background: var(--mavi); transform: scaleX(0); transform-origin: right;
  transition: transform .32s var(--yumusak);
}
.menu a:hover { color: var(--metin); }
.menu a:hover::after { transform: scaleX(1); transform-origin: left; }

.ust-sag { display: flex; align-items: center; gap: 10px; }

.dil {
  background: var(--kart); border: 1px solid var(--cizgi); color: var(--soluk);
  border-radius: 9px; padding: 7px 11px; font: 600 12.5px/1 inherit; letter-spacing: .04em;
  cursor: pointer; transition: color .2s, border-color .2s, background .2s;
}
.dil:hover { color: var(--metin); border-color: rgba(255,255,255,.22); }

/* ---------- hamburger + mobil menü ---------- */
.hamburger {
  width: 38px; height: 38px; display: grid; place-content: center; gap: 5px;
  background: var(--kart); border: 1px solid var(--cizgi); border-radius: 10px;
  cursor: pointer; padding: 0;
}
.hamburger span {
  display: block; width: 16px; height: 1.6px; background: var(--metin); border-radius: 2px;
  transition: transform .3s var(--yumusak), opacity .2s;
}
.hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.3px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.3px) rotate(-45deg); }

.mobil-menu {
  position: fixed; inset: 0; z-index: 45;
  background: rgba(7,7,11,.96);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  opacity: 0; transition: opacity .28s var(--yumusak);
}
.mobil-menu[hidden] { display: none; }
.mobil-menu.acik { opacity: 1; }
.mobil-menu nav { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 22px; }
.mobil-menu nav a {
  font-size: 27px; font-weight: 560; letter-spacing: -.025em; padding: 11px 18px;
  opacity: 0; transform: translateY(14px);
  transition: opacity .4s var(--yumusak), transform .4s var(--yumusak), color .2s;
}
.mobil-menu.acik nav a { opacity: 1; transform: none; }
.mobil-menu.acik nav a:nth-child(1) { transition-delay: .06s; }
.mobil-menu.acik nav a:nth-child(2) { transition-delay: .12s; }
.mobil-menu.acik nav a:nth-child(3) { transition-delay: .18s; }
.mobil-menu.acik nav a:nth-child(4) { transition-delay: .24s; }
.mobil-menu nav a:hover { color: var(--mavi); }
.mobil-menu > .dugme {
  opacity: 0; transform: translateY(14px);
  transition: opacity .4s var(--yumusak) .3s, transform .4s var(--yumusak) .3s;
}
.mobil-menu.acik > .dugme { opacity: 1; transform: none; }

/* menü açıkken arka plan kaymasın */
body.menu-acik { overflow: hidden; }

/* ---------- düğmeler ---------- */
.dugme {
  display: inline-flex; align-items: center; gap: 9px;
  background: linear-gradient(135deg, var(--mavi), var(--mor));
  color: #fff; font-weight: 560; font-size: 15px;
  padding: 13px 22px; border-radius: 12px;
  position: relative; overflow: hidden;
  transition: transform .25s var(--yumusak), box-shadow .25s;
  box-shadow: 0 6px 20px -8px rgba(91,140,255,.6);
}
.dugme svg { width: 15px; height: 15px; transition: transform .28s var(--yumusak); }
.dugme:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(91,140,255,.75); }
.dugme:hover svg { transform: translateX(3px); }
/* geçen ışık */
.dugme::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 35%, rgba(255,255,255,.32) 50%, transparent 65%);
  transform: translateX(-100%);
}
.dugme:hover::before { animation: parla .7s var(--yumusak); }
@keyframes parla { to { transform: translateX(100%); } }

.dugme-kucuk { padding: 8px 15px; font-size: 13.5px; display: none; }
.dugme-sade {
  background: var(--kart); border: 1px solid var(--cizgi); color: var(--metin); box-shadow: none;
}
.dugme-sade:hover { border-color: rgba(255,255,255,.24); box-shadow: none; }
.dugme-buyuk { padding: 16px 30px; font-size: 17px; }

/* ---------- giriş ---------- */
main { max-width: var(--en); margin: 0 auto; padding: 0 20px; }

.giris { padding: 48px 0 40px; text-align: center; }

.rozet {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--kart); border: 1px solid var(--cizgi);
  border-radius: 100px; padding: 7px 15px;
  font-size: 13px; color: var(--soluk); margin-bottom: 26px;
}
.nokta {
  width: 7px; height: 7px; border-radius: 50%; background: var(--yesil); flex: none;
  box-shadow: 0 0 0 0 rgba(34,193,164,.6); animation: nabiz 2.4s infinite;
}
@keyframes nabiz {
  70% { box-shadow: 0 0 0 8px rgba(34,193,164,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,193,164,0); }
}

.baslik { font-size: clamp(38px, 11vw, 78px); font-weight: 620; margin-bottom: 22px; }
.satir { display: block; overflow: hidden; }
.satir > span { display: block; }
@keyframes yuksel { to { transform: translateY(0); } }

.vurgu {
  background: linear-gradient(100deg, var(--mavi), var(--mor) 45%, var(--yesil));
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation: kaydir 9s ease-in-out infinite alternate;
}
/* .js altında vurgu satırı hem yükselir hem renk kaydırır */
.js .vurgu { animation: yuksel .95s var(--yumusak) forwards, kaydir 9s ease-in-out infinite alternate; }
@keyframes kaydir { to { background-position: 100% 0; } }

.giris-metin { max-width: 620px; margin: 0 auto 32px; color: var(--soluk); font-size: 17px; }
.giris-dugmeler { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* ---------- telefon maketi ---------- */
.maket-alan { margin-top: 58px; perspective: 1000px; display: flex; justify-content: center; }
.maket { position: relative; animation: suzul-maket 6s ease-in-out infinite alternate; }
@keyframes suzul-maket { to { transform: translateY(-14px); } }

.maket-cerceve {
  width: 232px; height: 470px; border-radius: 38px; padding: 11px;
  background: linear-gradient(160deg, rgba(255,255,255,.16), rgba(255,255,255,.03));
  border: 1px solid var(--cizgi);
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.85);
  transform: rotateX(8deg) rotateY(-10deg);
}
.maket-ekran {
  height: 100%; border-radius: 28px; background: linear-gradient(170deg, #12121d, #0a0a11);
  padding: 26px 16px; display: flex; flex-direction: column; gap: 11px; overflow: hidden;
}
.maket-cizgi { height: 9px; border-radius: 5px; background: rgba(255,255,255,.09); }
.maket-uzun { width: 62%; height: 13px; background: rgba(255,255,255,.17); }
.maket-kisa { width: 45%; }
.maket-kart {
  height: 108px; border-radius: 14px; margin: 4px 0;
  background: linear-gradient(135deg, rgba(91,140,255,.36), rgba(124,92,255,.22));
  border: 1px solid rgba(255,255,255,.11);
  background-size: 200% 200%;
  animation: kart-kay 7s ease-in-out infinite alternate;
}
@keyframes kart-kay { to { background-position: 100% 100%; } }
.maket-satir { display: flex; gap: 8px; margin: 3px 0; }
.maket-yuvarlak {
  width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.1);
}
.maket-yuvarlak:nth-child(2) { background: rgba(91,140,255,.3); }
.maket-isik {
  position: absolute; inset: 12% 8%; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(124,92,255,.5), transparent 68%);
  filter: blur(48px);
}

/* ---------- kayan şerit ---------- */
.serit {
  margin: 34px 0 12px; padding: 18px 0;
  border-top: 1px solid var(--cizgi); border-bottom: 1px solid var(--cizgi);
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.serit-kayan {
  display: flex; gap: 26px; align-items: center; width: max-content;
  color: var(--soluk); font-size: 14.5px; letter-spacing: .02em;
  animation: kay 30s linear infinite;
}
.serit-kayan i { color: rgba(255,255,255,.2); font-style: normal; }
@keyframes kay { to { transform: translateX(-50%); } }

/* ---------- bölümler ---------- */
.bolum { padding: 78px 0; }
.bolum-ust { max-width: 660px; margin-bottom: 44px; }
.bolum-ust h2 { font-size: clamp(28px, 6.2vw, 42px); margin: 12px 0 14px; }
.bolum-ust p { color: var(--soluk); font-size: 16.5px; }

.etiket {
  display: inline-block; font-size: 12.5px; font-weight: 600;
  letter-spacing: .13em; text-transform: uppercase; color: var(--mavi);
}

/* ---------- hizmet kartları ---------- */
.kartlar { display: grid; gap: 14px; grid-template-columns: 1fr; }

.kart {
  position: relative; overflow: hidden;
  background: var(--kart); border: 1px solid var(--cizgi);
  border-radius: 18px; padding: 26px 24px;
  transition: transform .35s var(--yumusak), border-color .35s, background .35s;
}
.kart::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(420px circle at var(--fx, 50%) var(--fy, 0%),
              rgba(91,140,255,.14), transparent 42%);
  opacity: 0; transition: opacity .35s;
}
.kart:hover { transform: translateY(-4px); border-color: rgba(255,255,255,.2); }
.kart:hover::before { opacity: 1; }
.kart > * { position: relative; }
.kart-im {
  width: 44px; height: 44px; border-radius: 12px; margin-bottom: 16px;
  display: grid; place-items: center;
  background: linear-gradient(140deg, rgba(91,140,255,.2), rgba(124,92,255,.12));
  border: 1px solid var(--cizgi); color: var(--mavi);
}
.kart-im svg { width: 22px; height: 22px; }
.kart h3 { font-size: 19px; margin-bottom: 9px; }
.kart p { color: var(--soluk); font-size: 15px; }

/* ---------- süreç ---------- */
.adimlar { display: grid; gap: 14px; grid-template-columns: 1fr; }
.adim {
  position: relative; padding: 24px 22px 24px 24px;
  border: 1px solid var(--cizgi); border-radius: 16px; background: var(--kart);
  transition: border-color .3s, transform .3s var(--yumusak);
}
.adim:hover { border-color: rgba(255,255,255,.2); transform: translateY(-3px); }
.adim-no {
  display: block; font-size: 13px; font-weight: 700; letter-spacing: .1em;
  color: var(--mavi); margin-bottom: 10px;
}
.adim h3 { font-size: 18px; margin-bottom: 8px; }
.adim p { color: var(--soluk); font-size: 15px; }

/* ---------- işler ---------- */
.isler { display: grid; gap: 14px; }
.is {
  display: grid; grid-template-columns: 1fr; gap: 18px;
  border: 1px solid var(--cizgi); border-radius: 20px; padding: 20px;
  background: var(--kart);
  transition: border-color .35s, transform .35s var(--yumusak);
}
.is:hover { border-color: color-mix(in srgb, var(--is-renk) 45%, transparent); transform: translateY(-4px); }
.is-gorsel {
  height: 150px; border-radius: 14px; display: grid; place-items: center;
  background:
    radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--is-renk) 42%, transparent), transparent 60%),
    linear-gradient(150deg, rgba(255,255,255,.06), rgba(255,255,255,.01));
  border: 1px solid var(--cizgi);
  overflow: hidden;
}
.is-harf {
  font-size: 60px; font-weight: 700; letter-spacing: -.04em;
  color: color-mix(in srgb, var(--is-renk) 85%, #fff);
  opacity: .82;
  transition: transform .5s var(--yumusak);
}
.is:hover .is-harf { transform: scale(1.12) rotate(-4deg); }
.is-tur { font-size: 12.5px; color: var(--is-renk); font-weight: 600; letter-spacing: .04em; }
.is-metin h3 { font-size: 21px; margin: 7px 0 9px; }
.is-metin p { color: var(--soluk); font-size: 15px; }

/* ---------- sayılar ---------- */
.sayilar {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  padding: 34px 18px; margin: 12px 0;
  border: 1px solid var(--cizgi); border-radius: 20px;
  background: linear-gradient(140deg, rgba(255,255,255,.05), rgba(255,255,255,.012));
  text-align: center;
}
.sayi strong {
  display: block; font-size: clamp(30px, 8vw, 46px); font-weight: 650; letter-spacing: -.03em;
  background: linear-gradient(140deg, var(--mavi), var(--mor));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.sayi span { font-size: 13px; color: var(--soluk); }

/* ---------- iletişim ---------- */
.iletisim-bolum { padding-bottom: 90px; }
.iletisim {
  text-align: center; padding: 60px 24px;
  border: 1px solid var(--cizgi); border-radius: 26px;
  background:
    radial-gradient(700px circle at 50% 0%, rgba(124,92,255,.16), transparent 62%),
    linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.01));
}
.iletisim h2 { font-size: clamp(27px, 6.6vw, 44px); margin: 12px auto 16px; max-width: 620px; }
.iletisim p { color: var(--soluk); max-width: 520px; margin: 0 auto 30px; font-size: 16.5px; }

/* ---------- alt ---------- */
.alt { border-top: 1px solid var(--cizgi); padding: 30px 20px; }
.alt-ic {
  max-width: var(--en); margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
}
.marka-alt { font-size: 17px; }
.alt-not, .alt-hak { color: var(--soluk); font-size: 13.5px; }

/* ---------- kaydırınca beliren ögeler ----------
   Gizleme YALNIZCA .js sınıfı varken uygulanır. Bu sınıfı <head> içindeki
   satır içi betik ekler. Böylece JavaScript kapalıysa, betik yüklenemezse ya da
   IntersectionObserver tetiklenmezse içerik gizli kalmaz — sayfanın yarısının
   görünmez olması, animasyonun hiç olmamasından çok daha kötüdür. */
.js [data-canlan] {
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s var(--yumusak), transform .7s var(--yumusak);
}
.js [data-canlan].gorundu { opacity: 1; transform: none; }

/* Başlık satırları da aynı mantıkla: animasyon .js'e bağlı, içerik değil. */
.js .satir > span {
  transform: translateY(105%);
  animation: yuksel .95s var(--yumusak) forwards;
}
.js .satir:nth-child(1) > span { animation-delay: .05s; }
.js .satir:nth-child(2) > span { animation-delay: .16s; }
.js .satir:nth-child(3) > span { animation-delay: .27s; }

/* ---------- geniş ekran ---------- */
@media (min-width: 640px) {
  .kartlar { grid-template-columns: repeat(2, 1fr); }
  .adimlar { grid-template-columns: repeat(2, 1fr); }
  .is { grid-template-columns: 220px 1fr; align-items: center; gap: 24px; padding: 22px; }
  .is-gorsel { height: 168px; }
  .giris { padding: 70px 0 50px; }
  .bolum { padding: 96px 0; }
}
@media (min-width: 900px) {
  .menu { display: flex; }
  .dugme-kucuk { display: inline-flex; }
  .hamburger { display: none; }
  .mobil-menu { display: none !important; }
  .adimlar { grid-template-columns: repeat(4, 1fr); }
  .ust { padding: 16px 20px; }
  .maket-cerceve { width: 262px; height: 528px; }
  .alt-ic { flex-direction: row; justify-content: space-between; text-align: left; }
}

/* ---------- hareket azaltma tercihi ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .satir > span { transform: none; }
  [data-canlan] { opacity: 1; transform: none; }
}
