@import url("/assets/v45.css?v=1");

/* V46: Die vier langen Aktivierungsbahnen sind aus dem DOM entfernt. Die
   Weltreaktion besteht nur noch aus zwoelf kurzen, kantigen Bodenrissen. */
.echo-ground-veins__cracks path,
.echo-ground-veins__crack{
  stroke:rgba(104,231,235,.72);
  stroke-width:1.05;
  opacity:.82;
  filter:drop-shadow(0 0 2.5px rgba(61,205,217,.5));
}
.echo-ground-veins__cracks path:nth-child(3n + 1){
  stroke-width:.82;
  opacity:.68;
}
.echo-ground-veins__cracks path:nth-child(3n + 2){
  stroke-width:1.18;
  opacity:.9;
}
.game[data-v32-phase="awakening"] .echo-ground-veins{
  opacity:.78;
}
.game[data-v32-phase="storage"] .echo-ground-veins,
.game[data-v32-phase="source"] .echo-ground-veins,
.game[data-v32-phase="harvest"] .echo-ground-veins,
.game[data-v32-phase="carry"] .echo-ground-veins,
.game[data-v32-phase="complete"] .echo-ground-veins{
  opacity:.62;
}
.game[data-v32-phase="awakening"] .echo-ground-veins__cracks{
  animation:v46-cracks-reveal 1.25s .18s ease-out both;
}

@keyframes v46-cracks-reveal{
  0%{opacity:0;filter:brightness(1.8)}
  42%{opacity:1;filter:brightness(1.25)}
  100%{opacity:1;filter:brightness(1)}
}
/* Das Lebensecho bleibt dieselbe lebendige cyanblaue Flamme. Vor dem
   Erwachen ist sie frei; danach brennt sie ruhiger und eingefasst im Kern. */
.game[data-v32-phase="seed"] .echo-seed{
  isolation:isolate;
  overflow:visible;
  filter:drop-shadow(0 0 8px rgba(177,255,255,.88)) drop-shadow(0 0 25px rgba(45,204,225,.68));
  animation:v46-free-life-drift 1.9s ease-in-out infinite!important;
}
.game[data-v32-phase="seed"] .echo-seed:before{
  z-index:1;
  top:-3%;
  width:46%;
  height:70%;
  transform-origin:50% 88%;
  border-radius:66% 34% 58% 42% / 78% 72% 28% 22%;
  background:
    radial-gradient(ellipse at 50% 74%,rgba(235,255,255,.98) 0 14%,rgba(112,246,246,.98) 27%,rgba(42,203,226,.86) 48%,rgba(18,130,185,.32) 65%,transparent 72%),
    linear-gradient(165deg,transparent 0 21%,rgba(78,231,239,.76) 43%,transparent 75%);
  filter:blur(.25px) drop-shadow(0 -2px 5px rgba(77,229,239,.5));
  animation:v46-free-life-flame 1.05s ease-in-out infinite alternate;
}
.game[data-v32-phase="seed"] .echo-seed:after{
  z-index:0;
  top:18%;
  width:72%;
  height:72%;
  background:radial-gradient(circle,rgba(153,252,251,.4),rgba(48,202,222,.18) 45%,transparent 72%);
  filter:blur(6px);
  animation:v46-life-heat 1.55s ease-in-out infinite alternate;
}
.game[data-v32-phase="seed"] .echo-seed__core{
  z-index:3;
  inset:auto!important;
  left:50%;
  top:52%;
  width:28px;
  height:28px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle at 44% 38%,#f7ffff 0 20%,#9af9f7 34%,#38d2e2 62%,rgba(25,139,188,.28) 76%)!important;
  box-shadow:0 0 7px 3px rgba(205,255,255,.86),0 0 20px 7px rgba(58,218,231,.6)!important;
}
.game[data-v32-phase="seed"] .echo-seed__ring{
  z-index:2;
  inset:18px;
  border-color:rgba(135,242,246,.4)!important;
  box-shadow:inset 0 0 12px rgba(86,226,238,.24),0 0 12px rgba(58,214,231,.28)!important;
}
.game[data-v32-phase="seed"][data-echo-pulse] .echo-seed{
  animation:none!important;
  transform:translate(-50%,-50%)!important;
}

@keyframes v46-free-life-drift{
  0%,100%{transform:translate(-50%,-50%) translateY(1px) scale(.98)}
  50%{transform:translate(-50%,-50%) translateY(-2px) scale(1.025)}
}
@keyframes v46-free-life-flame{
  0%{transform:translateX(-50%) rotate(-8deg) scale(.88,1.06);opacity:.78}
  52%{transform:translateX(-50%) rotate(7deg) scale(1.05,.93);opacity:1}
  100%{transform:translateX(-50%) rotate(-2deg) scale(.95,1.12);opacity:.88}
}
@keyframes v46-life-heat{
  from{opacity:.64;transform:translateX(-50%) scale(.9)}
  to{opacity:1;transform:translateX(-50%) scale(1.06)}
}

.game[data-echo-core="awakening"] .echo-nest-core i,
.game[data-echo-core="awake"] .echo-nest-core i{
  inset:auto!important;
  left:50%!important;
  top:23px!important;
  width:27px;
  height:40px;
  transform:translateX(-50%) rotate(1deg);
  transform-origin:50% 82%;
  border-radius:65% 35% 58% 42% / 78% 73% 27% 22%;
  background:radial-gradient(ellipse at 48% 72%,#edffff 0 13%,#8bf4f3 29%,#32cbdf 51%,rgba(20,126,178,.28) 68%,transparent 74%);
  box-shadow:0 0 9px 2px rgba(177,255,255,.65),0 0 23px 8px rgba(50,207,225,.42);
  animation:v46-contained-life 1.55s ease-in-out infinite alternate;
}
.game[data-echo-core="awakening"] .echo-nest-core i:before,
.game[data-echo-core="awake"] .echo-nest-core i:before{
  content:"";
  position:absolute;
  left:50%;
  bottom:5px;
  width:9px;
  height:19px;
  transform:translateX(-50%) rotate(-5deg);
  border-radius:64% 36% 60% 40% / 78% 72% 28% 22%;
  background:linear-gradient(180deg,rgba(224,255,255,.08),#f5ffff 62%,#9cf8f6);
  filter:drop-shadow(0 0 4px rgba(225,255,255,.74));
}
.game[data-echo-core="awakening"] .echo-nest-core i:after,
.game[data-echo-core="awake"] .echo-nest-core i:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-5px;
  width:42px;
  height:14px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(104,239,241,.34),transparent 70%);
  filter:blur(3px);
}
@keyframes v46-contained-life{
  0%{transform:translateX(-50%) rotate(-3deg) scale(.94,1.02);filter:brightness(.94)}
  55%{transform:translateX(-50%) rotate(3deg) scale(1.03,.96);filter:brightness(1.08)}
  100%{transform:translateX(-50%) rotate(-1deg) scale(.98,1.06);filter:brightness(1)}
}

/* Die lokale Nestlinse hebt Konturen statt einer grossen weissen Flaeche an.
   Damit bleibt das Nest der Hauptort, Quelle und Speicher ordnen sich unter. */
.nest-energy-field{
  top:calc(var(--echo-nest-y) + 17px);
  width:clamp(250px,22.5vw,338px);
  height:clamp(152px,28vh,220px);
  background:
    radial-gradient(ellipse at 50% 53%,rgba(121,241,242,.13) 0,rgba(52,178,192,.07) 35%,rgba(1,9,14,.08) 59%,transparent 75%);
  box-shadow:0 0 35px 8px rgba(55,200,214,.16),inset 0 -20px 34px rgba(0,7,12,.22);
  -webkit-backdrop-filter:brightness(1.08) contrast(1.42) saturate(1.34);
  backdrop-filter:brightness(1.08) contrast(1.42) saturate(1.34);
}
.game[data-v32-phase="awakening"] .nest-energy-field{opacity:.8}
.game[data-v32-phase="storage"] .nest-energy-field,
.game[data-v32-phase="source"] .nest-energy-field,
.game[data-v32-phase="harvest"] .nest-energy-field,
.game[data-v32-phase="carry"] .nest-energy-field,
.game[data-v32-phase="complete"] .nest-energy-field{opacity:.94}
.game[data-echo-core="awake"] .echo-nest-core{
  opacity:.96;
  filter:brightness(1.07) saturate(1.26) contrast(1.32);
  box-shadow:0 0 36px 12px rgba(59,205,219,.22),0 0 13px rgba(161,254,251,.28);
}
.game[data-echo-core="awake"] .echo-nest-core:before{
  border-color:rgba(137,239,243,.4);
  box-shadow:inset 0 0 18px rgba(64,199,215,.14),0 0 12px rgba(77,216,227,.12);
}
.game[data-echo-core="awake"] .echo-nest-core:after{
  border-color:rgba(151,246,247,.42);
}

/* Die entleerte Quelle bleibt eindeutig lesbar, ohne wieder der hellste Ort
   zu werden. Der Speicher ist dauerhaft kleiner und leuchtet nur lokal kurz. */
.game[data-v32-phase="carry"] .followup--nature,
.game[data-v32-phase="complete"] .followup--nature{
  opacity:.9!important;
}
.game[data-v32-phase="carry"] .echo-source-image,
.game[data-v32-phase="complete"] .echo-source-image{
  opacity:.96;
  filter:brightness(.78) saturate(.52) contrast(1.1) drop-shadow(0 11px 14px rgba(0,0,0,.74)) drop-shadow(0 0 8px rgba(63,187,201,.18));
}
.game[data-v32-phase="carry"] .echo-source-aura,
.game[data-v32-phase="complete"] .echo-source-aura{
  opacity:.3;
  filter:blur(9px) saturate(.66);
}

.building--storage{
  width:clamp(104px,12.5vw,156px);
}
.game[data-v32-phase="source"] .building--storage[data-v33-placed="true"],
.game[data-v32-phase="harvest"] .building--storage[data-v33-placed="true"],
.game[data-v32-phase="carry"] .building--storage[data-v33-placed="true"],
.game[data-v32-phase="complete"] .building--storage[data-v33-placed="true"]{
  filter:none!important;
}
.game[data-v32-phase] .building--storage[data-v33-placed="true"] .storage-building-image{
  filter:brightness(.8) saturate(.72) contrast(1.12) drop-shadow(0 11px 14px rgba(0,0,0,.78)) drop-shadow(0 0 10px rgba(54,202,213,.24));
}
.building--storage[data-v33-placed="true"]:before{
  top:73%;
  width:142%;
  height:68%;
  background:radial-gradient(ellipse,rgba(116,245,246,.45) 0,rgba(57,205,218,.22) 29%,rgba(25,117,135,.08) 51%,transparent 72%);
  box-shadow:0 0 28px 7px rgba(61,211,224,.16);
}
.game[data-v32-phase="source"] .building--storage[data-v33-placed="true"]:before,
.game[data-v32-phase="harvest"] .building--storage[data-v33-placed="true"]:before{
  opacity:.44!important;
  animation:none!important;
  filter:blur(7px) brightness(1.02);
}
.game[data-v32-phase="carry"] .building--storage[data-v33-placed="true"]:before{
  opacity:.54!important;
  animation:none!important;
  filter:blur(7px) brightness(1.08);
}
.game[data-v46-storage-feedback="true"] .building--storage[data-v46-feedback="placed"][data-v33-placed="true"]:before{
  opacity:.48!important;
  animation:v46-storage-place-aura .9s ease-out both!important;
}
.game[data-v46-storage-feedback="true"] .building--storage[data-v46-feedback="placed"][data-v33-placed="true"] .storage-building-image{
  animation:v46-storage-place .9s ease-out both!important;
}
.game[data-v32-phase="complete"] .building--storage[data-v33-placed="true"]:before{
  opacity:.66!important;
  animation:v46-storage-local-confirm .86s ease-out both!important;
}
.game[data-v32-phase="complete"] .building--storage[data-v33-placed="true"] .storage-building-image{
  filter:brightness(.92) saturate(.86) contrast(1.12) drop-shadow(0 11px 14px rgba(0,0,0,.78)) drop-shadow(0 0 14px rgba(65,215,224,.32));
  animation:v46-storage-confirm .86s ease-out both!important;
}
.building--storage>b{
  font-size:10px;
  text-shadow:0 2px 7px #000,0 0 5px rgba(70,193,204,.18);
}
.building--storage>small{
  color:#78cbd2;
  text-shadow:0 2px 7px #000;
}
@keyframes v46-storage-local-confirm{
  0%{opacity:.12;transform:translate(-50%,-50%) scale(.72);filter:blur(9px) brightness(.9)}
  45%{opacity:.76;transform:translate(-50%,-50%) scale(1.04);filter:blur(6px) brightness(1.18)}
  100%{opacity:.66;transform:translate(-50%,-50%) scale(1);filter:blur(7px) brightness(1.04)}
}
@keyframes v46-storage-place-aura{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.64);filter:blur(10px) brightness(.9)}
  48%{opacity:.48;transform:translate(-50%,-50%) scale(1.05);filter:blur(7px) brightness(1.08)}
  100%{opacity:.1;transform:translate(-50%,-50%) scale(1);filter:blur(8px) brightness(.94)}
}
@keyframes v46-storage-place{
  0%{opacity:.35;transform:scale(.86);filter:brightness(.58) saturate(.42) contrast(1.12)}
  52%{opacity:1;transform:scale(1.025);filter:brightness(.88) saturate(.76) contrast(1.1) drop-shadow(0 0 13px rgba(70,215,224,.27))}
  100%{opacity:1;transform:scale(1);filter:brightness(.72) saturate(.58) contrast(1.12) drop-shadow(0 11px 14px rgba(0,0,0,.78))}
}
@keyframes v46-storage-confirm{
  0%{filter:brightness(.72) saturate(.58) contrast(1.12) drop-shadow(0 11px 14px rgba(0,0,0,.78))}
  46%{filter:brightness(.98) saturate(.88) contrast(1.1) drop-shadow(0 0 15px rgba(76,220,227,.32))}
  100%{filter:brightness(.84) saturate(.74) contrast(1.12) drop-shadow(0 11px 14px rgba(0,0,0,.78)) drop-shadow(0 0 10px rgba(60,201,213,.2))}
}

/* Die zwei Grafikdateien besitzen verschiedene transparente Unterkanten.
   Diese beiden Werte bezeichnen jeweils die echte Fusskante und halten
   Standbild, Laufbild und Bodenschatten auf derselben Weltkoordinate. */
.world-ui{
  --kiro-idle-foot:86%;
  --kiro-idle-lift:-86%;
  --kiro-walk-foot:74.6%;
  --kiro-walk-lift:-74.6%;
}
.game[data-v39-motion="true"]:not([data-v39-walking="true"]) .resident--kiro{
  width:52px!important;
  height:90px!important;
  background-position:50% 0!important;
  background-size:auto 80px!important;
  transform-origin:50% var(--kiro-idle-foot)!important;
  transform:translate(-50%,var(--kiro-idle-lift)) scale(var(--kiro-v39-scale,.63)) scaleX(var(--kiro-v39-face,1))!important;
}
.game[data-v39-motion="true"] .resident--kiro>b{
  left:50%!important;
  top:80px!important;
  transform:translateX(-50%)!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap;
}
.game[data-v39-motion="true"] .resident--kiro>small{
  left:50%!important;
  top:92px!important;
  transform:translateX(-50%)!important;
  font-size:7px!important;
  line-height:1!important;
  white-space:nowrap;
}
.game[data-v39-motion="true"]:not([data-v32-phase="carry"]) .resident--kiro:before{
  left:50%;
  top:43%;
  width:14px;
  height:10px;
}
.game[data-v39-motion="true"] .kiro-ground-shadow,
.game[data-v32-phase="seed"] .kiro-ground-shadow,
.game[data-v32-phase="awakening"] .kiro-ground-shadow,
.game[data-v32-phase="storage"] .kiro-ground-shadow,
.game[data-v32-phase="source"] .kiro-ground-shadow,
.game[data-v32-phase="harvest"] .kiro-ground-shadow,
.game[data-v32-phase="carry"] .kiro-ground-shadow,
.game[data-v32-phase="complete"] .kiro-ground-shadow{
  top:var(--kiro-idle-foot)!important;
  width:44px!important;
  height:7px!important;
  opacity:.92!important;
  background:radial-gradient(ellipse,rgba(0,0,0,.82) 0 30%,rgba(0,0,0,.52) 56%,transparent 76%)!important;
  filter:blur(1.5px)!important;
  box-shadow:0 2px 7px 2px rgba(0,0,0,.58)!important;
}
.game[data-v39-walking="true"] .resident--kiro{
  width:66px!important;
  height:142px!important;
  background-image:none!important;
  overflow:hidden!important;
  transform-origin:50% var(--kiro-walk-foot)!important;
  transform:translate(-50%,var(--kiro-walk-lift)) scale(calc(var(--kiro-v39-scale,.63) * .88)) scaleX(var(--kiro-v39-face,1))!important;
  animation:none!important;
}
.game[data-v39-walking="true"] .kiro-ground-shadow{
  top:var(--kiro-walk-foot)!important;
  width:58px!important;
  height:8px!important;
  animation:v46-foot-contact .38s steps(2,end) infinite!important;
}
.game[data-v39-walking="true"] .resident--kiro:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  left:0;
  top:0;
  right:auto!important;
  bottom:auto!important;
  width:800%!important;
  height:100%!important;
  transform:translateX(0);
  border-radius:0!important;
  background-color:transparent!important;
  background-image:url("/assets/kiro-walk-v46.webp")!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
  background-position:0 0;
  filter:none!important;
  animation:v462-kiro-walk var(--kiro-v46-gait-duration,.76s) steps(1,end) infinite!important;
  pointer-events:none;
}
.game[data-v32-phase="carry"][data-v39-walking="true"] .resident--kiro:after{
  content:""!important;
  display:block!important;
  left:48%!important;
  top:47%!important;
  width:12px!important;
  height:12px!important;
  opacity:1!important;
  z-index:3!important;
  border-radius:50%;
  background:radial-gradient(circle at 42% 38%,#efffff 0 18%,#8af5f4 34%,#33cddd 66%,rgba(24,139,185,.35) 78%)!important;
  box-shadow:0 0 8px 3px rgba(166,255,255,.76),0 0 17px 6px rgba(55,211,225,.5)!important;
}
.game[data-v39-motion="true"][data-v32-phase="source"][data-assignment-step="worker"] .resident--kiro{
  animation:none!important;
}
@keyframes v462-kiro-walk{
  0%{transform:translateX(0)}
  12.5%{transform:translateX(-12.5%)}
  25%{transform:translateX(-25%)}
  37.5%{transform:translateX(-37.5%)}
  50%{transform:translateX(-50%)}
  62.5%{transform:translateX(-62.5%)}
  75%{transform:translateX(-75%)}
  87.5%,100%{transform:translateX(-87.5%)}
}
@keyframes v46-foot-contact{
  0%,100%{opacity:.92;transform:translate(-50%,-50%) scaleX(.92)}
  50%{opacity:.76;transform:translate(-50%,-50%) scaleX(1.04)}
}

@media (orientation:landscape) and (max-height:430px) and (min-aspect-ratio:21/10){
  .nest-energy-field{width:clamp(240px,21.5vw,316px);height:clamp(144px,34vh,202px)}
  .building--storage{width:clamp(94px,11.5vw,132px)}
  .game[data-v32-phase="seed"] .echo-seed__core{width:26px;height:26px}
}

@media (prefers-reduced-motion:reduce){
  .game[data-v32-phase="seed"] .echo-seed,
  .game[data-v32-phase="seed"] .echo-seed:before,
  .game[data-v32-phase="seed"] .echo-seed:after,
  .game[data-echo-core="awakening"] .echo-nest-core i,
  .game[data-echo-core="awake"] .echo-nest-core i,
  .game[data-v32-phase="awakening"] .echo-ground-veins__cracks,
  .game[data-v39-walking="true"] .kiro-ground-shadow,
  .game[data-v32-phase="complete"] .building--storage[data-v33-placed="true"]:before,
  .game[data-v32-phase="complete"] .building--storage[data-v33-placed="true"] .storage-building-image{
    animation:none!important;
  }
  .game[data-v39-walking="true"] .resident--kiro:before{
    animation:v462-kiro-walk 1.6s steps(1,end) infinite!important;
  }
}
