/*
  Fame V94 — STUFE 14: AMETHYST GEODENHÖHLE
  Nur die bestehende Hommage "cave" (Stufe 14).
  Originale Assets /hom/stone, crystals, pick, torch, gem bleiben bestehen.
  Eigenständige Pixel-/Voxel-Höhle, keine fremden Marken, Logos oder Texturen.
  Keinerlei Eingriff in das Original-Fame-Card-Design.
*/

/* Tiefenstaffelung mit bestehenden Stein- und Kristalltexturen. */
.screen.lux.hom--cave:not(.screen--card) {
  --h-ink:#f5eaff;
  --h-sub:#c6b2e9;
  --h-acc:#debdff;
  --h-glow:rgba(171,104,255,.50);
  --h-line:rgba(199,153,255,.63);
  --h-tile:rgba(25,17,40,.92);
  isolation:isolate;
  image-rendering:auto;
  background:
    radial-gradient(ellipse 56% 36% at 50% 29%,rgba(153,91,255,.32),transparent 85%),
    radial-gradient(ellipse 40% 38% at 8% 39%,rgba(246,166,76,.12),transparent 86%),
    radial-gradient(ellipse 40% 38% at 94% 42%,rgba(246,166,76,.12),transparent 86%),
    linear-gradient(90deg,rgba(5,5,12,.78),transparent 22%,transparent 79%,rgba(5,5,12,.78)),
    url("../assets/hom/crystals-top.png") center top/100% 116px no-repeat,
    url("../assets/hom/crystals-bottom.png") center bottom/100% 158px no-repeat,
    linear-gradient(180deg,rgba(15,9,23,.38),rgba(5,4,10,.87) 80%),
    url("../assets/hom/stone.png") 0 0/160px 120px repeat !important;
  background-color:#0c0a16!important;
}
/* Rock face shading: a tunnel with side walls receding toward the geode. */
.screen.lux.hom--cave:not(.screen--card)::before{
  content:"";
  position:fixed;inset:0;left:0;right:0;top:0;bottom:0;height:auto;
  z-index:0;pointer-events:none;opacity:1;
  filter:none;-webkit-mask:none;mask:none;
  background:
    linear-gradient(105deg,rgba(0,0,0,.86) 0%,rgba(19,14,32,.42) 15%,transparent 31%) left/52% 100% no-repeat,
    linear-gradient(255deg,rgba(0,0,0,.87) 0%,rgba(19,14,32,.42) 17%,transparent 32%) right/52% 100% no-repeat,
    radial-gradient(ellipse 58% 39% at 50% 29%,rgba(172,90,255,.23),transparent 88%);
}
/* A deep edge vignette makes the centre feel farther inside the cave. */
.screen.lux.hom--cave:not(.screen--card)::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 76% 63% at 50% 43%,transparent 38%,rgba(3,3,8,.36) 77%,rgba(0,0,4,.72));
}
/* Keep real sprites pixel-sharp while simulated rock surfaces get 3-D lighting. */
.screen.hom--cave :is(.hom-torch,.hom-pick,.hom-achv i,.hom-hotbar span) {
  image-rendering:pixelated;
}
.screen.hom--cave:not(.screen--card) :is(.hub-tile,.connect-cta,.btn) {
  -webkit-tap-highlight-color:transparent;
}
.screen.hom--cave:not(.screen--card) .logo-row {
  filter:drop-shadow(0 3px 1px rgba(10,5,20,.96)) drop-shadow(0 0 14px rgba(186,117,255,.36))!important;
}
.screen.hom--cave:not(.screen--card) .logo-word{
  background-image:linear-gradient(172deg,#fff2ff 0%,#d8b4ff 29%,#8f57cc 56%,#e8c2ff 78%,#744ab1 100%)!important;
}
.screen.hom--cave:not(.screen--card) .splash-logo {
  filter:drop-shadow(0 9px 7px rgba(0,0,0,.28));
}

/* Only the existing three buttons + connect panel: deep-cut stone, bevel, purple crystal seam. */
.screen.hom--cave:not(.screen--card) :is(.hub-tile,.connect-cta){
  position:relative;
  border:3px solid #8e69bd!important;
  border-radius:2px!important;
  background:
    linear-gradient(142deg,rgba(212,167,255,.16),transparent 37%),
    linear-gradient(165deg,rgba(49,38,67,.95),rgba(18,15,27,.98) 55%,rgba(30,22,48,.97)),
    url("../assets/hom/stone.png") center/128px 96px repeat!important;
  color:#fff2ff!important;
  box-shadow:
    inset 3px 3px 0 rgba(239,211,255,.26),
    inset -4px -5px 0 rgba(4,3,10,.77),
    inset 0 0 24px rgba(172,96,255,.08),
    0 4px 0 #362247,
    0 11px 21px rgba(0,0,0,.67),
    0 0 17px rgba(156,90,249,.23)!important;
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.screen.hom--cave:not(.screen--card) .hub-tile:active,
.screen.hom--cave:not(.screen--card) .connect-cta:active {
  transform:translateY(2px)!important;
}
.screen.hom--cave:not(.screen--card) :is(.hub-tile b,.cc-txt b){
  text-shadow:0 2px 4px rgba(0,0,0,.92),0 0 9px rgba(207,155,255,.32);
}
.screen.hom--cave:not(.screen--card) :is(.hub-tile small,.cc-txt small){
  color:#c9b7dc!important;text-shadow:0 1px 3px #06030b;
}
.screen.hom--cave:not(.screen--card) .hub-ico .ico {
  stroke:#ddafff!important;
  filter:drop-shadow(1px 2px 0 #140a20) drop-shadow(0 0 5px #9660e4);
}
.screen.hom--cave:not(.screen--card) .btn:not(:disabled){
  border:3px solid #f0d8ff!important;
  border-radius:2px!important;
  background:linear-gradient(172deg,#f4e6ff,#d6b5ff 24%,#9969df 53%,#7f4ac6 85%,#d0aaff)!important;
  color:#170e28!important;
  box-shadow:
    inset 3px 3px 0 rgba(255,255,255,.71),
    inset -4px -4px 0 rgba(58,21,112,.65),
    0 4px 0 #3b1c63,
    0 0 19px rgba(184,107,255,.49),
    0 11px 22px rgba(0,0,0,.55)!important;
}
.screen.hom--cave:not(.screen--card) .btn span{color:#170e28!important;text-shadow:0 1px 0 rgba(255,255,255,.25);}
.screen.hom--cave:not(.screen--card) .cc-ics span{
  background:linear-gradient(150deg,#574768,#211b30)!important;
  border:2px solid #886eac!important;
  border-radius:1px!important;
}
.screen.hom--cave:not(.screen--card) .cc-ics span.is-on{
  background:linear-gradient(160deg,#dfbfff,#9761dc)!important;
  color:#211333!important;
}
.screen.hom--cave:not(.screen--card) .cc-pill{
  border:2px solid #ead4ff!important;
  border-radius:1px!important;
  background:linear-gradient(#e5ccff,#a579e0)!important;
  color:#1a1225!important;
  box-shadow:inset 1px 1px 0 #fff4ff,inset -2px -2px 0 #654291;
}

/* Perspective layers behind the EXISTING rotating WebGL amethyst. */
.screen.hom--cave.screen--welcome .welcome-vault{
  isolation:isolate;
  overflow:visible;
  perspective:720px;
}
.screen.hom--cave.screen--welcome .welcome-vault > .stage3d{
  z-index:4;
  filter:drop-shadow(0 0 22px rgba(164,74,248,.31));
}
.screen.hom--cave.screen--welcome .welcome-vault > :is(.vault-ring,.vault-runes){z-index:3;}
.screen.hom--cave.screen--welcome .welcome-vault > .vault-glow{z-index:2;opacity:.95;}
.screen.hom--cave.screen--welcome .welcome-vault > .vault-rays{z-index:1;}
.screen.hom--cave.screen--welcome .hom-cave-space{
  position:absolute;inset:-14px 0 -14px;
  pointer-events:none;
  z-index:0;
  overflow:visible;
  transform-style:preserve-3d;
}
.hom-cave-space .hom-cave-arch {
  position:absolute;inset:-20px 3% 4px;
  border:18px solid rgba(32,25,45,.82);
  border-left-width:26px;border-right-width:26px;
  border-radius:50% 50% 29% 29%;
  box-shadow:
    inset 8px 12px 18px rgba(0,0,0,.84),
    inset -9px -6px 16px rgba(150,85,224,.25),
    0 0 21px rgba(111,63,180,.2),
    0 8px 35px rgba(0,0,0,.67);
  transform:translateZ(-130px) scale(1.04);
  background:url("../assets/hom/stone.png") center/94px 70px repeat;
  image-rendering:pixelated;
}
.hom-cave-space .hom-cave-ledger{
  position:absolute;bottom:0;left:10%;width:80%;height:24px;
  transform:perspective(450px) rotateX(57deg) translateZ(-24px);
  background:
    linear-gradient(180deg,rgba(202,121,255,.35),transparent 30%),
    url("../assets/hom/stone.png") center/120px 90px;
  box-shadow:0 -2px 20px rgba(148,66,235,.29),0 17px 15px rgba(0,0,0,.88);
  border:3px solid rgba(116,81,160,.62);
}
.hom-cave-space .hom-cave-vein {
  position:absolute;inset:2% 12% 14%;
  background:
    radial-gradient(ellipse 12% 65% at 14% 58%,rgba(150,91,250,.44),transparent),
    radial-gradient(ellipse 15% 70% at 85% 53%,rgba(151,86,247,.45),transparent),
    radial-gradient(ellipse 50% 24% at 50% 95%,rgba(144,60,246,.29),transparent);
  filter:blur(9px);
  transform:translateZ(-60px);
}
.hom-cave-space .hom-cave-crystal {
  position:absolute;
  width:34px;height:83px;bottom:17px;
  clip-path:polygon(48% 0%,86% 30%,100% 79%,58% 100%,13% 83%,0 34%);
  background:
    linear-gradient(106deg,rgba(255,255,255,.38) 0 13%,transparent 15% 65%,rgba(255,224,255,.26) 68% 77%,transparent 81%),
    linear-gradient(80deg,#372056 0%,#a05eef 23%,#f6d7ff 37%,#9552d1 49%,#5a2f98 70%,#b575fb 89%,#26123e 100%);
  box-shadow:inset 2px 3px 5px rgba(255,255,255,.28);
  filter:drop-shadow(0 0 11px rgba(183,113,255,.92));
  opacity:.92;
}
.hom-cave-space .hom-cave-crystal--l1 {left:5%;transform:rotate(-18deg) translateZ(-25px) scale(.95);}
.hom-cave-space .hom-cave-crystal--l2 {left:15%;bottom:8px;transform:rotate(19deg) translateZ(-45px) scale(.58);}
.hom-cave-space .hom-cave-crystal--r1 {right:6%;transform:rotate(19deg) translateZ(-22px) scale(.98);}
.hom-cave-space .hom-cave-crystal--r2 {right:17%;bottom:8px;transform:rotate(-14deg) translateZ(-45px) scale(.62);}
.screen.hom--cave.screen--welcome .hom-torch{
  z-index:6;
  width:27px;height:40px;
  top:28px;
  filter:drop-shadow(0 0 7px #ffa64f) drop-shadow(0 0 16px rgba(255,153,49,.7))!important;
}
.screen.hom--cave.screen--welcome .hom-torch--l {left:13%;}
.screen.hom--cave.screen--welcome .hom-torch--r {right:13%;}
.screen.hom--cave.screen--welcome .hom-pick{
  z-index:6;
  width:65px;height:64px;
  top:87px;left:2%;
  filter:drop-shadow(0 4px 2px #0b0612) drop-shadow(0 0 8px rgba(192,126,255,.53));
}
.screen.hom--cave.screen--welcome .hom-xp{
  z-index:7;
  border-color:#282028;
  box-shadow:inset 0 1px 0 #9c8ba9,0 0 10px rgba(157,244,49,.19);
}
.screen.hom--cave.screen--welcome .hom-achv{
  border-color:#8961be!important;
  box-shadow:inset 2px 2px 0 rgba(234,210,255,.16),0 6px 17px #05030a!important;
}
@media(max-width:360px){
  .hom-cave-space .hom-cave-arch{inset:0 1% 4px;}
  .screen.hom--cave.screen--welcome .hom-torch--l{left:7%;}
  .screen.hom--cave.screen--welcome .hom-torch--r{right:7%;}
}

/* --------------- STUFE 14 CARD REVEAL: DESTRUCTIBLE ROCK WALL (V98) ---------------
   Overlay über der verdeckten Card. Die Wand bricht von der Mitte nach außen auf und gibt die
   Card frei, die in diesem Moment schon aufleuchtet – kein harter Schnitt.
   Nur Fames eigene Stein- und Spitzhacken-Grafiken; keine fremden Grafiken oder Sounds.
*/
.cave-break{ position:absolute;inset:0;z-index:90;isolation:isolate;overflow:hidden;pointer-events:none; }
.cave-break__wall{
  position:absolute;inset:-4% -5%;z-index:4;
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));
  perspective:900px;
  background:#07060c;
  transition:background-color .3s ease;
}
.cave-break__wall::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 73% 56% at 50% 42%,transparent 30%,rgba(0,0,0,.72) 100%),
    linear-gradient(90deg,rgba(0,0,0,.52),transparent 23%,transparent 78%,rgba(0,0,0,.56));
  transition:opacity .3s;
}
.cave-break__block{
  display:block;min-width:0;min-height:0;position:relative;
  border:1px solid rgba(5,4,9,.73);
  background:linear-gradient(155deg,rgba(220,195,247,.16),transparent 30%,rgba(0,0,0,.51) 79%),
    url("../assets/hom/stone.png") center/96px 72px repeat;
  image-rendering:pixelated;
  box-shadow:inset 3px 3px 0 rgba(199,166,226,.14),inset -6px -7px 0 rgba(0,0,0,.41);
  will-change:transform,opacity;
}
.cave-break__block:nth-child(5n){filter:brightness(.76) sepia(.12) hue-rotate(213deg);}
.cave-break__block:nth-child(7n){filter:brightness(1.12);}
/* Licht hinter der Wand: dringt mit jedem Schlag stärker durch die Risse */
.cave-break__glow{
  position:absolute;left:50%;top:44%;z-index:5;width:80vmin;height:80vmin;max-width:440px;max-height:440px;
  transform:translate(-50%,-50%) scale(.3);border-radius:50%;opacity:0;mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(253,231,255,.95),rgba(192,106,255,.6) 26%,rgba(154,61,229,.22) 52%,transparent 74%);
  filter:blur(14px);transition:opacity .25s ease,transform .5s cubic-bezier(.1,.8,.2,1);
}
.cave-break--impact-1 .cave-break__glow{opacity:.18;transform:translate(-50%,-50%) scale(.35);}
.cave-break--impact-2 .cave-break__glow{opacity:.35;transform:translate(-50%,-50%) scale(.5);}
.cave-break--impact-3 .cave-break__glow{opacity:.6;transform:translate(-50%,-50%) scale(.7);}
.cave-break__fracture{
  position:absolute;z-index:6;inset:7% 3%;width:94%;height:86%;fill:none;overflow:visible;pointer-events:none;
  stroke:#f3dcff;stroke-width:2.4;stroke-linecap:square;stroke-linejoin:miter;
  filter:drop-shadow(0 0 6px #c66fff) drop-shadow(1px 3px 0 #180c23);opacity:0;transition:opacity .12s ease;
}
.cave-break__fracture path{stroke-dasharray:950;stroke-dashoffset:950;}
.cave-break--impact-1 .cave-break__fracture{opacity:.8;}
.cave-break--impact-1 .cave-break__fracture path:first-child{animation:cave-fracture .22s steps(8,end) forwards;}
.cave-break--impact-2 .cave-break__fracture{opacity:1;}
.cave-break--impact-2 .cave-break__fracture path:nth-child(2){animation:cave-fracture .22s steps(7,end) forwards;}
.cave-break--impact-3 .cave-break__fracture path:nth-child(3){animation:cave-fracture .2s steps(6,end) forwards;}
.cave-break--impact-3 .cave-break__fracture{stroke-width:3.2;}
@keyframes cave-fracture{to{stroke-dashoffset:0;}}
/* Schütteln bei jedem Schlag */
.cave-break--shake .cave-break__wall,.cave-break--shake .cave-break__fracture{animation:cave-shake .28s steps(5,end);}
@keyframes cave-shake{20%{translate:-5px 3px;}40%{translate:4px -3px;}60%{translate:-3px -2px;}80%{translate:2px 2px;}}
/* Staub */
.cave-break__dust{position:absolute;left:50%;top:46%;z-index:8;width:0;height:0;}
.cave-break__dust i{position:absolute;left:0;top:0;background:#8f7aa8;box-shadow:inset -1px -1px 0 rgba(0,0,0,.4);animation:cave-dust 1.1s cubic-bezier(.3,.1,.7,1) forwards;}
.cave-break__dust i:nth-child(3n){background:#c9a6ff;}
.cave-break__dust i:nth-child(4n){background:#4d4258;}
@keyframes cave-dust{
  0%{transform:translate(0,0);opacity:1;}
  30%{transform:translate(var(--x),var(--y));}
  100%{transform:translate(calc(var(--x) * 1.4),var(--fall)) rotate(180deg);opacity:0;}
}
/* Spitzhacke (Fames eigene 16x13-Grafik) */
.cave-break__pick{
  position:absolute;left:calc(50% + 16px);top:calc(44% + 34px);width:166px;height:145px;z-index:12;
  transform-origin:83% 85%;background:url("../assets/hom/pick.png") center/contain no-repeat;image-rendering:pixelated;
  filter:drop-shadow(5px 11px 1px rgba(0,0,0,.91)) drop-shadow(0 0 14px rgba(196,122,255,.26));transform:rotate(40deg);
}
.cave-break--swing .cave-break__pick{animation:cave-pick-swing .53s cubic-bezier(.34,.01,.22,1) 3;}
@keyframes cave-pick-swing{
  0%{transform:translate(9px,4px) rotate(41deg);}
  45%{transform:translate(-44px,-36px) rotate(-46deg);}
  62%{transform:translate(-54px,-41px) rotate(-62deg);}
  100%{transform:translate(9px,4px) rotate(41deg);}
}
/* Aufbrechen: Blöcke fliegen von der Mitte aus zum Betrachter, dann fallen sie */
.cave-break--shatter .cave-break__wall{background-color:transparent;transition:none;}
.cave-break--shatter .cave-break__wall::after{opacity:0;transition:none;}
/* Rückseite der Card im Höhlen-Look (statt Grün) */
.screen--card.hom--cave .cardback{border-color:#b48cff;box-shadow:9px 11px 0 #4a2a86,0 0 40px rgba(180,140,255,.4);}
.screen--card.hom--cave .cardback-q{color:#cfb2ff;text-shadow:0 0 30px #b48cff;}
.cave-break--shatter .cave-break__block{animation:cave-fly 1.25s cubic-bezier(.2,.6,.4,1) var(--delay,0ms) forwards;}
@keyframes cave-fly{
  0%{transform:none;opacity:1;}
  12%{transform:translate3d(calc(var(--dx) * .15),calc(var(--dy) * .15),20px) rotate(calc(var(--rot) * .1));}
  45%{transform:translate3d(var(--dx),var(--dy),var(--dz)) rotate(calc(var(--rot) * .6)) scale(1.05);opacity:1;}
  100%{transform:translate3d(calc(var(--dx) * 1.3),var(--fall),calc(var(--dz) * 1.2)) rotate(var(--rot)) scale(.9);opacity:0;}
}
.cave-break--shatter .cave-break__fracture{opacity:0;transition:opacity .15s;}
.cave-break--shatter .cave-break__pick{animation:none;opacity:0;transition:opacity .15s;}
.cave-break--shatter .cave-break__glow{opacity:0;transform:translate(-50%,-50%) scale(1.8);transition:opacity .9s ease .2s,transform .9s cubic-bezier(.1,.8,.2,1);}
.cave-break__flash{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 44%,rgba(240,220,255,.85),rgba(170,110,255,.35) 40%,transparent 75%);}
.cave-break--shatter .cave-break__flash{animation:cave-flash .7s ease-out forwards;}
@keyframes cave-flash{15%{opacity:1;}100%{opacity:0;}}
@media(prefers-reduced-motion:reduce){
  .cave-break__pick,.cave-break__block,.cave-break__glow,.cave-break__dust i{
    animation:none!important;transition:none!important;
  }
  .cave-break--impact-1 .cave-break__fracture path{
    stroke-dashoffset:0!important;animation:none!important;
  }
  .screen.hom--cave:not(.screen--card) :is(.vault-rays,.hom-torch){animation:none!important;}
}
