/* Üretilmiş dosya — assets/fx/ modüllerinden (_tmp/build-fx.mjs). Elle düzenlemeyin. */
/* ===== fx/_core.css ===== */
/* EA FX çekirdeği — ortak hareket değişkenleri.
   Kurallar: başlangıçta gizli/kaymış durumlar yalnızca html.fx:not(.fx-reduce) altında yazılır; böylece JS çalışmazsa ya da
   ziyaretçi hareket azaltmayı seçtiyse içerik her zaman son haliyle görünür. Tüm sınıflar "fx-" ön ekiyle başlar. */
:root{
  --fx-ease-out:cubic-bezier(.16,1,.3,1);
  --fx-ease-io:cubic-bezier(.65,0,.35,1);
  --fx-dur:.9s;
  --fx-dur-fast:.35s;
}
@media (prefers-reduced-motion:reduce){
  html.fx *,html.fx *::before,html.fx *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
}

/* ===== fx/b-cards.css ===== */
/* Blog kartları — eğilme, görsel yakınlaşma, imleci izleyen "Oku" (b-cards.js) ve blog listesinde öne çıkan ilk kart.
   Hareket yalnızca fareli cihazda ve hareket azaltma kapalıyken; klavye odağı aynı "Oku" durumunu gösterir. */

/* ---------- "Oku" işareti (JS ekler; görselin içinde, kırpılarak) ---------- */
html.fx .ea-post .wp-block-post-featured-image{position:relative;isolation:isolate}
.fx-post__pill{position:absolute;left:50%;top:50%;z-index:1;display:grid;place-items:center;width:4.5rem;height:4.5rem;border-radius:50%;background:var(--wp--preset--color--terracotta);color:var(--wp--preset--color--ink);font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--small);font-weight:600;letter-spacing:.01em;line-height:1;pointer-events:none;box-shadow:0 12px 26px -14px rgba(0,0,0,.7);transform:translate(calc(-50% + var(--fx-cx,0px)),calc(-50% + var(--fx-cy,0px))) scale(0);transition:transform var(--fx-dur-fast) var(--fx-ease-out)}
/* Ana sayfadaki küçük satır kartlarında daha küçük */
.ea-posts--home .ea-post:not(.is-featured) .fx-post__pill{width:3.4rem;height:3.4rem;font-size:var(--wp--preset--font-size--x-small)}
/* Fare görselin üstündeyken imleci izler; gizliyken de son imleç konumunda durur (yerinde büyür ve küçülür, ortaya kaymaz) */
.ea-post.fx-post--over-img .fx-post__pill{transform:translate(calc(-50% + var(--fx-cx,0px)),calc(-50% + var(--fx-cy,0px))) scale(1)}
/* Klavye: başlık bağlantısı odaktayken görselin ortasında */
.ea-post:has(.wp-block-post-title a:focus-visible) .fx-post__pill{transform:translate(-50%,-50%) scale(1)}

/* ---------- Eğilme ve yakınlaşma (yalnızca fare, hareket azaltma kapalı) ---------- */
html.fx-fine:not(.fx-reduce) .ea-post.fx-post--hot{transition:transform .6s var(--fx-ease-out);will-change:transform}
html.fx:not(.fx-reduce) .ea-post .wp-block-post-featured-image img{transition:scale 1s var(--fx-ease-out)}
html.fx-fine:not(.fx-reduce) .ea-post.fx-post--hot .wp-block-post-featured-image img,
html.fx:not(.fx-reduce) .ea-post:has(.wp-block-post-title a:focus-visible) .wp-block-post-featured-image img{scale:1.05}

/* ---------- Blog listesi: ilk yazı geniş ekranda iki sütun × iki satır ----------
   12 kartlık sayfada 4 + 11 = 15 hücre, 3 sütunda tam 5 satır: son satır boş kalmaz. Yalnızca kart sayısı 3'ün katıyken
   uygulanır (ör. arşivin son sayfasında 7 yazı varsa ızgara olduğu gibi kalır, son satırda tek kart sarkmaz). Görsel, sağdaki iki kartın
   toplam yüksekliğine uzar (görselin kendi yüksekliği satırı büyütmez). */
@media (min-width:64em){
  .ea-bloglist .ea-posts--grid:has(> .ea-post:last-child:nth-child(3n)) > .ea-post:first-child{grid-column:span 2;grid-row:span 2;grid-template-rows:minmax(0,1fr) auto;align-content:stretch}
  .ea-bloglist .ea-posts--grid:has(> .ea-post:last-child:nth-child(3n)) > .ea-post:first-child .wp-block-post-featured-image{position:relative;aspect-ratio:auto;min-height:18rem}
  .ea-bloglist .ea-posts--grid:has(> .ea-post:last-child:nth-child(3n)) > .ea-post:first-child .wp-block-post-featured-image img{position:absolute;inset:0}
  .ea-bloglist .ea-posts--grid:has(> .ea-post:last-child:nth-child(3n)) > .ea-post:first-child .wp-block-post-title{max-width:30ch;font-size:var(--wp--preset--font-size--display-s);line-height:1.15;letter-spacing:-.025em}
  .ea-bloglist .ea-posts--grid:has(> .ea-post:last-child:nth-child(3n)) > .ea-post:first-child .fx-post__pill{width:5.5rem;height:5.5rem;font-size:var(--wp--preset--font-size--medium)}
}

/* ===== fx/b-progress.css ===== */
/* Yazı sayfası: okuma ilerleme çizgisi (b-progress.js). Ekranın üst kenarında, başlığın üstünde ince bir terracotta çizgi. */
.fx-progress{position:fixed;top:0;left:0;right:0;z-index:60;height:3px;pointer-events:none;opacity:0;transition:opacity var(--fx-dur-fast) linear}
.fx-progress--on{opacity:1}
/* Mobil menü (tam ekran katman) açıkken çizgi görünmez */
html.ea-lock .fx-progress{opacity:0}
.fx-progress__bar{display:block;height:100%;background:var(--wp--preset--color--terracotta);transform:scaleX(0);transform-origin:0 50%}
@media print{.fx-progress{display:none}}

/* ===== fx/b-reader.css ===== */
/* Yazı sayfası — okuma dokunuşları (b-reader.js): kısa cevap kutusu, adım kartları, yazar fotoğrafı,
   okuma ayarları, koyu okuma modu, "Sıradaki yazı" kartı. Sayfanın ana okuma düzeni yazı sayfasının page-css bloğundadır. */

/* ---------- Kısa cevap ---------- */
body.ea-page-yazi .ea-prose .fx-answer{margin:2em 0 2.4em;padding:1.3em 1.5em 1.4em;border:1px solid var(--wp--custom--line--light);border-left:4px solid var(--wp--preset--color--terracotta);border-radius:14px;background:var(--wp--preset--color--white)}
body.ea-page-yazi .ea-prose .fx-answer h2{margin:0 0 .5em;font-size:1.05em;line-height:1.35}
body.ea-page-yazi .ea-prose .fx-answer h2::before{display:none}
body.ea-page-yazi .ea-prose .fx-answer p{margin:0;font-size:1.04em;line-height:1.7}

/* ---------- Numaralı adım kartları ---------- */
body.ea-page-yazi .ea-prose .fx-steps{display:grid;gap:.8rem;margin:1.5em 0 2em}
body.ea-page-yazi .ea-prose .fx-step{position:relative;margin:0;padding:1.05em 1.2em 1.1em 4em;border:1px solid var(--wp--custom--line--light);border-radius:14px;background:var(--wp--preset--color--white);line-height:1.65}
body.ea-page-yazi .ea-prose .fx-step strong{display:block;margin-bottom:.2em;font-family:var(--wp--preset--font-family--display);font-size:.95em;letter-spacing:-.005em}
body.ea-page-yazi .ea-prose .fx-step__n{position:absolute;left:1.05em;top:1em;display:grid;place-items:center;width:2.05em;height:2.05em;border-radius:50%;background:var(--wp--preset--color--graphite);color:var(--wp--preset--color--paper);font-family:var(--wp--preset--font-family--display);font-size:.85em;font-weight:600;line-height:1}
@media (max-width:37.5em){.ea-prose .fx-step{padding-left:3.4em}.ea-prose .fx-step__n{left:.8em}}

/* ---------- Başlık altı: yazar fotoğrafı ve okuma ayarları ---------- */
.fx-meta-avatar{width:32px;height:32px;margin-right:.15rem;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
.fx-reader{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem;margin-top:var(--wp--preset--spacing--40)}
.fx-reader__btn{display:inline-grid;place-items:center;min-width:40px;min-height:36px;padding:.3rem .8rem;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--pill);background:transparent;color:inherit;font-family:var(--wp--preset--font-family--display);font-size:.8rem;font-weight:600;line-height:1;cursor:pointer;transition:border-color .2s,background-color .2s,opacity .2s}
.fx-reader__btn--big{font-size:1.05rem}
.fx-reader__btn:hover:not(:disabled){border-color:currentColor}
.fx-reader__btn:disabled{opacity:.35;cursor:default}
.fx-reader__btn[aria-pressed="true"]{border-color:currentColor;background:rgba(127,127,127,.12)}
.fx-reader__sep{width:1px;height:20px;margin:0 .3rem;background:var(--ea-line-strong)}

/* ---------- Sıradaki yazı ---------- */
.fx-next__label{font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--terracotta-light)}
@media (min-width:48em){
  .ea-related .ea-posts--grid:has(.fx-next){grid-template-columns:repeat(2,minmax(0,1fr))}
  .ea-related .ea-posts > li.fx-next{grid-column:1 / -1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;column-gap:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--50);border-bottom:1px solid var(--ea-line)}
  .ea-related .fx-next .wp-block-post-title{font-size:var(--wp--preset--font-size--display-s);line-height:1.15;letter-spacing:-.025em}
  /* Diğer iki yazı: küçük görsel solda, başlık sağda (görseller dev boyuta çıkmasın) */
  .ea-related .ea-posts > li:not(.fx-next){grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;column-gap:var(--wp--preset--spacing--40)}
}

/* ---------- Koyu okuma modu (okur seçerse) ---------- */
body.ea-page-yazi.fx-reader-dark{--ea-text:rgba(238,232,222,.88);--ea-text-soft:var(--wp--preset--color--mist)}
body.ea-page-yazi.fx-reader-dark .ea-readhead,body.ea-page-yazi.fx-reader-dark .ea-article{background-color:var(--wp--preset--color--ink-2)!important;color:var(--wp--preset--color--bone)!important;--ea-muted:var(--wp--preset--color--mist);--ea-line:var(--wp--custom--line--dark);--ea-line-strong:var(--wp--custom--line--dark-strong);--ea-link:var(--wp--preset--color--terracotta-light);color-scheme:dark}
body.ea-page-yazi.fx-reader-dark .ea-pagehead__title,body.ea-page-yazi.fx-reader-dark .ea-prose h2,body.ea-page-yazi.fx-reader-dark .ea-prose h3,body.ea-page-yazi.fx-reader-dark .ea-prose h4,body.ea-page-yazi.fx-reader-dark .ea-prose strong,body.ea-page-yazi.fx-reader-dark .ea-prose blockquote,body.ea-page-yazi.fx-reader-dark .ea-author__name{color:var(--wp--preset--color--bone)}
body.ea-page-yazi.fx-reader-dark .ea-postmeta,body.ea-page-yazi.fx-reader-dark .ea-readhead .ea-breadcrumb ol{color:var(--wp--preset--color--mist)}
body.ea-page-yazi.fx-reader-dark .ea-readhead .ea-breadcrumb a:hover{color:var(--wp--preset--color--bone)}
body.ea-page-yazi.fx-reader-dark .ea-prose a{color:var(--wp--preset--color--terracotta-light)}
body.ea-page-yazi.fx-reader-dark .ea-prose > p:first-of-type::first-letter{color:var(--wp--preset--color--terracotta-light)}
body.ea-page-yazi.fx-reader-dark .fx-answer,body.ea-page-yazi.fx-reader-dark .fx-step,body.ea-page-yazi.fx-reader-dark .ea-author{border-color:var(--wp--custom--line--dark);background:var(--wp--preset--color--ink-3)}
body.ea-page-yazi.fx-reader-dark .fx-answer{border-left-color:var(--wp--preset--color--terracotta)}
body.ea-page-yazi.fx-reader-dark .fx-step__n{background:var(--wp--preset--color--bone);color:var(--wp--preset--color--ink)}
body.ea-page-yazi.fx-reader-dark .ea-author__cta{background:var(--wp--preset--color--terracotta);color:var(--wp--preset--color--ink)}
body.ea-page-yazi.fx-reader-dark .ea-author__cta:hover{background:var(--wp--preset--color--bone)}
body.ea-page-yazi.fx-reader-dark .ea-article__media{background:var(--wp--preset--color--ink-3);box-shadow:0 34px 60px -42px rgba(0,0,0,.9)}
body.ea-page-yazi.fx-reader-dark .fx-toc__box{background:var(--wp--preset--color--ink-2)}
body.ea-page-yazi.fx-reader-dark .fx-toc__list a[aria-current]{color:var(--wp--preset--color--bone)}
body.ea-page-yazi.fx-reader-dark .fx-share__btn:hover{background:var(--wp--custom--bone-alpha--06)}

@media print{.fx-reader{display:none}}

/* ===== fx/b-share.css ===== */
/* Yazı sayfası: paylaşım satırı (b-share.js). Sade, çerçeveli iki düğme; yazar notunun üstünde. */
.fx-share{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--wp--preset--spacing--60)}
.fx-share__btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;margin:0;padding:.55rem 1.1rem;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--pill);background:transparent;color:inherit;font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--small);font-weight:600;letter-spacing:-.005em;line-height:1.2;text-decoration:none;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.fx-share__btn .ea-icon{width:1.15em;height:1.15em}
.fx-share__btn:hover{border-color:currentColor;background:rgba(23,26,31,.05)}
.fx-share__btn:focus-visible{outline:2px solid var(--wp--preset--color--terracotta-deep);outline-offset:2px}

/* Kopyala: iki etiket aynı hücrede, yalnızca biri görünür (genişlik sabit kalır) */
.fx-share__copy{display:inline-grid;justify-items:center}
.fx-share__state{grid-area:1 / 1;display:inline-flex;align-items:center;gap:.55rem}
.fx-share__state--done{visibility:hidden;color:var(--wp--preset--color--terracotta-deep)}
.fx-share__copy--done .fx-share__state--idle{visibility:hidden}
.fx-share__copy--done .fx-share__state--done{visibility:visible}
html.fx:not(.fx-reduce) .fx-share__copy--done .fx-share__state--done{animation:fx-share-in .35s var(--fx-ease-out)}
@keyframes fx-share-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

@media print{.fx-share{display:none}}

/* ===== fx/b-tables.css ===== */
/* Yazı içi tablolar: sakin bir başlık satırı, açık zebra satırlar, dar ekranda yatay kaydırma (b-tables.js).
   Renkler açık kum zemine göre; koyu bir bölümde kullanılırsa koyu karşılıkları devreye girer.
   Hücre zeminleri opaktır: yapışkan ilk sütun kayan hücrelerin üstünde temiz görünür. */
.ea-prose{--fx-tb-bg:var(--wp--preset--color--ink-2);--fx-tb-alt:var(--wp--preset--color--ink-3);--fx-tb-head:var(--wp--preset--color--ink-3);--fx-tb-text:var(--wp--preset--color--bone)}
.ea-is-light .ea-prose{--fx-tb-bg:var(--wp--preset--color--sand);--fx-tb-alt:#F4EEE4;--fx-tb-head:var(--wp--preset--color--sand-2);--fx-tb-text:var(--wp--preset--color--graphite)}

/* Başlık satırı ve zebra (JS olmadan da geçerli) */
.ea-prose thead th{background:var(--fx-tb-head);color:var(--fx-tb-text);font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.02em;line-height:1.35;vertical-align:bottom}
.ea-prose tbody td,.ea-prose tbody th{background:var(--fx-tb-bg)}
.ea-prose tbody tr:nth-child(even) > *{background:var(--fx-tb-alt)}
.ea-prose th,.ea-prose td{padding:.75em 1em}
.fx-table tbody tr:last-child > *{border-bottom:0}
.ea-prose tbody th{font-weight:600;color:var(--fx-tb-text)}
/* Başlığı thead yerine ilk satırda olan tablolar (klasik düzenleyici: ilk satır <th> ya da yalnızca kalın yazı; JS işaretler):
   ilk satır thead gibi görünür, zebra ilk veri satırından başlar */
.fx-table--hr tbody tr:nth-child(odd) > *{background:var(--fx-tb-alt)}
.fx-table--hr tbody tr:nth-child(even) > *{background:var(--fx-tb-bg)}
.fx-table--hr tbody tr.fx-table__headrow > *{background:var(--fx-tb-head);color:var(--fx-tb-text);font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.02em;line-height:1.35;vertical-align:bottom}
.fx-table__headrow strong,.fx-table__headrow b{font-weight:inherit}

/* Kaydırma kutusu */
.fx-table{position:relative;margin:1.5em 0;overflow:clip;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--medium)}
.fx-table__scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--ea-line-strong) transparent}
.fx-table__scroll:focus-visible{outline:2px solid var(--wp--preset--color--terracotta-deep);outline-offset:-2px;border-radius:inherit}
.fx-table table{margin:0;min-width:calc(var(--fx-cols,2) * 8rem)}
/* Tablo kutunun içinde yeniden tablo düzenine döner: WP temasındaki ".ea-prose table{display:block;overflow-x:auto}" kuralı
   ikinci bir kaydırıcı oluşturup satırları kutudan kısa bırakmasın (bu seçici ondan daha belirgindir) */
.ea-prose .fx-table .fx-table__scroll > table{display:table;max-width:none;overflow:visible}
/* WP tablo bloğu (<figure class="wp-block-table">): boşluk ve kaydırma figürde değil kutuda; "şeritli" stilin alt çizgisi kalkar */
.wp-block-table > .fx-table{margin:0}
.ea-prose .wp-block-table:has(> .fx-table){overflow:visible;border-bottom:0}

/* Kenar gölgeleri: yalnızca o yönde görülmemiş içerik varken */
.fx-table::before,.fx-table::after{content:"";position:absolute;top:0;bottom:0;z-index:2;width:1.5rem;pointer-events:none;opacity:0;transition:opacity .25s}
.fx-table::before{left:var(--fx-col1,0);background:linear-gradient(90deg,rgba(23,26,31,.13),rgba(23,26,31,0))}
.fx-table::after{right:0;background:linear-gradient(270deg,rgba(23,26,31,.13),rgba(23,26,31,0))}
.fx-table--l::before,.fx-table--r::after{opacity:1}

/* Geniş tablo: ilk sütun yapışkan */
.fx-table--wide tr > :first-child{position:sticky;left:0;z-index:1;box-shadow:inset -1px 0 0 var(--ea-line)}

@media print{.fx-table{overflow:visible;border:0}.fx-table__scroll{overflow:visible}.fx-table::before,.fx-table::after{display:none}}

/* ===== fx/b-toc.css ===== */
/* Yazı sayfası: otomatik "İçindekiler" (b-toc.js).
   Dar ekranda metnin üstünde açılır-kapanır bir blok; geniş ekranda okuma sütununun sağındaki boşlukta yapışkan bir liste.
   Yan yerleşim mutlak konumludur (sütunun genişliğini ve metnin akışını değiştirmez). Okunan bölümü soldaki ince çizgi gösterir. */
.fx-toc-host{position:relative}
.fx-toc{margin:0 0 var(--wp--preset--spacing--60)}
.fx-toc__box{position:relative;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--medium);background:var(--wp--preset--color--paper)}

/* Açma/kapama düğmesi */
.fx-toc__toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:48px;margin:0;padding:.7rem 1.1rem;border:0;border-radius:inherit;background:transparent;color:inherit;font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--small);font-weight:600;letter-spacing:.01em;line-height:1.3;text-align:left;cursor:pointer}
.fx-toc__toggle:focus-visible{outline:2px solid var(--wp--preset--color--terracotta-deep);outline-offset:2px}
.fx-toc__chev{color:var(--ea-muted);transition:transform var(--fx-dur-fast) var(--fx-ease-out)}
.fx-toc--open .fx-toc__chev{transform:rotate(180deg)}

/* Liste: sol kenarda ince bir iz; okunan bölümde iz koyulaşır */
.fx-toc__list{margin:0 1.1rem 1rem;padding:0;list-style:none;border-left:1px solid var(--ea-line-strong)}
.fx-toc__list[hidden]{display:none}
.fx-toc__list li{margin:0}
.fx-toc__list a{display:block;padding:.4rem 0 .4rem .9rem;font-size:var(--wp--preset--font-size--small);line-height:1.4;color:var(--ea-muted);text-decoration:none;transition:color .2s}
.fx-toc__list a:hover{color:var(--ea-link)}
.fx-toc__list a[aria-current]{color:var(--wp--preset--color--graphite)}
.fx-toc__list a:focus-visible{outline:2px solid var(--wp--preset--color--terracotta-deep);outline-offset:-2px;border-radius:4px}
/* Çizgi 1px yüksekliğindedir; JS satırın konumuna taşır ve yüksekliğine ölçekler (yalnızca transform) */
.fx-toc__mark{position:absolute;top:0;left:calc(1.1rem - 1px);width:3px;height:1px;background:var(--wp--preset--color--terracotta);transform-origin:0 0;opacity:0;pointer-events:none;transition:opacity .3s}
.fx-toc__mark--on{opacity:1}
html.fx:not(.fx-reduce) .fx-toc__mark--on{transition:transform .45s var(--fx-ease-out),opacity .3s}

/* ---------- Geniş ekran: sütunun sağında, yapışkan ---------- */
.fx-toc--side{position:absolute;top:var(--fx-toc-top,0);bottom:0;left:calc(100% + var(--fx-toc-gap,2.5rem));width:var(--fx-toc-w,16rem);margin:0}
.fx-toc--side .fx-toc__box{position:sticky;top:calc(var(--wp--custom--header--height-condensed) + 2rem);max-height:calc(100vh - var(--wp--custom--header--height-condensed) - 7.5rem);overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:0;background:none;scrollbar-width:thin}
.fx-toc--side .fx-toc__toggle{justify-content:flex-start;min-height:44px;padding:0 0 .6rem;color:var(--ea-muted);font-size:var(--wp--preset--font-size--x-small);letter-spacing:.04em}
.fx-toc--side .fx-toc__list{margin:0 0 0 1px}
.fx-toc--side .fx-toc__mark{left:0}

@media print{.fx-toc{display:none}}

/* ===== fx/c-copy.css ===== */
/* İletişim listesi "Kopyala" düğmesi (c-copy.js).
   Düğme, değerin sarmalayıcısında (.fx-c-copy-host) etiket satırının sağ ucuna oturur; ızgaraya sütun eklenmez,
   böylece değer (telefon, e-posta, adres) dar ekranlarda da tam genişliği kullanır ve satır yüksekliği değişmez. */
.fx-c-copy-host{position:relative;min-width:0}
.fx-c-copy-host > .ea-contact__label{padding-right:2.25rem}
/* Yazı boyutu etiketinkiyle aynı: .825em = etiket satırının yarısı (satır yüksekliği 1.65). Düğme o satıra oturur, 1px yukarıda;
   alt kenarı değerin ilk satırına inmez (en uzun değer, e-posta, 320px'te düğmenin altına kadar uzanır). */
.fx-c-copy{position:absolute;right:0;top:calc(.825em - 15px);display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--wp--custom--radius--medium);background:transparent;color:var(--wp--preset--color--mist);font-size:var(--wp--preset--font-size--small);transition:color .2s,border-color .2s,background-color .2s}
.fx-c-copy:hover{color:var(--wp--preset--color--bone);border-color:var(--ea-line-strong);background:var(--wp--custom--bone-alpha--06)}
.fx-c-copy.is-done{color:var(--wp--preset--color--terracotta-light);border-color:var(--wp--custom--accent-alpha--45)}
.fx-c-copy__icons{position:relative;display:grid;width:16px;height:16px}
.fx-c-copy__i{grid-area:1 / 1;width:16px;height:16px}
/* Simge değişimi: kopya simgesi söner, onay işareti soldan sağa çizilir */
.fx-c-copy__i--copy{transition:opacity .2s,transform .3s var(--fx-ease-out)}
.fx-c-copy__i--ok{opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .15s,clip-path .45s var(--fx-ease-out)}
.fx-c-copy.is-done .fx-c-copy__i--copy{opacity:0;transform:scale(.7)}
.fx-c-copy.is-done .fx-c-copy__i--ok{opacity:1;clip-path:inset(0 0 0 0)}
/* Küçük etiket: düğmenin solunda, etiket satırı hizasında; kısa etiket metninin sağında kalır, değerin üstüne binmez */
.fx-c-copy__tip{position:absolute;right:calc(100% + 6px);top:50%;padding:.1rem .55rem;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--pill);background:var(--wp--preset--color--ink);color:var(--wp--preset--color--bone);font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--x-small);font-weight:500;line-height:1.4;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(4px,-50%);transition:opacity .2s,transform .3s var(--fx-ease-out)}
.fx-c-copy:focus-visible .fx-c-copy__tip,.fx-c-copy.is-done .fx-c-copy__tip,.fx-c-copy.is-failed .fx-c-copy__tip{opacity:1;transform:translate(0,-50%)}
@media (hover:hover) and (pointer:fine){.fx-c-copy:hover .fx-c-copy__tip{opacity:1;transform:translate(0,-50%)}}
.fx-c-copy.is-done .fx-c-copy__tip{border-color:var(--wp--custom--accent-alpha--45);color:var(--wp--preset--color--terracotta-light)}
@media print{.fx-c-copy{display:none}.fx-c-copy-host > .ea-contact__label{padding-right:0}}

/* ===== fx/c-form.css ===== */
/* İletişim formu incelikleri (c-form.js). Etiket hiçbir zaman gizlenmez; renk ve çizgiler yalnızca durumu destekler. */

/* ---------- Alan sarmalayıcısı, odak çizgisi, geçerli / hatalı durum ---------- */
.fx-c-ctl{position:relative;display:block;min-width:0}
/* Blok alan: satır kutusunun alt boşluğu (textarea altında ~8px) oluşmaz, alt çizgi alanın kenarına oturur */
.fx-c-ctl > .ea-input{display:block}
.fx-c-ctl::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:2px;background:var(--wp--preset--color--terracotta);transform:scaleX(0);transform-origin:left center;pointer-events:none;transition:transform .5s var(--fx-ease-out),background-color .2s}
.fx-c-ctl:focus-within::after,.fx-c-ctl.fx-c-invalid::after{transform:scaleX(1)}
.fx-c-ctl.fx-c-invalid::after{background:var(--wp--preset--color--terracotta-light)}
.ea-field:focus-within > label{color:var(--wp--preset--color--terracotta-light)}
.ea-field > label{transition:color .25s}
.fx-c-ctl > input.ea-input,.fx-c-ctl > textarea.ea-input{padding-right:2.6rem}
.fx-c-ok{position:absolute;right:.95rem;top:50%;width:18px;height:18px;margin-top:-9px;color:var(--wp--preset--color--terracotta-light);pointer-events:none;opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .15s,clip-path .45s var(--fx-ease-out)}
.fx-c-ctl--area .fx-c-ok{top:1rem;margin-top:0}
.fx-c-ctl.fx-c-valid .fx-c-ok{opacity:1;clip-path:inset(0 0 0 0)}
/* Hata metni belirirken hafifçe iner (bir kez) */
html.fx:not(.fx-reduce) .ea-form .ea-field__error:not(:empty){animation:fx-c-err .35s var(--fx-ease-out)}
@keyframes fx-c-err{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---------- Gönder düğmesi: basılma + gönderilirken gösterge ---------- */
.ea-form__actions .wp-block-button{transition:transform .15s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .ea-form__actions .wp-block-button:active{transform:scale(.97)}
.ea-form .wp-block-button__link[disabled]{cursor:progress}
.ea-form .is-style-accent .wp-block-button__link[disabled]:hover{background:var(--wp--preset--color--terracotta);color:var(--wp--preset--color--ink)}
.ea-form .wp-block-button__link[disabled]::before{content:"";flex:none;box-sizing:border-box;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;opacity:.85}
/* Sınırlı tekrar (~10 sn): sayfa o sürede zaten yenilenir; sonsuz döngü yok */
html.fx:not(.fx-reduce) .ea-form .wp-block-button__link[disabled]::before{animation:fx-c-spin .8s linear 12}
@keyframes fx-c-spin{to{transform:rotate(1turn)}}

/* ---------- Durum kutusu: kayarak gelir, onay işareti çizilir; hata kutusunda sol şerit uzar (sarsıntı yok) ---------- */
html.fx:not(.fx-reduce) .ea-form__success.fx-c-wait{opacity:0}
html.fx:not(.fx-reduce) .ea-form__success.fx-c-in{animation:fx-c-box .6s var(--fx-ease-out) both}
html.fx:not(.fx-reduce) .ea-form__success.fx-c-in > .ea-icon{animation:fx-c-draw .55s var(--fx-ease-out) .25s both}
html.fx .ea-form__success.is-error{position:relative;overflow:hidden}
html.fx .ea-form__success.is-error::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--wp--preset--color--terracotta-light);transform-origin:top center}
html.fx:not(.fx-reduce) .ea-form__success.is-error.fx-c-in::before{animation:fx-c-bar .6s var(--fx-ease-out) .2s both}
@keyframes fx-c-box{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fx-c-draw{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fx-c-bar{from{transform:scaleY(0)}to{transform:none}}

/* ===== fx/c-map.css ===== */
/* Harita iğnesi (c-map.js). Gölge iğnenin ::after'ıdır; düşüş sırasında ters yönde kaydırılarak zeminde sabit kalır
   (iki animasyon aynı kare aralıkları ve aynı eğriyle çalışır, toplam kayma her an sıfırdır). */
.fx-c-map .ea-map__pin{position:relative;transition:transform .35s var(--fx-ease-out)}
.fx-c-map .ea-map__pin::after{content:"";position:absolute;left:50%;top:calc(100% + 6px);width:34px;height:7px;margin-left:-17px;border-radius:50%;background:rgba(0,0,0,.55);filter:blur(2px);pointer-events:none;transition:transform .35s var(--fx-ease-out),opacity .35s}
html.fx:not(.fx-reduce) .fx-c-map.fx-c-wait .ea-map__pin{opacity:0;transform:translateY(-28px)}
html.fx:not(.fx-reduce) .fx-c-map.fx-c-drop .ea-map__pin{animation:fx-c-pin .9s var(--fx-ease-out) both}
html.fx:not(.fx-reduce) .fx-c-map.fx-c-drop .ea-map__pin::after{animation:fx-c-pin-shadow .9s var(--fx-ease-out) both}
@keyframes fx-c-pin{0%{opacity:0;transform:translateY(-28px)}35%{opacity:1}70%{transform:translateY(2px)}100%{opacity:1;transform:none}}
@keyframes fx-c-pin-shadow{0%{opacity:.15;transform:translateY(28px) scale(.35)}70%{opacity:1;transform:translateY(-2px) scale(1.08)}100%{opacity:1;transform:none}}
/* "Haritayı göster" üzerindeyken iğne hafifçe kalkar, gölge küçülür */
html.fx:not(.fx-reduce) .fx-c-map:has([data-map-load]:hover) .ea-map__pin,
html.fx:not(.fx-reduce) .fx-c-map:has([data-map-load]:focus-visible) .ea-map__pin{transform:translateY(-5px)}
html.fx:not(.fx-reduce) .fx-c-map:has([data-map-load]:hover) .ea-map__pin::after,
html.fx:not(.fx-reduce) .fx-c-map:has([data-map-load]:focus-visible) .ea-map__pin::after{transform:translateY(5px) scale(.78);opacity:.6}

/* ===== fx/c-toc.css ===== */
/* KVKK "İçindekiler" listesi (c-toc.js): çizgilerle ayrılmış sade bağlantılar; geniş ekranda iki sütun (yukarıdan aşağı okunur). */
.ea-prose .fx-c-toc{margin:1.8em 0 2.4em;padding-top:.9rem;border-top:1px solid var(--ea-line-strong)}
.ea-prose .fx-c-toc__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.4rem}
.ea-prose .fx-c-toc__title{margin:0;font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--large);font-weight:600;letter-spacing:-.01em;line-height:1.3}
.ea-prose .fx-c-toc__meta{margin:0;font-size:var(--wp--preset--font-size--x-small);color:var(--ea-muted)}
.ea-prose .fx-c-toc__list{margin:0;padding:0;list-style:none;column-gap:var(--wp--preset--spacing--50)}
@media (min-width:40em){.ea-prose .fx-c-toc__list{column-count:2}}
.ea-prose .fx-c-toc__list li{margin:0;border-bottom:1px solid var(--ea-line);break-inside:avoid}
.ea-prose .fx-c-toc__list a{display:block;padding:.55rem 0;font-size:var(--wp--preset--font-size--small);line-height:1.45;color:inherit;text-decoration:none;transition:color .2s}
.ea-prose .fx-c-toc__list a:hover{color:var(--ea-link);text-decoration:underline;text-underline-offset:.25em}
/* Sırayla beliriş (bir kez) */
html.fx:not(.fx-reduce) .fx-c-toc.fx-c-wait .fx-c-toc__list li{opacity:0;transform:translateY(6px)}
html.fx:not(.fx-reduce) .fx-c-toc.fx-c-in .fx-c-toc__list li{transition:opacity .5s var(--fx-ease-out),transform .6s var(--fx-ease-out);transition-delay:calc(var(--fx-i,0) * 40ms)}
/* Atlanan başlığın altında kısa vurgu çizgisi */
.ea-prose h2.fx-c-h{position:relative}
.ea-prose h2.fx-c-h::after{content:"";position:absolute;left:0;bottom:-.3em;width:2.5em;height:2px;border-radius:2px;background:var(--ea-accent);transform:scaleX(0);transform-origin:left center;transition:transform .7s var(--fx-ease-out)}
.ea-prose h2.fx-c-h.fx-c-current::after{transform:scaleX(1)}
@media print{.ea-prose .fx-c-toc{display:none}}

/* ===== fx/e-certchart.css ===== */
/* Eğitimlerim kategori dağılımı (e-certchart.js): tek ince çubuk, altında düğme olan etiketler.
   Tek seri: nötr kemik tonu; seçili kategori kiremit. Etiket ve sayılar metin renginde, renk yalnızca çubukta.
   Yükseklik sabittir (--fx-cc-h): sayfadaki yuva (.fx-cc-slot) aynı ölçüyle önceden ayrılır, grafik gelince kayma olmaz.
   Etiketler tek satırda, paylarla orantılı sütunlarda (bir etiket payına sığmazsa kendi genişliğini alır);
   dar ekranda ad ve sayı alt alta durur, böylece yükseklik her genişlikte aynıdır. */
.fx-cc,.fx-cc-slot{--fx-cc-bar:6px;--fx-cc-h:calc(var(--fx-cc-bar) + .5rem + 44px)}

.fx-cc{position:relative;display:grid;grid-template-columns:var(--fx-cc-cols,repeat(4,minmax(0,1fr)));align-content:start;column-gap:0;
  box-sizing:border-box;height:var(--fx-cc-h);margin:0 0 var(--wp--preset--spacing--40);padding:calc(var(--fx-cc-bar) + .5rem) 0 0}

/* Yuva: yalnızca betik çalışabilen tarayıcıda yer tutar (JS kapalıysa boşluk kalmaz) */
.fx-cc-slot{display:none;margin:0 0 var(--wp--preset--spacing--40)}
@media (scripting:enabled){.fx-cc-slot{display:block;min-height:var(--fx-cc-h)}}
.fx-cc-slot.is-filled{display:block}
.fx-cc-slot[hidden]{display:none}
.fx-cc-slot > .fx-cc{margin:0}

/* Bölüm düğmesi: etiket + sayı; çubuktaki payı (.fx-cc__bar) grafiğe göre konumlanır.
   Sütun boşluğu yerine sağ iç boşluk: sütunlar çubuk paylarıyla aynı yerden başlar. */
.fx-cc__seg{display:flex;align-items:center;gap:.5rem;min-width:0;min-height:44px;margin:0;padding:0 .75rem 0 0;border:0;background:transparent;
  color:inherit;font:inherit;text-align:left;white-space:nowrap;cursor:pointer}
.fx-cc__label{font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--small);font-weight:600;line-height:1.2;
  text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.3em;transition:color .2s,text-decoration-color .2s}
.fx-cc__n{font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--small);font-weight:500;line-height:1.2;
  font-variant-numeric:tabular-nums;color:var(--wp--custom--bone-alpha--80)}
.fx-cc__seg:last-child{padding-right:0}
.fx-cc__seg:hover .fx-cc__label{text-decoration-color:currentColor}
/* Dar ekran: ad üstte, sayı altta; ad bir kademe küçük */
@media (max-width:37.49em){
  .fx-cc__seg{flex-direction:column;align-items:flex-start;justify-content:center;gap:.1rem}
  .fx-cc__label{font-size:var(--wp--preset--font-size--x-small)}
}

/* Çubuk: bölümler arasında ince boşluk (saydam sağ kenar; zemin rengi ne olursa olsun) */
.fx-cc__bar{position:absolute;top:0;height:var(--fx-cc-bar);box-sizing:border-box;border-right:3px solid transparent;background:var(--wp--preset--color--bone);
  background-clip:padding-box;border-radius:var(--wp--custom--radius--pill);transform-origin:0 50%;
  transition:transform .55s var(--fx-ease-out) calc(var(--fx-cc-i,0) * 150ms),opacity .3s,background-color .3s}
.fx-cc__seg:last-child .fx-cc__bar{border-right:0}

/* Bir kategori seçiliyken diğer paylar geri çekilir, seçili olan kiremit olur */
.fx-cc.is-filtered .fx-cc__seg[aria-pressed="false"] .fx-cc__bar{opacity:.3}
.fx-cc.is-filtered .fx-cc__seg[aria-pressed="false"] .fx-cc__label{color:var(--wp--custom--bone-alpha--80)}
.fx-cc__seg[aria-pressed="true"] .fx-cc__bar{background-color:var(--wp--preset--color--terracotta)}
.fx-cc__seg:hover .fx-cc__bar{opacity:1}

/* Giriş: çubuk soldan sırayla dolar (bir kez) */
html.fx:not(.fx-reduce) .fx-cc:not(.is-in) .fx-cc__bar{transform:scaleX(0)}

/* Filtre durum satırı değişince kısa, tek seferlik belirme */
@keyframes fx-cc-bump{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
html.fx:not(.fx-reduce) .fx-cc-bump{animation:fx-cc-bump .45s var(--fx-ease-out) both}

@media (forced-colors:active){.fx-cc__bar{background:CanvasText}.fx-cc__seg[aria-pressed="true"] .fx-cc__bar{background:Highlight}}
@media print{.fx-cc-slot:not(.is-filled){display:none}}

/* ===== fx/e-certgrid.css ===== */
/* Eğitimlerim sertifika ızgarası (e-certgrid.js): giriş, eğilme + görsel yükselmesi, klavye eşdeğeri. */

/* Giriş: yalnızca JS ızgarayı işaretlediyse ve hareket azaltma kapalıysa başlangıçta aşağıda ve saydam */
html.fx:not(.fx-reduce) .ea-cert-grid.fx-cg > .ea-cert{opacity:0;translate:0 18px;transition:opacity .7s var(--fx-ease-out) var(--fx-cg-delay,0ms),translate .9s var(--fx-ease-out) var(--fx-cg-delay,0ms)}
html.fx:not(.fx-reduce) .ea-cert-grid.fx-cg > .ea-cert.fx-cg-in{opacity:1;translate:none}

/* Eğilme için derinlik; kart kendi transform'unu yumuşakça izler */
html.fx:not(.fx-reduce) .ea-cert-grid > .ea-cert{perspective:900px}
html.fx:not(.fx-reduce) .ea-cert-grid .ea-cert__card{transition:border-color .2s,transform .5s var(--fx-ease-out);transform-origin:50% 60%}
html.fx:not(.fx-reduce) .ea-cert-grid .ea-cert__img img{transition:transform .9s var(--fx-ease-out)}

/* Işık: imlecin yatay konumunu izleyen çok hafif parlama (yalnızca fareyle üzerindeyken) */
html.fx-fine:not(.fx-reduce) .ea-cert-grid .ea-cert__card::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  opacity:0;transform:translateX(calc(var(--fx-sx,50%) - 50%));transition:opacity .4s var(--fx-ease-out)}
html.fx-fine:not(.fx-reduce) .ea-cert-grid .fx-cg-hover .ea-cert__card::before{opacity:.7}

/* Görsel yükselmesi: fareyle üzerinde ya da klavyeyle odakta (aynı bilgi, aynı his) */
html.fx-fine:not(.fx-reduce) .ea-cert-grid .fx-cg-hover .ea-cert__img img,
html.fx:not(.fx-reduce) .ea-cert-grid .ea-cert__card:has(.ea-cert__open:focus-visible) .ea-cert__img img{transform:scale(1.045)}
html.fx:not(.fx-reduce) .ea-cert-grid .ea-cert__card:has(.ea-cert__open:focus-visible){transform:translateY(-4px);border-color:var(--wp--preset--color--terracotta)}

/* Filtre geçişi: solan kopyaların katmanı (e-certgrid.js). Bölümün içinde, yeni ızgara kutusuna kırpılı;
   kayan kartlar geçiş süresince bu katmanın üstünde çizilir. */
.fx-cg-ghosts{position:absolute;inset:0;z-index:0;pointer-events:none}
.fx-cg-ghosts > .fx-cg-ghost{position:absolute;margin:0;list-style:none}
.ea-cert-grid > .ea-cert.fx-cg-lift{position:relative;z-index:1}
/* Geçiş süresince bölüm kırpılır: yukarı kayan kartlar alttaki bölümün ya da alt bilginin üstünden geçmez */
.fx-cg-clip{overflow:clip}
@supports not (overflow:clip){.fx-cg-clip{overflow:hidden}}

/* Yazdırma: hiç görünmemiş kartlar da tam görünür */
@media print{
  .ea-cert-grid.fx-cg > .ea-cert{opacity:1!important;translate:none!important;transition:none!important}
  .fx-cg-ghosts{display:none}
}

/* ===== fx/e-coverflow.css ===== */
/* Ana sayfa sertifika vitrini (e-coverflow.js). Yalnızca JS izlemeye data-fx-coverflow koyduğunda devreye girer;
   aksi halde site.css'teki yatay şerit olduğu gibi kalır. */
html.fx .fx-cf-host{overflow-x:clip}
/* overflow:clip desteklemeyen tarayıcılar (ör. Safari 16 öncesi): dış kartlar yatay kaydırma yaratmasın */
@supports not (overflow:clip){html.fx .fx-cf-host{overflow:hidden}}
html.fx .ea-certs__track[data-fx-coverflow]{
  --fx-cf-w:clamp(14rem,64vw,19rem);
  position:relative;display:block;height:calc(var(--fx-cf-w) * .6667 + 3rem);margin:var(--wp--preset--spacing--30) 0 0;padding:0;
  overflow:visible;scroll-snap-type:none;perspective:1400px;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}
@media (min-width:37.5em){html.fx .ea-certs__track[data-fx-coverflow]{--fx-cf-w:clamp(17rem,40vw,24rem)}}
@media (min-width:56.25em){html.fx .ea-certs__track[data-fx-coverflow]{--fx-cf-w:clamp(20rem,31vw,27.5rem);height:calc(var(--fx-cf-w) * .6667 + 4rem)}}
html.fx .ea-certs__track[data-fx-coverflow].is-dragging{cursor:grabbing}
html.fx [data-fx-coverflow] > .ea-cert{
  position:absolute;left:50%;top:50%;width:var(--fx-cf-w);margin:0;border-radius:var(--wp--custom--radius--medium);
  box-shadow:0 30px 50px -30px rgba(0,0,0,.85);
  transition:transform .8s var(--fx-ease-out),opacity .6s var(--fx-ease-out);will-change:transform}
html.fx [data-fx-coverflow].is-dragging > .ea-cert,html.fx [data-fx-coverflow].is-still > .ea-cert{transition:none}
html.fx [data-fx-coverflow] .ea-cert__card{height:auto;border:0}
html.fx [data-fx-coverflow] .ea-cert__img img{-webkit-user-drag:none;pointer-events:none}
/* Altyazı kartın içinde ekran okuyucu için kalır; görsel olarak alttaki başlıkta gösterilir */
html.fx [data-fx-coverflow] .ea-cert__cap{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap;border:0}
/* Yan kartlar derinlikte kararır (filtre yerine örtünün opaklığı) */
html.fx [data-fx-coverflow] > .ea-cert::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--wp--preset--color--ink);opacity:var(--fx-shade,0);transition:opacity .6s var(--fx-ease-out);pointer-events:none}
html.fx [data-fx-coverflow].is-dragging > .ea-cert::after{transition:none}

/* Düğmeler ve aradaki başlık ortada */
html.fx .fx-cf-nav{justify-content:center;align-items:center;gap:var(--wp--preset--spacing--40);margin-top:var(--wp--preset--spacing--40)}
html.fx .fx-cf-nav .ea-iconbtn{flex:none}
.fx-cf-cap{display:flex;flex-direction:column;align-items:center;gap:.3rem;flex:0 1 26rem;min-width:0;text-align:center}
.fx-cf-cap__meta{display:flex;gap:.6rem;font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--terracotta-light)}
.fx-cf-cap__count{color:var(--wp--custom--bone-alpha--80);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.fx-cf-cap__count::before{content:"·";margin-right:.6rem;color:var(--wp--custom--bone-alpha--80)}
.fx-cf-cap__title{display:block;min-height:2.6em;font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--large);font-weight:600;line-height:1.3;color:var(--wp--preset--color--bone)}
/* Dar telefonlarda (320–390 px) uzun başlıklar üç satıra iner: üç satırlık yer baştan ayrılır.
   Kesin yükseklik JS'te en uzun başlığa göre ölçülür (fitCaption); bu değerler yalnızca ilk tahmin. */
@media (max-width:24.5em){.fx-cf-cap__title{min-height:3.9em}}
/* Geniş ekranda en uzun başlık tek satıra sığar; yükseklik sabit kalır, alttaki bölüm kaymaz */
@media (min-width:56.25em){.fx-cf-cap{flex-basis:36rem}.fx-cf-cap__title{min-height:1.3em}}
html.fx:not(.fx-reduce) .fx-cf-cap{transition:opacity .35s var(--fx-ease-out),transform .5s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-cf-cap.is-out{opacity:0;transform:translateY(4px);transition-duration:.14s}

/* Yazdırma: vitrin yerine düz, sarmalanan bir ızgara; tüm kartlar ve altyazıları görünür */
@media print{
  html.fx .ea-certs__track[data-fx-coverflow]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;height:auto;perspective:none;overflow:visible}
  html.fx [data-fx-coverflow] > .ea-cert{position:static;width:auto;transform:none!important;opacity:1!important;transition:none!important;box-shadow:none;break-inside:avoid}
  html.fx [data-fx-coverflow] > .ea-cert::after{display:none}
  html.fx [data-fx-coverflow] .ea-cert__cap{position:static!important;width:auto;height:auto;margin:0;padding:1rem 1.1rem 1.2rem;overflow:visible;clip:auto;clip-path:none;white-space:normal}
  .fx-cf-cap{display:none}
}

/* ===== fx/g-curtain.css ===== */
/* g-curtain — görsel perdesi (bkz. g-curtain.js). Figürün kendi border-radius + overflow:hidden'ı köşeleri yuvarlak tutar,
   perde düz bir kenarla alttan yukarı açılır (fx-cur-down: yukarıdan aşağı). Görselde transform yerine "scale" kullanılır:
   başka modüllerin transform'uyla birleşir. */
html.fx:not(.fx-reduce) .fx-cur{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--fx-ease-io)}
html.fx:not(.fx-reduce) .fx-cur.fx-cur-down:not(.fx-cur-on){clip-path:inset(0 0 100% 0);transition:none}
html.fx:not(.fx-reduce) .fx-cur img{scale:1.06;transition:scale 1.2s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-cur-on{clip-path:inset(0 0 0 0)}
html.fx:not(.fx-reduce) .fx-cur-on img{scale:1}
html.fx:not(.fx-reduce) .fx-cur-done{clip-path:none;transition:none}
@media print{html.fx .fx-cur{clip-path:none!important}html.fx .fx-cur img{scale:1!important}}

/* ===== fx/g-float.css ===== */
/* g-float — yüzen WhatsApp düğmesi (bkz. g-float.js).
   İlk görünüş: düğme hafif küçükten büyüyerek, ikon çok az dönerek yerine oturur (bir kez).
   Etiket ("WhatsApp’tan yazın"): üzerine gelince / klavye odağında düğmeye doğru kayarak belirir.
   "scale / rotate / translate" ayrı özellikleri kullanılır: site.css'teki transform'larla (translateY) çakışmaz. */
html.fx:not(.fx-reduce) .fx-float-first .ea-float__btn{animation:fx-g-float-in .7s var(--fx-ease-out) both}
html.fx:not(.fx-reduce) .fx-float-first .ea-float__btn > .ea-icon{animation:fx-g-float-icon .8s var(--fx-ease-out) .08s both}
@keyframes fx-g-float-in{from{scale:.72}to{scale:1}}
@keyframes fx-g-float-icon{from{rotate:-14deg}to{rotate:0deg}}

html.fx .fx-float .ea-float__label{translate:8px 0;transition:opacity .25s,translate .4s var(--fx-ease-out)}
html.fx .fx-float .ea-float__btn:is(:hover,:focus-visible) .ea-float__label{translate:0 0}

/* ===== fx/g-header.css ===== */
/* g-header — aşağı kaydırınca gizlenen, yukarı kaydırınca dönen başlık (bkz. g-header.js).
   Gizliyken bile başlık içinde klavye odağı (:focus-visible) varsa görünür; fareyle tıklamadan kalan odak sayılmaz.
   :has() desteklenmeyen tarayıcıda ikinci kural yok sayılır, aynı işi g-header.js yapar.
   Menü açıkken (html.ea-lock) transform hiç uygulanmaz: transform, içteki position:fixed menünün kapsayıcısını değiştirirdi. */
html.fx:not(.fx-reduce) .fx-hdr{transition:transform .5s var(--fx-ease-out)}
html.fx:not(.fx-reduce):not(.ea-lock) .fx-hdr.fx-hdr-hide{transform:translate3d(0,-100%,0);transition:transform .45s var(--fx-ease-io)}
html.fx:not(.fx-reduce):not(.ea-lock) .fx-hdr.fx-hdr-hide:has(:focus-visible){transform:none;transition:transform .5s var(--fx-ease-out)}
html.fx.ea-lock .fx-hdr{transition:none}

/* ===== fx/g-headings.css ===== */
/* g-headings — başlık satırlarının maskeden yükselmesi ve ardından gelen metnin belirmesi (bkz. g-headings.js).
   Gizli başlangıç durumları yalnızca html.fx:not(.fx-reduce) altında: JS yoksa ya da hareket azaltma açıksa her şey görünür. */
html.fx:not(.fx-reduce) .fx-hx{transition:opacity .6s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-hx:not(.fx-hx-on){opacity:0}
html.fx:not(.fx-reduce) .fx-hx-split{transition:none}
/* Satır maskesi: clip-path yerleşimi değiştirmez; üstte İ/Ş noktaları, altta ş/ç/ğ kuyrukları için pay bırakılır */
html.fx:not(.fx-reduce) .fx-hx-split .fx-hx-line{display:block;white-space:nowrap;clip-path:inset(-.32em -1em -.24em -1em)}
html.fx:not(.fx-reduce) .fx-hx-split .fx-hx-in{display:block;transform:translate3d(0,calc(100% + .6em),0);transition:transform 1s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-hx-go .fx-hx-in{transform:none}

/* Başlığın altındaki kısa metin: hafifçe yukarı kayarak belirir */
html.fx:not(.fx-reduce) .fx-lede{transition:opacity .9s var(--fx-ease-out),transform .9s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-lede:not(.fx-lede-on){opacity:0;transform:translate3d(0,10px,0)}
/* Metnin içindeki bir bağlantıya klavyeyle gelinirse beklemeden görünür */
html.fx:not(.fx-reduce) .fx-lede:focus-within{opacity:1;transform:none}

@media print{
  html.fx .fx-hx,html.fx .fx-lede{opacity:1!important;transform:none!important}
  html.fx .fx-hx-in{transform:none!important}
}

/* ===== fx/g-links.css ===== */
/* g-links — bağlantı ve düğmelerde ince üzerine gelme / odak geri bildirimi. Yalnızca transform (scale/translate) kullanılır.
   - .ea-arrow-link ve alt bilgi / menü / sayfa yolu bağlantıları: alt çizgi soldan sağa çizilir, ayrılırken sağa doğru çekilir.
     Sürekli görünen ince taban çizgisi (.ea-arrow-link, KVKK bağlantısı) korunur: bağlantı olduğu her zaman anlaşılır.
   - Ok ikonları yöne doğru hafifçe kayar; düğmeye basınca düğme çok az içeri çöker.
   Klavye odağı (:focus-visible) üzerine gelmeyle aynı görünümü alır. Hareket azaltma açıksa geçişler anlıktır (_core.css). */

/* Çizgi taşıyıcıları */
html.fx .ea-arrow-link,
html.fx .ea-footer__bottom a,
html.fx .ea-footer__list a,
html.fx .ea-menu__footer a,
html.fx .ea-breadcrumb a{position:relative;text-decoration:none}

/* Taban çizgisi (önceden text-decoration ile çizilen soluk çizgi) */
html.fx .ea-arrow-link::before,
html.fx .ea-footer__bottom a:not(.ea-totop)::before{content:"";position:absolute;left:0;right:0;height:1px;background:var(--ea-line-strong);pointer-events:none}

/* Çizilen çizgi */
html.fx .ea-arrow-link::after,
html.fx .ea-footer__bottom a::after,
html.fx .ea-footer__list a::after,
html.fx .ea-menu__footer a::after,
html.fx .ea-breadcrumb a::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--fx-ease-out);pointer-events:none}
html.fx .ea-arrow-link:is(:hover,:focus-visible)::after,
html.fx .ea-footer__bottom a:is(:hover,:focus-visible)::after,
html.fx .ea-footer__list a:is(:hover,:focus-visible)::after,
html.fx .ea-menu__footer a:is(:hover,:focus-visible)::after,
html.fx .ea-breadcrumb a:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:0 50%}

/* Masaüstü ana menü: çizgi site.css'te var; burada klavye odağında da çizilir ve ayrılırken sağa doğru çekilir */
@media (min-width:70em){
  html.fx .ea-nav .wp-block-navigation__responsive-container .wp-block-navigation-item__content::after{transform-origin:100% 50%;transition:transform .45s var(--fx-ease-out)}
  html.fx .ea-nav .wp-block-navigation__responsive-container .wp-block-navigation-item__content:is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:0 50%}
  html.fx .ea-nav .wp-block-navigation__responsive-container .wp-block-navigation-item__content:focus-visible{color:var(--wp--preset--color--bone)}
}

/* Dikey konumlar: .ea-arrow-link inline-flex (dolgu .3rem), diğerleri satır içi */
html.fx .ea-arrow-link::before,html.fx .ea-arrow-link::after{bottom:calc(.3rem + .06em)}
html.fx .ea-footer__bottom a::before,html.fx .ea-footer__bottom a::after,
html.fx .ea-footer__list a::after,html.fx .ea-menu__footer a::after,html.fx .ea-breadcrumb a::after{bottom:-.12em}
/* Çizgi yalnızca metnin altında: ikon ve boşluğu hariç */
html.fx .ea-arrow-link:has(> .ea-icon)::before,html.fx .ea-arrow-link:has(> .ea-icon)::after{right:calc(1.25em + .5rem)}
html.fx .ea-totop::after{right:calc(1.25em + .4rem)}

/* Ok ikonları */
html.fx .ea-arrow-link .ea-icon,
html.fx .ea-totop .ea-icon,
html.fx .wp-block-button__link .ea-icon{transition:translate .35s var(--fx-ease-out)}
html.fx .ea-arrow-link:is(:hover,:focus-visible) .ea-icon{translate:3px 0}
html.fx .ea-arrow-link:has(use[href="#i-arrow-ur"]):is(:hover,:focus-visible) .ea-icon{translate:2px -2px}
html.fx .ea-totop:is(:hover,:focus-visible) .ea-icon{translate:0 -3px}
html.fx .wp-block-button__link:is(:hover,:focus-visible) .ea-icon{translate:3px 0}
html.fx .wp-block-button__link:has(use[href="#i-download"]):is(:hover,:focus-visible) .ea-icon{translate:0 2px}

/* Düğmeye basma: sarmalayıcıda "scale" (başka modüllerin düğmeye verdiği transform ile çakışmaz).
   Form gönder düğmesinin basma hissi c-form.css'te; orada tekrar edilmez. */
html.fx :not(.ea-form__actions) > .wp-block-button{transition:scale .2s var(--fx-ease-out)}
html.fx :not(.ea-form__actions) > .wp-block-button:active{scale:.97}

/* ===== fx/g-menu.css ===== */
/* g-menu — mobil/tablet menü (<70em): öğeler sırayla aşağıdan gelir; bulunulan sayfanın bağlantısı rengine ek olarak
   küçük bir turuncu noktayla işaretlenir (yalnızca renge dayanmasın). Masaüstü menüdeki alt çizgi site.css'te. */
@media (max-width:69.99em){
  .ea-nav .fx-menu .wp-block-navigation-item__content[aria-current="page"]::after{content:"";display:inline-block;width:.3em;height:.3em;margin-left:.4em;border-radius:50%;background:var(--wp--preset--color--terracotta);vertical-align:.12em}
  html.fx:not(.fx-reduce) .ea-nav .fx-menu.is-menu-open .wp-block-navigation-item,
  html.fx:not(.fx-reduce) .ea-nav .fx-menu.is-menu-open .ea-menu__footer{animation:fx-g-menu-in .55s var(--fx-ease-out) both;animation-delay:calc(70ms + var(--fx-i, 0) * 45ms)}
  html.fx:not(.fx-reduce) .ea-nav .fx-menu.is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after{animation:fx-g-menu-dot .45s var(--fx-ease-out) both;animation-delay:calc(260ms + var(--fx-i, 0) * 45ms)}
}
@keyframes fx-g-menu-in{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes fx-g-menu-dot{from{transform:scale(0)}to{transform:none}}

/* ===== fx/g-transitions.css ===== */
/* g-transitions — sayfalar arası geçiş (View Transitions API, belge→belge). Desteklemeyen tarayıcıda kural yok sayılır,
   sayfa her zamanki gibi açılır. Eski sayfa kısa sürede söner, yenisi yumuşakça belirir; başlık (header) ayrı bir katman
   olarak yerinde kalır. Hareket azaltma açıksa geçiş hiç tanımlanmaz.
   Not: Chromium, yeni sayfanın geçişe katılıp katılmadığına <head> ayrıştırılırken bakar; dış CSS dosyası o anda henüz
   gelmemişse geçiş atlanır (sayfa yine normal açılır). Bu yüzden aynı @view-transition kuralı <head>'e satır içi olarak da
   yazılmalıdır: <style id="fx-vt">@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}</style>
   (WP: fx stiline wp_add_inline_style ile). Aşağıdaki kural yedek ve geçiş animasyonlarının asıl yeridir. */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .ea-header{view-transition-name:fx-header}
  ::view-transition-old(root){animation:fx-g-vt-out .22s var(--fx-ease-io) both}
  ::view-transition-new(root){animation:fx-g-vt-in .34s var(--fx-ease-out) .06s both}
  ::view-transition-group(fx-header){animation-duration:.34s;animation-timing-function:var(--fx-ease-out)}
}
@keyframes fx-g-vt-out{to{opacity:0}}
@keyframes fx-g-vt-in{from{opacity:0}}

/* ===== fx/h-goal.css ===== */
/* "Amacım" cümlesi (h-goal.js): kelime opaklıkları JS'ten gelir; kısa geçiş kaydırma adımlarını yumuşatır. */
html.fx:not(.fx-reduce) .fx-ink .fx-word{transition:opacity .3s linear}
/* Cümle ilk ekrandaysa bir kez, kelime kelime dolar */
html.fx:not(.fx-reduce) .fx-ink-once .fx-word{transition:opacity .6s var(--fx-ease-out)}
/* Yazdırırken cümle tam renkli */
@media print{
  .fx-word{opacity:1!important}
}

/* ===== fx/h-magnet.css ===== */
/* Mıknatıslı düğmeler (h-magnet.js): site.css'teki renk geçişleri korunur, yalnızca konum geçişi eklenir. */
.wp-block-button__link.fx-magnet{transition:background-color .25s,color .25s,border-color .25s,transform .45s var(--fx-ease-out)}

/* ===== fx/h-next.css ===== */
/* Hakkımda kapanış bağlantıları (h-next.js): metnin altında soldan sağa çizilen çizgi + ok ileri kayar.
   Fare ve klavye odağı aynı durumu gösterir. Çizgi çıkarken sağa doğru toplanır.
   Tek çizgi ilkesi: sayfa stilinin hover'da üst ayırıcıyı vurgu rengine boyaması kaldırılır (ayırıcı sabit kalır),
   yalnızca metnin altındaki çizgi çizilir. Renk değişimi sayfa stilinde olduğu gibi kalır. */
html.fx .ea-bio-next__link.fx-next:hover,html.fx .ea-bio-next__link.fx-next:focus-visible{border-top-color:var(--ea-line-strong)}
.fx-next .fx-next__label{position:relative}
.fx-next .fx-next__label::after{content:"";position:absolute;left:0;right:0;bottom:-.14em;height:2px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--fx-ease-out);pointer-events:none}
.fx-next:hover .fx-next__label::after,.fx-next:focus-visible .fx-next__label::after{transform:none;transform-origin:0 50%}
.fx-next .ea-icon{transition:transform .5s var(--fx-ease-out)}
.fx-next:hover .ea-icon,.fx-next:focus-visible .ea-icon{transform:translateX(6px)}

/* ===== fx/h-odometer.css ===== */
/* Dönen haneler (h-odometer.js). clip-path yalnızca üstten/alttan taşan haneleri gizler, taban çizgisini (baseline) değiştirmez;
   böylece dar ekranda yanındaki açıklama aynı hizada kalır. Rakamlar orantılı kalır: sütun genişliği JS'te, duracağı
   haneye göre verilir; dönüş sırasında daha geniş haneler yana taşabilir (yanlardan kırpılmaz). */
.fx-odo{display:inline-flex;height:1em;clip-path:inset(0 -.6em)}
.fx-odo__col{display:flex;flex-direction:column;transition:transform 1.1s var(--fx-ease-io)}
.fx-odo__col > span{display:block;height:1em;line-height:1}
.fx-odo__suffix{line-height:1}
/* Yazdırırken (sayaç henüz dönmediyse) gerçek sayı görünsün, "00" değil */
@media print{
  .fx-odo{display:none}
  .fx-odo-on > .screen-reader-text{position:static!important;clip:auto;clip-path:none;width:auto;height:auto;margin:0;overflow:visible}
}

/* ===== fx/h-portals.css ===== */
/* Portal kartları ve iş birliği şeridi (h-portals.js). Yalnızca transform / opacity.
   Fare efektleri (:hover) yalnızca fareli cihazlarda (html.fx-fine): dokunmatikte kart, dokunulduktan sonra "takılı" kalmaz.
   Klavye odağı (içindeki bağlantıda :focus-visible) her cihazda aynı yükselme, logo ve ok hareketini gösterir; dokunuşla
   gelen odak bunu tetiklemez. */
html.fx:not(.fx-reduce) .fx-card3d{position:relative;isolation:isolate;transition:transform .6s var(--fx-ease-out),border-color .2s}
/* Gölge ayrı katmanda; yalnızca opaklığı değişir */
html.fx:not(.fx-reduce) .fx-card3d::before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;box-shadow:var(--wp--custom--shadow--light);opacity:0;transition:opacity .5s var(--fx-ease-out);pointer-events:none}
html.fx:not(.fx-reduce) .fx-card3d .ea-store__logo img,html.fx:not(.fx-reduce) .fx-card3d .ea-partner__logo{transition:transform .5s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-card3d .ea-circle .ea-icon{transition:transform .45s var(--fx-ease-out)}

/* Fare: gölge, logo hafifçe yükselir, "yeni sekmede aç" oku biraz kayar (eğilme JS'te) */
html.fx-fine:not(.fx-reduce) .fx-card3d:hover::before{opacity:1}
html.fx-fine:not(.fx-reduce) .fx-card3d:hover .ea-store__logo img{transform:translateY(-4px)}
html.fx-fine:not(.fx-reduce) .fx-card3d:hover .ea-partner__logo{transform:translateY(-3px)}
html.fx-fine:not(.fx-reduce) .fx-card3d:hover .ea-circle .ea-icon{transform:translate(2px,-2px)}

/* Klavye: eğilme yok, aynı yükselme ve aynı ayrıntılar. :has() desteklemeyen tarayıcıda aşağıdaki :focus-within yedeği. */
html.fx:not(.fx-reduce) .fx-card3d:has(:focus-visible){transform:translateY(-3px)}
html.fx:not(.fx-reduce) .fx-card3d:has(:focus-visible)::before{opacity:1}
html.fx:not(.fx-reduce) .fx-card3d:has(:focus-visible) .ea-store__logo img{transform:translateY(-4px)}
html.fx:not(.fx-reduce) .fx-card3d:has(:focus-visible) .ea-partner__logo{transform:translateY(-3px)}
html.fx:not(.fx-reduce) .fx-card3d:has(:focus-visible) .ea-circle .ea-icon{transform:translate(2px,-2px)}
@supports not selector(:has(*)){
  html.fx:not(.fx-reduce) .fx-card3d:focus-within{transform:translateY(-3px)}
  html.fx:not(.fx-reduce) .fx-card3d:focus-within::before{opacity:1}
  html.fx:not(.fx-reduce) .fx-card3d:focus-within .ea-store__logo img{transform:translateY(-4px)}
  html.fx:not(.fx-reduce) .fx-card3d:focus-within .ea-partner__logo{transform:translateY(-3px)}
  html.fx:not(.fx-reduce) .fx-card3d:focus-within .ea-circle .ea-icon{transform:translate(2px,-2px)}
}

/* ===== fx/h-portrait.css ===== */
/* Portre eğilme + ışık (h-portrait.js). Sınıflar yalnızca JS çalışınca (fare var, hareket azaltma kapalı) eklenir. */
.fx-tilt{position:relative;border-radius:var(--wp--custom--radius--large);transition:transform .6s var(--fx-ease-out)}
/* Hakkımda sarmalayıcısı: portreyle aynı ölçü; dar ekranda portrenin 440px sınırını devralır */
.fx-tilt-wrap{min-width:0}
@media (max-width:59.99em){.ea-bio .fx-tilt-wrap{width:100%;max-width:440px}}
/* Eğilince beliren gölge: yalnızca opaklık ve konum değişir */
.fx-tilt::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 40px 70px -34px rgba(0,0,0,.9);opacity:0;transform:translate(var(--fx-sx,0),var(--fx-sy,18px));transition:opacity .5s var(--fx-ease-out),transform .6s var(--fx-ease-out);pointer-events:none}
.fx-tilt.is-fx-hover::before{opacity:1}
/* Işık: imlecin olduğu yerde hafif bir parlaklık */
.fx-sheen{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--fx-mx,50%) var(--fx-my,30%),rgba(255,255,255,.16),rgba(255,255,255,0) 45%);opacity:0;transition:opacity .4s}
.fx-tilt.is-fx-hover .fx-sheen{opacity:1}

/* ===== fx/h-rise.css ===== */
/* Açılışta giriş cümlesi ve düğmeler (h-rise.js). Gizli başlangıç yalnızca JS sınıfı ekledikten sonra ve hareket azaltma kapalıyken.
   Gizli durum geçişsizdir (anında uygulanır); geçiş yalnızca görünür duruma ait. Böylece gizlenme sırasında başlayan bir
   geçiş, görünme sınıfı gelince iptal edilip adımı atlatmaz. */
html.fx:not(.fx-reduce) .fx-rise:not(.fx-in){opacity:0;transform:translateY(14px)}
html.fx:not(.fx-reduce) .fx-rise.fx-in{transition:opacity .9s var(--fx-ease-out) var(--fx-delay,0s),transform 1s var(--fx-ease-out) var(--fx-delay,0s)}
/* Klavyeyle odak gelirse beklemeden görünür */
html.fx:not(.fx-reduce) .fx-rise:focus-within{opacity:1;transform:none;transition:none}
@media print{
  html.fx .fx-rise{opacity:1!important;transform:none!important}
}

/* ===== fx/h-services.css ===== */
/* Hizmet maddeleri (h-services.js). Kural: yalnızca transform / opacity. */
html.fx:not(.fx-reduce) .fx-spot{position:relative;isolation:isolate;border-top-color:transparent;transition:transform .5s var(--fx-ease-out)}
/* Asıl üst çizgi: kenarlık yerine çizilen ince çizgi (liste ekrana girince soldan sağa) */
html.fx:not(.fx-reduce) .fx-spot::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--ea-line-strong);transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--fx-ease-out) calc(var(--fx-i,0) * .09s);pointer-events:none}
html.fx:not(.fx-reduce) .fx-spot-list.fx-in > .fx-spot::before{transform:none}
/* Vurgu çizgisi: üzerine gelince ya da odakta dolar */
.fx-spot__line{position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--ea-accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .55s var(--fx-ease-out);pointer-events:none}
html.fx:not(.fx-reduce) .fx-spot:focus-within{transform:translateY(-4px)}
.fx-spot:focus-within > .fx-spot__line{transform:none}
/* Fare: yükselme + imleci izleyen yumuşak ışık (açık zeminli bölümlerde; maddenin iki yanına biraz taşar, metnin arkasında kalır).
   Işık kendi kutusunun içinde söner: küçük bir daire, ayrıca kenarlara doğru maske; kutunun kenarı ya da köşesi hiç görünmez. */
html.fx-fine:not(.fx-reduce) .fx-spot:hover{transform:translateY(-4px)}
html.fx-fine:not(.fx-reduce) .fx-spot:hover > .fx-spot__line{transform:none}
html.fx-fine:not(.fx-reduce) .ea-is-light .fx-spot::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(var(--wp--preset--spacing--40) * -1);right:calc(var(--wp--preset--spacing--40) * -1);background:radial-gradient(12rem circle at calc(var(--fx-x,50%) + var(--wp--preset--spacing--40)) var(--fx-y,40%),rgba(248,244,237,.75),rgba(248,244,237,0) 62%);-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--wp--preset--spacing--40),#000 calc(100% - var(--wp--preset--spacing--40)),transparent),linear-gradient(to bottom,#000 55%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 var(--wp--preset--spacing--40),#000 calc(100% - var(--wp--preset--spacing--40)),transparent),linear-gradient(to bottom,#000 55%,transparent);mask-composite:intersect;opacity:0;transition:opacity .45s var(--fx-ease-out);pointer-events:none}
html.fx-fine:not(.fx-reduce) .ea-is-light .fx-spot:hover::after{opacity:1}
/* Yazdırırken üst çizgi her zaman görünür, ışık ve vurgu yok */
@media print{
  html.fx .fx-spot{border-top-color:var(--ea-line-strong)!important;transform:none!important}
  html.fx .fx-spot::before,html.fx .fx-spot::after,.fx-spot__line{display:none!important}
}

/* ===== fx/t-career.css ===== */
/* Tecrübelerim — "Yıllara göre iş ve eğitim" çizelgesi (t-career.js ile).
   1) Temel tablo: JS yokken de düzgün okunan sade tablo.
   2) .fx-on: JS tabloyu çizelgeye çevirdi (çubuk, eksen). 48em altında satırlar alt alta, dönem çubuğun altında yazılı.
   3) 48em ve üstünde, fareyle: dönem yalnızca üzerine gelince / klavye odağında küçük bir kutuda.
   Başlangıçta kısa çubuk (scaleX 0) yalnızca html.fx:not(.fx-reduce) altında; hareket yalnızca transform ve opacity. */

/* ---------- 1) Temel tablo ---------- */
.fx-career{position:relative;margin:0}
.fx-career__table{position:relative;z-index:1;width:100%;border-collapse:collapse;text-align:left}
.fx-career__table th,.fx-career__table td{padding:.8rem 1rem .8rem 0;border-bottom:1px solid var(--ea-line);vertical-align:middle;font-weight:400;text-align:left}
.fx-career__table thead th{font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ea-muted);border-bottom-color:var(--ea-line-strong)}
.fx-career__group th{padding-top:1.75rem;font-size:var(--wp--preset--font-size--x-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ea-accent)}
.fx-career__table th[scope="row"]{font-family:var(--wp--preset--font-family--display);font-size:var(--wp--preset--font-size--medium);font-weight:500;line-height:1.3;letter-spacing:-.01em}
.fx-career__name{text-decoration:none;transition:color .2s}
.fx-career__name:hover{color:var(--ea-link);text-decoration:underline;text-decoration-color:currentColor}
.fx-career__where{display:block;margin-top:.15rem;font-family:var(--wp--preset--font-family--body);font-size:var(--wp--preset--font-size--small);font-weight:400;letter-spacing:0;color:var(--ea-muted)}
.fx-career__period{font-family:var(--wp--preset--font-family--display);font-weight:500;font-variant-numeric:tabular-nums}
.fx-career__note{display:block;font-size:var(--wp--preset--font-size--small);color:var(--ea-muted)}

/* ---------- 2) Çizelge ---------- */
.fx-career.fx-on{padding-bottom:2.5rem}
.fx-career.fx-on thead th{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fx-career.fx-on .fx-career__group:first-child th{padding-top:.5rem}
.fx-career.fx-on tbody + tbody .fx-career__group th{padding-top:2rem}

/* İz (tüm dönem) ve çubuk (görev / eğitim süresi) */
.fx-career__track{position:relative;display:block;height:10px;border-radius:999px;background:var(--wp--custom--bone-alpha--06)}
.fx-career__bar{position:absolute;top:0;bottom:0;left:calc(var(--fx-a) * 100%);width:calc((var(--fx-b) - var(--fx-a)) * 100%);min-width:4px;border-radius:inherit;background:var(--wp--preset--color--terracotta);transform-origin:0 50%;transition-property:transform,opacity;transition-duration:1.1s,.3s;transition-timing-function:var(--fx-ease-out),ease;transition-delay:calc(var(--fx-i,0) * 90ms + .15s),0s}
.fx-career__edu .fx-career__bar{background:rgba(238,232,222,.62)}
/* Bitişi yaklaşık: sona doğru silikleşir */
.fx-career__bar--approx{border-radius:999px 0 0 999px;background:linear-gradient(90deg,var(--wp--preset--color--terracotta) 0,var(--wp--preset--color--terracotta) 68%,rgba(208,103,58,0) 100%)}
/* Aynı görev içinde geçiş (RE/MAX → kendi ofis): kesin yıl yok, yumuşak geçiş */
.fx-career__bar--shift{background:linear-gradient(90deg,rgba(208,103,58,.8) 0,rgba(208,103,58,.8) calc(var(--fx-s) * 100%),var(--wp--preset--color--terracotta) calc(var(--fx-s) * 100% + 3.5rem))}

/* Dönem metni: varsayılan olarak çubuğun altında */
.fx-career.fx-on .fx-career__tip{display:block;margin-top:.5rem;font-size:var(--wp--preset--font-size--small);line-height:1.45;color:var(--ea-muted)}
.fx-career.fx-on .fx-career__period{color:var(--wp--preset--color--bone)}
.fx-career.fx-on .fx-career__note{font-size:inherit}

/* Yıl ekseni (konumu JS verir) */
.fx-career__axis{position:absolute;bottom:0;z-index:0;pointer-events:none}
.fx-career__tick{position:absolute;top:0;bottom:0;width:0}
.fx-career__tick::before{content:"";position:absolute;top:0;bottom:2.5rem;left:0;width:1px;background:var(--ea-line)}
.fx-career__tick.is-now::before{background:var(--wp--custom--accent-alpha--32)}
.fx-career__year{position:absolute;bottom:.6rem;left:0;font-size:var(--wp--preset--font-size--x-small);font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;color:var(--ea-muted);transform:translateX(-50%)}
.fx-career__tick.is-first .fx-career__year{transform:none}
.fx-career__tick.is-now .fx-career__year{color:var(--ea-accent);transform:translateX(-100%)}

/* Bir satır üzerindeyken / odaktayken diğer çubuklar geri çekilir */
.fx-career.fx-on .fx-career__table:has(tr[data-fx-from]:focus-within) tr[data-fx-from]:not(:focus-within) .fx-career__bar{opacity:.35}
html.fx-fine .fx-career.fx-on .fx-career__table:has(tr[data-fx-from]:hover) tr[data-fx-from]:not(:hover) .fx-career__bar{opacity:.35}
html.fx-fine .fx-career.fx-on tr[data-fx-from]:hover .fx-career__name{color:var(--ea-link)}

/* Dar ekran: her satır alt alta (ad, çubuk, dönem); eksen çizgisi yok, yalnızca yıllar */
@media (max-width:47.99em){
  .fx-career.fx-on .fx-career__table,.fx-career.fx-on tbody,.fx-career.fx-on tr,.fx-career.fx-on th,.fx-career.fx-on td{display:block}
  .fx-career.fx-on tr[data-fx-from]{padding:.9rem 0;border-bottom:1px solid var(--ea-line)}
  .fx-career.fx-on tr[data-fx-from] th,.fx-career.fx-on tr[data-fx-from] td{padding:0;border:0}
  .fx-career.fx-on tr[data-fx-from] td{margin-top:.65rem}
  .fx-career.fx-on .fx-career__group th{padding-bottom:.6rem;border-bottom:1px solid var(--ea-line)}
  .fx-career__tick::before{display:none}
}
/* Geniş ekran: iki sütunlu tablo düzeni */
@media (min-width:48em){
  .fx-career.fx-on th[scope="row"]{width:34%;padding-right:1.75rem}
  .fx-career.fx-on td{position:relative;padding-right:0}
  .fx-career.fx-on .fx-career__tip{max-width:min(24rem,100%)}
  /* Dokunmatik (tablet): dönem metni çubuğun altında sürekli durur; eksen çizgileri metnin arkasında kalsın diye
     metin kutusu bölümün zemin rengiyle örtülür */
  html:not(.fx-fine) .fx-career.fx-on .fx-career__tip{position:relative;z-index:1;width:max-content;margin-left:-.4rem;padding:0 .4rem;background:var(--wp--preset--color--ink)}
  /* Fareyle: dönem yalnızca üzerine gelince / odakta, çubuğun üstünde küçük bir kutu */
  html.fx-fine .fx-career.fx-on .fx-career__tip{position:absolute;z-index:3;left:calc(var(--fx-a) * 100%);bottom:calc(50% + 14px);width:max-content;max-width:min(20rem,calc((1 - var(--fx-a)) * 100%));margin:0;padding:.5rem .75rem;border:1px solid var(--ea-line-strong);border-radius:var(--wp--custom--radius--small);background:var(--wp--preset--color--ink-3);box-shadow:var(--wp--custom--shadow--dark);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .25s ease,transform .35s var(--fx-ease-out)}
  html.fx-fine .fx-career.fx-on .fx-career__tip--end{left:auto;right:calc((1 - var(--fx-b)) * 100%);max-width:min(20rem,calc(var(--fx-b) * 100%))}
  html.fx-fine .fx-career.fx-on tr:hover .fx-career__tip,html.fx-fine .fx-career.fx-on tr:focus-within .fx-career__tip{opacity:1;transform:none}
}

/* Giriş: çubuklar soldan büyür, eksen belirir (bir kez) */
html.fx:not(.fx-reduce) .fx-career.fx-on:not(.fx-in) .fx-career__bar{transform:scaleX(0)}
html.fx:not(.fx-reduce) .fx-career.fx-on .fx-career__axis{transition:opacity .8s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-career.fx-on:not(.fx-in) .fx-career__axis{opacity:0}

/* ===== fx/t-skills.css ===== */
/* Uzmanlık listeleri (t-skills.js ile). Yüzde, çubuk, ikon yok: yalnızca sakin bir satır durumu.
   Üzerine gelme durumu yalnızca fareyle (html.fx-fine); satırlar bağlantı olmadığı için odak durumu gerekmez,
   bilgi zaten metnin kendisinde. Başlangıçta gizli satırlar yalnızca html.fx:not(.fx-reduce) altında. */
.fx-sk li{position:relative}
.fx-sk .fx-sk__t{display:inline-block;transition:transform .45s var(--fx-ease-out)}
.fx-sk li::before{content:"";position:absolute;left:0;top:50%;width:.95rem;height:1.5px;margin-top:-.75px;background:var(--ea-accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .45s var(--fx-ease-out)}
.fx-sk li::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ea-accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--fx-ease-out)}
html.fx-fine .fx-sk li:hover .fx-sk__t{transform:translateX(1.4rem)}
html.fx-fine .fx-sk li:hover::before,html.fx-fine .fx-sk li:hover::after{transform:scaleX(1)}

/* Giriş: satırlar sırayla, bir kez */
html.fx:not(.fx-reduce) .fx-sk > li{transition:opacity .7s var(--fx-ease-out) calc(var(--fx-i,0) * 70ms),transform .7s var(--fx-ease-out) calc(var(--fx-i,0) * 70ms)}
html.fx:not(.fx-reduce) .fx-sk:not(.fx-in) > li{opacity:0;transform:translateY(.6rem)}

/* ===== fx/t-timeline.css ===== */
/* Zaman çizelgesi (t-timeline.js ile): kaydırdıkça dolan çizgi, ulaşılan maddenin noktası dolar, yılı ve başlığı netleşir.
   Soluk / boş başlangıç durumları yalnızca html.fx:not(.fx-reduce) ve JS'in eklediği .fx-tl altında.
   :target halkası (çizelgedeki bağlantıyla gelinen madde) herkes için geçerli, hareketsiz de çalışır. */
html.fx:not(.fx-reduce) .fx-tl .fx-tl__fill{position:absolute;left:5.5px;top:12.5px;z-index:0;width:2px;border-radius:1px;background:var(--wp--preset--color--terracotta);transform:scaleY(0);transform-origin:50% 0;transition:transform .2s linear;pointer-events:none}
html.fx:not(.fx-reduce) .fx-tl .ea-timeline__dot::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--wp--preset--color--terracotta);transform:scale(0);transition:transform .45s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-tl .fx-tl-on .ea-timeline__dot::after{transform:scale(1)}
/* Henüz ulaşılmamış maddede yalnızca yıl ve başlık hafifçe geri çekilir (.8); yer ve açıklama tam okunur kalır */
html.fx:not(.fx-reduce) .fx-tl .ea-timeline__year,html.fx:not(.fx-reduce) .fx-tl .ea-timeline__title{opacity:.8;transition:opacity .5s var(--fx-ease-out)}
html.fx:not(.fx-reduce) .fx-tl .fx-tl-on > .ea-timeline__year,html.fx:not(.fx-reduce) .fx-tl .fx-tl-on > .ea-timeline__title{opacity:1}

/* Çizelgeden bağlantıyla gelinen madde: noktanın çevresinde ince bir halka */
.ea-timeline__item .ea-timeline__dot::before{content:"";position:absolute;inset:-7px;border:1px solid var(--wp--preset--color--terracotta);border-radius:50%;opacity:0;transform:scale(.5);transition:opacity .4s ease,transform .6s var(--fx-ease-out);pointer-events:none}
.ea-timeline__item:target .ea-timeline__dot::before{opacity:1;transform:none}
.ea-timeline__item:target .ea-timeline__title{text-decoration:underline;text-decoration-color:var(--wp--preset--color--terracotta);text-decoration-thickness:1px;text-underline-offset:.2em}
