:root{
  --cream:#F5EFDD;
  --cream-2:#FBF7EC;
  --cream-3:#EFE7CE;
  --page:#E7DCBE;
  --forest:#2F4A3A;
  --forest-2:#3E6049;
  --forest-3:#557A60;
  --sage:#A9C1A0;
  --sage-dk:#8FAA86;
  --gold:#D4A13D;
  --gold-dk:#B0821F;
  --ink:#2B2A22;
  --muted:#6E6852;
  --danger:#9C4A38;
  --serif: Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", "Times New Roman", serif;
  --sans: "Avenir Next", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  color:var(--ink);
  background-color:var(--page);
  background-image:
    radial-gradient(circle at 20% 12%, rgba(169,193,160,.35) 0, rgba(169,193,160,0) 42%),
    radial-gradient(circle at 82% 78%, rgba(212,161,61,.18) 0, rgba(212,161,61,0) 40%),
    repeating-linear-gradient(45deg, rgba(47,74,58,.028) 0 2px, rgba(0,0,0,0) 2px 8px);
  font-size:14px;
  line-height:1.4;
  min-height:100vh;
}
body.bg-scene{
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center 32%;
  background-attachment:fixed;
}
h1,h2,h3,h4,.serif{font-family:var(--serif);color:var(--forest);margin:0}
a{color:var(--forest-2)}
.smallcaps{font-variant:small-caps;letter-spacing:.08em}
.wrap{max-width:1500px;margin:0 auto;padding:14px 16px 60px}

/* ---------- generic chrome ---------- */
.panel{
  background:var(--cream);
  border:2px solid var(--forest);
  border-radius:14px;
  padding:12px 14px;
  box-shadow:0 2px 0 rgba(47,74,58,.18), 0 8px 20px rgba(47,74,58,.10);
}
.panel.soft{border-width:1px;border-color:rgba(47,74,58,.35);box-shadow:0 1px 0 rgba(47,74,58,.10)}
.panel-title{
  font-family:var(--serif);color:var(--forest);font-size:15px;
  font-variant:small-caps;letter-spacing:.09em;margin:0 0 8px;
  border-bottom:1px solid rgba(47,74,58,.25);padding-bottom:5px;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row.nowrap{flex-wrap:nowrap}
.col{display:flex;flex-direction:column;gap:10px}
.grow{flex:1 1 0;min-width:0}
.muted{color:var(--muted)}
.tiny{font-size:11px}
.mini{font-size:10px}
.center{text-align:center}
.spacer{flex:1}

button{
  font-family:var(--sans);
  font-size:13px;
  background:var(--forest);
  color:var(--cream);
  border:1px solid var(--forest);
  border-radius:9px;
  padding:7px 13px;
  cursor:pointer;
  box-shadow:0 2px 0 rgba(30,48,37,.55);
  transition:transform .05s ease, filter .12s ease;
}
button:hover:not(:disabled){filter:brightness(1.12)}
button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 0 rgba(30,48,37,.55)}
button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}
button.ghost{background:var(--cream-2);color:var(--forest);border-color:var(--forest);box-shadow:0 2px 0 rgba(47,74,58,.28)}
button.gold{background:var(--gold);color:#3a2a07;border-color:var(--gold-dk);box-shadow:0 2px 0 var(--gold-dk)}
button.sage{background:var(--sage);color:var(--forest);border-color:var(--forest-3);box-shadow:0 2px 0 var(--sage-dk)}
button.danger{background:var(--danger);border-color:#7d3628;box-shadow:0 2px 0 #7d3628}
button.big{font-size:16px;padding:11px 22px;font-family:var(--serif)}
button.wide{width:100%}
input[type=text],input[type=number],select{
  font-family:var(--sans);font-size:13px;padding:7px 9px;border-radius:8px;
  border:1px solid var(--forest);background:var(--cream-2);color:var(--ink);
}
label{font-size:12px;color:var(--muted)}

.badge{
  display:inline-flex;align-items:center;gap:4px;
  background:var(--forest);color:var(--cream);
  border-radius:999px;padding:2px 9px;font-size:10px;
  font-variant:small-caps;letter-spacing:.09em;white-space:nowrap;
}
.badge.gold{background:var(--gold);color:#3a2a07}
.badge.sage{background:var(--sage);color:var(--forest)}
.badge.out{background:transparent;color:var(--forest);border:1px solid var(--forest)}
.badge.warn{background:var(--danger);color:#fff}

.chip{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--cream-2);border:1px solid rgba(47,74,58,.4);
  border-radius:8px;padding:3px 8px;font-size:11px;white-space:nowrap;
}
.chip b{font-family:var(--serif);font-size:12px;color:var(--forest)}
/* Bigger variant for the main "Your workspace" Harvest Goods row, above the Field, where
   the token art deserves more room to breathe than the compact chips used elsewhere. */
.chip-lg .chip{padding:6px 12px;font-size:15px;gap:7px;border-radius:11px}
.chip-lg .chip b{font-size:17px}
.chip-lg .chip .mini{font-size:13px}
.chip-lg .tok-icon{width:26px;height:26px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.25)}
.dot.plants{background:#7FA86A}
.dot.harvest{background:#C97F3E}
.dot.animal{background:#B9614F}
.dot.artisan{background:#8A6BA8}
.dot.coin{background:var(--gold)}

.tok-icon{width:19.3px;height:19.3px;display:inline-block;background-size:contain;background-repeat:no-repeat;background-position:center;flex:none}
.tok-icon.plants{background-image:url(../assets/images/icons/plants.png)}
.tok-icon.harvest{background-image:url(../assets/images/icons/harvest.png)}
.tok-icon.animal{background-image:url(../assets/images/icons/animal.png)}
.tok-icon.artisan{background-image:url(../assets/images/icons/artisan.png)}
.tok-icon.coin{background-image:url(../assets/images/icons/coin.png)}

/* ---------- card component ---------- */
.card{
  position:relative;
  width:188px;height:280px;flex:0 0 auto;
  background:var(--cream);
  border:3px solid #212522;
  border-radius:13px;
  padding:7px 7px 6px;
  display:flex;flex-direction:column;gap:5px;
  box-shadow:0 2px 0 rgba(47,74,58,.25), 0 6px 14px rgba(47,74,58,.12);
  font-size:calc(9px * var(--cs,1));
  overflow:hidden;
}
.card.sm{width:188px;height:280px;font-size:calc(10px * var(--cs,1));padding:6px}
.card.xs{width:94px;height:140px;font-size:calc(9px * var(--cs,1));padding:3px;border-radius:7px;gap:2px;border-width:1.5px;}
/* Resource cards get a faint tint of their own type, so a hand or Field reads at a glance. */
.card.res-water{background-color:#7B94A8;background-image:url(../assets/images/textures/res-water.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-wood{background-color:#A9836A;background-image:url(../assets/images/textures/res-wood.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-land{background-color:#7E8B5D;background-image:url(../assets/images/textures/res-land.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-coin{background-color:#EDE3A6;background-image:url(../assets/images/textures/res-coin.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-livestock{background-color:#D9A8AC;background-image:url(../assets/images/textures/res-livestock.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-seeds{background-color:#D2AE3B;background-image:url(../assets/images/textures/res-seeds.svg);background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:overlay;}
.card.res-water .card-art{background:transparent;border:none;height:118px;}
.card.res-wood .card-art{background:transparent;border:none;height:118px;}
.card.res-land .card-art{background:transparent;border:none;height:118px;}
.card.res-coin .card-art{background:transparent;border:none;height:118px;}
.card.res-livestock .card-art{background:transparent;border:none;height:118px;}
.card.res-seeds .card-art{background:transparent;border:none;height:118px;}
/* Resource cards shown at "sm" size (e.g. the Village Row) would otherwise fall back to the
   generic .card.sm .card-art{height:34px} rule below — these out-specificity it (4 classes vs
   3) so the art stays just as tall there too, since "sm" cards are actually full card size
   anyway (only font-size/padding shrink), there's no real space reason to keep it tiny. */
.card.sm.res-water .card-art{height:118px;}
.card.sm.res-wood .card-art{height:118px;}
.card.sm.res-land .card-art{height:118px;}
.card.sm.res-coin .card-art{height:118px;}
.card.sm.res-livestock .card-art{height:118px;}
.card.sm.res-seeds .card-art{height:118px;}
/* Action cards get a shorter art strip than Resource cards (90px vs 118px), and their
   description box is styled like the Farm/Farmer translucent panel instead of the plain
   bordered .card-box, per the mockup. */
.card.kind-action .card-art{height:118px;background:transparent;border:none;}
.card.sm.kind-action .card-art{height:118px;}
.card.kind-dream .card-art{height:118px;background:transparent;border:none;}
.card.sm.kind-dream .card-art{height:118px;}
.card.kind-improvement .card-art{height:118px;background:transparent;border:none;}
.card.sm.kind-improvement .card-art{height:118px;}
.card.kind-order .card-art{height:118px;background:transparent;border:none;}
.card.sm.kind-order .card-art{height:118px;}

/* Individually-named Resource cards with their own unique art in the card-art box.
   Selector must out-specificity ".card.res-<type> .card-art" (3 classes) — this is 4. */
.card.res-land .card-art.art-res_land_1{background-image:url(../assets/images/cards/art-res_land_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_2{background-image:url(../assets/images/cards/art-res_land_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_3{background-image:url(../assets/images/cards/art-res_land_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_4{background-image:url(../assets/images/cards/art-res_land_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_5{background-image:url(../assets/images/cards/art-res_land_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_6{background-image:url(../assets/images/cards/art-res_land_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_7{background-image:url(../assets/images/cards/art-res_land_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_8{background-image:url(../assets/images/cards/art-res_land_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-land .card-art.art-res_land_9{background-image:url(../assets/images/cards/art-res_land_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_1{background-image:url(../assets/images/cards/art-res_water_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_2{background-image:url(../assets/images/cards/art-res_water_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_3{background-image:url(../assets/images/cards/art-res_water_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_4{background-image:url(../assets/images/cards/art-res_water_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_5{background-image:url(../assets/images/cards/art-res_water_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_6{background-image:url(../assets/images/cards/art-res_water_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_7{background-image:url(../assets/images/cards/art-res_water_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_8{background-image:url(../assets/images/cards/art-res_water_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-water .card-art.art-res_water_9{background-image:url(../assets/images/cards/art-res_water_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_1{background-image:url(../assets/images/cards/art-res_seeds_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_2{background-image:url(../assets/images/cards/art-res_seeds_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_3{background-image:url(../assets/images/cards/art-res_seeds_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_4{background-image:url(../assets/images/cards/art-res_seeds_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_5{background-image:url(../assets/images/cards/art-res_seeds_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_6{background-image:url(../assets/images/cards/art-res_seeds_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_7{background-image:url(../assets/images/cards/art-res_seeds_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_8{background-image:url(../assets/images/cards/art-res_seeds_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-seeds .card-art.art-res_seeds_9{background-image:url(../assets/images/cards/art-res_seeds_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_1{background-image:url(../assets/images/cards/art-res_wood_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_2{background-image:url(../assets/images/cards/art-res_wood_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_3{background-image:url(../assets/images/cards/art-res_wood_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_4{background-image:url(../assets/images/cards/art-res_wood_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_5{background-image:url(../assets/images/cards/art-res_wood_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_6{background-image:url(../assets/images/cards/art-res_wood_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_7{background-image:url(../assets/images/cards/art-res_wood_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_8{background-image:url(../assets/images/cards/art-res_wood_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-wood .card-art.art-res_wood_9{background-image:url(../assets/images/cards/art-res_wood_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_1{background-image:url(../assets/images/cards/art-res_coin_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_2{background-image:url(../assets/images/cards/art-res_coin_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_3{background-image:url(../assets/images/cards/art-res_coin_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_4{background-image:url(../assets/images/cards/art-res_coin_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_5{background-image:url(../assets/images/cards/art-res_coin_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_6{background-image:url(../assets/images/cards/art-res_coin_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_7{background-image:url(../assets/images/cards/art-res_coin_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_8{background-image:url(../assets/images/cards/art-res_coin_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-coin .card-art.art-res_coin_9{background-image:url(../assets/images/cards/art-res_coin_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_1{background-image:url(../assets/images/cards/art-res_livestock_1.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_2{background-image:url(../assets/images/cards/art-res_livestock_2.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_3{background-image:url(../assets/images/cards/art-res_livestock_3.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_4{background-image:url(../assets/images/cards/art-res_livestock_4.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_5{background-image:url(../assets/images/cards/art-res_livestock_5.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_6{background-image:url(../assets/images/cards/art-res_livestock_6.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_7{background-image:url(../assets/images/cards/art-res_livestock_7.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_8{background-image:url(../assets/images/cards/art-res_livestock_8.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.res-livestock .card-art.art-res_livestock_9{background-image:url(../assets/images/cards/art-res_livestock_9.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_helping_hands{background-image:url(../assets/images/cards/art-act_helping_hands.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_barn_raising{background-image:url(../assets/images/cards/art-act_barn_raising.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_neighborly_favor{background-image:url(../assets/images/cards/art-act_neighborly_favor.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_open_farm_gate{background-image:url(../assets/images/cards/art-act_open_farm_gate.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_fresh_delivery{background-image:url(../assets/images/cards/art-act_fresh_delivery.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_muddy_road{background-image:url(../assets/images/cards/art-act_muddy_road.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_lucky_find{background-image:url(../assets/images/cards/art-act_lucky_find.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_market_morning{background-image:url(../assets/images/cards/art-act_market_morning.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_traveling_merchant{background-image:url(../assets/images/cards/art-act_traveling_merchant.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_mixed_up_delivery{background-image:url(../assets/images/cards/art-act_mixed_up_delivery.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_village_celebration{background-image:url(../assets/images/cards/art-act_village_celebration.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_reserved_sign{background-image:url(../assets/images/cards/art-act_reserved_sign.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_gentle_rain{background-image:url(../assets/images/cards/art-act_gentle_rain.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_second_shift{background-image:url(../assets/images/cards/art-act_second_shift.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-action .card-art.art-act_reassign_farmer{background-image:url(../assets/images/cards/art-act_reassign_farmer.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_farm_in_bloom{background-image:url(../assets/images/cards/art-drm_farm_in_bloom.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_working_together{background-image:url(../assets/images/cards/art-drm_working_together.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_happy_herd{background-image:url(../assets/images/cards/art-drm_happy_herd.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_artisan_homestead{background-image:url(../assets/images/cards/art-drm_artisan_homestead.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_little_of_everything{background-image:url(../assets/images/cards/art-drm_little_of_everything.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_bustling_farmstead{background-image:url(../assets/images/cards/art-drm_bustling_farmstead.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_greenhouse_roof{background-image:url(../assets/images/cards/art-imp_greenhouse_roof.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_cozy_barn{background-image:url(../assets/images/cards/art-imp_cozy_barn.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_golden_hive_frames{background-image:url(../assets/images/cards/art-imp_golden_hive_frames.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_preserving_shed{background-image:url(../assets/images/cards/art-imp_preserving_shed.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_workshop_table{background-image:url(../assets/images/cards/art-imp_workshop_table.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_roadside_stand{background-image:url(../assets/images/cards/art-imp_roadside_stand.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_delivery_cart{background-image:url(../assets/images/cards/art-imp_delivery_cart.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-improvement .card-art.art-imp_farmhouse_storage{background-image:url(../assets/images/cards/art-imp_farmhouse_storage.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_petals_and_pollen{background-image:url(../assets/images/cards/art-drm_petals_and_pollen.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_golden_orchard{background-image:url(../assets/images/cards/art-drm_golden_orchard.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_pasture_partners{background-image:url(../assets/images/cards/art-drm_pasture_partners.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_coop_to_table{background-image:url(../assets/images/cards/art-drm_coop_to_table.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_full_house{background-image:url(../assets/images/cards/art-drm_full_house.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_family_farm{background-image:url(../assets/images/cards/art-drm_family_farm.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_well_equipped{background-image:url(../assets/images/cards/art-drm_well_equipped.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_jack_of_all_trades{background-image:url(../assets/images/cards/art-drm_jack_of_all_trades.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-dream .card-art.art-drm_homestead_empire{background-image:url(../assets/images/cards/art-drm_homestead_empire.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_wildflower_posy{background-image:url(../assets/images/cards/art-ord_wildflower_posy.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_farmhands_snack{background-image:url(../assets/images/cards/art-ord_farmhands_snack.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_fresh_egg_basket{background-image:url(../assets/images/cards/art-ord_fresh_egg_basket.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_honey_handful{background-image:url(../assets/images/cards/art-ord_honey_handful.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_penny_jar{background-image:url(../assets/images/cards/art-ord_penny_jar.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_fresh_bouquet{background-image:url(../assets/images/cards/art-ord_fresh_bouquet.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_morning_milk{background-image:url(../assets/images/cards/art-ord_morning_milk.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_egg_delivery{background-image:url(../assets/images/cards/art-ord_egg_delivery.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_orchard_restock{background-image:url(../assets/images/cards/art-ord_orchard_restock.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_garden_basket{background-image:url(../assets/images/cards/art-ord_garden_basket.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_herbal_tea{background-image:url(../assets/images/cards/art-ord_herbal_tea.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_honey_jar{background-image:url(../assets/images/cards/art-ord_honey_jar.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_welcome_gifts{background-image:url(../assets/images/cards/art-ord_welcome_gifts.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_cider_press{background-image:url(../assets/images/cards/art-ord_cider_press.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_eggs_and_herbs{background-image:url(../assets/images/cards/art-ord_eggs_and_herbs.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_honeyed_fruit{background-image:url(../assets/images/cards/art-ord_honeyed_fruit.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_breakfast_box{background-image:url(../assets/images/cards/art-ord_breakfast_box.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_artisan_flowers{background-image:url(../assets/images/cards/art-ord_artisan_flowers.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_market_picnic{background-image:url(../assets/images/cards/art-ord_market_picnic.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_country_kitchen{background-image:url(../assets/images/cards/art-ord_country_kitchen.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_sunrise_cart{background-image:url(../assets/images/cards/art-ord_sunrise_cart.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_countryside_gift{background-image:url(../assets/images/cards/art-ord_countryside_gift.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_roadside_honey{background-image:url(../assets/images/cards/art-ord_roadside_honey.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_village_garden{background-image:url(../assets/images/cards/art-ord_village_garden.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_spring_festival{background-image:url(../assets/images/cards/art-ord_spring_festival.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_harvest_hall{background-image:url(../assets/images/cards/art-ord_harvest_hall.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_golden_gift{background-image:url(../assets/images/cards/art-ord_golden_gift.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_valley_breakfast{background-image:url(../assets/images/cards/art-ord_valley_breakfast.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_town_market{background-image:url(../assets/images/cards/art-ord_town_market.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}
.card.kind-order .card-art.art-ord_farmers_celebration{background-image:url(../assets/images/cards/art-ord_farmers_celebration.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;}

.card.selectable{cursor:pointer}
.card.selectable:hover{filter:brightness(1.03);transform:translateY(-2px);transition:transform .1s}
.card.selected{outline:3px solid var(--gold);outline-offset:2px}
.card.dim{opacity:.45;filter:grayscale(.35)}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.card-pill{
  background:var(--forest);color:var(--cream);border-radius:999px;
  padding:2px 8px;font-size:8px;letter-spacing:.11em;text-transform:uppercase;
  font-weight:600;white-space:nowrap;
}
.card.xs .card-pill{padding:1px 4px;font-size:4px;letter-spacing:.06em;}
.card-icon{width:17px;height:17px;flex:0 0 auto;opacity:.9}
.card.xs .card-icon{width:9px;height:9px;}
.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:1px 0 0}
.card-title{font-family:var(--serif);color:var(--forest);font-size:calc(14px * var(--ts,1));line-height:1.15}
.card.kind-farm .card-title{font-size:calc(15px * var(--ts,1))}
.card.xs .card-title{font-size:8px;line-height:1.05}
.card-sub{font-size:calc(9px * var(--cs,1));color:var(--muted);font-variant:small-caps;letter-spacing:.07em;font-weight:700}
.card.xs .card-sub{font-size:5px;letter-spacing:.04em;}
.card-art{
  background:var(--sage);
  background-image:
    radial-gradient(circle at 26% 34%, rgba(255,255,255,.4) 0 12%, rgba(255,255,255,0) 13%),
    repeating-linear-gradient(-38deg, rgba(47,74,58,.10) 0 3px, rgba(0,0,0,0) 3px 11px);
  border:1px solid rgba(47,74,58,.35);
  border-radius:7px;height:44px;flex:0 0 auto;
}
.card.sm .card-art{height:34px}
.card.xs .card-art{height:59px}
/* Farmers show their own portrait art full-bleed behind the whole card (each Farmer has a
   unique .farmer-far_xxx background-image rule below), same technique as Farm cards — the
   art box itself just goes transparent so the portrait shows through underneath.
   Height matches the boxed-art kinds (118px) purely as an invisible layout spacer — since
   this element is transparent, it doesn't crop or hide any of the portrait (that's the
   card's own full-bleed background); it just makes the description box below start at the
   exact same Y position as every other card kind. */
.card.kind-farmer .card-art{height:118px;background:transparent;border:none;border-radius:0;}
.card.kind-farmer .card-pill{background:rgba(245,239,221,.82);color:var(--forest);}
.card.kind-farmer .card-title-row{background:rgba(245,239,221,.82);border-radius:8px;padding:1px 6px;box-shadow:0 1px 3px rgba(0,0,0,.18);}
/* Resource/Action/Dream/Improvement/Order/Farmer all share the same translucent, border-free
   description panel. It flex-grows to fill all the remaining space down to the footer (so
   short text just leaves breathing room inside the box, rather than the box shrinking) and
   sits just below the art/portrait, separated by the card's own normal flex gap. */
.card.kind-resource .card-box,
.card.kind-action .card-box,
.card.kind-dream .card-box,
.card.kind-improvement .card-box,
.card.kind-order .card-box,
.card.kind-farmer .card-box{
  background:rgba(251,247,236,.82);box-shadow:0 1px 3px rgba(0,0,0,.18);border:none;
  flex:1 1 auto;
}

/* Farm cards show their own scenery art in the art box, cropped to fill via background-size:cover. */
.card.kind-farm .card-art{height:70px;background:transparent;border:none;border-radius:0;}
.card.kind-farm .card-head{padding:1px 2px;}
.card.kind-farm .card-pill{background:rgba(245,239,221,.82);color:var(--forest);}
.card.kind-farm .card-title-row{background:rgba(245,239,221,.82);border-radius:8px;padding:1px 6px;box-shadow:0 1px 3px rgba(0,0,0,.18);}
.card.kind-farm .card-box{background:rgba(251,247,236,.82);box-shadow:0 1px 3px rgba(0,0,0,.18);font-size:calc(14px * var(--cs,1));margin-top:20px;flex:1 1 auto;}
/* Buildable Farm cards' Recipe/Harvest/Ability box still grows taller via flex:1 in the
   space above the (now-compact) footer bar, so its text can stay bigger. */

.card.farm-flower{background-image:url(../assets/images/cards/farm-flower.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-flower.v2{background-image:url(../assets/images/cards/farm-flower-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-herb{background-image:url(../assets/images/cards/farm-herb.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-herb.v2{background-image:url(../assets/images/cards/farm-herb-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-chicken{background-image:url(../assets/images/cards/farm-chicken.jpg);background-position:center 26%;background-size:cover;background-repeat:no-repeat;}
.card.farm-chicken.v2{background-image:url(../assets/images/cards/farm-chicken-v2.jpg);background-position:center 26%;background-size:cover;background-repeat:no-repeat;}
.card.farm-orchard{background-image:url(../assets/images/cards/farm-orchard.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-orchard.v2{background-image:url(../assets/images/cards/farm-orchard-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-craft{background-image:url(../assets/images/cards/farm-craft.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-craft.v2{background-image:url(../assets/images/cards/farm-craft-v2.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-market{background-image:url(../assets/images/cards/farm-market.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-market.v2{background-image:url(../assets/images/cards/farm-market-v2.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-dairy{background-image:url(../assets/images/cards/farm-dairy.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-dairy.v2{background-image:url(../assets/images/cards/farm-dairy-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-vegetable{background-image:url(../assets/images/cards/farm-vegetable.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-vegetable.v2{background-image:url(../assets/images/cards/farm-vegetable-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-goat{background-image:url(../assets/images/cards/farm-goat.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-goat.v2{background-image:url(../assets/images/cards/farm-goat-v2.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farm-honey{background-image:url(../assets/images/cards/farm-honey.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}
.card.farm-honey.v2{background-image:url(../assets/images/cards/farm-honey-v2.jpg);background-position:center 22%;background-size:cover;background-repeat:no-repeat;}

/* Each Farmer's own unique portrait, full-bleed behind the whole card (same technique as Farm cards). */
.card.farmer-far_bea_honeywell{background-image:url(../assets/images/cards/farmer-far_bea_honeywell.jpg);background-position:center 20%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_clover_reed{background-image:url(../assets/images/cards/farmer-far_clover_reed.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_flora_green{background-image:url(../assets/images/cards/farmer-far_flora_green.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_june_berry{background-image:url(../assets/images/cards/farmer-far_june_berry.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_milo_meadows{background-image:url(../assets/images/cards/farmer-far_milo_meadows.jpg);background-position:center 20%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_cora_creamer{background-image:url(../assets/images/cards/farmer-far_cora_creamer.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_poppy_lane{background-image:url(../assets/images/cards/farmer-far_poppy_lane.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_sage_bell{background-image:url(../assets/images/cards/farmer-far_sage_bell.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_sunny_vale{background-image:url(../assets/images/cards/farmer-far_sunny_vale.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_tess_maker{background-image:url(../assets/images/cards/farmer-far_tess_maker.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_wren_fields{background-image:url(../assets/images/cards/farmer-far_wren_fields.jpg);background-position:center 12%;background-size:cover;background-repeat:no-repeat;}
.card.farmer-far_rowan_appleby{background-image:url(../assets/images/cards/farmer-far_rowan_appleby.jpg);background-position:center 24%;background-size:cover;background-repeat:no-repeat;}

.card-box{
  background:var(--cream-2);
  border:1px solid rgba(47,74,58,.22);
  border-radius:6px;padding:4px 6px;line-height:1.28;
}
.card.xs .card-box{border-width:.5px;border-radius:3px;padding:2px 3px;line-height:1.1;}
.card-box .lbl{
  display:block;font-size:calc(8px * var(--cs,1));letter-spacing:.1em;text-transform:uppercase;
  color:var(--forest-3);font-weight:700;margin-bottom:1px;
}
.card.xs .card-box .lbl{font-size:4px;margin-bottom:0;}
.card-box-row + .card-box-row{border-top:1px solid rgba(47,74,58,.18);margin-top:4px;padding-top:4px;}
.card.xs .card-box-row + .card-box-row{margin-top:2px;padding-top:2px;}
/* A single flat branding bar, identical on every card kind (Farm/Farmer/Resource/etc.) —
   negative margins cancel the card's own padding so it spans edge-to-edge, and the card's
   overflow:hidden + border-radius clips its bottom corners to match automatically. */
.card-foot{
  background:#212522;color:var(--cream);
  font-size:4.5px;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-align:center;
  margin:0 -7px -6px;padding:1.5px 5px;
}
.card.sm .card-foot{margin:0 -6px -6px;}
.card.xs .card-foot{margin:0 -3px -3px;}
.card-gold{
  flex:0 0 auto;
  width:23px;height:23px;border-radius:50%;
  background:var(--gold);border:2px solid var(--gold-dk);
  color:#3a2a07;font-family:var(--serif);font-weight:700;font-size:12px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.card-back{
  background:var(--forest);
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 6px, rgba(0,0,0,0) 6px 12px);
  color:var(--cream);align-items:center;justify-content:center;
  min-height:132px;
}
.card-back .card-title{color:var(--cream)}
.card-back.brown{
  background:#6B4A30;
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 6px, rgba(0,0,0,0) 6px 12px);
  border-color:#4C331F;
}
.hero-banner{
  position:relative;max-width:620px;margin:40px auto 0;height:230px;
  border-radius:16px;overflow:hidden;border:2px solid var(--forest);
  box-shadow:0 2px 0 rgba(47,74,58,.18), 0 10px 26px rgba(47,74,58,.22);
  background-image:url("");
  background-size:cover;background-position:center 42%;
}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(20,28,18,.04) 0%, rgba(20,28,18,.10) 45%, rgba(16,22,14,.62) 100%),
    linear-gradient(100deg, rgba(16,22,14,.60) 0%, rgba(16,22,14,.18) 40%, rgba(16,22,14,0) 62%);
}
.hero-title-wrap{position:absolute;left:22px;bottom:16px;right:20px}
.hero-logo{
  display:block;height:72px;width:auto;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.4));
}
.hero-tagline{
  font-variant:small-caps;letter-spacing:.1em;font-size:12.5px;
  color:#EAE1C6;text-shadow:0 1px 4px rgba(0,0,0,.55);margin-top:6px;
}
.header-logo{height:52px;width:auto;display:block}
@media (max-width:640px){ .hero-banner{height:180px} .hero-logo{height:54px} }

/* ---------- setup screen layout ---------- */
/* Single centered column, a touch narrower than the full game board. */
.setup-hero{max-width:920px;margin:6px auto 12px;height:280px}
.setup-panel{max-width:920px;margin:0 auto 40px}
@media (max-width:640px){ .setup-hero{height:200px} }

/* ---------- resume-game banner ---------- */
.resume-banner{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:var(--cream-3);border:1px solid rgba(47,74,58,.22);
  border-left:4px solid var(--gold);border-radius:8px;
  padding:12px 14px;margin:0 0 16px;
}
.resume-title{font-family:var(--serif);color:var(--forest);font-size:15px}
.resume-sub{font-size:12px;color:var(--ink);opacity:.8;margin-top:2px}
.resume-banner button{white-space:nowrap}

/* ---------- account / stats panel ---------- */
.account-panel{
  background:var(--cream-3);border:1px solid rgba(47,74,58,.18);border-radius:8px;
  padding:12px 14px;margin:0 0 16px;
}
.account-panel .panel-title{margin-top:0}
.account-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* ---------- setup intro copy ---------- */
.intro-lede{font-size:13px;line-height:1.5;color:var(--ink);margin:2px 0 14px}
.intro-note{margin:0 0 14px}
.phase-list{display:flex;flex-direction:column;gap:9px;margin:2px 0 2px}
.phase-row{display:flex;gap:12px;align-items:baseline}
.phase-name{
  flex:0 0 82px;font-family:var(--serif);color:var(--forest);
  font-variant:small-caps;letter-spacing:.06em;font-size:14px;
}
.phase-desc{flex:1;font-size:13px;line-height:1.5;color:var(--ink)}
.setup-list .phase-name{flex-basis:118px}
@media (max-width:640px){
  .phase-row{flex-direction:column;gap:1px}
  .phase-name{flex:none}
}

.cardrow{display:flex;gap:9px;flex-wrap:wrap;align-items:stretch}
.cardrow.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}
.col>.card{flex:1 1 auto}

/* farm in play — reuses the same .card/.kind-farm styling as the buildable Farm card
   (full-bleed art, cream pill/title) so a built Farm looks like its card, just with
   Farmer/Improvement slots in place of the Recipe/Harvest/Ability box. */
.card.kind-farm.sideways{opacity:.78;filter:grayscale(.2);transform:rotate(-1deg)}
.card-box.slots .card-box-row{color:var(--muted)}
.card-box.slots .card-box-row.filled{color:var(--ink);font-weight:600}

/* players */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.pcard{background:var(--cream);border:2px solid var(--forest);border-radius:13px;padding:9px 11px;box-shadow:0 2px 0 rgba(47,74,58,.2)}
.pcard.active{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,161,61,.35), 0 2px 0 var(--gold-dk)}
.pname{font-family:var(--serif);font-size:16px;color:var(--forest);display:flex;align-items:center;gap:7px}
.prosp{font-family:var(--serif);font-size:20px;color:var(--forest)}

/* log */
.log{max-height:230px;overflow-y:auto;font-size:11.5px;display:flex;flex-direction:column;gap:0}
.log .li{padding:3px 5px;border-bottom:1px dotted rgba(47,74,58,.18)}
.log .li b{color:var(--forest);font-family:var(--serif)}
.log .li.sys{color:var(--muted);font-style:italic}
.log .li.big{background:rgba(212,161,61,.18);border-radius:5px}

/* modal */
.overlay{
  position:fixed;inset:0;background:rgba(30,42,32,.62);
  display:flex;align-items:center;justify-content:center;padding:18px;z-index:60;
  backdrop-filter:blur(2px);
}
.turn-callout{
  position:fixed;top:14px;right:16px;z-index:40;max-width:280px;
  background:var(--gold);color:#3a2a07;
  border:2px solid var(--gold-dk);border-radius:14px;
  padding:10px 16px;box-shadow:0 6px 18px rgba(0,0,0,.28);
  animation:calloutPop .22s ease-out;
}
.turn-callout .tc-title{font-family:var(--serif);font-weight:700;font-size:15px;margin-bottom:2px}
.turn-callout .tc-sub{font-size:11.5px;line-height:1.35;color:#4a3610}
@keyframes calloutPop{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
@media (max-width:640px){ .turn-callout{left:16px;right:16px;max-width:none} }
.gain-popup{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:70;
  background:var(--cream-2);border:2px solid var(--forest);border-radius:16px;
  padding:12px 18px;box-shadow:0 10px 28px rgba(0,0,0,.32);
  text-align:center;cursor:pointer;max-width:90vw;
  animation:gainPopIn .28s cubic-bezier(.34,1.56,.64,1);
}
.gain-popup .gp-title{font-family:var(--serif);font-weight:700;font-size:14px;color:var(--forest);margin-bottom:6px}
.gain-popup .gp-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.gain-popup .gp-item{display:inline-flex;align-items:center;gap:5px;background:var(--cream);border:1px solid rgba(47,74,58,.35);border-radius:10px;padding:4px 10px}
.gain-popup .gp-item b{font-family:var(--serif);color:var(--forest);font-size:13px}
@keyframes gainPopIn{from{transform:translateX(-50%) translateY(14px) scale(.9);opacity:0}to{transform:translateX(-50%) translateY(0) scale(1);opacity:1}}
.modal{
  background:var(--cream);border:3px solid var(--forest);border-radius:16px;
  padding:16px 18px;max-width:min(1180px,96vw);max-height:92vh;overflow-y:auto;
  box-shadow:0 14px 40px rgba(0,0,0,.35);
}
.modal-title{font-family:var(--serif);font-size:20px;color:var(--forest);margin:0 0 4px}
.modal-text{margin:0 0 12px;font-size:13px;color:var(--muted);max-width:760px}
.opt-list{display:flex;flex-direction:column;gap:7px;min-width:320px}
.improvement-note{
  background:rgba(212,161,61,.15);border:1px solid rgba(184,138,42,.45);
  border-radius:8px;padding:8px 12px;font-size:12.5px;color:var(--ink);
  margin-bottom:14px;max-width:600px;
}
.improvement-note .lbl{
  display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--gold-dk);font-weight:700;margin-bottom:2px;
}
.opt{
  text-align:left;background:var(--cream-2);color:var(--ink);border:1px solid var(--forest);
  border-radius:9px;padding:9px 12px;cursor:pointer;font-size:13px;
  box-shadow:0 2px 0 rgba(47,74,58,.22);font-family:var(--sans);
}
.opt:hover:not(:disabled){background:#fff}
.opt .oh{font-family:var(--serif);color:var(--forest);font-size:14px}
.opt .od{font-size:11px;color:var(--muted)}
.opt.sel{outline:3px solid var(--gold);outline-offset:1px}

/* interstitial */
.pass{
  min-height:88vh;display:flex;align-items:center;justify-content:center;
}
.passbox{
  background:var(--cream);border:3px solid var(--forest);border-radius:20px;
  padding:36px 44px;text-align:center;max-width:620px;
  box-shadow:0 3px 0 rgba(47,74,58,.3), 0 18px 40px rgba(47,74,58,.2);
}
.passbox h1{font-size:34px;margin-bottom:6px}
.passbox .sub{font-size:15px;color:var(--muted);margin:10px 0 22px}

.gate{
  border:2px dashed var(--forest);border-radius:12px;background:repeating-linear-gradient(45deg,var(--cream-3) 0 8px,var(--cream) 8px 16px);
  padding:20px;text-align:center;
}
.hidden-note{font-size:12px;color:var(--muted);margin-top:6px}

table.tbl{border-collapse:collapse;font-size:11.5px;width:100%}
table.tbl th,table.tbl td{border-bottom:1px solid rgba(47,74,58,.2);padding:3px 6px;text-align:left}
table.tbl th{font-variant:small-caps;letter-spacing:.06em;color:var(--forest)}

.stepbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.step{padding:3px 11px;border-radius:999px;font-size:11px;font-variant:small-caps;letter-spacing:.08em;background:var(--cream-3);color:var(--muted);border:1px solid rgba(47,74,58,.25)}
.step.on{background:var(--forest);color:var(--cream);border-color:var(--forest)}
.step.done{background:var(--sage);color:var(--forest)}

.supply-slot{position:relative}
.supply-slot.empty .card{opacity:.4;filter:grayscale(.35)}
.supply-slot.reserved .card{outline:3px solid var(--gold);outline-offset:2px}
.supply-count{
  position:absolute;top:-9px;left:-9px;
  width:26px;height:26px;border-radius:50%;
  background:var(--forest);color:var(--cream);border:2px solid var(--forest);
  font-family:var(--serif);font-weight:700;font-size:12px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 4px rgba(0,0,0,.25);
}
.supply-reserved{
  position:absolute;bottom:-8px;left:6px;right:6px;text-align:center;
  font-size:8px;padding:2px 4px;border-radius:6px;
}

.slot-empty{
  width:188px;min-height:150px;border:2px dashed rgba(47,74,58,.4);border-radius:13px;
  display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;
  font-variant:small-caps;letter-spacing:.08em;background:rgba(255,255,255,.25);
}
.blocked{position:relative}
.blocked::after{
  content:"BLOCKED";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(156,74,56,.72);color:#fff;font-family:var(--serif);letter-spacing:.14em;font-size:13px;border-radius:11px;
}
