*{margin:0;padding:0;box-sizing:border-box}html{height:100%}
html{background:var(--bg-dark)}
body{font-family:'Outfit',sans-serif;background:var(--bg-dark);color:var(--text-primary);min-height:100%;-webkit-font-smoothing:antialiased}
/* Anti-FOUC: init() bitip doğru view açılana kadar body görünmez; sonra yumuşakça açılır. */
body{opacity:0;transition:opacity .18s ease}
body.kp-ready{opacity:1}

/* ─── Pürüzsüz cubic-bezier etkileşim geçişleri (mat tema) ─── */
button,[class*="btn"],[onclick],.tab,.nav-item,.seg,.pill,.panel-nav-item,input,select,textarea,a{
  transition:background-color .22s cubic-bezier(.4,0,.2,1),color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);
}
button:active,[class*="btn"]:active{transform:translateY(1px)}

/* ─── Scroll Reveal (kütüphanesiz, GPU hızlandırmalı) ─── */
.reveal-item{opacity:0;transform:translateY(20px);will-change:opacity,transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:opacity 0.6s cubic-bezier(0.16,1,0.3,1),transform 0.6s cubic-bezier(0.16,1,0.3,1)}
.reveal-item.reveal-visible{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.reveal-item{opacity:1;transform:none;transition:none}}

/* ─── ROUTE VIEWS ─── */
.view{display:none;min-height:100vh}
.view.active{display:flex}

/* ─── AUTH VIEWS (login/register) ─── */
.auth-view{width:100%;min-height:100vh;display:none;align-items:center;justify-content:center;position:relative;overflow:hidden}
.auth-view.active{display:flex}
#view-landing.active{display:block;overflow-y:auto;height:100vh}

