/* SAKA V3 - hareket: başlangıç durumları, giriş animasyonları, açılış, sayfa geçişi
   Kurallar:
   - Gizleme yalnızca html.motion varken (JS çalışıyorsa) uygulanır; JS yoksa içerik düz görünür.
   - Girişler bir kez oynar (keyframe + backwards). Hover / durum değişimleri transition ile (kesintiye uğrayabilir).
   - Tek eğri ailesi: --ease-out (giriş), --ease-in-out (ekranda hareket / perde), --ease (mevcut). ease-in kullanılmaz.
   - prefers-reduced-motion: hareket kalkar, yalnızca kısa opaklık geçişleri kalır (.calm). */

@keyframes rv-up{from{opacity:0;translate:0 26px}}
@keyframes rv-left{from{opacity:0;translate:26px 0;clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@keyframes rv-fade{from{opacity:0}}
@keyframes rv-line{from{translate:0 135%}}
@keyframes rv-clip{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes rv-clipdown{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0)}}
@keyframes rv-zoom{from{scale:1.3}}
@keyframes rv-x{from{transform:scaleX(0)}}
@keyframes rv-y{from{transform:scaleY(0)}}
@keyframes rv-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes rv-dot{from{opacity:0;scale:.3}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes saka-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes path-flow{0%{transform:translateX(-60%);opacity:0}12%,88%{opacity:1}100%{transform:translateX(60%);opacity:0}}
@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}}
@keyframes busy{0%{translate:-100% 0}100%{translate:260% 0}}
@keyframes blink{50%{opacity:0}}
@keyframes intro-x{from{transform:scaleX(0)}}
@keyframes intro-y{from{transform:scaleY(0)}}

/* ---------------------------------------------------------------
   Kaydırma girişleri
   --------------------------------------------------------------- */
.motion [data-reveal]:not(.is-in){opacity:0}
.motion [data-reveal].is-in{animation:rv-up .95s var(--ease-out) var(--d,0s) backwards}

.motion [data-split]:not(.is-in):not(.hero__h1) .ln>span{translate:0 135%}
.motion [data-split].is-in .ln>span{animation:rv-line 1.1s var(--ease-out) calc(var(--d,0s) + var(--i,0) * 90ms) backwards}

.motion .vis[data-clip]:not(.is-in){clip-path:inset(100% 0 0 0)}
.motion .vis[data-clip].is-in{animation:rv-clip 1.25s var(--ease-in-out) var(--d,0s) backwards}
.motion .vis[data-clip].is-in img{animation:rv-zoom 1.9s var(--ease-out) var(--d,0s) backwards}
.plx img{scale:1.1;will-change:translate}

.motion [data-line]:not(.is-in){transform:scaleX(0)}
.motion [data-line].is-in{animation:rv-x 1.3s var(--ease-in-out) var(--d,0s) backwards}
.motion .cap__flowline[data-line]:not(.is-in){transform:scaleY(0)}
.motion .cap__flowline[data-line].is-in{animation-name:rv-y;animation-duration:1.6s}

/* teknik çizim: çizgiler sırayla çizilir, ölçü harfleri ve dönen halkalar sonra gelir */
.motion .bp .draw{stroke-dasharray:1}
.motion .bp:not(.is-in) .draw{stroke-dashoffset:1}
.motion .bp.is-in .draw{animation:rv-draw 2.2s var(--ease-in-out) calc(var(--d,0s) + var(--i,0) * 120ms) backwards}
.motion .bp:not(.is-in) text,.motion .bp:not(.is-in) .bp__spin{opacity:0}
.motion .bp.is-in text{animation:rv-fade .8s ease calc(var(--d,0s) + 1.3s) backwards}
.motion .bp.is-in .bp__spin{animation:rv-fade .8s ease calc(var(--d,0s) + 1.5s) backwards,spin 16s linear infinite}
.motion .bp.is-in .bp__spin--rev{animation-direction:normal,reverse}

/* üretim yolu: çizgi uzar, noktalar sırayla yanar, sonra hat üzerinde akış */
.motion [data-path]:not(.is-in) .path__dot,.motion [data-path]:not(.is-in) li>span:not(.path__dot){opacity:0}
.motion [data-path].is-in .path__dot{animation:rv-dot .6s var(--ease-out) calc(var(--d,0s) + .5s + var(--i,0) * 160ms) backwards}
.motion [data-path].is-in li>span:not(.path__dot){animation:rv-up .8s var(--ease-out) calc(var(--d,0s) + .55s + var(--i,0) * 160ms) backwards}
.motion [data-path].is-in .path__line::after{animation:path-flow 3.8s var(--ease-in-out) 2.4s infinite}

/* mekanik sayaç */
.motion [data-count]:not(.is-in) .odo__col{transform:none}
.motion [data-count].is-in .odo__col{transition:transform 2s var(--ease-out) calc(var(--d,0s) + var(--c,0) * 120ms)}

/* CTA kutusu: sol vurgu çubuğu yukarıdan aşağı çizilir */
.motion .cta__in:not(.is-in)::before{transform:scaleY(0)}
.motion .cta__in.is-in::before{animation:rv-y 1.1s var(--ease-in-out) calc(var(--d,0s) + .2s) backwards}

/* yüzen etiketler (referans sayfadaki float-chip hareketinin sakin hali) */
.motion .callout{animation:saka-float 6s ease-in-out infinite}
.motion .callout--b{animation-delay:-3s}

/* ---------------------------------------------------------------
   Hero giriş dizisi
   --------------------------------------------------------------- */
.motion:not(.hero-go) .hero [data-h],.motion:not(.hero-go) .hero__tags li{opacity:0}
.motion:not(.hero-go) .hero__h1 .ln>span{translate:0 135%}
.motion .hero__media{scale:1.08;transition:scale 2.8s var(--ease-out)}
.motion.hero-go .hero__media{scale:1}
.motion.hero-go .hero__label{animation:rv-up .8s var(--ease-out) .05s backwards}
.motion.hero-go .hero__h1 .ln>span{animation:rv-line 1.15s var(--ease-out) calc(.15s + var(--i,0) * 120ms) backwards}
.motion.hero-go .hero__sub{animation:rv-clipdown .9s var(--ease-in-out) .62s backwards}
.motion.hero-go .hero__desc{animation:rv-up .9s var(--ease-out) .74s backwards}
.motion.hero-go .hero__cta{animation:rv-up .9s var(--ease-out) .86s backwards}
.motion.hero-go .hero__tags li{animation:rv-left .8s var(--ease-out) calc(.95s + var(--k,0) * 90ms) backwards,saka-float 6.4s ease-in-out calc(2.2s + var(--k,0) * .7s) infinite}

/* ---------------------------------------------------------------
   İlk ziyaret açılışı: eksen referanslama
   --------------------------------------------------------------- */
.boot{display:none}
.is-boot .boot{display:block;position:fixed;inset:0;z-index:9500;background:var(--black);color:var(--text);clip-path:inset(0);transition:clip-path .85s var(--ease-in-out)}
.is-boot:not(.boot-out){overflow:hidden}
.boot.is-out{clip-path:inset(0 0 100% 0)}
.boot::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent)}
.boot__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(43,99,150,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(43,99,150,.09) 1px,transparent 1px);background-size:80px 80px;background-position:center;-webkit-mask-image:radial-gradient(60% 60% at 50% 50%,#000,transparent);mask-image:radial-gradient(60% 60% at 50% 50%,#000,transparent)}
.boot__x{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line2);animation:intro-x 1.1s var(--ease-in-out) both}
.boot__y{position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line2);animation:intro-y 1.1s var(--ease-in-out) .05s both}
.boot__core{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;justify-items:center;gap:16px;transition:opacity .45s ease,translate .7s var(--ease-in-out)}
.boot.is-out .boot__core{opacity:0;translate:-50% calc(-50% - 40px)}
.boot__mark{display:flex;overflow:hidden;margin:0;padding:.08em .5em;background:var(--black);font:700 clamp(2.4rem,7vw,5.2rem)/1 var(--f-head);letter-spacing:.3em;color:var(--text);max-width:none}
.boot__mark span{display:block;animation:rv-line .9s var(--ease-out) backwards}
.boot__mark span:nth-child(1){animation-delay:.18s}.boot__mark span:nth-child(2){animation-delay:.25s}
.boot__mark span:nth-child(3){animation-delay:.32s}.boot__mark span:nth-child(4){animation-delay:.39s;margin-right:-.3em}
.boot__read{display:flex;gap:22px;margin:0;padding:6px 14px;background:var(--black);font:500 .7rem var(--f-head);letter-spacing:.16em;color:var(--muted);max-width:none;animation:rv-fade .6s ease .3s backwards}
.boot__read span{white-space:nowrap}
.boot__read b{display:inline-block;min-width:7.6ch;color:var(--steel);font-weight:500}
.boot.is-homed .boot__read b{color:var(--text)}
.boot__st{display:flex;align-items:center;gap:10px;white-space:nowrap;margin:0;font:600 .62rem var(--f-head);letter-spacing:.26em;color:var(--steel);max-width:none;animation:rv-fade .6s ease .4s backwards}
.boot__st i{width:7px;height:7px;border:1px solid var(--accent);animation:blink .8s steps(1) infinite}
.boot.is-homed .boot__st{color:var(--text)}
.boot.is-homed .boot__st i{background:var(--accent);animation:none}
.boot__bar{position:absolute;left:0;bottom:0;height:2px;width:100%;z-index:1;background:var(--accent);transform-origin:left;animation:intro-x 1.15s var(--ease-in-out) .1s both}

/* ---------------------------------------------------------------
   Sayfa geçişi
   --------------------------------------------------------------- */
.pt{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;background:var(--black2);clip-path:inset(100% 0 0 0);visibility:hidden;pointer-events:none;will-change:clip-path}
.pt::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--accent);z-index:1}
.pt::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(43,99,150,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(43,99,150,.08) 1px,transparent 1px);background-size:80px 80px;background-position:center;-webkit-mask-image:radial-gradient(50% 50% at 50% 50%,#000,transparent);mask-image:radial-gradient(50% 50% at 50% 50%,#000,transparent)}
.is-entering .pt{visibility:visible;clip-path:inset(0)}
.pt__in{position:relative;z-index:1;display:grid;justify-items:center;gap:16px;text-align:center;padding:0 6vw}
.pt__meta{margin:0;font:500 .72rem var(--f-head);letter-spacing:.24em;color:var(--steel);max-width:none}
.pt__meta em{font-style:normal;color:var(--accent);margin:0 .3em}
.pt__meta b{font-weight:500;color:var(--text)}
.pt__label{margin:0;font:600 clamp(1.8rem,5vw,4.4rem)/1.02 var(--f-head);letter-spacing:.04em;color:var(--text);max-width:none;text-wrap:balance}
.pt__line{position:relative;display:block;width:min(240px,50vw);height:1px;background:var(--line2);overflow:hidden}
.pt__line b{position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left}
.is-entering .pt__line b{transform:scaleX(1)}

/* ---------------------------------------------------------------
   Azaltılmış hareket: konum/ölçek/klip yok, yalnızca kısa opaklık geçişleri
   --------------------------------------------------------------- */
/* gizleme yalnızca .motion varken: 4 sn yedeği .motion'ı kaldırınca içerik görünür kalır */
.motion.calm [data-split]:not(.is-in):not(.hero__h1) .ln>span,.motion.calm:not(.hero-go) .hero__h1 .ln>span{translate:none;opacity:0}
.motion.calm .vis[data-clip]:not(.is-in){clip-path:none;opacity:0}
.calm [data-reveal].is-in,.calm [data-split].is-in .ln>span,.calm .vis[data-clip].is-in,
.calm [data-path].is-in .path__dot,.calm [data-path].is-in li>span:not(.path__dot),.calm .bp.is-in text,
.calm.hero-go .hero [data-h],.calm.hero-go .hero__tags li,.calm.hero-go .hero__h1 .ln>span{animation:rv-fade .45s ease var(--d,0s) backwards!important}
.calm .vis[data-clip] img{animation:none!important}
.calm [data-line],.calm .cta__in::before{transform:none!important;animation:none!important}
.calm .bp .draw{stroke-dashoffset:0!important;animation:none!important}
.calm .bp__spin{opacity:.6!important;animation:none!important}
.calm .callout,.calm .cam__spin,.calm .path__line::after,.calm .boot__st i{animation:none!important}
.calm .hero__media{scale:none!important}
.calm .odo__col{transition:none!important}
.calm .capstage,.calm .pimg,.calm .mp.is-sticky .scene__img{clip-path:none!important}
.calm .mp.is-sticky .scene__info>*,.calm .mp.is-sticky .scene__no{translate:none!important}
.calm .capcap{transition:none!important}
.calm .hdr{transition:background .2s,border-color .2s}
@media (prefers-reduced-motion:reduce){
  .hero__video{display:none}
  .btn::before,.mstrip__ctl button::before{transition-duration:.01ms}
  .vis img,.mcard,.tl__card,.mx__c{transition-property:filter,border-color,background-color,opacity}
}

/* Hareketi azalt ayarında mobil menü ve menü öğeleri anında açılır. */
.calm .nav,.calm .nav__list li,.calm .nav__cta{transition:none!important}
