/* Reward presentation only. The game still resolves an opening at 1.18s. */
#rewardModal {
  --victory-accent: #94e2ce;
  --victory-rgb: 148, 226, 206;
  background: rgba(2, 7, 13, .6);
  backdrop-filter: blur(5px);
}
#rewardModal.casino-mode,
body[data-world="casino"] #rewardModal { --victory-accent: #cfafff; --victory-rgb: 207, 175, 255; }
#rewardModal .reward-modal-card {
  display: block;
  width: min(980px, 100%);
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border: 0;
  border-radius: 20px;
  background: transparent;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .38);
  scroll-padding-block: 24px;
  transform: none;
  transition: none;
}
#rewardModal .reward-modal-card::after { display: none; content: none; }
#rewardModal .reward-stage {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 490px;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  align-items: center;
  gap: 10px 16px;
  padding: 25px 30px 34px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(232, 202, 146, .37);
  border-radius: 20px;
  background: radial-gradient(ellipse at 25% 58%, rgba(var(--victory-rgb), .12), transparent 48%), radial-gradient(ellipse at 75% 0, rgba(238, 201, 130, .12), transparent 65%), linear-gradient(125deg, rgba(8, 21, 30, .82), rgba(7, 13, 23, .96) 90%);
  box-shadow: inset 0 1px rgba(255, 242, 204, .08), inset 0 -1px rgba(232, 202, 146, .12);
}
#rewardModal .reward-stage::before { position: absolute; z-index: 0; top: 90px; bottom: 44px; left: 54%; width: 1px; background: linear-gradient(180deg, transparent, rgba(235, 207, 151, .22), transparent); content: ""; }
#rewardModal .reward-stage::after { position: absolute; z-index: -1; top: -40%; left: 12%; width: 23%; height: 150%; background: linear-gradient(180deg, rgba(255, 229, 174, .12), transparent 77%); filter: blur(19px); transform: rotate(32deg); content: ""; }
.reward-stage-header { position: relative; z-index: 4; display: flex; min-width: 0; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 14px; padding: 0 4px 17px; border-bottom: 1px solid rgba(235, 207, 151, .13); }
.reward-status { display: flex; align-items: center; gap: 9px; color: #dbc8a9; font-size: 8px; font-weight: 700; letter-spacing: 2px; }
.reward-status svg { width: 11px; height: 17px; fill: #f5dca5; }
.reward-category { padding: 7px 11px; border: 1px solid rgba(var(--victory-rgb), .3); border-radius: 5px; background: rgba(var(--victory-rgb), .055); color: var(--victory-accent); font-size: 8px; font-weight: 700; letter-spacing: 1.4px; line-height: 1.4; text-align: center; }
.reward-illustration { position: relative; z-index: 1; min-width: 0; min-height: 380px; align-self: stretch; isolation: isolate; }
.reward-chest-art { position: absolute; z-index: 3; top: 49%; left: 50%; display: block; width: 450px; max-width: 112%; height: auto; object-fit: contain; filter: drop-shadow(0 23px 20px rgba(0, 0, 0, .6)); transform: translate(-50%, -50%); }
.victory-light { position: absolute; z-index: 0; top: 44%; left: 50%; width: 88%; height: 77%; border-radius: 50%; background: radial-gradient(ellipse, rgba(255, 225, 151, .35), rgba(var(--victory-rgb), .16) 43%, transparent 70%); filter: blur(25px); transform: translate(-50%, -50%); opacity: .9; }
.victory-floor { position: absolute; z-index: 2; right: 7%; bottom: 8%; left: 7%; height: 36px; border: 1px solid rgba(235, 207, 151, .18); border-radius: 50%; background: radial-gradient(ellipse, rgba(235, 207, 151, .11), transparent 70%); box-shadow: 0 9px 24px rgba(0, 0, 0, .35); }
.victory-orbit { position: absolute; z-index: 1; top: 48%; left: 50%; width: 78%; aspect-ratio: 1; border: 1px solid rgba(var(--victory-rgb), .23); border-radius: 50%; opacity: .65; transform: translate(-50%, -50%) rotate(-20deg); }
.victory-orbit::after { position: absolute; top: 10%; left: 18%; width: 4px; height: 4px; border-radius: 50%; background: #f4db9f; box-shadow: 0 0 13px #eed199; content: ""; }
.victory-orbit.ring-two, .victory-orbit.ring2 { width: 88%; border-style: dashed; border-color: rgba(235, 207, 151, .13); transform: translate(-50%, -50%) rotate(16deg); }
.victory-sparkles { position: absolute; z-index: 4; inset: 0; pointer-events: none; }
.victory-sparkles i { position: absolute; top: 25%; left: calc(7% + var(--i, 0) * 4.9%); width: 3px; height: 3px; border-radius: 50%; background: #fce6ad; box-shadow: 0 0 9px rgba(255, 224, 147, .7); opacity: .65; }
.victory-sparkles i:nth-child(2n) { top: 65%; width: 2px; height: 2px; background: var(--victory-accent); }
.victory-sparkles i:nth-child(3n) { top: 44%; }
.victory-sparkles i:nth-child(5n) { top: 17%; }
#rewardModal .reward-details { position: relative; z-index: 4; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: 9px 16px 9px 15px; text-align: left; }
#rewardModal .reward-kicker { margin: 0; color: #fff8e9; font: 800 43px/1 "Barlow Condensed", sans-serif; letter-spacing: 1.2px; }
.reward-subtitle { margin: 7px 0 0; color: #b7c1cd; font-size: 12px; line-height: 1.5; }
#rewardModal #rewardAmount { max-width: 100%; margin: 20px 0 7px; color: #ffe9b2; font: 800 clamp(76px, 7.7vw, 108px)/.95 "Barlow Condensed", sans-serif; letter-spacing: -1px; text-shadow: 0 4px 0 rgba(112, 72, 22, .23), 0 0 40px rgba(237, 196, 116, .15); overflow-wrap: anywhere; }
.reward-kind { display: flex; max-width: 100%; align-items: center; gap: 9px; }
#rewardModal .reward-icon { display: grid; width: 27px; height: 27px; flex-shrink: 0; place-items: center; border: 1px solid rgba(237, 203, 140, .35); border-radius: 6px; background: rgba(237, 203, 140, .065); color: #f6d99d; font: 600 18px/1 "Barlow Condensed", sans-serif; text-shadow: none; }
#rewardModal .reward-label { margin: 0; color: #ead1a0; font-size: 10px; font-weight: 700; letter-spacing: 2px; line-height: 1.5; }
#rewardModal .reward-divider { width: 100%; max-width: 320px; margin: 22px 0 15px; }
.reward-confirmation { max-width: 300px; margin: 0; color: #bac3cd; font-size: 9px; font-weight: 500; letter-spacing: .7px; line-height: 1.7; }
#rewardModal .continue-button { width: min(320px, 100%); min-height: 54px; margin-top: 24px; padding: 14px 19px; border-color: #ffe7b8; background: linear-gradient(110deg, #fff0c9, #e0b971 76%, #eacb91); box-shadow: inset 0 1px rgba(255, 255, 255, .7), 0 10px 28px rgba(0, 0, 0, .35), 0 0 30px rgba(231, 195, 128, .07); font-size: 11px; letter-spacing: 1.5px; opacity: 1; animation: none; }
#rewardModal .continue-button:focus-visible { outline-color: #fff4d9; outline-offset: 4px; }
.reward-stage-corner { position: absolute; z-index: 6; width: 43px; height: 43px; border-top: 2px solid #dec18d; border-left: 2px solid #dec18d; border-radius: 6px 0 0; opacity: .8; pointer-events: none; }
.reward-stage-corner::after { position: absolute; top: 6px; left: 6px; width: 16px; height: 16px; border-top: 1px solid rgba(222, 193, 141, .45); border-left: 1px solid rgba(222, 193, 141, .45); content: ""; }
.corner-tl { top: 8px; left: 8px; }
.corner-tr { top: 8px; right: 8px; transform: rotate(90deg); }
.corner-br { right: 8px; bottom: 8px; transform: rotate(180deg); }
.corner-bl { bottom: 8px; left: 8px; transform: rotate(-90deg); }
.reward-stage-glint { position: absolute; z-index: 5; top: -25%; left: -35%; width: 22%; height: 150%; background: linear-gradient(90deg, transparent, rgba(255, 239, 196, .13), transparent); opacity: 0; transform: rotate(25deg); pointer-events: none; }
body.opened .reward-chest-art { animation: v3HeroArrive .5s cubic-bezier(.18,.8,.3,1) both, v3HeroFloat 6s .5s ease-in-out infinite; }
body.opened .victory-light { animation: v3LightArrive .5s ease-out both, v3LightBreathe 5s .5s ease-in-out infinite alternate; }
body.opened .victory-orbit { animation: v3Orbit 45s linear infinite; }
body.opened .victory-orbit.ring-two, body.opened .victory-orbit.ring2 { animation-direction: reverse; animation-duration: 60s; }
body.opened .victory-sparkles i { animation: v3SparkFloat calc(3.2s + var(--i, 0) * .12s) calc(var(--i, 0) * -.21s) ease-in-out infinite; }
body.opened .reward-stage-corner { animation: v3FrameArrive .5s ease-out both; }
body.opened .reward-stage-glint { animation: v3Glint .5s .08s ease-out both; }

/* Charge -> lid lift -> genuinely open chest, all inside the existing timer. */
.main-chest { perspective: 900px; transform-style: preserve-3d; isolation: isolate; }
.main-chest .chest-bottom { z-index: 3; clip-path: inset(0); opacity: 1; }
.main-chest .chest-lid { z-index: 5; display: block; clip-path: inset(0 0 58% 0); opacity: 0; transform-origin: 50% 42%; backface-visibility: hidden; }
.main-chest .chest-lid img { display: block; width: 100%; height: 100%; object-fit: contain; }
.chest-open-piece { position: absolute; z-index: 4; inset: 0; display: block; clip-path: inset(0 0 100% 0); opacity: 0; transform: none; pointer-events: none; }
.chest-open-piece img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 23px 19px rgba(0, 0, 0, .55)); transform: translateY(3%) scale(.92); }
.chest-interior-light { position: absolute; z-index: 2; top: -12%; left: 15%; width: 70%; height: 83%; clip-path: polygon(42% 100%, 58% 100%, 100% 0, 0 0); background: linear-gradient(0deg, rgba(255, 221, 139, .8), rgba(255, 233, 172, .2) 56%, transparent); filter: blur(11px); opacity: 0; transform-origin: 50% 100%; pointer-events: none; }
.lock-energy { position: absolute; z-index: 7; top: 55%; left: 50%; width: 20px; height: 20px; transform: translate(-50%, -50%); pointer-events: none; }
.lock-energy i { position: absolute; inset: -16px; border: 1px solid #ffe1a0; border-radius: 50%; background: radial-gradient(circle, rgba(255, 225, 160, .12), transparent 70%); box-shadow: 0 0 13px rgba(255, 217, 136, .45); opacity: 0; }
.lock-energy i:nth-child(2) { inset: -31px; border-style: dashed; border-color: var(--accent); }
.lock-energy i:nth-child(3) { inset: -47px; border-color: rgba(255, 225, 160, .55); }
.opening-fx { position: absolute; z-index: 8; inset: 0; pointer-events: none; }
.opening-fx i { position: absolute; top: 54%; left: 50%; width: 3px; height: 8px; border-radius: 2px; background: #ffe2a1; box-shadow: 0 0 7px rgba(255, 221, 150, .6); opacity: 0; }
.charge-vortex { position: absolute; z-index: 4; top: 54%; left: 50%; width: min(320px, 88%); aspect-ratio: 1; border: 1px solid rgba(var(--accent-rgb), .5); border-radius: 50%; background: repeating-conic-gradient(from 25deg, rgba(var(--accent-rgb), .2) 0 2deg, transparent 2deg 30deg); mask-image: radial-gradient(circle, transparent 39%, #000 65%, transparent 72%); opacity: 0; transform: translate(-50%, -50%); pointer-events: none; }
.charge-floor { position: absolute; z-index: 2; right: 17%; bottom: 4%; left: 17%; height: 26%; border-radius: 50%; background: radial-gradient(ellipse, rgba(255, 224, 158, .42), rgba(var(--accent-rgb), .15) 49%, transparent 73%); filter: blur(17px); opacity: 0; pointer-events: none; }
body.striking .main-chest { animation: v3ChestCharge 1.18s ease-in-out both; }
body.striking .main-chest .chest-bottom { animation: v3ClosedWipe 1.18s linear both; }
body.striking .main-chest .chest-lid { animation: v3LidLift 1.18s ease-out both; }
body.striking .chest-open-piece { animation: v3ChestOpen 1.18s linear both; }
body.striking .chest-interior-light { animation: v3InteriorBloom 1.18s ease-out both; }
body.striking .lock-energy i { animation: v3LockCharge .65s ease-in both; }
body.striking .lock-energy i:nth-child(2) { animation-delay: .05s; animation-duration: .6s; }
body.striking .lock-energy i:nth-child(3) { animation-delay: .1s; animation-duration: .55s; }
body.striking .charge-vortex { animation: v3VortexCharge .65s ease-in both; }
body.striking .charge-floor { animation: v3FloorCharge 1.18s ease-out both; }
body.striking .opening-fx i { animation: v3OpeningSpark .5s .65s ease-out both; }
body.striking .lightning { animation: v3Lightning 1.18s ease-out both; }
body.striking .bolt-glow, body.striking .bolt-core { animation: boltDraw .58s .06s ease-out both; }
body.striking .flash { animation: v3WarmBloom .5s .62s ease-out both; }
body.opened .main-chest { opacity: .4; }
body.opened .main-chest .chest-bottom, body.opened .main-chest .chest-lid { opacity: 0; }
body.opened .main-chest .chest-bottom { clip-path: inset(100% 0 0 0); }
body.opened .chest-open-piece { clip-path: inset(0); opacity: 1; transform: none; }
body.opened .chest-interior-light { opacity: .35; }
body.striking .chest-nameplate, body.opened .chest-nameplate { visibility: hidden; }

@keyframes v3HeroArrive { from { opacity: .25; transform: translate(-50%, -45%) scale(.91); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes v3HeroFloat { 0%, 100% { transform: translate(-50%, -50%); } 50% { transform: translate(-50%, calc(-50% - 7px)); } }
@keyframes v3LightArrive { from { opacity: .2; transform: translate(-50%, -50%) scale(.65); } to { opacity: .9; transform: translate(-50%, -50%) scale(1); } }
@keyframes v3LightBreathe { from { opacity: .9; } to { opacity: .55; } }
@keyframes v3Orbit { to { transform: translate(-50%, -50%) rotate(340deg); } }
@keyframes v3SparkFloat { 0%, 100% { opacity: .2; transform: translateY(7px); } 50% { opacity: .85; transform: translateY(-12px); } }
@keyframes v3FrameArrive { from { opacity: .25; } to { opacity: .8; } }
@keyframes v3Glint { 0% { opacity: 0; transform: translateX(0) rotate(25deg); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateX(650%) rotate(25deg); } }
@keyframes v3ChestCharge { 0%, 100% { transform: translateX(-50%); } 25% { transform: translateX(-50%) translateY(-3px); } 40% { transform: translateX(calc(-50% - 2px)) rotate(-.3deg); } 49% { transform: translateX(calc(-50% + 2px)) rotate(.3deg); } 58% { transform: translateX(-50%) scale(1.018); } 85% { transform: translateX(-50%) scale(1.01); } }
/* Complementary clips share the same clock/easing: no two body pixels overlap. */
@keyframes v3ClosedWipe { 0%, 55% { clip-path: inset(0); opacity: 1; } 80% { clip-path: inset(100% 0 0 0); opacity: 1; } 100% { clip-path: inset(100% 0 0 0); opacity: 0; } }
@keyframes v3LidLift { 0%, 54% { opacity: 0; transform: none; } 55% { opacity: 1; transform: none; } 62% { opacity: .7; transform: translateY(-16px) rotateX(-38deg); } 70%, 100% { opacity: 0; transform: translateY(-45px) rotateX(-70deg); } }
@keyframes v3ChestOpen { 0%, 54.999% { clip-path: inset(0 0 100% 0); opacity: 0; transform: none; } 55% { clip-path: inset(0 0 100% 0); opacity: 1; transform: none; } 80%, 100% { clip-path: inset(0); opacity: 1; transform: none; } }
@keyframes v3InteriorBloom { 0%, 48% { opacity: 0; transform: scale(.8); } 68% { opacity: .75; transform: scale(1.08); } 100% { opacity: .35; transform: scale(1); } }
@keyframes v3LockCharge { 0% { opacity: 0; transform: rotate(0) scale(1.5); } 25% { opacity: .7; } 75% { opacity: 1; } 100% { opacity: 0; transform: rotate(130deg) scale(.15); } }
@keyframes v3VortexCharge { 0% { opacity: 0; transform: translate(-50%, -50%) rotate(-45deg) scale(1.2); } 30% { opacity: .75; } 100% { opacity: 0; transform: translate(-50%, -50%) rotate(110deg) scale(.2); } }
@keyframes v3FloorCharge { 0% { opacity: 0; transform: scale(.65); } 55% { opacity: .9; transform: scale(1.1); } 100% { opacity: .35; transform: scale(1); } }
@keyframes v3OpeningSpark { 0% { opacity: 0; transform: translate(0, 0) scale(.4); } 15% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--x, 0px), var(--y, -95px)) rotate(var(--a, 0rad)) scale(.7); } }
@keyframes v3Lightning { 0% { opacity: 0; } 20%, 54% { opacity: 1; } 80%, 100% { opacity: 0; } }
@keyframes v3WarmBloom { 0%, 100% { opacity: 0; } 38% { opacity: .38; } }

@media (max-width: 850px) {
  #rewardModal .reward-stage { min-height: 435px; gap: 8px; padding: 23px 23px 29px; }
  .reward-illustration { min-height: 330px; }
  .reward-chest-art { width: 400px; max-width: 118%; }
  #rewardModal .reward-details { padding-right: 7px; padding-left: 9px; }
  #rewardModal .reward-kicker { font-size: 37px; }
  #rewardModal #rewardAmount { font-size: 84px; }
  #rewardModal .reward-label { font-size: 9px; letter-spacing: 1.3px; }
  .reward-subtitle { font-size: 11px; }
  #rewardModal .continue-button { margin-top: 20px; }
}

@media (max-width: 620px) {
  #rewardModal .reward-modal-card { width: min(430px, 100%); border-radius: 16px; }
  #rewardModal .reward-stage { min-height: 0; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 256px auto; gap: 0; padding: 22px 23px 26px; border-radius: 16px; }
  #rewardModal .reward-stage::before { display: none; }
  .reward-stage-header { padding: 0 1px 12px; gap: 10px; }
  .reward-status { gap: 6px; font-size: 7px; letter-spacing: 1.4px; }
  .reward-category { max-width: 145px; padding: 6px 8px; font-size: 7px; letter-spacing: .9px; }
  .reward-illustration { min-height: 0; grid-column: 1; grid-row: 2; }
  .reward-chest-art { top: 50%; width: 240px; max-width: 100%; }
  .victory-light { top: 47%; width: 90%; height: 100%; filter: blur(20px); }
  .victory-orbit { top: 48%; width: 66%; }
  .victory-orbit.ring-two, .victory-orbit.ring2 { width: 74%; }
  .victory-floor { right: 12%; bottom: 9%; left: 12%; height: 22px; }
  #rewardModal .reward-details { grid-column: 1; grid-row: 3; align-items: center; padding: 0 0 7px; text-align: center; }
  #rewardModal .reward-kicker { font-size: 34px; letter-spacing: 1px; }
  .reward-subtitle { margin-top: 5px; font-size: 10px; }
  #rewardModal #rewardAmount { margin-top: 13px; margin-bottom: 6px; font-size: 73px; }
  #rewardModal .reward-icon { width: 24px; height: 24px; font-size: 16px; }
  #rewardModal .reward-label { font-size: 9px; letter-spacing: 1.7px; }
  #rewardModal .reward-divider { width: 84%; margin: 15px 0 11px; }
  .reward-confirmation { max-width: 270px; font-size: 8px; letter-spacing: .5px; }
  #rewardModal .continue-button { width: 100%; min-height: 50px; margin-top: 18px; padding: 12px 17px; font-size: 10px; }
  .reward-stage-corner { width: 32px; height: 32px; }
  .reward-stage-corner::after { width: 12px; height: 12px; }
}

@media (max-width: 360px), (max-width: 620px) and (max-height: 650px) {
  #rewardModal .reward-stage { grid-template-rows: auto 196px auto; padding: 18px 18px 22px; }
  .reward-stage-header { padding-bottom: 9px; }
  .reward-status { gap: 5px; font-size: 6px; letter-spacing: .8px; }
  .reward-status svg { width: 9px; height: 14px; }
  .reward-category { padding: 5px 6px; font-size: 6px; letter-spacing: .7px; }
  .reward-chest-art { top: 50%; width: 180px; max-width: 100%; }
  .victory-orbit { width: 60%; }
  .victory-orbit.ring-two, .victory-orbit.ring2 { width: 69%; }
  .victory-floor { bottom: 4%; }
  #rewardModal .reward-kicker { font-size: 29px; }
  .reward-subtitle { margin-top: 4px; font-size: 9px; }
  #rewardModal #rewardAmount { margin-top: 10px; font-size: 58px; }
  #rewardModal .reward-icon { width: 22px; height: 22px; font-size: 15px; }
  #rewardModal .reward-label { font-size: 8px; letter-spacing: 1.3px; }
  #rewardModal .reward-divider { margin: 11px 0 9px; }
  .reward-confirmation { font-size: 7px; letter-spacing: .3px; }
  #rewardModal .continue-button { min-height: 45px; margin-top: 14px; padding: 11px 14px; font-size: 9px; }
}

/* Landscape phones retain both columns and keep the action in the frame. */
@media (min-width: 621px) and (max-height: 500px) {
  #rewardModal .reward-modal-card { width: min(880px, 100%); }
  #rewardModal .reward-stage { min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5px 12px; padding: 19px 25px 23px; }
  .reward-stage-header { padding-bottom: 10px; }
  .reward-status { font-size: 7px; letter-spacing: 1.5px; }
  .reward-category { padding: 5px 9px; font-size: 7px; }
  .reward-illustration { min-height: 260px; }
  .reward-chest-art { top: 49%; width: 316px; max-width: 100%; }
  .victory-orbit { width: 70%; }
  .victory-orbit.ring-two, .victory-orbit.ring2 { width: 78%; }
  .victory-floor { bottom: 5%; }
  #rewardModal .reward-details { padding: 5px 8px; }
  #rewardModal .reward-kicker { font-size: 32px; }
  .reward-subtitle { margin-top: 4px; font-size: 10px; }
  #rewardModal #rewardAmount { margin: 10px 0 5px; font-size: 64px; }
  #rewardModal .reward-icon { width: 23px; height: 23px; font-size: 15px; }
  #rewardModal .reward-label { font-size: 8px; letter-spacing: 1.2px; }
  #rewardModal .reward-divider { margin: 12px 0 9px; }
  .reward-confirmation { font-size: 8px; letter-spacing: .3px; }
  #rewardModal .continue-button { min-height: 44px; margin-top: 14px; padding: 11px 16px; font-size: 9px; }
  .reward-stage-corner { width: 29px; height: 29px; }
}

@media (prefers-reduced-motion: reduce) {
  #rewardModal *, #rewardModal *::before, #rewardModal *::after,
  .main-chest, .main-chest *, .charge-vortex, .charge-floor { animation: none !important; transition: none !important; }
  .reward-chest-art { opacity: 1; transform: translate(-50%, -50%); }
  .reward-stage-glint, .victory-sparkles, .opening-fx, .lock-energy, .charge-vortex, .charge-floor { display: none; }
  .main-chest .chest-lid { display: none; }
  body.striking:not(.opened) .main-chest .chest-bottom { clip-path: inset(0); opacity: 1; }
  body.striking:not(.opened) .chest-open-piece { clip-path: inset(0 0 100% 0); opacity: 0; }
  body.opened .main-chest .chest-bottom { clip-path: inset(100% 0 0 0); opacity: 0; }
  body.opened .chest-open-piece { clip-path: inset(0); opacity: 1; transform: none; }
  body.opened .chest-interior-light { opacity: .25; }
}
