/* The same generated cast appears in the orchard story and every arcade game. */
.fruit-card-art { display:block; width:100%; height:150px; object-fit:contain; margin:0 auto .7rem; filter:drop-shadow(0 7px 5px #304b3810); }
.fruit-card-name { margin:.2rem 0 .75rem; font-size:.8rem; color:#507045; }
.fruit-cast { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.fruit-cast-card { min-width:0; display:grid; gap:.4rem; padding:1rem .5rem; border-radius:18px; background:#fffdf5; text-align:center; text-decoration:none; color:#304b38; }
.fruit-cast-card img { display:block; width:100%; height:150px; object-fit:contain; }
.fruit-cast-card span { font-size:.8rem; }
.fruit-cast-card:hover { background:#edf4e5; }
.fruit-cast-card:focus-visible { outline:3px solid #5286bc; outline-offset:3px; }
.arcade-bar__title { display:flex; align-items:center; justify-content:center; gap:.45rem; }
.fruit-game-avatar { width:40px; height:40px; object-fit:contain; flex:0 0 40px; }
.mini-game-card__header { position:relative; }
.fruit-modal-avatar { position:absolute; left:.3rem; top:0; width:44px; height:44px; object-fit:contain; }
.resident-art, .shopkeeper-art, .user-status__avatar { object-fit:contain; }
.story-character__sprite, .story-panel__sprite { background-size:contain!important; background-repeat:no-repeat!important; image-rendering:auto!important; }
.story-character__sprite--hero, .story-panel__sprite--hero, .story-character__sprite--producer, .story-panel__sprite--producer { background-image:url('/assets/Images/fruit-world/pip.webp?v=20261004-fruit-v2'); }
.story-character__sprite--gearwright, .story-panel__sprite--gearwright { background-image:url('/assets/Images/fruit-world/ada.webp?v=20261004-fruit-v2'); }
.story-character__sprite--archivist, .story-panel__sprite--archivist { background-image:url('/assets/Images/fruit-world/lumen.webp?v=20261004-fruit-v2'); }
.story-character__sprite--attendant, .story-panel__sprite--attendant { background-image:url('/assets/Images/fruit-world/marl.webp?v=20261004-fruit-v2'); }
.story-character__sprite--courier, .story-panel__sprite--courier { background-image:url('/assets/Images/fruit-world/wisp.webp?v=20261004-fruit-v2'); }
.story-character__sprite--scribe, .story-panel__sprite--scribe { background-image:url('/assets/Images/fruit-world/jun.webp?v=20261004-fruit-v2'); }
.story-character__sprite--terminal, .story-panel__sprite--terminal, .story-character__sprite--byte, .story-panel__sprite--byte { background-image:url('/assets/Images/fruit-world/cherry-bat.webp?v=20261004-fruit-v2'); }
.connect4__cell[data-piece='1']::after, .connect4__cell[data-piece='2']::after {
  content:''; position:absolute; inset:10%; background:center/contain no-repeat; pointer-events:none;
}
.connect4__cell[data-piece='1']::after { background-image:url('/assets/Images/fruit-world/jun.webp?v=20261004-fruit-v2'); }
.connect4__cell[data-piece='2']::after { background-image:url('/assets/Images/fruit-world/pip.webp?v=20261004-fruit-v2'); }
.connect4__player--orange .connect4__disc { background: #ffe4c3 url('/assets/Images/fruit-world/jun.webp?v=20261004-fruit-v2') center/contain no-repeat; }
.connect4__player--yellow .connect4__disc { background: #fff4ac url('/assets/Images/fruit-world/pip.webp?v=20261004-fruit-v2') center/contain no-repeat; }
/* Generated surfaces; labels, focus rings and hit targets remain native UI. */
html:root body :is(.btn, .mini-game-controls__button, .controls button, .platformer__touch-button, .platformer__restart, .connect4__button, .connect4__mode, .connect4__rule, .connect4__drop, .connect4__link-button, .mini-game-lock__close, .arcade-bar__back) {
  --fruit-button:url('/assets/Images/fruit-world/button-cream.webp?v=20261004-fruit-v2');
  background:var(--fruit-button) center/100% 100% no-repeat!important;
  border:0!important; border-radius:14px; box-shadow:none!important;
  color:#29391f!important; min-height:44px; text-shadow:none!important;
  transition:filter .12s, transform .12s;
}
html:root body :where(.btn--primary, .mini-game-controls__button--accent, .control-button--accent, .connect4__button--primary, .connect4__mode.is-active, .connect4__rule.is-active, [data-action='rotate'], [data-action='thrust'], [data-control='jump']) {
  --fruit-button:url('/assets/Images/fruit-world/button-gold.webp?v=20261004-fruit-v2')!important;
}
html:root body :where([data-action='start'], [data-action='shoot'], [data-action='flap'], [data-action='hard-drop'], [data-arcade-start]) {
  --fruit-button:url('/assets/Images/fruit-world/button-green.webp?v=20261004-fruit-v2')!important;
}
html:root body :is(.btn, .mini-game-controls__button, .controls button, .platformer__touch-button, .platformer__restart, .connect4__button, .connect4__mode, .connect4__rule, .connect4__drop, .connect4__link-button, .mini-game-lock__close, .arcade-bar__back):hover:not(:disabled) { filter:brightness(1.06); }
html:root body :is(.btn, .mini-game-controls__button, .controls button, .platformer__touch-button, .platformer__restart, .connect4__button, .connect4__mode, .connect4__rule, .connect4__drop, .connect4__link-button, .mini-game-lock__close, .arcade-bar__back):active:not(:disabled) { transform:translateY(2px); filter:brightness(.93); }
html:root body :is(.btn, .mini-game-controls__button, .controls button, .platformer__touch-button, .platformer__restart, .connect4__button, .connect4__mode, .connect4__rule, .connect4__drop, .connect4__link-button, .mini-game-lock__close, .arcade-bar__back):focus-visible { outline:3px solid #386fad; outline-offset:3px; }
html:root body :is(.mini-game-controls__button, .controls button):disabled { opacity:.45; filter:saturate(.4); }
@media(max-width:800px) { .fruit-cast {grid-template-columns:repeat(3,minmax(0,1fr));} }
@media(max-width:480px) {
  .fruit-cast {grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;}
  .fruit-cast-card img {height:120px;}
  .fruit-card-art {height:125px;}
  .fruit-game-avatar {width:32px;height:32px;flex-basis:32px;}
}
/* Arcade art direction: painted 2D orchard, with one cabinet palette.
   Different environments share the same source artwork and drawing medium. */
:root {
  --fruit-ink:#294d40;
  --fruit-paper:#fffaf0;
  --fruit-sage:#dce8d1;
  --fruit-line:#a8c2ad;
  --fruit-sky:#8fc6c2;
}
html:root body:is(.game-page,.game-page--tetris,.game-page--platformer,.connect4-page) {
  background:#edf2e7!important; color:var(--fruit-ink)!important;
}
html:root body[data-fruit-game] { background:#edf2e7!important; color:var(--fruit-ink)!important; }
html:root body[data-fruit-game] :is(.wrapper,.platformer,.connect4__topbar,.connect4__board-panel,.connect4__panel),
html:root .mini-game-lock--active .mini-game-card {
  background:var(--fruit-paper)!important;
  border:1px solid var(--fruit-line)!important;
  box-shadow:0 8px 24px #294d4014!important;
}
html:root body[data-fruit-game] .arcade-bar {
  background:var(--fruit-sage)!important; color:var(--fruit-ink)!important;
  box-shadow:none!important;
}
html:root body[data-fruit-game] canvas,
html:root .mini-game-card canvas {
  image-rendering:auto!important;
  border:2px solid #789e8b!important;
  background:var(--fruit-paper)!important;
  box-shadow:0 3px 8px #294d4012!important;
}
html:root body[data-fruit-game] :is(.arcade-bar__title,h1,h2),
html:root .mini-game-card__header h2 { color:var(--fruit-ink)!important; }
html:root .connect4__board {
  background:#8fc6c2!important;
  border:2px solid #568e89!important;
  box-shadow:0 4px 10px #294d401a!important;
}
html:root .connect4__cell { box-shadow:none!important; }
html:root .connect4__cell::before {
  background:#fff8e7; box-shadow:inset 0 2px 3px #294d4025;
}
html:root .connect4__cell[data-piece='1']::before,
html:root .connect4__cell[data-piece='2']::before {
  inset:7%; background-image:url('/assets/Images/fruit-world/props-atlas-v1.png');
  background-color:transparent; background-repeat:no-repeat;
  background-size:323.2% 325.7%; background-position:48.3% 78.8%;
  box-shadow:none;
}
html:root .connect4__cell[data-piece='2']::before { background-position:99.3% 78.8%; }
html:root .connect4__cell[data-piece]::after { display:none; }
html:root .connect4__player .connect4__disc {
  background-image:url('/assets/Images/fruit-world/props-atlas-v1.png');
  background-color:transparent; background-repeat:no-repeat;
  background-size:323.2% 325.7%; background-position:48.3% 78.8%;
  box-shadow:none;
}
html:root .connect4__player--yellow .connect4__disc { background-position:99.3% 78.8%; }
html:root .connect4__drop::before { display:none; }
html:root .connect4__status { background:#dce8d1; color:var(--fruit-ink); }
html:root .connect4__status[data-turn='1'] { background:#ffdfba; color:#703f20; }
html:root .connect4__status[data-turn='2'] { background:#fff0a9; color:#5e501c; }
html:root .connect4__cell.is-win::before { outline:3px solid #294d40; outline-offset:1px; }
html:root body[data-fruit-game] .platformer__counter {
  background:#fff8e7!important; color:#294d40!important;
  border:1px solid #789e8b!important; box-shadow:0 2px 4px #294d4014!important;
  font-family:system-ui,sans-serif!important;
}
