/**
 * Roll Work Media - hareket katmanı.
 *
 * Kurallar (Brief Bölüm 11):
 *  - Yalnızca transform ve opacity animasyonu.
 *  - transition: all kullanılmaz; özellik her zaman açıkça yazılır.
 *  - ease-in kullanılmaz; giriş ease-out, ekranda hareket ease-cut.
 *  - Hiçbir giriş scale(0) ile başlamaz.
 *  - Çıkış girişten hızlıdır.
 *  - Hover animasyonları yalnızca gerçek işaretçide çalışır.
 *  - Sonsuz döngü animasyon tek yerde: yetkinlik bandı.
 *
 * Süreler --rw-motion çarpanıyla ölçeklenir; çarpan tema panelinden gelir.
 */

:root {
	--rw-ease-out:    cubic-bezier(0.23, 1, 0.32, 1);
	--rw-ease-cut:    cubic-bezier(0.77, 0, 0.175, 1);
	--rw-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
	--rw-ease-hover:  ease;

	--rw-dur-press:    calc(140ms * var(--rw-motion, 1));
	--rw-dur-hover:    calc(180ms * var(--rw-motion, 1));
	--rw-dur-menu:     calc(220ms * var(--rw-motion, 1));
	--rw-dur-modal:    calc(280ms * var(--rw-motion, 1));
	--rw-dur-reveal:   calc(520ms * var(--rw-motion, 1));
	--rw-dur-slide:    calc(720ms * var(--rw-motion, 1));
	--rw-dur-text-in:  calc(520ms * var(--rw-motion, 1));
	--rw-dur-text-out: calc(240ms * var(--rw-motion, 1));
	--rw-stagger:      calc(60ms * var(--rw-motion, 1));
}

/* ==========================================================================
   1. Basma geri bildirimi ve hover
   ========================================================================== */

.rw-btn,
.rw-dock__item,
.rw-showreel__play,
.rw-hero__toggle,
.search-submit {
	transition:
		background-color var(--rw-dur-hover) var(--rw-ease-hover),
		border-color var(--rw-dur-hover) var(--rw-ease-hover),
		color var(--rw-dur-hover) var(--rw-ease-hover),
		transform var(--rw-dur-press) var(--rw-ease-out);
}
.rw-btn:active,
.rw-dock__item:active,
.rw-showreel__play:active,
.rw-hero__toggle:active,
.rw-hero__bar:active,
.rw-accordion__trigger:active,
.search-submit:active { transform: scale(0.97); }

.rw-nav__link,
.rw-mega__item a,
.rw-footer a,
.rw-link,
.rw-accordion__trigger {
	transition:
		color var(--rw-dur-hover) var(--rw-ease-hover),
		background-color var(--rw-dur-hover) var(--rw-ease-hover);
}

.rw-link::after { transition: transform var(--rw-dur-hover) var(--rw-ease-out); transform-origin: 0 50%; }

.rw-header {
	transition:
		background-color var(--rw-dur-menu) var(--rw-ease-out),
		box-shadow var(--rw-dur-menu) var(--rw-ease-out),
		transform var(--rw-dur-menu) var(--rw-ease-out);
}
.rw-header.is-hidden { transform: translateY(-100%); }

.rw-progress__bar { transition: transform 90ms linear; }

@media (hover: hover) and (pointer: fine) {
	.rw-link:hover::after { transform: scaleX(1.6); }

	.rw-bento__img,
	.rw-sector__img,
	.rw-blog__img,
	.rw-post-card__img,
	.rw-service-row__img {
		transition: transform calc(400ms * var(--rw-motion, 1)) var(--rw-ease-out);
	}
	.rw-bento__cell:hover .rw-bento__img,
	.rw-sector:hover .rw-sector__img,
	.rw-blog__lead-link:hover .rw-blog__img,
	.rw-post-card__link:hover .rw-post-card__img,
	.rw-service-row:hover .rw-service-row__img { transform: scale(1.04); }

	.rw-bento__arrow { transition: transform var(--rw-dur-hover) var(--rw-ease-out), opacity var(--rw-dur-hover) var(--rw-ease-hover); }
	.rw-bento__cell:hover .rw-bento__arrow { transform: rotate(45deg) scale(0.8) translate(3px, -3px); opacity: 1; }
}

/* ==========================================================================
   2. Slider
   ========================================================================== */

.rw-slide {
	transition:
		opacity var(--rw-dur-text-out) var(--rw-ease-out),
		visibility 0s linear var(--rw-dur-text-out);
}
.rw-slide.is-active {
	transition:
		opacity var(--rw-dur-text-in) var(--rw-ease-out),
		visibility 0s;
}

/* Wipe geçişi: logodaki diyagonal kesme motifinin hareket karşılığı. */
[data-transition="wipe"] .rw-slide__media {
	clip-path: inset(0 100% 0 0);
	transition: clip-path var(--rw-dur-slide) var(--rw-ease-cut);
}
[data-transition="wipe"] .rw-slide.is-active .rw-slide__media { clip-path: inset(0 0 0 0); }

[data-transition="wipe"] .rw-slide__poster,
[data-transition="wipe"] .rw-slide__video {
	transform: scale(1.06);
	transition: transform calc(900ms * var(--rw-motion, 1)) var(--rw-ease-cut);
}
[data-transition="wipe"] .rw-slide.is-active .rw-slide__poster,
[data-transition="wipe"] .rw-slide.is-active .rw-slide__video { transform: scale(1); }

.rw-slide__video { transition: opacity calc(400ms * var(--rw-motion, 1)) var(--rw-ease-hover); }

/* Kelime bazlı giriş. Harf bazlı bölme yapılmaz (DOM maliyeti ve erişilebilirlik). */
.rw-js .rw-slide__word {
	display: inline-block;
	opacity: 0;
	transform: translateY(14px);
}
.rw-slide__word { display: inline-block; }
.rw-slide.is-active .rw-slide__word {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity var(--rw-dur-text-in) var(--rw-ease-out) var(--rw-word-delay, 0ms),
		transform var(--rw-dur-text-in) var(--rw-ease-out) var(--rw-word-delay, 0ms);
}

.rw-js .rw-slide__num,
.rw-js .rw-slide__text,
.rw-js .rw-slide__cta {
	opacity: 0;
	transform: translateY(10px);
}
.rw-slide.is-active .rw-slide__num,
.rw-slide.is-active .rw-slide__text,
.rw-slide.is-active .rw-slide__cta {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity var(--rw-dur-text-in) var(--rw-ease-out),
		transform var(--rw-dur-text-in) var(--rw-ease-out);
}
.rw-slide.is-active .rw-slide__num  { transition-delay: 40ms; }
.rw-slide.is-active .rw-slide__text { transition-delay: 180ms; }
.rw-slide.is-active .rw-slide__cta  { transition-delay: 260ms; }

/* İlerleme çubuğu: yalnızca transform, genişlik animasyonu yok. */
.rw-hero__bar-fill { transition: transform 200ms var(--rw-ease-out); }
.rw-hero__bar.is-active .rw-hero__bar-fill { transform: scaleX(0); }
.rw-hero[data-playing="1"] .rw-hero__bar.is-active .rw-hero__bar-fill {
	transform: scaleX(1);
	transition: transform var(--rw-slide-interval, 6500ms) linear;
}

/* ==========================================================================
   3. Scroll ile giriş
   ========================================================================== */

/* Gizleme yalnızca JS varken. .rw-js sınıfı <head> içinde eklenir;
   JS yoksa veya hata verirse içerik normal şekilde görünür kalır. */
.rw-js [data-rw-reveal] .rw-section__title,
.rw-js [data-rw-reveal] > .rw-container > :not(.rw-bento):not(.rw-stats),
.rw-js [data-rw-reveal-child] {
	opacity: 0;
	transform: translateY(24px);
}

[data-rw-reveal].is-in .rw-section__title,
[data-rw-reveal].is-in > .rw-container > :not(.rw-bento):not(.rw-stats),
[data-rw-reveal-child].is-in {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity var(--rw-dur-reveal) var(--rw-ease-out),
		transform var(--rw-dur-reveal) var(--rw-ease-out);
}

/* Izgara ve liste öğelerinde kademeli giriş (30-80 ms). */
[data-rw-reveal-child].is-in { transition-delay: var(--rw-child-delay, 0ms); }

/* ==========================================================================
   4. Yapışkan yığın (native sticky, kütüphane yok)
   ========================================================================== */

.rw-surec.is-sticky .rw-surec__stack {
	--rw-stack-top: calc(var(--rw-header-h-sm) + 24px);
}
.rw-surec.is-sticky .rw-surec__card {
	position: sticky;
	top: var(--rw-stack-top);
	margin-bottom: 24px;
	transform-origin: 50% 0;
	transition:
		transform calc(320ms * var(--rw-motion, 1)) var(--rw-ease-out),
		opacity calc(320ms * var(--rw-motion, 1)) var(--rw-ease-out);
}
.rw-surec.is-sticky .rw-surec__card.is-stacked {
	transform: scale(0.94);
	opacity: 0.5;
}

/* ==========================================================================
   5. Akordeon (yükseklik değil, grid satırı)
   ========================================================================== */

.rw-accordion__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows calc(240ms * var(--rw-motion, 1)) var(--rw-ease-out);
}
/* display:grid, [hidden] özniteliğinin UA kuralını ezer; geri alıyoruz. */
.rw-accordion__panel[hidden] { display: none; }
.rw-accordion__panel > * { min-height: 0; }
.rw-accordion__item.is-open .rw-accordion__panel { grid-template-rows: 1fr; }
.rw-accordion__icon::before,
.rw-accordion__icon::after { transition: transform calc(240ms * var(--rw-motion, 1)) var(--rw-ease-out); }

/* ==========================================================================
   6. Menüler
   ========================================================================== */

.rw-mega {
	transform-origin: top center;
	opacity: 0;
	transform: translateY(-6px) scale(0.98);
	transition:
		opacity var(--rw-dur-menu) var(--rw-ease-out),
		transform var(--rw-dur-menu) var(--rw-ease-out);
}
.rw-mega.is-open { opacity: 1; transform: translateY(0) scale(1); }

.rw-mobile {
	opacity: 0;
	transform: translateY(2%);
	transition:
		opacity var(--rw-dur-modal) var(--rw-ease-drawer),
		transform var(--rw-dur-modal) var(--rw-ease-drawer);
}
.rw-mobile.is-open { opacity: 1; transform: translateY(0); }

.rw-js .rw-mobile__list li {
	opacity: 0;
	transform: translateY(12px);
}
.rw-mobile.is-open .rw-mobile__list li {
	opacity: 1;
	transform: translateY(0);
	transition:
		opacity calc(360ms * var(--rw-motion, 1)) var(--rw-ease-out) var(--rw-child-delay, 0ms),
		transform calc(360ms * var(--rw-motion, 1)) var(--rw-ease-out) var(--rw-child-delay, 0ms);
}

.rw-burger__box span {
	transition:
		transform var(--rw-dur-menu) var(--rw-ease-out),
		opacity var(--rw-dur-menu) var(--rw-ease-hover);
}
.rw-burger[aria-expanded="true"] .rw-burger__box span:first-child { transform: translateY(3.5px) rotate(45deg); }
.rw-burger[aria-expanded="true"] .rw-burger__box span:last-child { transform: translateY(-3.5px) rotate(-45deg); }

/* ==========================================================================
   7. Dock, çerez, form
   ========================================================================== */

.rw-dock {
	opacity: 0;
	transform: translateY(120%);
	transition:
		opacity var(--rw-dur-modal) var(--rw-ease-out),
		transform var(--rw-dur-modal) var(--rw-ease-out);
}
.rw-dock.is-in { opacity: 1; transform: translateY(0); }

.rw-consent-bar {
	opacity: 0;
	transform: translateY(16px) scale(0.98);
	transition:
		opacity var(--rw-dur-modal) var(--rw-ease-out),
		transform var(--rw-dur-modal) var(--rw-ease-out);
}
.rw-consent-bar.is-in { opacity: 1; transform: translateY(0) scale(1); }

.rw-field__input {
	transition:
		border-color var(--rw-dur-hover) var(--rw-ease-hover),
		box-shadow var(--rw-dur-hover) var(--rw-ease-hover);
}

/* Buton içeriği durum değiştirirken blur ile maskelenir. */
.rw-btn[data-rw-submit] > span {
	display: inline-block;
	transition:
		filter calc(200ms * var(--rw-motion, 1)) var(--rw-ease-hover),
		opacity calc(200ms * var(--rw-motion, 1)) var(--rw-ease-hover);
}
.rw-btn.is-loading > span { filter: blur(2px); opacity: 0.7; }

/* ==========================================================================
   8. Marquee - sayfadaki tek sonsuz döngü
   ========================================================================== */

.rw-marquee__track { animation: rw-marquee var(--rw-marquee-dur, 42s) linear infinite; }
.rw-marquee:hover .rw-marquee__track,
.rw-marquee:focus-within .rw-marquee__track { animation-play-state: paused; }

@keyframes rw-marquee {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

/* ==========================================================================
   9. Showreel
   ========================================================================== */

.rw-showreel__video { transition: opacity calc(400ms * var(--rw-motion, 1)) var(--rw-ease-hover); }
.rw-showreel__frame.is-playing .rw-showreel__body {
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--rw-dur-text-out) var(--rw-ease-out);
}

/* ==========================================================================
   10. Azaltılmış hareket
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	.rw-marquee__track { animation: none; transform: none; }
	.rw-marquee__group:last-child { display: none; }

	.rw-surec.is-sticky .rw-surec__card { position: static; transform: none; opacity: 1; }

	[data-rw-reveal] .rw-section__title,
	[data-rw-reveal] > .rw-container > *,
	[data-rw-reveal-child],
	.rw-slide__word,
	.rw-slide__num,
	.rw-slide__text,
	.rw-slide__cta,
	.rw-mobile__list li {
		opacity: 1 !important;
		transform: none !important;
		transition-duration: 160ms !important;
		transition-property: opacity !important;
	}

	[data-transition="wipe"] .rw-slide__media { clip-path: none; }
	[data-transition="wipe"] .rw-slide__poster,
	[data-transition="wipe"] .rw-slide__video { transform: none; }

	.rw-hero[data-playing="1"] .rw-hero__bar.is-active .rw-hero__bar-fill {
		transition: none;
		transform: scaleX(1);
	}

	.rw-mega,
	.rw-mobile,
	.rw-dock,
	.rw-consent-bar { transform: none; }
}

/* Panelden "azaltılmış hareketi herkese uygula" seçildiğinde aynı davranış. */
[data-rw-reduced="1"] .rw-marquee__track { animation: none; }
[data-rw-reduced="1"] .rw-marquee__group:last-child { display: none; }
[data-rw-reduced="1"] .rw-surec.is-sticky .rw-surec__card { position: static; transform: none; opacity: 1; }
[data-rw-reduced="1"] [data-rw-reveal] .rw-section__title,
[data-rw-reduced="1"] [data-rw-reveal] > .rw-container > *,
[data-rw-reduced="1"] [data-rw-reveal-child],
[data-rw-reduced="1"] .rw-slide__word,
[data-rw-reduced="1"] .rw-slide__num,
[data-rw-reduced="1"] .rw-slide__text,
[data-rw-reduced="1"] .rw-slide__cta {
	opacity: 1 !important;
	transform: none !important;
}
[data-rw-reduced="1"] [data-transition="wipe"] .rw-slide__media { clip-path: none; }
