/* Luu yüzü — stil.css'ten çıkarıldı (meserp, 2026-09-13). Kaynak tek: meserp/stil.css; burada kopya. */
    .jr-core-wrap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
      width:var(--jr-cekirdek);aspect-ratio:1;display:grid;place-items:center;}
    .jr-r{position:absolute;inset:0;border-radius:50%;}
    /* Çentikli dış halka (resimdeki tırtıklı kadran) */
    .jr-ticks{background:repeating-conic-gradient(from 0deg,rgba(94,214,255,.75) 0 .8deg,transparent .8deg 4.5deg);
      -webkit-mask:radial-gradient(circle,transparent 0 45%,#000 45% 50%,transparent 50%);
              mask:radial-gradient(circle,transparent 0 45%,#000 45% 50%,transparent 50%);
      animation:jrSpin 46s linear infinite;}
    /* Kesik yay parçaları */
    .jr-arc1{inset:9%;border:2px solid transparent;border-top-color:#5ed6ff;border-right-color:#5ed6ff;
      box-shadow:0 0 16px rgba(94,214,255,.45);animation:jrSpin 11s linear infinite;}
    .jr-arc2{inset:17%;border:1.5px solid transparent;border-bottom-color:#7dffd4;border-left-color:rgba(125,255,212,.5);
      animation:jrSpin 7s linear infinite reverse;}
    .jr-arc3{inset:25%;border:1px dashed rgba(94,214,255,.45);animation:jrSpin 24s linear infinite;}
    /* Parlayan çekirdek küre — DÜŞÜNEN ÇEKİRDEK: çift atımlı nabız (kalp gibi
       "tık-tık … bekle") + içinde dönen plazma akıntıları. Küre statik bir top
       değil, işlem yapan canlı bir organ gibi görünsün. */
    /* HALE — küreyi saran yumuşak ışık bulutu. TÜM düzenlerde geçerli: çekirdek
       işaretlemesinin parçası olduğu için yörünge/nöral/HUD hepsinde çıkar.
       Nefes alır (ölçek+opaklık) ve dinleme modunda nane yeşiline döner. */
    .jr-hale{position:absolute;left:50%;top:50%;width:235%;aspect-ratio:1;border-radius:50%;
      transform:translate(-50%,-50%);pointer-events:none;z-index:0;filter:blur(7px);
      background:radial-gradient(circle,rgba(94,214,255,.30) 0%,rgba(94,214,255,.13) 30%,
                 rgba(94,214,255,.045) 48%,transparent 66%);
      animation:jrHale 4.6s ease-in-out infinite;}
    @keyframes jrHale{
      0%,100%{opacity:.72;transform:translate(-50%,-50%) scale(1);}
      50%{opacity:1;transform:translate(-50%,-50%) scale(1.075);}}
    .jr-core-wrap:hover .jr-hale{opacity:1;filter:blur(9px);}
    .jr-core-wrap.on .jr-hale{
      background:radial-gradient(circle,rgba(125,255,212,.34) 0%,rgba(125,255,212,.15) 30%,
                 rgba(125,255,212,.05) 48%,transparent 66%);
      animation-duration:2.2s;}
    /* Küresellik: dış parıltı + İÇ gölge (alt-sağ karanlık, üst-sol ışık) —
       düz daireyi hacimli bir küreye çeviren şey bu iki inset gölge. */
    .jr-glow{inset:33%;background:radial-gradient(circle at 50% 42%,#eafcff 0%,#7fe6ff 22%,#1b9fd6 55%,#063b56 78%,transparent 88%);
      box-shadow:0 0 42px rgba(94,214,255,.75),0 0 90px rgba(94,214,255,.35),
                 inset -7px -9px 24px rgba(0,16,32,.85),
                 inset 5px 6px 18px rgba(200,248,255,.32);
      animation:jrKalp 3.2s ease-in-out infinite;overflow:hidden;}
    /* Parlama noktası (spekülar) — ışık kaynağını ele veren küçük ak leke */
    .jr-spek{position:absolute;left:24%;top:17%;width:28%;height:21%;border-radius:50%;pointer-events:none;
      background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.92),rgba(255,255,255,0) 70%);
      filter:blur(1.2px);z-index:2;}
    /* Küre ızgarası + iç sinir lifleri (SVG, küreye kırpılır) */
    .jr-kure{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;
      mix-blend-mode:screen;}
    .jr-kure ellipse{fill:none;stroke:rgba(200,248,255,.3);stroke-width:.7;vector-effect:non-scaling-stroke;}
    /* Boylamlar yatayda ezilip açılır → küre dönüyormuş yanılsaması (gerçek 3B yok,
       maliyeti sıfır). Üç boylam farklı fazda: sürekli dönen bir tel küre gibi. */
    .jr-boylamlar ellipse{transform-box:view-box;transform-origin:50% 50%;
      animation:jrBoylam 7.2s ease-in-out infinite;}
    .jr-boylamlar .m2{animation-delay:-2.4s;}
    .jr-boylamlar .m3{animation-delay:-4.8s;}
    @keyframes jrBoylam{0%,100%{transform:scaleX(1);}50%{transform:scaleX(.05);}}
    /* Sinir lifleri: kürenin İÇİNDE yürüyen ışık darbeleri */
    .jr-lifler path{fill:none;stroke:#eafcff;stroke-width:1;opacity:.8;stroke-linecap:round;
      vector-effect:non-scaling-stroke;stroke-dasharray:5 27;
      filter:drop-shadow(0 0 2px #7fe6ff);animation:jrLif 3.4s linear infinite;}
    .jr-lifler path:nth-child(2){stroke:#a8ffe3;animation-duration:4.7s;animation-delay:-1.3s;}
    .jr-lifler path:nth-child(3){animation-duration:2.9s;animation-delay:-2.2s;}
    .jr-lifler path:nth-child(4){stroke:#a8ffe3;animation-duration:5.6s;animation-delay:-0.7s;}
    @keyframes jrLif{to{stroke-dashoffset:-32;}}
    /* İç plazma girdapları: iki zıt yönlü, farklı hızda enerji akıntısı */
    .jr-glow::before{content:'';position:absolute;inset:-4%;border-radius:50%;
      background:conic-gradient(from 0deg,transparent 0 38deg,rgba(234,252,255,.34) 62deg,transparent 98deg,
                 transparent 178deg,rgba(125,255,212,.22) 214deg,transparent 258deg);
      mix-blend-mode:screen;animation:jrSpin 6.5s linear infinite;}
    .jr-glow::after{content:'';position:absolute;inset:8%;border-radius:50%;
      background:conic-gradient(from 140deg,transparent 0 26deg,rgba(94,214,255,.4) 52deg,transparent 92deg);
      mix-blend-mode:screen;animation:jrSpin 4.1s linear infinite reverse;}
    @keyframes jrSpin{to{transform:rotate(360deg);}}
    @keyframes jrPulse{0%,100%{opacity:.88;transform:scale(1);}50%{opacity:1;transform:scale(1.035);}}
    /* Çift atım: %6 ve %18'de iki vuruş, sonra dinlenme — EKG ritmi */
    @keyframes jrKalp{
      0%,100%{opacity:.86;transform:scale(1);}
      6%{opacity:1;transform:scale(1.055);}
      12%{opacity:.9;transform:scale(1.01);}
      18%{opacity:1;transform:scale(1.04);}
      32%{opacity:.87;transform:scale(1);}}
    /* Nöron sinyalleri: çekirdek çevresinde farklı yarıçap/hız/yönde dolaşan
       ışıklı parçacıklar. --rk = yarıçap katsayısı, --boy dar ekranda küçülür. */
    .jr-e{--boy:var(--jr-cekirdek,240px);position:absolute;left:50%;top:50%;width:4px;height:4px;
      margin:-2px 0 0 -2px;border-radius:50%;background:#bdefff;pointer-events:none;z-index:2;
      box-shadow:0 0 7px #5ed6ff,0 0 14px rgba(94,214,255,.55);opacity:.9;
      animation:jrEDon var(--t,6s) linear infinite;animation-delay:var(--d,0s);animation-direction:var(--yon,normal);}
    @keyframes jrEDon{
      from{transform:rotate(0deg) translateX(calc(var(--boy)/2*var(--rk,.8)));}
      to{transform:rotate(360deg) translateX(calc(var(--boy)/2*var(--rk,.8)));}}
    /* Sinaps çakması: uzun aralıklarla bir an parlayan ince yay — nöron ateşlemesi */
    .jr-flash{position:absolute;inset:14%;border-radius:50%;border:1.5px solid transparent;
      pointer-events:none;transform:rotate(var(--a,0deg));
      animation:jrFlash var(--t,7s) ease-out infinite;animation-delay:var(--d,0s);}
    @keyframes jrFlash{
      0%,86%{border-top-color:transparent;filter:none;}
      89%{border-top-color:rgba(234,252,255,.95);filter:drop-shadow(0 0 7px #5ed6ff);}
      100%{border-top-color:transparent;filter:none;}}
    /* Çekirdek = sesli mod anahtarı: tıklanabilir, hover'da güçlenir,
       dinlerken nane yeşiline döner (mikrofon düğmesiyle aynı renk dili). */
    .jr-core-wrap{cursor:pointer;}
    .jr-core-wrap:hover .jr-glow{box-shadow:0 0 58px rgba(94,214,255,.95),0 0 120px rgba(94,214,255,.5),
      inset -7px -9px 24px rgba(0,16,32,.8), inset 5px 6px 18px rgba(200,248,255,.4);}
    .jr-core-wrap.on .jr-glow{
      background:radial-gradient(circle at 50% 42%,#eafff7 0%,#8cf5d8 22%,#1bbd96 55%,#064d3e 78%,transparent 88%);
      box-shadow:0 0 48px rgba(125,255,212,.8),0 0 100px rgba(125,255,212,.4),
                 inset -7px -9px 24px rgba(0,28,20,.85), inset 5px 6px 18px rgba(215,255,240,.35);
      animation-duration:1.6s;}                    /* dinlerken nabız hızlanır */
    .jr-core-wrap.on .jr-lifler path{stroke:#d7fff0;}
    /* ── LUU KİMLİĞİ — çekirdeğin üstündeki ad (+ isteğe bağlı gözler) ───────
       Sabit değil, AYARLI: bütün ölçüler CSS değişkeni; değerleri
       platform_kimlik/luu dokümanından _luuUygula() basar, tasarımı da
       /logodesign.html aracı yapar. Kayıt yoksa LUU_VARSAYILAN geçerlidir —
       çekirdek hiçbir koşulda adsız kalmaz.
       Ark reaktörünün HİÇBİR katmanı kapatılmaz (dönen yaylar, plazma, nabız,
       tel küre hepsi yerinde); ad z-index:3 ile onların üstünde durur.
       Ad .jr-glow'un değil .jr-core-wrap'ın çocuğudur: glow'da overflow:hidden
       var, "kürenin altı"/"reaktörün altı" yerleşimleri orada kırpılırdı. */
    .jr-luu{position:absolute;left:50%;top:50%;z-index:3;pointer-events:none;
      line-height:1;white-space:nowrap;color:var(--luu-renk,#04283c);
      font-size:calc(var(--jr-cekirdek,240px) * var(--luu-boyut,.115));
      font-weight:var(--luu-agirlik,700);letter-spacing:var(--luu-aralik,.02em);
      font-family:var(--luu-font,inherit);
      transform:translate(-50%,calc(-50% + var(--luu-y,0%)));}
    .jr-core-wrap.on .jr-luu{color:var(--luu-renk-on,#043329);}
    /* Çizim modu: font yerine logonun birebir SVG kopyası. Genişlik aynı
       --luu-boyut'tan türer ki font↔çizim geçişinde ad zıplamasın (1.65 =
       çizimin en/boy oranından gelen düzeltme). */
    .jr-luu.cizim{width:calc(var(--jr-cekirdek,240px) * var(--luu-boyut,.115) * 1.65);}
    .jr-luu.cizim svg{width:100%;height:auto;display:block;}
    .jr-luu.cizim path{fill:none;stroke:currentColor;stroke-width:calc(var(--luu-cizgi,7) * var(--luu-cizgi-k,1));
      stroke-linecap:round;stroke-linejoin:round;}
    /* Yerleşim — yüzde marj kapsayıcının GENİŞLİĞİNE göre çözülür, yani
       çekirdek çapına: reaktör küçülünce ad da orantılı yaklaşır. */
    .jr-luu[data-yer="bant"],.jr-luu[data-yer="imza"]{
      transform:translate(-50%,var(--luu-y,0%));}
    .jr-luu[data-yer="bant"]{margin-top:18%;}
    .jr-luu[data-yer="imza"]{margin-top:52%;}
    /* Parıltı: koyu ad ak kürede ince ışık kenarı, açık ad koyu gölge ister */
    .jr-luu[data-parilti="koyu"]{text-shadow:0 1px 0 rgba(240,253,255,.5);}
    .jr-luu[data-parilti="isik"]{text-shadow:0 0 4px rgba(6,59,86,.95),0 0 9px rgba(94,214,255,.75);}
    .jr-core-wrap.on .jr-luu[data-parilti="isik"]{text-shadow:0 0 4px rgba(4,45,35,.95),0 0 9px rgba(125,255,212,.75);}
    .jr-luu.cizim[data-parilti]{text-shadow:none;}
    .jr-luu.cizim[data-parilti="koyu"] path{filter:drop-shadow(0 1px 0 rgba(240,253,255,.45));}
    .jr-luu.cizim[data-parilti="isik"] path{filter:drop-shadow(0 0 3px rgba(6,59,86,.95));}
    /* Gözler — isteğe bağlı, küre uzayında (viewBox 0-100) çizilir */
    .jr-goz{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;}
    .jr-goz path{fill:none;stroke:var(--luu-renk,#04283c);stroke-linecap:round;
      stroke-width:calc(var(--luu-goz-cizgi,8) * var(--luu-cizgi-k,1));}
    .jr-core-wrap.on .jr-goz path{stroke:var(--luu-renk-on,#043329);}
    /* ══ LUU ↔ GÖZ DÖNGÜSÜ ══════════════════════════════════════════════
       Ad bir süre durur, aşağı kayıp kaybolur, yerine gözler iner ve kırpar,
       sonra ad geri döner. Ark reaktörünün HİÇBİR katmanı kapatılmaz.
       Sahne .jr-glow'un İÇİNDE: glow'da overflow:hidden var, yani ad da
       gözler de küre kenarında KIRPILIR — yazı kenarın altına inip yok olur.
       Tambur hissi buradan gelir, opaklıkla sönmekten çok daha inandırıcı.
       Ad öğesi (#jrLuu) döngü açıkken .lb-ad'ın içine TAŞINIR (_luuUygula);
       kapalıyken eski yerinde, .jr-core-wrap'ın çocuğu olarak kalır. */
    .lb-sahne{position:absolute;inset:0;z-index:3;pointer-events:none;}
    .lb-ad,.lb-goz{position:absolute;inset:0;width:100%;height:100%;
      transition:transform var(--lb-gecis,420ms) var(--lb-eg,cubic-bezier(.4,0,.2,1)),
                 opacity var(--lb-gecis,420ms) linear;}
    .lb-goz rect,.lb-goz path{fill:var(--luu-renk,#04283c);stroke:none;
      filter:drop-shadow(0 1px 0 rgba(240,253,255,.45));}
    .lb-goz .bebek{fill:#eafcff;}
    /* Yay biçimi logonun çizgi dilinde: dolgu değil kontur */
    .lb-goz path.ciz{fill:none;stroke:var(--luu-renk,#04283c);
      stroke-width:calc(var(--luu-cizgi,7) * var(--luu-cizgi-k,1));stroke-linecap:round;vector-effect:non-scaling-stroke;}
    .jr-core-wrap.on .lb-goz rect,.jr-core-wrap.on .lb-goz path{fill:var(--luu-renk-on,#043329);}
    .jr-core-wrap.on .lb-goz path.ciz{fill:none;stroke:var(--luu-renk-on,#043329);}
    /* Sahne dışı konumlar — --lb-mesafe kürenin YÜZDESİ: küre küçülünce yol da kısalır */
    .lb-ad { transform:translateY(0); opacity:1; }
    .lb-goz{ transform:translateY(calc(-1 * var(--lb-mesafe,55%))); opacity:0; }
    .lb-sahne[data-faz="goz"] .lb-ad { transform:translateY(var(--lb-mesafe,55%)); opacity:0; }
    .lb-sahne[data-faz="goz"] .lb-goz{ transform:translateY(0); opacity:1; }
    /* Dönüş: gözler aşağı çıkar, ad üstten iner — tambur hep aynı yönde döner.
       Ad transition'sız tepeye alınır (görünmez), sonra 'ad' fazında süzülür. */
    .lb-sahne[data-faz="donus"] .lb-ad { transform:translateY(calc(-1 * var(--lb-mesafe,55%)));
      opacity:0;transition:none; }
    .lb-sahne[data-faz="donus"] .lb-goz{ transform:translateY(var(--lb-mesafe,55%)); opacity:0; }
    /* Beliriş: gözler kaymadan yerinde büyüyerek gelir (en sakin) */
    .lb-sahne[data-hareket="belirir"] .lb-goz{transform:scale(.78);opacity:0;
      transform-box:fill-box;transform-origin:50% 50%;}
    .lb-sahne[data-hareket="belirir"][data-faz="goz"] .lb-goz{transform:scale(1);opacity:1;}
    .lb-sahne[data-hareket="belirir"][data-faz="donus"] .lb-ad{transform:translateY(0);
      opacity:0;transition:none;}
    .lb-sahne[data-hareket="belirir"][data-faz="donus"] .lb-goz{transform:scale(.78);opacity:0;}
    /* Yerçekimi: ad hızlanarak düşer, gözler yaylanarak oturur (en oyuncu) */
    .lb-sahne[data-hareket="yercekimi"] .lb-ad{--lb-eg:cubic-bezier(.55,0,.9,.25);}
    .lb-sahne[data-hareket="yercekimi"] .lb-goz{--lb-eg:cubic-bezier(.34,1.5,.64,1);}
    /* Blink: göz grubu KENDİ merkezinde dikeyde ezilir (transform-box:fill-box).
       non-scaling-stroke sayesinde çizgi kalınlığı ezilmede bozulmaz. */
    .lb-goz g{transform-box:fill-box;transform-origin:50% 50%;
      transition:transform var(--lb-blink,130ms) cubic-bezier(.4,0,.6,1);}
    .lb-goz.kirp g{transform:scaleY(.06);}
    /* Döngü açıkken ad, sahnenin içindeki kaba göre ortalanır — .lb-ad kutusu
       küreyle aynı olduğu için görünen yer DEĞİŞMEZ. */
    .lb-ad .jr-luu{left:50%;top:50%;}
    /* Arka katman sönümü: adın arkasına düşen tel küre ve parlama geri
       çekilebilir. Varsayılan 1 = hiç dokunma; katman KAPATILMAZ, döner. */
    .jr-kure,.jr-spek{opacity:var(--luu-sonum,1);}
    /* ── LUU YÜZÜ: kaş + ağız (2026-08-16, araclar/luu-ifade.html testinden). İfade CSS d geçişiyle morf eder. */
    .lb-goz path.kas,.lb-goz path.agiz{fill:none;stroke:var(--luu-renk,#04283c);stroke-linecap:round;stroke-linejoin:round;
      vector-effect:non-scaling-stroke;stroke-width:calc(var(--luu-yuz-cizgi,3) * var(--luu-cizgi-k,1));filter:drop-shadow(0 1px 0 rgba(240,253,255,.45));
      transition:d .42s cubic-bezier(.4,0,.2,1),stroke .3s;}
    .jr-core-wrap.on .lb-goz path.kas,.jr-core-wrap.on .lb-goz path.agiz{stroke:var(--luu-renk-on,#043329);}
    .lb-goz.kirp-sag g:last-of-type{transform:scaleY(.06);}
    body.jr-hafif .lb-goz path.kas,body.jr-hafif .lb-goz path.agiz{filter:none;}
    body.jr-hafif #jrLogAktif{display:none;}   /* hafif: daktilo satırı kapalı; brifing satırları (statik, seyrek) görünür */
    /* ── LUU DUYGU ETİKETİ: kürenin hemen altında "Luu Mutlu 😊" — sempatik nane; ifadeyle birlikte değişir */
    .jr-duygu{position:absolute;left:50%;top:calc(50% + var(--jr-cekirdek) * .5 - 4px);transform:translateX(-50%);z-index:4;pointer-events:none;white-space:nowrap;
      font-size:11.5px;font-weight:700;letter-spacing:.4px;color:var(--luu-duygu-renk,#7dffd4);text-shadow:0 0 10px rgba(125,255,212,.45);
      background:none;border:none;padding:0;opacity:0;transition:color .4s,opacity .7s ease;}   /* çerçevesiz, zeminsiz; fade in/out — sürekli durmaz */
    .jr-duygu.goster{opacity:1;}
    .jr-duygu.degisti{animation:luuDuyguPop .5s ease-out;}
    @keyframes luuDuyguPop{0%{transform:translateX(-50%) scale(.85);opacity:.4;}100%{transform:translateX(-50%) scale(1);opacity:1;}}
    body.jr-hafif .jr-duygu{text-shadow:none;}
    /* ── LUU: BAKIŞ (2026-08-16) ── söz söyleyince gözler iletişim kutusuna kayar, satır bir an parlar.
       Uyku/dinlenme modu 2026-09-13'te tamamen kaldırıldı (.uyku sınıfı yok). */
    .lb-goz g{transition:transform var(--lb-blink,130ms) cubic-bezier(.4,0,.6,1);}
    /* Bakış = KÜRE DÖNÜŞÜ: yüz (göz+kaş+ağız) tek katman olarak perspektifle sağ alta döner — 3B küre hissi */
    .lb-goz{transform-origin:50% 50%;backface-visibility:hidden;}
    .lb-sahne .lb-goz.bakis{transform:perspective(700px) translate(var(--luu-tx,5px),var(--luu-ty,4px)) rotateY(var(--luu-ry,14deg)) rotateX(var(--luu-rx,-9deg)) scale(var(--luu-sx,.92),var(--luu-sy,.96)) !important;   /* küre yüzeyi: az açı + geniş perspektif + hafif daralma — biçim bozulmaz */
      transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .3s !important;}
    .lb-sahne .lb-goz{transition:transform .6s cubic-bezier(.4,0,.2,1),opacity var(--lb-gecis,420ms) linear;}
    .jr-log-satir.isaret{text-shadow:0 0 12px rgba(125,255,212,.9),0 0 22px rgba(125,255,212,.5);color:#eafff7;transition:text-shadow .35s,color .35s;}
