.craft-card[hidden],
.workshop-grove-screen[hidden] { display: none !important; }

.fossiliser-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  gap: 18px;
  box-sizing: border-box;
  width: min(100%, 998px);
  margin-inline: auto;
}

.fossiliser-card {
  position: relative;
  min-width: 0;
  padding: 18px 14px 15px;
  border: 1px solid rgba(170, 221, 179, .28);
  border-radius: 15px;
  background: linear-gradient(155deg, rgba(10, 28, 21, .96), rgba(17, 42, 30, .88));
  box-shadow: inset 0 0 28px rgba(116, 204, 145, .06), 0 10px 25px rgba(0, 0, 0, .2);
  text-align: center;
}

.fossiliser-card.is-locked { filter: none; border-style: dashed; border-color: rgba(177, 193, 177, .22); }
.fossiliser-card.is-locked .fossiliser-flow > .fossiliser-item > img,
.fossiliser-card.is-locked .fossiliser-flow > .fossiliser-item > strong,
.fossiliser-card.is-locked .fossiliser-flow > .fossiliser-item > .fossiliser-item-kicker,
.fossiliser-card.is-locked .fossiliser-flow > .fossiliser-arrow { opacity: .46; filter: grayscale(.65); }
.fossiliser-card h3 { margin: 6px 0 2px; color: #dff4d4; font-size: 1.1rem; }
.fossiliser-level { color: #9ad7ad; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.fossiliser-flow { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 14px 0; }
.fossiliser-item {
  min-height: 90px;
  padding: 8px;
  border: 1px dashed rgba(191, 230, 184, .34);
  border-radius: 12px;
  background: rgba(3, 14, 10, .5);
}
.fossiliser-item.is-drop-target { border-style: solid; box-shadow: 0 0 0 2px rgba(111, 226, 148, .35); }
.fossiliser-item img { width: 54px; height: 54px; object-fit: contain; display: block; margin: 0 auto 3px; }
.fossiliser-output img { width: 72px; height: 72px; margin-top: -9px; }
.fossiliser-item span { font-size: .75rem; color: #cfe7ce; }
.fossiliser-arrow { color: #85c59b; font-size: 1.35rem; }
.fossiliser-progress { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(0, 0, 0, .5); margin: 10px 0 5px; }
.fossiliser-progress > span { display: block; width: var(--progress, 0%); height: 100%; background: linear-gradient(90deg, #70c488, #d5b968); transition: width .15s linear; }
.fossiliser-status { min-height: 1.2em; color: #b8d7ba; font-size: .75rem; }
.fossiliser-actions { display: flex; justify-content: center; gap: 7px; margin-top: 10px; }
.fossiliser-actions button { min-width: 72px; }
.fossiliser-modules { display: grid; grid-template-columns: repeat(4, 36px); justify-content: center; gap: 6px; margin-top: 12px; }
.fossiliser-module-slot { position: relative; width: 36px; height: 36px; padding: 3px; border: 1px solid rgba(182, 220, 177, .32); border-radius: 7px; background: rgba(2, 12, 8, .64); }
.fossiliser-module-slot img { width: 100%; height: 100%; object-fit: contain; }
.fossiliser-module-slot.locked-slot { opacity: .55; }
.fossiliser-module-slot.disabled-module { opacity: .5; filter: grayscale(.65); }
.fossiliser-module-slot .module-charges-badge { position: absolute; right: -3px; bottom: -4px; }

.price-board-heading { width: 100%; margin-bottom: 12px; color: #d7eccf; text-align: center; text-transform: uppercase; letter-spacing: .11em; font-size: .76rem; }
.material-price-list { display: flex; flex-direction: column; gap: 9px; width: 100%; max-height: 430px; overflow-y: auto; padding-right: 5px; scrollbar-color: #9b7436 #081a14; scrollbar-width: thin; }
.material-price-section { display: flex; flex-direction: column; gap: 7px; }
.material-price-section + .material-price-section { margin-top: 7px; padding-top: 10px; border-top: 1px solid rgba(217, 194, 122, .17); }
.material-price-section-title { margin: 0 3px; color: #b8e3c0; font: 700 .66rem/1 var(--font-heading); letter-spacing: .14em; text-transform: uppercase; }
.material-price-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 13px; width: 100%; padding: 10px 13px; border: 1px solid rgba(183, 218, 164, .24); border-radius: 12px; background: linear-gradient(160deg, rgba(13, 48, 37, .82), rgba(5, 23, 18, .92)); box-shadow: inset 0 0 0 1px rgba(224, 238, 218, .025), 0 6px 16px rgba(0, 0, 0, .28); color: #dcebd8; }
.material-price-icon { width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .6)); }
.material-price-name { font: 700 .98rem/1.15 var(--font-heading); letter-spacing: .02em; background: linear-gradient(180deg, #f7ecc0 0%, #d9c27a 55%, #a9863f 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.material-price-cost { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.material-price-reward { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.material-price-plus { color: rgba(217, 194, 122, .7); font-weight: 700; }
.material-price-cost strong { color: var(--gold); font: 800 1rem/1 var(--font-heading); font-variant-numeric: tabular-nums; text-shadow: 0 1px 2px #000; }
.material-price-cost .price-coin { width: 24px; height: 24px; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .55)); }

/* Refined Essence Valley production presentation. */
.fossiliser-grid { grid-template-columns: repeat(4, minmax(236px, 1fr)); }
.fossiliser-card {
  padding: 17px 14px 16px;
  border-color: color-mix(in srgb, var(--main) 36%, rgba(198, 220, 191, .24));
  border-radius: 17px;
  background: radial-gradient(circle at 50% -10%, color-mix(in srgb, var(--main) 14%, transparent), transparent 44%), linear-gradient(155deg, rgba(10, 28, 21, .98), rgba(9, 23, 17, .96));
  box-shadow: inset 0 0 0 1px rgba(224, 238, 218, .035), inset 0 0 32px color-mix(in srgb, var(--main) 5%, transparent), 0 12px 28px rgba(0, 0, 0, .3);
}
.fossiliser-card::before { content: ""; position: absolute; inset: 5px; border: 1px solid rgba(217, 194, 122, .1); border-radius: 12px; pointer-events: none; }
.fossiliser-card h3 { margin: 5px 0 2px; color: #f0e6c6; font: 700 1.05rem/1.18 var(--font-heading); text-shadow: 0 2px 4px #000; }
.fossiliser-level { color: color-mix(in srgb, var(--main) 66%, #e5d69a); font: 800 .7rem/1 var(--font-heading); letter-spacing: .13em; }
.fossiliser-subtitle { margin: 4px 0 0; color: rgba(188, 213, 193, .5); font: 700 .52rem/1.2 'Trebuchet MS', sans-serif; letter-spacing: .1em; }
.fossiliser-flow { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 7px; margin: 14px 0 12px; }
.fossiliser-cycle-cost { margin: -7px 0 8px; color: #d8d2ad; font: 800 .55rem/1.2 'Trebuchet MS', sans-serif; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.fossiliser-item {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 132px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 9px 6px 8px;
  border-style: solid;
  border-color: rgba(191, 230, 184, .22);
  background: radial-gradient(circle at 50% 36%, color-mix(in srgb, var(--main) 14%, transparent), transparent 62%), rgba(2, 11, 7, .72);
  color: #e3eadf;
  font-family: 'Trebuchet MS', sans-serif;
  cursor: help;
}
.fossiliser-input { border-style: dashed; cursor: pointer; }
.fossiliser-item img { width: 58px; height: 58px; margin: 0; filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .62)); }
.fossiliser-output img { width: 72px; height: 72px; margin: -4px 0 -2px; }
.fossiliser-output.is-output-ready {
  animation: vh-output-ready-pulse 2.4s ease-in-out infinite;
  border-color: color-mix(in srgb, var(--gold) 64%, var(--main));
  box-shadow: inset 0 0 18px color-mix(in srgb, var(--main) 22%, transparent), 0 0 16px color-mix(in srgb, var(--gold) 24%, transparent);
}
.craft-card.is-output-ready .craft-icon-frame {
  border-color: var(--gold);
  box-shadow: inset 0 0 16px color-mix(in srgb, var(--gold) 13%, transparent), 0 0 11px color-mix(in srgb, var(--gold) 17%, transparent);
}
.craft-card[data-potion] .craft-icon-frame > img {
  transform: scale(.8);
  transform-origin: 50% 52%;
  transition: transform .32s ease, filter .32s ease;
}
.craft-card.is-output-ready .craft-icon-frame > img {
  transform: scale(1);
  animation: vh-resin-ready-pulse 2.15s ease-in-out infinite;
}
.craft-card.is-output-ready .craft-icon-frame::before {
  content: '';
  position: absolute;
  z-index: 0;
  inset: 8px 5px 22px;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(circle at 19% 70%, color-mix(in srgb, var(--main) 78%, white) 0 1px, transparent 2px),
    radial-gradient(circle at 76% 64%, color-mix(in srgb, var(--main) 68%, white) 0 1.5px, transparent 2.8px),
    radial-gradient(circle at 44% 35%, color-mix(in srgb, var(--gold) 74%, white) 0 1px, transparent 2px),
    radial-gradient(circle at 64% 18%, color-mix(in srgb, var(--main) 58%, white) 0 1px, transparent 2.4px),
    radial-gradient(circle at 31% 51%, color-mix(in srgb, var(--gold) 58%, transparent) 0 1.3px, transparent 2.7px);
  animation: vh-resin-particles 2.3s ease-in-out infinite;
}
#craft-grid-potions > .craft-card[data-potion].is-output-ready .craft-btn {
  border-width: 2px;
  border-color: var(--gold) !important;
  background: linear-gradient(145deg, #f1d77a 0%, #c49835 48%, #6b6925 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 251, 223, .58), 0 0 18px rgba(217, 194, 122, .62) !important;
  color: #fffbe1;
}
#craft-grid-potions > .craft-card[data-potion].is-output-ready .craft-btn:hover:not(:disabled),
#craft-grid-potions > .craft-card[data-potion].is-output-ready .craft-btn:focus-visible {
  border-color: #fff0b7;
  background: linear-gradient(145deg, #fff0ad 0%, #d6ad49 48%, #7a782e 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 236, .7), 0 0 24px rgba(217, 194, 122, .78) !important;
}
.fossiliser-card:not(.is-locked) .fossiliser-input {
  opacity: .5;
  transition: opacity .2s ease, filter .2s ease;
}
.fossiliser-card:not(.is-locked) .fossiliser-input.is-buffer-ready { opacity: 1 !important; }
.fossiliser-card:not(.is-locked) .fossiliser-output:not(.is-output-ready) img {
  opacity: .7;
  filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .62)) brightness(.72) saturate(.86);
  transition: opacity .2s ease, filter .2s ease;
}
.fossiliser-card:not(.is-locked) .fossiliser-output.is-output-ready img {
  opacity: 1;
  filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .62)) brightness(1) saturate(1);
}
.craft-icon-frame.is-output-draggable,
.fossiliser-output.is-output-draggable,
.fossiliser-input.is-output-draggable {
  cursor: grab;
  touch-action: none;
}
.craft-icon-frame.is-output-draggable.dragging,
.fossiliser-output.is-output-draggable.dragging,
.fossiliser-input.is-output-draggable.dragging {
  opacity: .42;
  cursor: grabbing;
}
.fossiliser-card.is-output-ready .fossiliser-action--start.is-collect { border-color: var(--gold); background: linear-gradient(155deg, rgba(102, 79, 30, .92), rgba(25, 39, 20, .98)); }
@keyframes vh-output-ready-pulse {
  0%, 100% { filter: brightness(1); transform: scale(1); }
  50% { filter: brightness(1.14); transform: scale(1.018); }
}
@keyframes vh-resin-ready-pulse {
  0%, 100% { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .5)) brightness(1); }
  50% { filter: drop-shadow(0 5px 12px color-mix(in srgb, var(--main) 74%, transparent)) brightness(1.18); }
}
@keyframes vh-resin-particles {
  0%, 100% { opacity: .38; transform: translateY(5px) scale(.96); }
  50% { opacity: .96; transform: translateY(-4px) scale(1.03); }
}
.fossiliser-item strong { display: -webkit-box; min-height: 2.3em; overflow: hidden; color: #efe6c8; font: 700 .64rem/1.15 var(--font-heading); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.fossiliser-item .fossiliser-item-kicker { color: color-mix(in srgb, var(--main) 65%, #cfbd7e); font-size: .48rem; font-weight: 800; letter-spacing: .1em; }
.fossiliser-item .fossiliser-item-count { min-width: 48px; margin-top: 2px; padding: 2px 6px; border: 1px solid rgba(217, 194, 122, .28); border-radius: 999px; background: #050a07; color: #dce8d9; font-size: .62rem; font-weight: 800; }
.fossiliser-arrow { color: color-mix(in srgb, var(--main) 70%, var(--gold)); font-size: 1.25rem; text-shadow: 0 0 8px color-mix(in srgb, var(--main) 45%, transparent); }
.fossiliser-progress { height: 8px; border: 1px solid rgba(217, 194, 122, .2); background: #030604; box-shadow: inset 0 2px 5px #000; margin: 8px 0 6px; }
.fossiliser-progress > span { background: linear-gradient(90deg, color-mix(in srgb, var(--main) 82%, #6fcf8b), #d7bd70); box-shadow: 0 0 8px color-mix(in srgb, var(--main) 55%, transparent); }
.fossiliser-status { min-height: 1.25em; color: #c9d9c7; font: 700 .68rem/1.25 'Trebuchet MS', sans-serif; }
.fossiliser-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 6px; margin-top: 11px; }
.fossiliser-upgrade-wrap { position: relative; display: flex; min-width: 0; }
.fossiliser-actions .fossiliser-action { display: flex; min-width: 0; min-height: 46px; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 6px 4px; border: 1px solid rgba(217, 194, 122, .34); border-radius: 8px; background: linear-gradient(160deg, rgba(25, 48, 34, .96), rgba(6, 18, 11, .98)); color: #e4eadf; font: 700 .59rem/1.15 'Trebuchet MS', sans-serif; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.fossiliser-action > span:first-child { color: var(--gold); font-size: .8rem; }
.fossiliser-action small { color: rgba(211, 224, 207, .58); font-size: .49rem; letter-spacing: .06em; }
.fossiliser-actions .fossiliser-action--start { border-color: color-mix(in srgb, var(--main) 52%, var(--gold)); background: linear-gradient(155deg, color-mix(in srgb, var(--main) 24%, #122419), #07130c); }
.fossiliser-actions .fossiliser-action--upgrade { width: 100%; }
.fossiliser-action:hover:not(:disabled):not(.is-unavailable), .fossiliser-action:focus-visible { border-color: var(--gold); outline: 0; box-shadow: 0 0 12px rgba(217, 194, 122, .14); }
.fossiliser-action:disabled, .fossiliser-action.is-unavailable { opacity: .38; cursor: help; }
.fossiliser-unlock { position: relative; display: flex; width: 100%; min-height: 48px; margin-top: 10px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--gold); border-radius: 9px; background: rgba(217, 194, 122, .08); color: #eadba9; font: 800 .62rem/1.2 var(--font-heading); cursor: pointer; }
.fossiliser-unlock small { display: flex; align-items: center; gap: 5px; color: #d7e2d4; font: 700 .58rem 'Trebuchet MS', sans-serif; }
.fossiliser-unlock small img { width: 18px; height: 18px; object-fit: contain; }
.fossiliser-unlock small b { color: rgba(217, 194, 122, .62); }
.fossiliser-unlock.is-ready-to-unlock { border-color: #f2d477; background: linear-gradient(160deg, rgba(113, 82, 25, .98), rgba(49, 34, 12, .99)); color: #fff4c2; box-shadow: inset 0 1px 0 rgba(255, 246, 196, .26), inset 0 0 14px rgba(242, 196, 79, .11), 0 0 14px rgba(226, 180, 63, .34); filter: saturate(1.08); animation: fossiliser-unlock-ready-pulse 1.8s ease-in-out infinite; }
.fossiliser-unlock.is-ready-to-unlock > span,
.fossiliser-unlock.is-ready-to-unlock > small { position: relative; z-index: 1; opacity: 1; }
.fossiliser-unlock.is-ready-to-unlock small { color: #fff0b2; }
.fossiliser-unlock.is-ready-to-unlock small b { color: #f4d26c; }
.fossiliser-unlock.is-ready-to-unlock:hover,
.fossiliser-unlock.is-ready-to-unlock:focus-visible { border-color: #ffe49a; outline: 0; background: linear-gradient(160deg, rgba(139, 101, 29, .99), rgba(61, 41, 12, 1)); box-shadow: inset 0 1px 0 rgba(255, 250, 218, .34), inset 0 0 17px rgba(255, 210, 87, .16), 0 0 19px rgba(237, 193, 72, .5); }
.fossiliser-unlock:disabled, .fossiliser-unlock.is-unavailable { opacity: 1; cursor: help; }
.fossiliser-unlock:disabled > span,
.fossiliser-unlock:disabled > small,
.fossiliser-unlock.is-unavailable > span,
.fossiliser-unlock.is-unavailable > small { opacity: .42; }
.fossiliser-unlock[hidden] { display: none; }
@keyframes fossiliser-unlock-ready-pulse {
  0%, 100% { filter: saturate(1.08) brightness(1); box-shadow: inset 0 1px 0 rgba(255, 246, 196, .26), inset 0 0 14px rgba(242, 196, 79, .11), 0 0 12px rgba(226, 180, 63, .28); }
  50% { filter: saturate(1.14) brightness(1.09); box-shadow: inset 0 1px 0 rgba(255, 250, 218, .34), inset 0 0 18px rgba(255, 211, 91, .16), 0 0 20px rgba(237, 193, 72, .5); }
}
@media (prefers-reduced-motion: reduce) {
  .fossiliser-unlock.is-ready-to-unlock { animation: none; }
}
.fossiliser-module-heading { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 14px 1px 6px; color: rgba(215, 229, 212, .7); font: 800 .5rem/1 'Trebuchet MS', sans-serif; letter-spacing: .08em; }
.fossiliser-module-heading small { color: rgba(197, 215, 194, .35); font-size: .43rem; }
.fossiliser-modules { grid-template-columns: repeat(4, 38px); gap: 7px; margin-top: 0; }
.fossiliser-module-slot-wrap { position: relative; }
.fossiliser-module-slot { display: grid; place-items: center; width: 38px; height: 38px; padding: 4px; border: 2px dashed rgba(217,194,122,.3); border-radius: 8px; background: rgba(0,0,0,.22); color: rgba(217,194,122,.48); cursor: default; box-shadow: inset 0 0 7px rgba(0,0,0,.72); transition: border-color .14s ease, background .14s ease, box-shadow .14s ease, filter .14s ease; }
.fossiliser-module-slot img[hidden] { display: none; }
.fossiliser-module-slot.empty { border-style: dashed; border-color: rgba(217,194,122,.3); background: rgba(0,0,0,.22); }
.fossiliser-module-slot.locked-slot { border-style: solid; border-color: rgba(75,91,81,.64); background: linear-gradient(145deg, rgba(18,31,24,.88), rgba(7,16,12,.96)); opacity: 1; filter: grayscale(.48); }
.fossiliser-module-slot.locked-slot img { width: 58%; height: 58%; object-fit: contain; opacity: .72; filter: none; }
.fossiliser-module-slot.locked-slot.is-ready-to-unlock { border-color: rgba(63,174,130,.8); background: linear-gradient(145deg, rgba(16,54,37,.92), rgba(5,23,14,.96)); box-shadow: inset 0 0 0 1px rgba(105,220,158,.11), 0 0 8px rgba(36,139,92,.16); cursor: pointer; filter: none; }
.fossiliser-module-slot.locked-slot.is-ready-to-unlock img { opacity: 1; }
.fossiliser-module-slot.locked-slot.is-unavailable { cursor: help; }
.fossiliser-module-slot.filled { border-style: solid; border-color: rgba(217, 194, 122, .55); box-shadow: inset 0 0 8px rgba(217, 194, 122, .08), 0 0 8px rgba(0, 0, 0, .32); cursor: pointer; }

.production-item-info, .fossiliser-module-slot-wrap, .fossiliser-upgrade-wrap { position: relative; }
.fossiliser-upgrade-popover { width: min(270px, calc(100vw - 28px)); white-space: normal; text-align: left; }
.fossiliser-tooltip-costs { display: grid; gap: 5px; margin-top: 6px; }
.fossiliser-tooltip-costs span { display: flex; align-items: center; gap: 6px; color: #dde7d9; font-size: .6rem; }
.fossiliser-tooltip-costs img { width: 24px; height: 24px; object-fit: contain; }

@media (hover:hover) and (pointer:fine) {
  .production-item-info:hover > .tier-popover,
  .production-item-info:focus-visible > .tier-popover,
  .fossiliser-module-slot-wrap:hover > .tier-popover,
  .fossiliser-module-slot-wrap:focus-within > .tier-popover,
  .fossiliser-upgrade-wrap:hover > .tier-popover,
  .fossiliser-upgrade-wrap:focus-within > .tier-popover { opacity: 1; transform: translateX(-50%) translateX(var(--popover-shift)) translateY(0); }
  .production-item-info:hover, .fossiliser-module-slot-wrap:hover, .fossiliser-upgrade-wrap:hover { z-index: 100; }
}
html.vh-touch-input .production-item-info:hover > .tier-popover,
html.vh-touch-input .fossiliser-module-slot-wrap:hover > .tier-popover,
html.vh-touch-input .fossiliser-upgrade-wrap:hover > .tier-popover { opacity: 0; transform: translateX(-50%) translateX(var(--popover-shift)) translateY(4px); }

.material-price-row { font: inherit; text-align: left; cursor: help; }
.material-price-row:hover, .material-price-row:focus-visible { border-color: rgba(217, 194, 122, .5); outline: 0; background: linear-gradient(160deg, rgba(23, 64, 49, .92), rgba(9, 32, 24, .96)); box-shadow: inset 0 0 0 1px rgba(217, 194, 122, .14), 0 6px 18px rgba(0, 0, 0, .32); }

.workshop-grove-screen { display: grid; place-items: center; min-height: calc(100vh - 90px); padding: 32px; }
.workshop-grove-placeholder { max-width: 720px; padding: clamp(28px, 6vw, 62px); border: 1px solid rgba(183, 218, 164, .32); border-radius: 22px; background: radial-gradient(circle at top, rgba(65, 98, 60, .25), rgba(7, 20, 14, .94)); text-align: center; box-shadow: 0 22px 65px rgba(0, 0, 0, .38); }
.workshop-grove-placeholder .location-title { margin: 6px 0 14px; }
.workshop-grove-placeholder p { color: #c7dbc2; font-size: 1.06rem; line-height: 1.55; }
.location-kicker { color: #8fc49b; text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; }

@media (max-width: 1050px) {
  .fossiliser-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}
@media (max-width: 620px) {
  .fossiliser-grid { grid-template-columns: 1fr; }
  .material-price-list { max-height: 360px; }
  .material-price-row { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; padding: 9px 11px; }
  .material-price-icon { width: 46px; height: 46px; }
  .material-price-name { font-size: .9rem; }
}

/* Local Storage Network --------------------------------------------------- */
.workshop-section--storage .workshop-section-inner{--section-content-pad-x:clamp(12px,1.8vw,18px)}
.workshop-section--storage .workshop-section-inner,.garden-feature-section[data-workshop-section="garden-storage-area"] .workshop-section-inner,.waterfall-storage-section .workshop-section-inner{box-sizing:border-box;width:100%;container:storage-area / inline-size}
.storage-area-grid{display:grid;box-sizing:border-box;width:min(100%,1280px);grid-template-columns:repeat(10,minmax(108px,1fr));gap:8px;overflow:visible;margin-inline:auto;padding:8px 2px 15px}
.storage-slot{position:relative;min-width:0;min-height:230px;padding:10px 7px;border:1px solid rgba(var(--storage-tint-rgb,52,139,91),.72);border-radius:12px;background:linear-gradient(160deg,rgba(var(--storage-tint-rgb,52,139,91),.25),rgba(var(--storage-tint-rgb,52,139,91),.06) 48%,rgba(5,23,18,.97)),linear-gradient(160deg,rgba(13,48,37,.92),rgba(5,23,18,.97));box-shadow:inset 0 0 0 2px rgba(205,168,83,.12),inset 0 0 24px rgba(0,0,0,.42);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:#d9c997;transition:border-color .15s,transform .15s,box-shadow .15s}
.storage-slot:not(.storage-slot--locked){justify-content:flex-end}
.storage-slot::after{content:"";position:absolute;inset:6px;border:1px solid rgba(176,141,65,.22);border-radius:9px;pointer-events:none}
.storage-slot.drag-over{border-color:#62d99a;box-shadow:inset 0 0 20px rgba(39,187,113,.2),0 0 15px rgba(39,187,113,.3);transform:translateY(-2px)}
.storage-slot-header{position:relative;z-index:4;box-sizing:border-box;width:100%;min-width:0;flex:0 0 auto;margin-bottom:auto;pointer-events:none}
.storage-logistics-badges{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}
.storage-logistics-badges.is-empty{opacity:.55}
.storage-logistics-row{display:flex;min-width:0;min-height:19px;align-items:center;justify-content:center}
.storage-logistics-icons{display:flex;width:100%;min-width:0;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px}
.storage-logistics-item{display:grid;place-items:center;box-sizing:border-box;width:19px;height:19px;flex:0 0 19px;border:1px solid #d1ae64;border-radius:50%;background:radial-gradient(circle at 35% 25%,#52401e,#15170f 78%);box-shadow:inset 0 0 0 1px rgba(245,211,135,.13),0 1px 4px rgba(0,0,0,.5)}
.storage-logistics-row--give .storage-logistics-item{border-color:#54bb7d;background:radial-gradient(circle at 35% 25%,#24563d,#0a2016 78%);box-shadow:inset 0 0 0 1px rgba(137,226,172,.14),0 1px 4px rgba(0,0,0,.5)}
.storage-logistics-item img{display:block;width:16px;height:16px;object-fit:contain}.storage-logistics-item b{color:#ead18d;font:700 .55rem/1 "Segoe UI",sans-serif}
.storage-logistics-divider{height:1px;flex:0 0 1px;background:linear-gradient(90deg,transparent,rgba(208,170,84,.52),transparent)}
.storage-slot-locked-number{position:relative;z-index:1;color:#e5ca82;font:700 .8rem/1 "Segoe UI",sans-serif;letter-spacing:.11em;text-shadow:0 1px 3px #000}
.storage-slot-tooltip{box-sizing:border-box;min-width:150px;font-family:"Segoe UI",sans-serif;font-style:normal}
.storage-slot-tooltip .tier-popover-name{color:#e5ca82;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.storage-slot-tooltip .vh-tooltip__subtitle{color:#83d5a0;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}
.storage-slot-tooltip .tier-popover-section-label--take{color:#e5ca82}
.storage-slot-tooltip .tier-popover-section-label--give{color:#83d5a0}
.storage-slot strong{position:relative;z-index:1;font:600 .76rem Georgia,serif;text-transform:uppercase;letter-spacing:.045em;color:#c6d8b4}
.storage-slot--locked strong{font-size:.67rem;white-space:nowrap}
.storage-slot small{position:relative;z-index:1;color:#a7b9a4;font-size:.61rem}
.storage-slot button{position:relative;z-index:2;border:1px solid #94763f;border-radius:7px;background:linear-gradient(#173a2c,#0b281e);color:#ecd89c;padding:5px 7px;font:600 .59rem Georgia,serif;text-transform:uppercase;letter-spacing:.03em;cursor:pointer}
.storage-slot button:hover:not(:disabled){border-color:#d3b568;background:#194b36}.storage-slot button:disabled{opacity:.42;cursor:not-allowed}
.storage-slot button img{width:14px;height:14px;vertical-align:-3px;margin-right:4px}
.storage-slot--locked{filter:saturate(.7);background:linear-gradient(160deg,rgba(24,38,30,.9),rgba(10,20,16,.98))}
.storage-slot-lock{width:46px;height:46px;object-fit:contain;opacity:.85}.storage-slot-sigil{font-size:3.55rem;line-height:1;color:rgba(106,162,121,.24)}
.storage-slot--open{border-color:#5bc98a;box-shadow:inset 0 0 0 2px rgba(91,201,138,.2),inset 0 0 24px rgba(0,0,0,.42),0 0 14px rgba(48,175,108,.18)}.storage-chest-image{display:block;position:relative;z-index:3;width:90px;height:76px;flex:0 0 76px;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;filter:drop-shadow(0 8px 7px rgba(0,0,0,.55));cursor:pointer!important;user-select:none}.storage-slot .storage-chest-image img{display:block;width:100%;height:100%;margin:0;object-fit:contain;cursor:pointer!important}.storage-chest-image:hover,.storage-chest-image:focus-visible{filter:drop-shadow(0 8px 7px rgba(0,0,0,.55)) drop-shadow(0 0 7px rgba(102,217,154,.62));outline:1px solid rgba(103,215,154,.76);outline-offset:3px}.storage-chest-image.dragging{opacity:.45}
.storage-capacity{position:relative;z-index:1;width:94%;height:15px;border:1px solid #6e5a31;border-radius:10px;overflow:hidden;background:#07150f;color:#f0deb0;font-size:.58rem;line-height:13px}
.storage-capacity span{position:absolute;inset:0 auto 0 0;width:var(--fill);background:linear-gradient(90deg,#188a55,#62ce86);opacity:.8}.storage-capacity b{position:relative;text-shadow:0 1px 2px #000}
.storage-slot-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.storage-logistic-button{min-width:84px;padding:6px 9px!important;border-color:#b18a42!important;background:linear-gradient(160deg,#174534,#0b281e)!important;color:#f1d995!important;box-shadow:inset 0 0 0 1px rgba(244,210,121,.09),0 2px 5px rgba(0,0,0,.24)}.storage-logistic-button span{margin-right:4px;color:#74dca1;font-size:.78rem;vertical-align:-1px}.storage-logistic-button:hover:not(:disabled){border-color:#e0c273!important;background:linear-gradient(160deg,#1d5a40,#0d3425)!important;box-shadow:inset 0 0 0 1px rgba(244,210,121,.16),0 0 10px rgba(71,191,125,.18)}
.storage-routing-modal .modal-panel{width:min(760px,calc(100vw - 24px));background:linear-gradient(155deg,#102d23,#071a14);border-color:#9d7b3d}
.storage-routing-kicker{display:block;color:#65c88d;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}
.storage-routing-help{margin:0 0 14px;color:#b5c8b7;font-size:.78rem;line-height:1.45}
.storage-logistics-level-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:10px 12px;border:1px solid rgba(186,147,65,.48);border-radius:10px;background:rgba(4,20,15,.68)}.storage-logistics-level-panel>div{display:flex;flex-direction:column;gap:3px}.storage-logistics-level-panel span,.storage-color-picker>span{color:#8eac97;font:600 .58rem sans-serif;letter-spacing:.14em}.storage-logistics-level-panel strong{color:#ead18d;font:700 .9rem Georgia,serif}.storage-logistics-level-panel button{display:flex;align-items:center;gap:8px;border:1px solid #b18a42;border-radius:7px;padding:7px 10px;background:linear-gradient(#254f38,#102c20);color:#f0d68d}.storage-logistics-level-panel button:disabled{opacity:.48}.storage-logistics-level-panel small{display:flex;align-items:center;gap:3px}.storage-logistics-level-panel img{width:16px;height:16px}
.storage-routing-machines{display:grid;gap:7px}.storage-route-row{display:grid;grid-template-columns:38px minmax(180px,1fr) 70px 70px;align-items:center;gap:8px;padding:8px;border:1px solid rgba(164,133,67,.42);border-radius:9px;background:rgba(5,24,18,.68)}.storage-route-machine-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(204,167,81,.5);border-radius:50%;background:#071b14;color:#d8bb6a}.storage-route-machine-icon img{width:30px;height:30px;object-fit:contain}.storage-route-row label{display:flex;min-width:0;flex-direction:column;gap:3px}.storage-route-row label span{color:#719a80;font:600 .52rem sans-serif;letter-spacing:.15em}.storage-route-row select{width:100%;min-width:0;border:1px solid #6f673e;border-radius:6px;padding:7px 8px;background:#0a2118;color:#e2d6ad;font:600 .72rem Georgia,serif}.storage-route-row select optgroup{background:#071a14;color:#d8bb6a;font:800 .68rem "Segoe UI",sans-serif;letter-spacing:.06em}.storage-route-row select option{background:#0a2118;color:#d8d3bc;font:600 .72rem "Segoe UI",sans-serif}.storage-route-row select .storage-machine-option--verdant{color:#7fe5a5}.storage-route-row select .storage-machine-option--crimson{color:#f08078}.storage-route-row select .storage-machine-option--azure{color:#75c9ff}.storage-route-row select .storage-machine-option--violet{color:#c89aff}.storage-route-row select .storage-machine-option--gold,.storage-route-row select .storage-machine-option--special{color:#f1d176}.storage-route-row select option:disabled{color:#617369}.storage-route-flow{display:flex;flex-direction:column;align-items:center;border:1px solid #43584a;border-radius:7px;padding:5px;background:#0b2119;color:#6f8175}.storage-route-flow b{font-size:.65rem}.storage-route-flow small{font-size:.48rem;letter-spacing:.08em}.storage-route-flow.is-on{border-color:#4ed38b;background:rgba(31,131,79,.3);color:#86edaf;box-shadow:inset 0 0 10px rgba(58,211,133,.12)}.storage-route-flow:disabled{opacity:.35}
.storage-color-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(166,133,67,.35)}#storage-color-options{display:flex;gap:7px}.storage-color-swatch{width:25px;height:25px;border:2px solid rgba(225,207,152,.35);border-radius:50%;box-shadow:inset 0 0 0 3px rgba(5,15,11,.75);background:var(--swatch)}.storage-color-swatch.is-selected{border-color:#f2d581;transform:scale(1.12);box-shadow:inset 0 0 0 3px rgba(5,15,11,.7),0 0 8px var(--swatch)}.storage-color-swatch--verdant{--swatch:#348b5b}.storage-color-swatch--azure{--swatch:#2f70a4}.storage-color-swatch--violet{--swatch:#704697}.storage-color-swatch--crimson{--swatch:#973e37}.storage-color-swatch--amber{--swatch:#a5752f}.storage-color-swatch--silver{--swatch:#6f7d84}.storage-routing-persistence{display:block;margin-top:9px;color:#718a79;font-size:.61rem}
.storage-logistics-level-panel{flex-wrap:wrap}
.storage-logistics-level-panel small{flex-wrap:wrap;justify-content:center;gap:5px}
.storage-logistics-level-panel .storage-upgrade-resource{display:inline-flex;align-items:center;gap:2px;color:#e7cf81;font:700 .7rem "Segoe UI",sans-serif;letter-spacing:0;white-space:nowrap}
.storage-upgrade-resource--verdant b{color:#7fe5a5}.storage-upgrade-resource--crimson b{color:#f08078}.storage-upgrade-resource--azure b{color:#75c9ff}.storage-upgrade-resource--violet b{color:#c89aff}
.storage-route-row{grid-template-columns:38px minmax(180px,1.1fr) minmax(150px,1fr) 82px;align-items:start}
.storage-route-selector{align-self:start}
.storage-route-direction{min-width:0;display:flex;flex-direction:column;gap:6px}
.storage-route-direction--give{--route-accent:#66daa0;--route-fill:rgba(38,135,83,.35)}
.storage-route-direction--take{--route-accent:#e5c875;--route-fill:rgba(140,108,40,.34)}
.storage-route-direction .storage-route-flow{width:100%;min-height:36px;font-family:"Segoe UI",sans-serif}
.storage-route-direction .storage-route-flow.is-on{border-color:var(--route-accent);background:var(--route-fill);color:var(--route-accent)}
.storage-route-items{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:5px;min-height:30px}
.storage-route-direction.is-flow-off .storage-route-items{opacity:.55}
.storage-route-item{display:grid;place-items:center;width:30px;height:30px;padding:2px;border:1px solid #4c5e4e;border-radius:7px;background:#0a1c15;color:#82968a;opacity:.55;cursor:pointer;transition:border-color .15s,box-shadow .15s,opacity .15s}
.storage-route-item img{width:24px;height:24px;object-fit:contain;filter:grayscale(.8)}
.storage-route-item.is-selected{border-color:var(--route-accent);background:var(--route-fill);opacity:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}
.storage-route-item.is-selected img{filter:none}
.storage-route-item:hover,.storage-route-item:focus-visible{border-color:var(--route-accent);opacity:1;box-shadow:0 0 10px var(--route-accent);outline:none}
.craft-card.has-logistics,.fossiliser-card.has-logistics{box-shadow:inset 0 0 0 1px rgba(63,217,137,.48),0 0 18px rgba(38,180,112,.14)}
.craft-card.has-logistics::after,.fossiliser-card.has-logistics::after{content:"NETWORK";position:absolute;z-index:3;top:7px;right:7px;padding:2px 5px;border:1px solid #3fb879;border-radius:4px;background:#08271c;color:#75e2a5;font:600 .48rem/1.2 sans-serif;letter-spacing:.1em}
/* Use the section's available width, not the viewport, for symmetric 10/5/2 rows. */
@container storage-area (max-width:1155px){.storage-area-grid{width:min(100%,900px);grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:900px){.storage-slot{min-height:220px}.storage-routing-machines{grid-template-columns:1fr}}
@container storage-area (max-width:600px){.storage-area-grid{width:min(100%,420px);grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.storage-slot{min-height:220px}.storage-route-row{grid-template-columns:32px minmax(120px,1fr) 52px 52px;gap:5px}.storage-route-machine-icon{width:30px;height:30px}.storage-route-machine-icon img{width:25px;height:25px}.storage-route-flow{padding:5px 2px}}
@media(max-width:650px){.storage-route-row{grid-template-columns:32px minmax(0,1fr) 82px;grid-template-areas:"icon selector selector" ". give take";gap:8px}.storage-route-machine-icon{grid-area:icon}.storage-route-selector{grid-area:selector}.storage-route-direction--give{grid-area:give}.storage-route-direction--take{grid-area:take}}
