/* ============================================================
   AZTEK — ÖZEL GÜN EFEKTLERİ (login sonrası panel)
   Tamamen kozmetik katman. AppLayout içindeki .erp-main üzerine
   oturur; pointer-events:none → hiçbir etkileşimi engellemez.
   Pencere dışında bileşen hiçbir şey render etmez → panel normal.
   ============================================================ */

/* Efekt katmanı, panel sütununa (.erp-main) göre konumlanır → sol menü
   üstüne taşmaz, "panelde" kalır. relative eklemek flex düzenini bozmaz. */
.erp-main { position: relative; }

.og {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;   /* tıklamalar panele geçer */
    overflow: hidden;       /* partiküller sütun dışına taşmaz, yatay kaydırma yok */
}

/* Anma/saygı günleri: kutlama renklerini yatıştır (soluk + az doygun) → ağırbaşlı,
   saygılı his. Efektin kendi tanımına dokunmadan tüm katmanı sakinleştirir. */
.og--solemn {
    opacity: 0.6;
    filter: saturate(0.72);
}

/* ---- Tebrik / anma çipi ---- */
.og-chip {
    position: absolute;
    right: 18px;
    bottom: 54px;                 /* footbar (42px) üstünde */
    z-index: 5;
    pointer-events: auto;         /* kapatma (×) tıklanabilsin */
    display: inline-flex; align-items: center; gap: 9px;
    max-width: min(360px, calc(100% - 36px));
    padding: 9px 12px 9px 14px;
    background: var(--erp-surface);
    border: 1px solid var(--erp-border-strong);
    border-radius: 999px;
    box-shadow: 0 10px 28px -12px rgba(0, 0, 0, 0.4);
    font-family: var(--font-body);
    font-size: 12.5px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: 0.01em;
    animation: og-chip-in 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes og-chip-in {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
.og-chip-text { line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.og-chip-dot {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
    box-shadow: 0 0 8px currentColor;
}
/* Ton rengi: kutlama = altın, anma = sakin kırmızı, sade = cyan */
.og-chip--festive .og-chip-dot { color: var(--amber-bright, #ffaa3d); background: currentColor; }
.og-chip--solemn  .og-chip-dot { color: #c0392b; background: currentColor; box-shadow: none; }
.og-chip--subtle  .og-chip-dot { color: var(--cyan); background: currentColor; box-shadow: none; }
.og-chip--festive { border-color: var(--gold); }

.og-chip-x {
    appearance: none; -webkit-appearance: none;
    flex-shrink: 0;
    width: 20px; height: 20px; margin-left: 2px;
    display: grid; place-items: center;
    background: transparent; border: 0; border-radius: 50%;
    color: var(--text-dim); font-size: 18px; line-height: 1;
    cursor: pointer;
    transition: background 140ms, color 140ms;
}
.og-chip-x:hover { background: var(--erp-row-hover); color: var(--text-primary); }

/* Erişilebilirlik: hareket azaltma tercihi → partikül animasyonlarını gizle,
   yalnız statik tebrik çipi kalsın. */
@media (prefers-reduced-motion: reduce) {
    .og { display: none; }
    .og-chip { animation: none; }
}

/* Dar ekran: çip biraz daha küçük ve kenara yakın. */
@media (max-width: 560px) {
    .og-chip {
        right: 10px; bottom: 50px;
        font-size: 12px; padding: 8px 10px 8px 12px;
        max-width: calc(100% - 20px);
    }
}

/* ============================================================
   EFEKT KÜTÜPHANESİ
   Her efekt .og.og-<key> altında, kendine yeter. (Tasarım workflow'unda
   üretilip düşmanca denetlendi; aşağıya eklenecek.)
   ============================================================ */
/* ===================== snow ===================== */
/* ===== og-snow : dingin kar efekti ===== */
.og-snow__flake{
  position:absolute;
  top:0;
  left:var(--og-x,50%);
  width:var(--og-size,8px);
  height:var(--og-size,8px);
  margin-left:calc(var(--og-size,8px) / -2);
  opacity:0;
  will-change:transform,opacity;
  animation:og-snow-drift-a var(--og-dur,10s) var(--og-delay,0s) linear infinite;
}
.og-snow__flake:nth-child(2n){ animation-name:og-snow-drift-b; }

/* yumuşak kar tanesi (soft dot) */
.og-snow__dot{
  border-radius:50%;
  background:radial-gradient(circle at 38% 32%,
              #F2EBDD 0%,
              rgba(242,235,221,.70) 46%,
              rgba(242,235,221,0) 72%);
  box-shadow:0 0 5px rgba(242,235,221,.30);
}
.og-snow__dot.og-snow__dot--gold{
  background:radial-gradient(circle at 38% 32%,
              #D8BE8C 0%,
              rgba(213,190,140,.60) 46%,
              rgba(197,165,114,0) 72%);
  box-shadow:0 0 5px rgba(213,190,140,.28);
}

/* narin kristal kar tanesi (inline svg) */
.og-snow__crystal{ color:#F2EBDD; }
.og-snow__crystal.og-snow__crystal--gold{ color:#D8BE8C; }
.og-snow__crystal svg{ display:block; width:100%; height:100%; }

/* düşüş + hafif yana savrulma + yavaş dönüş, A varyantı */
@keyframes og-snow-drift-a{
  0%   { transform:translate3d(0,-12vh,0) rotate(0deg);   opacity:0; }
  8%   { opacity:var(--og-op,.6); }
  25%  { transform:translate3d(var(--og-sway,14px),20vh,0) rotate(60deg); }
  50%  { transform:translate3d(calc(var(--og-sway,14px) * -1),48vh,0) rotate(120deg); }
  75%  { transform:translate3d(var(--og-sway,14px),76vh,0) rotate(180deg); }
  92%  { opacity:var(--og-op,.6); }
  100% { transform:translate3d(0,112vh,0) rotate(240deg); opacity:0; }
}
/* B varyantı — ayna savrulma, zıt dönüş (topluca senkron atmasın) */
@keyframes og-snow-drift-b{
  0%   { transform:translate3d(0,-12vh,0) rotate(0deg);   opacity:0; }
  8%   { opacity:var(--og-op,.6); }
  25%  { transform:translate3d(calc(var(--og-sway,14px) * -1),22vh,0) rotate(-50deg); }
  50%  { transform:translate3d(var(--og-sway,14px),50vh,0) rotate(-110deg); }
  75%  { transform:translate3d(calc(var(--og-sway,14px) * -1),78vh,0) rotate(-170deg); }
  92%  { opacity:var(--og-op,.6); }
  100% { transform:translate3d(0,112vh,0) rotate(-230deg); opacity:0; }
}

/* erişilebilirlik: hareket azaltma tercihinde animasyon durur,
   üst kenara yakın çok hafif statik serpinti kalır */
@media (prefers-reduced-motion: reduce){
  .og-snow *{ animation:none !important; }
  .og-snow__flake{ opacity:.32; }
  .og-snow__flake:nth-child(3n)  { top:9%;  }
  .og-snow__flake:nth-child(3n+1){ top:20%; }
  .og-snow__flake:nth-child(3n+2){ top:5%;  }
}

/* ===================== flag ===================== */
/* ===== og-flag : Türk Bayrağı (kutlama + .og--solemn ile anma) ===== */

.og-flag .og-flag-piece{
  position:absolute;
  opacity:.7;
  transform-origin:left center;
  animation:og-flag-sway 9s ease-in-out infinite;
  will-change:transform;
}
/* ikinci (küçük) bayrak: farklı hız/gecikme ki senkron atmasın */
.og-flag .og-flag-piece:nth-child(2){
  animation-duration:11s;
  animation-delay:-3s;
  opacity:.68;
}

.og-flag .og-flag-cloth{
  transform-origin:left center;
  animation:og-flag-wave 6s ease-in-out infinite;
  filter:drop-shadow(0 6px 15px rgba(0,0,0,.45));
  will-change:transform;
}
.og-flag .og-flag-piece:nth-child(2) .og-flag-cloth{
  animation-duration:7.5s;
  animation-delay:-2s;
}

.og-flag .og-flag-svg{
  display:block;
  width:100%;
  height:auto;
}

/* pole ekseninde hafif salınım (bez bayrak direğinde) */
@keyframes og-flag-sway{
  0%,100%{ transform:rotate(-1.2deg); }
  50%    { transform:rotate(1.4deg); }
}

/* bez dalgası: yalnız transform (skew/scale/perspective) */
@keyframes og-flag-wave{
  0%  { transform:perspective(420px) skewY(0deg)    skewX(0deg)    scaleX(1); }
  20% { transform:perspective(420px) skewY(1.6deg)  skewX(2.2deg)  scaleX(.99); }
  40% { transform:perspective(420px) skewY(0deg)    skewX(0deg)    scaleX(1); }
  60% { transform:perspective(420px) skewY(-1.6deg) skewX(-2.2deg) scaleX(.99); }
  80% { transform:perspective(420px) skewY(.8deg)   skewX(1deg)    scaleX(1); }
  100%{ transform:perspective(420px) skewY(0deg)    skewX(0deg)    scaleX(1); }
}

/* ANMA modu: ana katmana .og--solemn eklenince yavaşla + soluklaş */
.og-flag.og--solemn .og-flag-piece{
  opacity:.4;
  animation-duration:14s;
}
.og-flag.og--solemn .og-flag-piece:nth-child(2){
  animation-duration:13s;
}
.og-flag.og--solemn .og-flag-cloth{
  animation-duration:12s;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)) grayscale(.4);
}

@media (prefers-reduced-motion: reduce){
  .og-flag *{ animation:none !important; }
}

/* ===================== confetti ===================== */
.og-confetti-piece {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(var(--w, 6) * 1px);
  height: calc(var(--h, 12) * 1px);
  border-radius: 1px;
  opacity: var(--op, .7);
  transform: translate3d(0, -14vh, 0);
  will-change: transform, opacity;
  animation: og-confetti-fall var(--dur, 10s) linear var(--d, 0s) infinite;
}

/* Palet: altın / kırmızı / beyaz / açık altın — nth-child ile dağıtık */
.og-confetti-piece                 { background: #C5A572; }
.og-confetti-piece:nth-child(4n+2) { background: #E30A17; }
.og-confetti-piece:nth-child(4n+3) { background: #F2EBDD; }
.og-confetti-piece:nth-child(4n)   { background: #D8BE8C; }

/* Çeşitlilik: bazı parçalar ters yönde takla atsın */
.og-confetti-piece:nth-child(3n)   { animation-name: og-confetti-fall-alt; }

@keyframes og-confetti-fall {
  0%   { transform: translate3d(0, -14vh, 0) rotateZ(0deg) rotateY(0deg); opacity: 0; }
  10%  { opacity: var(--op, .7); }
  50%  { transform: translate3d(var(--drift, 12px), 48vh, 0) rotateZ(180deg) rotateY(200deg); }
  90%  { opacity: var(--op, .7); }
  100% { transform: translate3d(calc(var(--drift, 12px) * -1), 114vh, 0) rotateZ(360deg) rotateY(540deg); opacity: 0; }
}

@keyframes og-confetti-fall-alt {
  0%   { transform: translate3d(0, -14vh, 0) rotateZ(0deg) rotateX(0deg); opacity: 0; }
  12%  { opacity: var(--op, .7); }
  50%  { transform: translate3d(calc(var(--drift, 12px) * -1), 48vh, 0) rotateZ(-160deg) rotateX(180deg); }
  88%  { opacity: var(--op, .7); }
  100% { transform: translate3d(var(--drift, 12px), 114vh, 0) rotateZ(-320deg) rotateX(560deg); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .og-confetti-piece { transform: none; opacity: .28; }
  .og-confetti * { animation: none !important; }
}

/* ===================== fireworks ===================== */
/* 29 Ekim — Havai fisek: birkac zarif patlama + suzulen kivilcimlar.
   Sadece transform/opacity animasyonu; dis kaynak yok; koyu zemine gore. */

.og-fireworks .og-fireworks-burst {
  position: absolute;
  width: var(--fw-size, 120px);
  height: var(--fw-size, 120px);
  margin-left: calc(var(--fw-size, 120px) / -2);
  margin-top: calc(var(--fw-size, 120px) / -2);
  border-radius: 50%;
  /* ince isik cizgileri: dar konik dilimler */
  background: repeating-conic-gradient(
    from 0deg,
    var(--fw-c, #C5A572) 0deg var(--fw-thick, 0.8deg),
    transparent var(--fw-thick, 0.8deg) var(--fw-gap, 30deg)
  );
  /* merkezi bos + dis uclari yumusak: halka seklinde patlama */
  -webkit-mask: radial-gradient(closest-side, transparent 6%, #000 24%, #000 42%, transparent 72%);
          mask: radial-gradient(closest-side, transparent 6%, #000 24%, #000 42%, transparent 72%);
  opacity: 0;
  will-change: transform, opacity;
  animation: og-fireworks-pop var(--fw-dur, 6s) ease-out var(--fw-delay, 0s) infinite;
}

/* patlamanin cekirdegi: kucuk, yumusak parlti (tam ekran flas yok) */
.og-fireworks .og-fireworks-burst::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12%;
  height: 12%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, var(--fw-c, #C5A572) 0%, transparent 70%);
  opacity: 0.55;
}

/* patlamadan sonra dusen kucuk kivilcimlar */
.og-fireworks .og-fireworks-spark {
  position: absolute;
  width: var(--sp-size, 3px);
  height: var(--sp-size, 3px);
  margin-left: calc(var(--sp-size, 3px) / -2);
  margin-top: calc(var(--sp-size, 3px) / -2);
  border-radius: 50%;
  background: var(--sp-c, #D8BE8C);
  box-shadow: 0 0 5px 1px var(--sp-c, #D8BE8C);
  opacity: 0;
  will-change: transform, opacity;
  animation: og-fireworks-drift var(--sp-dur, 8s) ease-in-out var(--sp-delay, 0s) infinite;
}

@keyframes og-fireworks-pop {
  0%   { transform: scale(0.1) rotate(0deg); opacity: 0; }
  4%   { opacity: 0.85; }
  11%  { transform: scale(0.62) rotate(calc(var(--fw-spin, 18deg) * 0.45)); }
  33%  { transform: scale(1) rotate(var(--fw-spin, 18deg)); opacity: 0; }
  100% { transform: scale(1) rotate(var(--fw-spin, 18deg)); opacity: 0; }
}

@keyframes og-fireworks-drift {
  0%   { transform: translate3d(0, 0, 0); opacity: 0; }
  16%  { opacity: 0.6; }
  50%  { opacity: 0.22; }
  84%  { opacity: 0.44; }
  100% { transform: translate3d(var(--sp-dx, 0px), var(--sp-dy, 40px), 0); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .og-fireworks * { animation: none !important; }
  .og-fireworks .og-fireworks-burst { opacity: 0.28; transform: scale(0.9); }
  .og-fireworks .og-fireworks-spark { opacity: 0.32; }
}

/* ===================== balloon ===================== */
/* === 23 Nisan — yükselen balonlar (KEY: balloon) === */
.og-balloon-b{
  position:absolute;
  bottom:-22vh;
  left:var(--x,50%);
  transform:translateX(-50%);
  will-change:transform,opacity;
  animation:og-balloon-rise var(--dur,11s) linear infinite;
  animation-delay:var(--d,0s);
}
.og-balloon-sway{
  display:block;
  transform-origin:50% 0%;
  animation:og-balloon-sway var(--swd,5s) ease-in-out infinite;
}
.og-balloon-body{
  position:relative;
  display:block;
  width:calc(26px * var(--s,1));
  height:calc(32px * var(--s,1));
  border-radius:50% 50% 48% 48% / 55% 55% 45% 45%;
  background:
    radial-gradient(circle at 32% 26%,
      rgba(242,235,221,.6) 0%,
      var(--bc,#C5A572) 52%,
      rgba(0,0,0,.22) 100%);
  box-shadow:inset -3px -4px 7px rgba(0,0,0,.22);
}
/* düğüm */
.og-balloon-body::before{
  content:"";
  position:absolute;
  top:100%;left:50%;
  width:5px;height:5px;
  background:var(--bc,#C5A572);
  border-radius:2px;
  transform:translate(-50%,-42%) rotate(45deg);
}
/* ince ip */
.og-balloon-body::after{
  content:"";
  position:absolute;
  top:calc(100% + 3px);left:50%;
  width:1px;
  height:calc(46px * var(--s,1));
  transform:translateX(-50%);
  background:linear-gradient(to bottom,
    color-mix(in srgb, var(--bc,#C5A572) 70%, transparent) 0%,
    rgba(197,165,114,0) 100%);
}
/* renk döngüsü: kırmızı / altın / altın açık / beyaz */
.og-balloon-b:nth-child(4n+1) .og-balloon-body{--bc:#E30A17;}
.og-balloon-b:nth-child(4n+2) .og-balloon-body{--bc:#C5A572;}
.og-balloon-b:nth-child(4n+3) .og-balloon-body{--bc:#D8BE8C;}
.og-balloon-b:nth-child(4n+4) .og-balloon-body{--bc:#F2EBDD;}

@keyframes og-balloon-rise{
  0%   {transform:translateX(-50%) translateY(0);      opacity:0;}
  7%   {opacity:var(--op,.7);}
  88%  {opacity:var(--op,.7);}
  100% {transform:translateX(-50%) translateY(-138vh); opacity:0;}
}
@keyframes og-balloon-sway{
  0%,100% {transform:translateX(calc(var(--sw,10px) * -1)) rotate(-3.5deg);}
  50%     {transform:translateX(var(--sw,10px)) rotate(3.5deg);}
}

@media (prefers-reduced-motion: reduce){
  .og-balloon-b,
  .og-balloon-b *{animation:none !important;}
}

/* ===================== carnation ===================== */
/* ===== og-carnation : suzulerek dusen kirmizi karanfiller ===== */

.og-carnation__drop{
  position:absolute;
  top:0;
  line-height:0;
  /* varsayilan kirmizi karanfil paleti (inline ile ezilebilir) */
  --petal:#E30A17;
  --petal-hi:#F3606C;
  --petal-lo:#B00812;
  opacity:0;
  will-change:transform,opacity;
  animation-name:og-carnation-fall;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}

/* yanal salinim (ruzgarda suzulme) */
.og-carnation__sway{
  display:block;
  animation:og-carnation-sway 6s ease-in-out infinite alternate;
}

/* nazik donus */
.og-carnation__spin{
  display:block;
  animation:og-carnation-spin 9s ease-in-out infinite alternate;
}

/* tek yaprak: tam takla */
.og-carnation__spin--petal{
  animation-name:og-carnation-tumble;
  animation-timing-function:linear;
  animation-direction:normal;
}

.og-carnation__drop svg{
  display:block;
  width:var(--sz,32px);
  height:auto;
  overflow:visible;
}

/* SVG renkleri ozel degiskenlerden (koyu zeminde okunur kirmizilar) */
.og-carnation__bloom{ fill:var(--petal,#E30A17); }
.og-carnation__bloomHi{ fill:var(--petal-hi,#F3606C); opacity:.85; }
.og-carnation__fold{
  fill:none;
  stroke:var(--petal-lo,#B00812);
  stroke-width:1;
  stroke-linecap:round;
  opacity:.5;
}
/* foliage: palete uygun sonuk bronz-altin (yesil #3E7A4E palet disiydi) */
.og-carnation__calyx,
.og-carnation__stem,
.og-carnation__leaf{ fill:#8A6E3A; }

/* toplu senkronu kirmak icin nth-child kaydirmalari */
.og-carnation__drop:nth-child(3n)   .og-carnation__sway{ animation-duration:7.5s; }
.og-carnation__drop:nth-child(3n+2) .og-carnation__sway{ animation-duration:5.5s; }
.og-carnation__drop:nth-child(4n)   .og-carnation__spin{ animation-duration:11s; }
.og-carnation__drop:nth-child(2n)   .og-carnation__spin{ animation-direction:alternate-reverse; }

@keyframes og-carnation-fall{
  0%{   transform:translateY(-16vh); opacity:0; }
  10%{  opacity:var(--op,0.7); }
  88%{  opacity:var(--op,0.7); }
  100%{ transform:translateY(116vh); opacity:0; }
}
@keyframes og-carnation-sway{
  from{ transform:translateX(-13px); }
  to{   transform:translateX(13px); }
}
@keyframes og-carnation-spin{
  from{ transform:rotate(-22deg); }
  to{   transform:rotate(24deg); }
}
@keyframes og-carnation-tumble{
  from{ transform:rotate(0deg); }
  to{   transform:rotate(360deg); }
}

/* erisilebilirlik: hareketi kapat, birkac karanfil sabit gorunsun */
@media (prefers-reduced-motion: reduce){
  .og-carnation *{ animation:none !important; }
  .og-carnation__drop{ opacity:var(--op,0.55); }
}

/* ===================== candle ===================== */
/* ===== 15 Temmuz — Anma Mumu / Meşale efekti (KEY: candle) ===== */

/* Alttan yükselen sıcak altın ışıltı */
.og-candle-glow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 44%;
  background:
    radial-gradient(130% 100% at 50% 100%,
      rgba(216, 190, 140, 0.20) 0%,
      rgba(197, 165, 114, 0.12) 28%,
      rgba(197, 165, 114, 0.045) 55%,
      rgba(197, 165, 114, 0) 78%);
  transform-origin: 50% 100%;
  animation: og-candle-breathe 9s ease-in-out infinite;
  will-change: transform, opacity;
}

/* Titreşen alevler */
.og-candle-flame {
  position: absolute;
  bottom: 6%;
  width: 18px;
  height: 24px;
  border-radius: 0 50% 50% 50%;
  transform: rotate(45deg);
  transform-origin: 50% 62%;
  background:
    radial-gradient(62% 62% at 50% 62%,
      rgba(242, 235, 221, 0.85) 0%,
      rgba(216, 190, 140, 0.85) 34%,
      rgba(197, 165, 114, 0.62) 64%,
      rgba(197, 165, 114, 0.30) 100%);
  filter: blur(0.4px);
  animation: og-candle-flicker 4.4s ease-in-out infinite;
  will-change: transform, opacity;
}

/* Alevin dışındaki yumuşak sıcak hâle */
.og-candle-flame::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 52%;
  width: 58px;
  height: 58px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle,
      rgba(216, 190, 140, 0.34) 0%,
      rgba(197, 165, 114, 0.14) 42%,
      rgba(197, 165, 114, 0) 70%);
  z-index: -1;
}

/* Alevin parlak çekirdeği */
.og-candle-flame::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 58%;
  width: 6px;
  height: 8px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle,
      rgba(242, 235, 221, 0.85) 0%,
      rgba(216, 190, 140, 0.4) 65%,
      rgba(216, 190, 140, 0) 100%);
}

/* Yükselip sönen közler */
.og-candle-ember {
  position: absolute;
  bottom: 8%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background:
    radial-gradient(circle,
      rgba(216, 190, 140, 0.85) 0%,
      rgba(197, 165, 114, 0.3) 65%,
      rgba(197, 165, 114, 0) 100%);
  opacity: 0;
  animation-name: og-candle-rise;
  animation-timing-function: ease-in;
  animation-iteration-count: infinite;
  will-change: transform, opacity;
}

.og-candle-ember.og-candle-drift-l {
  animation-name: og-candle-rise-l;
}

@keyframes og-candle-breathe {
  0%, 100% { opacity: 0.8; transform: scaleY(1); }
  50%      { opacity: 1;   transform: scaleY(1.06); }
}

@keyframes og-candle-flicker {
  0%   { transform: rotate(45deg)   scale(1, 1);      opacity: 0.82; }
  18%  { transform: rotate(44deg)   scale(0.97, 1.05); opacity: 0.72; }
  34%  { transform: rotate(46deg)   scale(1.03, 0.98); opacity: 0.8; }
  52%  { transform: rotate(44.5deg) scale(0.98, 1.04); opacity: 0.7; }
  70%  { transform: rotate(45.5deg) scale(1.02, 0.99); opacity: 0.78; }
  86%  { transform: rotate(45deg)   scale(0.99, 1.02); opacity: 0.8; }
  100% { transform: rotate(45deg)   scale(1, 1);      opacity: 0.82; }
}

@keyframes og-candle-rise {
  0%   { transform: translate3d(0, 0, 0) scale(1);            opacity: 0; }
  12%  { opacity: 0.55; }
  55%  { opacity: 0.3; }
  100% { transform: translate3d(14px, -172px, 0) scale(0.5);  opacity: 0; }
}

@keyframes og-candle-rise-l {
  0%   { transform: translate3d(0, 0, 0) scale(1);             opacity: 0; }
  12%  { opacity: 0.55; }
  55%  { opacity: 0.3; }
  100% { transform: translate3d(-16px, -190px, 0) scale(0.5);  opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .og-candle * { animation: none !important; }
  .og-candle-glow { opacity: 0.85 !important; }
  .og-candle-ember { opacity: 0.4 !important; }
}

/* ===================== flower ===================== */
/* === flower (8 Mart) : süzülen çiçek yaprakları === */
.og-flower-petal{
  position:absolute;
  top:0;
  width:12px;
  height:12px;
  line-height:0;
  opacity:0;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  will-change:transform,opacity;
}
.og-flower-petal:nth-child(3n+1){animation-name:og-flower-drift-a;}
.og-flower-petal:nth-child(3n+2){animation-name:og-flower-drift-b;}
.og-flower-petal:nth-child(3n+3){animation-name:og-flower-drift-c;}

/* kırmızı damla yaprak */
.og-flower-p{
  border-radius:0 100% 0 100%;
  background:radial-gradient(circle at 30% 30%, #f2ebdd 0%, #e30a17 55%, #a5060f 100%);
  box-shadow:0 0 7px rgba(227,10,23,0.30);
}
/* altın/krem mimoza tomurcuğu */
.og-flower-m{
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #f2ebdd 0%, #d8be8c 45%, #c5a572 100%);
  box-shadow:0 0 7px rgba(216,190,140,0.40);
}
/* tam çiçek (inline svg) */
.og-flower-b svg{display:block;filter:drop-shadow(0 0 4px rgba(216,190,140,0.30));}

@keyframes og-flower-drift-a{
  0%   {transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0;}
  9%   {opacity:.75;}
  50%  {transform:translate3d(26px,54vh,0) rotate(185deg);}
  91%  {opacity:.55;}
  100% {transform:translate3d(-12px,112vh,0) rotate(360deg);opacity:0;}
}
@keyframes og-flower-drift-b{
  0%   {transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0;}
  11%  {opacity:.65;}
  50%  {transform:translate3d(-32px,50vh,0) rotate(-165deg);}
  90%  {opacity:.5;}
  100% {transform:translate3d(20px,112vh,0) rotate(-330deg);opacity:0;}
}
@keyframes og-flower-drift-c{
  0%   {transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0;}
  13%  {opacity:.8;}
  50%  {transform:translate3d(15px,52vh,0) rotate(125deg);}
  88%  {opacity:.55;}
  100% {transform:translate3d(-24px,112vh,0) rotate(300deg);opacity:0;}
}

@media (prefers-reduced-motion: reduce){
  .og-flower-petal{animation:none !important;opacity:.4;}
  .og-flower *{animation:none !important;}
}

/* ===================== sparkle ===================== */
/* === og-sparkle : altın parıltı + ay-yıldız (19 Mayıs / genel) === */

.og-sparkle__star{
  position:absolute;
  width:var(--size,12px);
  height:var(--size,12px);
  margin-left:calc(var(--size,12px) * -0.5);
  margin-top:calc(var(--size,12px) * -0.5);
  background:radial-gradient(circle at 50% 50%,
              var(--c1,#F2EBDD) 0%,
              var(--c2,#C5A572) 75%);
  clip-path:polygon(50% 0%,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0% 50%,42% 42%);
  opacity:0;
  transform:scale(.2);
  will-change:transform,opacity;
  filter:drop-shadow(0 0 4px rgba(216,190,140,.55));
  animation:og-sparkle-twinkle var(--dur,7s) ease-in-out var(--delay,0s) infinite;
}

.og-sparkle__moon{
  position:absolute;
  width:var(--size,32px);
  height:var(--size,32px);
  margin-left:calc(var(--size,32px) * -0.5);
  margin-top:calc(var(--size,32px) * -0.5);
  opacity:0;
  transform:scale(.6) rotate(-8deg);
  will-change:transform,opacity;
  filter:drop-shadow(0 0 6px rgba(197,165,114,.40));
  animation:og-sparkle-moon var(--dur,11s) ease-in-out var(--delay,0s) infinite;
}
.og-sparkle__moon svg{display:block;width:100%;height:100%;}

@keyframes og-sparkle-twinkle{
  0%   {opacity:0;                          transform:scale(.2)  rotate(0deg);}
  18%  {opacity:var(--peak,.8);             transform:scale(1)   rotate(15deg);}
  40%  {opacity:calc(var(--peak,.8) * .35); transform:scale(.82) rotate(35deg);}
  62%  {opacity:var(--peak,.8);             transform:scale(1.06) rotate(58deg);}
  100% {opacity:0;                          transform:scale(.2)  rotate(90deg);}
}

@keyframes og-sparkle-moon{
  0%,100% {opacity:0;              transform:scale(.6) translateY(6px)  rotate(-8deg);}
  50%     {opacity:var(--peak,.6); transform:scale(1)  translateY(-4px) rotate(6deg);}
}

@media (prefers-reduced-motion: reduce){
  .og-sparkle *{animation:none !important;}
  .og-sparkle__star{opacity:.5 !important;transform:scale(1) rotate(20deg) !important;}
  .og-sparkle__moon{opacity:.5 !important;transform:scale(1) rotate(0deg) !important;}
}

/* ===================== rain ===================== */
.og-rain-drop {
  position: absolute;
  top: -12vh;
  width: 1.5px;
  height: 64px;
  border-radius: 1px;
  background: linear-gradient(to bottom, rgba(242, 235, 221, 0) 0%, rgba(242, 235, 221, 0.55) 100%);
  opacity: 0;
  will-change: transform, opacity;
  animation-name: og-rain-fall;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* Ton çeşitliliği: kimi ince/soluk altın, kimi daha kalın altın, kimi daha parlak beyaz */
.og-rain-drop:nth-child(3n) {
  width: 1px;
  background: linear-gradient(to bottom, rgba(216, 190, 140, 0) 0%, rgba(216, 190, 140, 0.48) 100%);
}
.og-rain-drop:nth-child(4n) {
  width: 2px;
  background: linear-gradient(to bottom, rgba(197, 165, 114, 0) 0%, rgba(197, 165, 114, 0.42) 100%);
}
.og-rain-drop:nth-child(5n) {
  background: linear-gradient(to bottom, rgba(242, 235, 221, 0) 0%, rgba(242, 235, 221, 0.6) 100%);
}

@keyframes og-rain-fall {
  0% {
    transform: translate3d(0, 0, 0) rotate(14deg);
    opacity: 0;
  }
  8% {
    opacity: 0.82;
  }
  88% {
    opacity: 0.82;
  }
  100% {
    transform: translate3d(-26vh, 112vh, 0) rotate(14deg);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .og-rain * {
    animation: none !important;
  }
  .og-rain-drop {
    opacity: 0.25;
  }
}

/* ===================== sun ===================== */
/* ===== GÜNEŞ efekti — .og-sun kapsamlı ===== */

/* Köşeden yayılan sıcak yumuşak parıltı */
.og-sun-glow {
  position: absolute;
  top: -18%;
  right: -12%;
  width: 46%;
  height: 62%;
  background: radial-gradient(circle at 72% 28%,
      rgba(216,190,140,0.42) 0%,
      rgba(197,165,114,0.22) 34%,
      rgba(197,165,114,0.07) 58%,
      transparent 72%);
  transform: translateZ(0);
  animation: og-sun-breathe 9s ease-in-out infinite;
}

/* Daha küçük, sıcak çekirdek — nazik nabız */
.og-sun-core {
  position: absolute;
  top: -9%;
  right: -4%;
  width: 18%;
  height: 24%;
  background: radial-gradient(circle at 66% 34%,
      rgba(242,235,221,0.34) 0%,
      rgba(216,190,140,0.30) 30%,
      rgba(197,165,114,0.10) 55%,
      transparent 68%);
  transform: translateZ(0);
  animation: og-sun-breathe 7s ease-in-out infinite;
  animation-delay: -2s;
}

/* İnce ışınlar — köşeden aşağı-sola yelpaze; sadece opaklık titreşimi */
.og-sun-ray {
  position: absolute;
  top: 0;
  right: 10%;
  width: 2px;
  height: 150vh;
  transform-origin: top center;
  background: linear-gradient(to bottom,
      rgba(216,190,140,0.40) 0%,
      rgba(197,165,114,0.14) 30%,
      transparent 62%);
  opacity: 0.16;
  will-change: opacity;
  animation: og-sun-shimmer var(--d, 8s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

/* Süzülen sıcak toz zerreleri — güneşe doğru yükselip solar */
.og-sun-mote {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle,
      rgba(242,235,221,0.80) 0%,
      rgba(216,190,140,0.35) 60%,
      transparent 100%);
  opacity: 0;
  will-change: transform, opacity;
  animation: og-sun-drift var(--d, 11s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

@keyframes og-sun-breathe {
  0%, 100% { transform: scale(1);    opacity: 0.68; }
  50%      { transform: scale(1.07); opacity: 0.85; }
}

@keyframes og-sun-shimmer {
  0%, 100% { opacity: 0.12; }
  50%      { opacity: 0.42; }
}

@keyframes og-sun-drift {
  0%   { transform: translate3d(0, 10px, 0) scale(0.8);      opacity: 0; }
  22%  { opacity: 0.55; }
  78%  { opacity: 0.38; }
  100% { transform: translate3d(22px, -46px, 0) scale(1.15); opacity: 0; }
}

/* Erişilebilirlik: hareket azaltma */
@media (prefers-reduced-motion: reduce) {
  .og-sun * { animation: none !important; }
  .og-sun-mote { opacity: 0.30; }
}

/* ===================== drift ===================== */
/* ===== og-drift : süzülen tüyler/semboller (alt→üst, hafif yana kayış) ===== */
.og-drift .og-drift-item {
  position: absolute;
  bottom: 0;
  color: #D8BE8C;
  line-height: 1;
  opacity: 0;
  will-change: transform, opacity;
  -webkit-user-select: none;
  user-select: none;
  filter: drop-shadow(0 0 6px rgba(0, 0, 0, .45));
  animation-name: og-drift-riseA;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

/* Inline SVG palet rengini (currentColor) alsın + font-size ile ölçeklensin */
.og-drift .og-drift-item svg {
  display: block;
  width: 1em;
  height: 1em;
}

/* Renk & yön çeşitliliği (nötr: yalnız altın/beyaz) */
.og-drift .og-drift-item:nth-child(even) {
  animation-name: og-drift-riseB;
  color: #F2EBDD;
}
.og-drift .og-drift-item:nth-child(3n) { color: #C5A572; }

/* Sağa-eğik yumuşak süzülme */
@keyframes og-drift-riseA {
  0%   { transform: translate3d(0, 90vh, 0);   opacity: 0; }
  8%   { opacity: var(--op, .45); }
  30%  { transform: translate3d(14px, 60vh, 0); }
  55%  { transform: translate3d(-10px, 34vh, 0); }
  78%  { transform: translate3d(12px, 12vh, 0); }
  92%  { opacity: var(--op, .45); }
  100% { transform: translate3d(0, -12vh, 0);  opacity: 0; }
}

/* Sola-eğik ayna hareket (senkronu bozar) */
@keyframes og-drift-riseB {
  0%   { transform: translate3d(0, 90vh, 0);   opacity: 0; }
  8%   { opacity: var(--op, .45); }
  30%  { transform: translate3d(-13px, 58vh, 0); }
  55%  { transform: translate3d(11px, 32vh, 0); }
  78%  { transform: translate3d(-12px, 11vh, 0); }
  92%  { opacity: var(--op, .45); }
  100% { transform: translate3d(0, -12vh, 0);  opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .og-drift .og-drift-item {
    animation: none !important;
    opacity: 0 !important;
  }
}
