/* GNGR Labs — yakında sayfası. Bilinçli olarak yalnız koyu: krom/altın logo koyu zeminde okunur. */
@font-face{font-family:"Space Grotesk";font-style:normal;font-display:swap;font-weight:300 700;
  src:url(/fonts/space-grotesk-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Space Grotesk";font-style:normal;font-display:swap;font-weight:300 700;
  src:url(/fonts/space-grotesk-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:100 800;
  src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:100 800;
  src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --zemin:#060709;
  --zemin-2:#0c0e12;
  --metin:#eef0f3;
  --metin-2:#a6acb6;
  --metin-3:#6c727d;
  --cizgi:rgba(214,220,230,.09);
  --cizgi-2:rgba(214,220,230,.18);
  --gumus-1:#ffffff;
  --gumus-2:#c9ced6;
  --gumus-3:#7d838d;
  --altin-1:#ffe08a;
  --altin-2:#e8b030;
  --altin-3:#a8740c;
  --yesil:#4ade80;
  --gumus-grad:linear-gradient(180deg,#fff 0%,#e9ecf0 38%,#9aa1ab 52%,#f4f6f8 66%,#c3c8cf 100%);
  --altin-grad:linear-gradient(180deg,#fff1b8 0%,#f5c542 40%,#b07a0e 55%,#f2c04a 72%,#c98d16 100%);
  --yazi:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --gutter:clamp(16px,4vw,48px);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;min-height:100vh;min-height:100svh;
  background:var(--zemin);color:var(--metin);
  font-family:var(--yazi);line-height:1.5;
  display:grid;grid-template-rows:auto 1fr auto;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.mono{font-family:var(--mono);letter-spacing:.04em}
.gorunmez{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
::selection{background:var(--altin-2);color:#111}

/* ——— arka katmanlar ——— */
#alan{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
.izgara{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:
    linear-gradient(var(--cizgi) 1px,transparent 1px),
    linear-gradient(90deg,var(--cizgi) 1px,transparent 1px);
  background-size:72px 72px;
  background-position:center center;
  -webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 0%,transparent 78%);
          mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 0%,transparent 78%);
  opacity:.55;
  animation:izgaraKay 40s linear infinite;
}
@keyframes izgaraKay{to{background-position:center calc(50% + 72px)}}
.tane{
  position:fixed;inset:-50%;z-index:2;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:tane 1.2s steps(6) infinite;
}
@keyframes tane{
  0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}
  60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}
}
.perde{
  position:fixed;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(ellipse 46% 52% at 50% 50%,rgba(6,7,9,.78) 0%,rgba(6,7,9,.45) 55%,transparent 100%);
}
.kenar{position:fixed;inset:clamp(10px,2vw,22px);z-index:3;pointer-events:none}
.kose{position:absolute;width:18px;height:18px;border:1px solid var(--cizgi-2);opacity:0;animation:belir .8s 1.6s ease forwards}
.kose--ust-sol{top:0;left:0;border-right:0;border-bottom:0}
.kose--ust-sag{top:0;right:0;border-left:0;border-bottom:0}
.kose--alt-sol{bottom:0;left:0;border-right:0;border-top:0}
.kose--alt-sag{bottom:0;right:0;border-left:0;border-top:0}

/* ——— üst şerit ——— */
.ust{
  position:relative;z-index:5;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:clamp(22px,3.4vw,40px) calc(var(--gutter) + 12px) 0;
  font-size:11px;color:var(--metin-2);
  opacity:0;animation:belir .9s 1.4s ease forwards;
}
.durum{display:flex;align-items:center;gap:10px;text-transform:uppercase}
.nokta{width:7px;height:7px;border-radius:50%;background:var(--altin-2);box-shadow:0 0 0 0 rgba(232,176,48,.6);animation:nabiz 2s ease-out infinite;flex:none}
.nokta--yesil{background:var(--yesil);box-shadow:0 0 0 0 rgba(74,222,128,.55)}
@keyframes nabiz{0%{box-shadow:0 0 0 0 currentColor;box-shadow:0 0 0 0 rgba(232,176,48,.55)}100%{box-shadow:0 0 0 9px rgba(232,176,48,0)}}
.nokta--yesil{animation-name:nabizYesil}
@keyframes nabizYesil{0%{box-shadow:0 0 0 0 rgba(74,222,128,.5)}100%{box-shadow:0 0 0 9px rgba(74,222,128,0)}}
.ust-sag{display:flex;align-items:center;gap:22px}
.koord{color:var(--metin-3);font-variant-numeric:tabular-nums}
.dil{display:flex;align-items:center;gap:6px}
.dil span{color:var(--metin-3)}
.dil a{
  text-decoration:none;color:var(--metin-3);padding:8px 4px;min-width:28px;text-align:center;
  transition:color .2s;
}
.dil a:hover{color:var(--metin)}
.dil a[aria-current="true"]{color:var(--metin)}

/* ——— sahne ——— */
.sahne{
  position:relative;z-index:5;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:clamp(28px,5vh,64px) var(--gutter) clamp(28px,4vh,48px);
  min-width:0;
}
.logo-kap{margin:0;font-size:0;line-height:0}
.logo{
  position:relative;display:inline-block;
  width:min(500px,82vw);aspect-ratio:3/1;
  cursor:pointer;
  opacity:0;filter:blur(14px);transform:translateY(14px) scale(.96);
  animation:logoGel 1.6s .2s cubic-bezier(.2,.7,.1,1) forwards;
  -webkit-tap-highlight-color:transparent;
}
.logo img{width:100%;height:100%;display:block;object-fit:contain;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.65)) drop-shadow(0 2px 2px rgba(0,0,0,.5))}
@keyframes logoGel{to{opacity:1;filter:blur(0);transform:none}}
/* Krom parıltı: logonun kendi pikselleriyle maskelenir, logo değiştirilmez. */
.logo-parilti{
  position:absolute;inset:0;pointer-events:none;
  -webkit-mask:url(/img/gngr-logo.png) center/contain no-repeat;
          mask:url(/img/gngr-logo.png) center/contain no-repeat;
  background:linear-gradient(105deg,transparent 0%,transparent 42%,rgba(255,255,255,.85) 50%,transparent 58%,transparent 100%);
  background-size:300% 100%;background-position:120% 0;
  mix-blend-mode:overlay;
  animation:parilti 7s 1.8s ease-in-out infinite;
}
@keyframes parilti{0%{background-position:120% 0}28%,100%{background-position:-20% 0}}

.baslik{
  margin:clamp(14px,3vh,32px) 0 0;
  font-weight:600;letter-spacing:-.035em;line-height:1.02;
  font-size:clamp(34px,5.6vw,76px);
}
.baslik-satir{display:block;opacity:0}
.baslik-satir.hazir{opacity:1}
.baslik-satir--vurgu{
  background:var(--gumus-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  padding-bottom:.08em;
}
.baslik-satir--vurgu .k{color:var(--altin-1);-webkit-text-fill-color:var(--altin-1)}
.baslik .k{color:var(--metin-3);-webkit-text-fill-color:var(--metin-3)}

.alt{
  margin:clamp(16px,2.6vh,26px) auto 0;max-width:640px;
  color:var(--metin-2);font-size:clamp(15px,1.5vw,18px);line-height:1.6;
  opacity:0;animation:belir 1s 2.1s ease forwards;
  text-wrap:balance;
}
.makara{
  display:inline-block;vertical-align:bottom;height:1.6em;overflow:hidden;
  position:relative;top:.06em;
}
.makara-ic{display:flex;flex-direction:column;align-items:flex-start;transition:transform .7s cubic-bezier(.7,0,.2,1)}
.makara-ic>span{
  display:block;width:max-content;height:1.6em;line-height:1.6em;font-weight:600;
  background:var(--altin-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  white-space:nowrap;
}

/* yol haritası */
.yol{
  list-style:none;margin:clamp(26px,4.4vh,44px) 0 0;padding:0;
  display:flex;align-items:center;gap:0;font-size:11px;text-transform:uppercase;color:var(--metin-3);
  opacity:0;animation:belir 1s 2.4s ease forwards;
}
.yol-adim{display:flex;align-items:center;gap:8px;position:relative;padding:0 22px}
.yol-adim+.yol-adim::before{
  content:"";position:absolute;left:-16px;top:50%;width:32px;height:1px;background:var(--cizgi-2);
}
.yol-adim.bitti+.yol-adim::before{background:linear-gradient(90deg,var(--gumus-3),var(--cizgi-2))}
.yol-im{
  width:16px;height:16px;border-radius:50%;border:1px solid var(--cizgi-2);
  display:grid;place-items:center;font-size:9px;line-height:1;flex:none;
}
.yol-adim.bitti{color:var(--metin-2)}
.yol-adim.bitti .yol-im{border-color:var(--gumus-3);color:var(--gumus-2)}
.yol-adim.simdi{color:var(--altin-1)}
.yol-adim.simdi .yol-im{border-color:var(--altin-2);position:relative}
.yol-adim.simdi .yol-im::after{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--altin-2);
  animation:nabiz 1.6s ease-out infinite;
}
.yol-adim.simdi .yol-im::before{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1px solid transparent;border-top-color:var(--altin-2);
  animation:don 1.4s linear infinite;
}
@keyframes don{to{transform:rotate(360deg)}}

/* ilk ürün kartı */
.urun{
  --rx:0deg;--ry:0deg;--mx:50%;--my:50%;
  position:relative;isolation:isolate;
  margin-top:clamp(26px,4.2vh,44px);
  display:grid;grid-template-columns:1fr auto;grid-template-areas:"etiket ok" "logo ok" "metin ok" "platform ok";
  justify-items:start;align-items:center;gap:8px 28px;
  width:min(520px,100%);
  padding:20px 24px 20px 24px;
  text-align:left;text-decoration:none;
  border-radius:18px;
  background:rgba(14,16,20,.62);
  -webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);
  transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .25s ease, background .3s;
  opacity:0;animation:yukari 1s 2.7s cubic-bezier(.2,.7,.1,1) forwards;
}
.urun-cerceve{
  position:absolute;inset:0;border-radius:inherit;padding:1px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(220px circle at var(--mx) var(--my),rgba(255,224,138,.65),transparent 60%),
    linear-gradient(135deg,rgba(255,255,255,.28),rgba(255,255,255,.06) 40%,rgba(255,255,255,.14));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}
.urun:hover{background:rgba(18,20,25,.72)}
.urun:focus-visible{outline:2px solid var(--altin-2);outline-offset:4px}
.urun-etiket{grid-area:etiket;display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--metin-2)}
.urun-logo{grid-area:logo;width:min(300px,100%);height:auto;margin:6px 0 2px}
.urun-metin{grid-area:metin;color:var(--metin-2);font-size:14.5px}
.urun-platform{grid-area:platform;font-size:10.5px;color:var(--metin-3)}
.urun-ok{
  grid-area:ok;width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;font-size:18px;
  border:1px solid var(--cizgi-2);color:var(--metin);
  transition:transform .3s cubic-bezier(.2,.7,.1,1),background .3s,border-color .3s,color .3s;
}
.urun:hover .urun-ok{transform:translateX(4px);background:var(--altin-2);border-color:var(--altin-2);color:#141414}

/* ——— alt bilgi ——— */
.alt-bilgi{
  position:relative;z-index:5;
  display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;
  padding:0 calc(var(--gutter) + 12px) clamp(22px,3.4vw,40px);
  font-size:11px;color:var(--metin-3);
  opacity:0;animation:belir 1s 3s ease forwards;
}
.konsol{color:var(--metin-3);min-height:1.5em;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.konsol-imlec{color:var(--altin-2)}
#konsol{color:var(--metin-2)}
.konsol-blok{display:inline-block;width:7px;height:12px;background:var(--metin-2);vertical-align:-1px;margin-left:3px;animation:yanip 1s steps(1) infinite}
@keyframes yanip{50%{opacity:0}}
.alt-bilgi-sag{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.alt-bilgi-sag a{text-decoration:none;color:var(--metin-2);padding:6px 0;transition:color .2s}
.alt-bilgi-sag a:hover{color:var(--altin-1)}
.ayrac{opacity:.5}

@keyframes belir{to{opacity:1}}
@keyframes yukari{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry))}}

/* ——— dar ekran ——— */
@media (max-width:720px){
  .koord{display:none}
  .yol{flex-wrap:wrap;justify-content:center;row-gap:12px}
  .yol-adim{padding:0 10px}
  .yol-adim+.yol-adim::before{display:none}
  .alt-bilgi{justify-content:center;text-align:center}
  .konsol{order:2;width:100%;text-align:center}
  .alt-bilgi-sag{justify-content:center;flex-direction:column;gap:2px}
  .alt-bilgi-sag .ayrac{display:none}
}
@media (max-width:440px){
  .urun{grid-template-columns:1fr;grid-template-areas:"etiket" "logo" "metin" "platform";padding:18px}
  .urun-ok{display:none}
  .ust{padding-left:var(--gutter);padding-right:var(--gutter)}
  .alt-bilgi{padding-left:var(--gutter);padding-right:var(--gutter)}
}
@media (max-height:940px) and (min-width:721px){
  .logo{width:min(420px,48vh)}
  .baslik{font-size:clamp(32px,6.4vh,64px)}
  .sahne{padding-top:12px;padding-bottom:16px}
}

/* ——— hareket azaltma ——— */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-delay:0s!important;animation-iteration-count:1!important;transition:none!important}
  .logo-parilti,.tane{display:none}
  .baslik-satir{opacity:1}
}
