:root {
  --lavender:   #D5CDE6;
  --sage:       #C8D4B0;
  --deep-sage:  #7B8C63;
  --sky:        #9ecae1;
  --blush:      #DFB9B4;
  --rose:       #D39BA0;
  --stem:       #C9B8A2;
  --pollen:     #EE9452;
  --honey:      #E0B451;
  --wisteria:   #B8A8D4;
  --foxglove:   #C97BA8;
  --peony:      #E8C4C0;
  --cream:      #F0E8D8;
  --cornflower: #8BAAD0;
  --lilac:      #C8B8E0;
}

/* ── RESET ── */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Lora', serif;
}

body {
  height: 100vh;
  background: linear-gradient(to bottom, var(--rose), var(--stem), var(--sage));
  overflow: hidden;
  position: relative;
}


/* ── MOUSE FOLLOWER ── */
#mouse-follower {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
  opacity: 0;
  transition: opacity 0.3s;
}

/* Pixel BEE */
.follower-bee-pixel {
  position: relative;
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
  animation: followerBobble 2s ease-in-out infinite;
}
.fb-honey   { position: absolute; top: 8px;  left: 4px;  width: 24px; height: 16px; background: var(--honey); }
.fb-stripe1 { position: absolute; top: 12px; left: 4px;  width: 24px; height: 4px;  background: #222; }
.fb-stripe2 { position: absolute; top: 18px; left: 4px;  width: 24px; height: 3px;  background: #222; }
.fb-wing-l  { position: absolute; top: 0;    left: 2px;  width: 12px; height: 10px; background: var(--sky); opacity: .8; animation: wingBeat .3s linear infinite alternate; }
.fb-wing-r  { position: absolute; top: 0;    right: 2px; width: 12px; height: 10px; background: var(--sky); opacity: .8; animation: wingBeat .3s linear infinite alternate-reverse; }

@keyframes wingBeat {
  0%   { transform: scaleX(1)   translateY(0); }
  100% { transform: scaleX(.6)  translateY(-2px); }
}
@keyframes followerBobble {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-4px); }
}

/* Butterfly follower */
.follower-butterfly-img {
  width: 48px;
  height: auto;
  image-rendering: pixelated;
  animation: followerBobble 2s ease-in-out infinite, butterflyFlap .5s ease-in-out infinite alternate;
  display: block;
}
@keyframes butterflyFlap {
  0%   { transform: scaleX(1); }
  100% { transform: scaleX(0.55); }
}

/* Show/hide based on mode class */
.bee-follower       .follower-bee-pixel      { display: block; }
.bee-follower       .follower-butterfly-img  { display: none;  }
.butterfly-follower .follower-bee-pixel      { display: none;  }
.butterfly-follower .follower-butterfly-img  { display: block; }


/* ── VINE DECORATIONS ── */
.vine-wrapper {
  position: absolute;
  top: 0;
  width: 80px;
  height: 100vh;
  z-index: 2;
}
.vine-wrapper-left  { left: 10px; }
.vine-wrapper-right { right: 10px; transform: scaleX(-1); }

.pixel-vine {
  position: absolute;
  top: 0; left: 32px;
  width: 16px; height: 16px;
  background: var(--deep-sage);
  image-rendering: pixelated;
  opacity: .85;
  box-shadow:
    0px 16px var(--deep-sage),   16px 32px var(--deep-sage),
    -16px 32px var(--sage),   -32px 32px var(--sage),
    16px 48px var(--deep-sage),   0px 64px var(--deep-sage),  -16px 80px var(--deep-sage),
    32px 80px var(--sage),  48px 80px var(--sage),
    -16px 96px var(--deep-sage),  0px 112px var(--deep-sage), 16px 128px var(--deep-sage),
    -16px 128px var(--sage),-32px 128px var(--sage),
    16px 144px var(--deep-sage),  0px 160px var(--deep-sage), -16px 176px var(--deep-sage),
    32px 176px var(--sage), 48px 176px var(--sage),
    -16px 192px var(--deep-sage), 0px 208px var(--deep-sage), 16px 224px var(--deep-sage),
    -16px 224px var(--sage),-32px 224px var(--sage),
    16px 240px var(--deep-sage),  0px 256px var(--deep-sage), -16px 272px var(--deep-sage),
    32px 272px var(--sage), 48px 272px var(--sage),
    -16px 288px var(--deep-sage), 0px 304px var(--deep-sage), 16px 320px var(--deep-sage),
    -16px 320px var(--sage),-32px 320px var(--sage),
    16px 336px var(--deep-sage),  0px 352px var(--deep-sage), -16px 368px var(--deep-sage),
    32px 368px var(--sage), 48px 368px var(--sage),
    -16px 384px var(--deep-sage), 0px 400px var(--deep-sage),
    16px 416px var(--deep-sage), 0px 432px var(--deep-sage), -16px 448px var(--deep-sage),
    -32px 448px var(--sage),    -48px 448px var(--sage),
    -16px 464px var(--deep-sage), 0px 480px var(--deep-sage),
    16px 496px var(--deep-sage), 0px 512px var(--deep-sage),
    -16px 528px var(--deep-sage), 0px 544px var(--deep-sage),
    16px 560px var(--deep-sage), 0px 576px var(--deep-sage),
    -16px 592px var(--deep-sage), 0px 608px var(--deep-sage);
}

.pixel-flower {
  position: absolute;
  width: 16px; height: 16px;
  image-rendering: pixelated;
  animation: flowerSway 4s ease-in-out infinite;
  transform-origin: bottom center;
}

.flower-wisteria   { background: var(--wisteria);   box-shadow: 0 -16px var(--wisteria),   0 16px var(--wisteria),   -16px 0 var(--wisteria),   16px 0 var(--wisteria); }
.flower-foxglove   { background: var(--foxglove);   box-shadow: 0 -16px var(--foxglove),   0 16px var(--foxglove),   -16px 0 var(--foxglove),   16px 0 var(--foxglove); }
.flower-lilac      { background: var(--lilac);      box-shadow: 0 -16px var(--lilac),      0 16px var(--lilac),      -16px 0 var(--lilac),      16px 0 var(--lilac); }
.flower-blush      { background: var(--blush);      box-shadow: 0 -16px var(--blush),      0 16px var(--blush),      -16px 0 var(--blush),      16px 0 var(--blush); }
.flower-cornflower { background: var(--cornflower); box-shadow: 0 -16px var(--cornflower), 0 16px var(--cornflower), -16px 0 var(--cornflower), 16px 0 var(--cornflower); }

.flower-wisteria::after   { content: ''; position: absolute; width: 8px; height: 8px; background: var(--honey);    top: 4px; left: 4px; }
.flower-foxglove::after   { content: ''; position: absolute; width: 8px; height: 8px; background: var(--cream);    top: 4px; left: 4px; }
.flower-lilac::after      { content: ''; position: absolute; width: 8px; height: 8px; background: var(--lavender); top: 4px; left: 4px; }
.flower-blush::after      { content: ''; position: absolute; width: 8px; height: 8px; background: var(--pollen);   top: 4px; left: 4px; }
.flower-cornflower::after { content: ''; position: absolute; width: 8px; height: 8px; background: var(--cream);    top: 4px; left: 4px; }

@keyframes flowerSway {
  0%   { transform: rotate(-4deg); }
  50%  { transform: rotate(4deg); }
  100% { transform: rotate(-4deg); }
}
.pixel-flower:nth-child(2) { animation-delay: .3s; }
.pixel-flower:nth-child(3) { animation-delay: .7s; }
.pixel-flower:nth-child(4) { animation-delay: 1.1s; }
.pixel-flower:nth-child(5) { animation-delay: 1.5s; }
.pixel-flower:nth-child(6) { animation-delay: .9s; }
.pixel-flower:nth-child(7) { animation-delay: .2s; }
.pixel-flower:nth-child(8) { animation-delay: 1.8s; }


/* ── TITLE ── */
.title {
  position: absolute;
  top: 30px;
  width: 100%;
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 2.5rem;
  color: var(--deep-sage);
  text-shadow: 1px 2px 0 rgba(255, 255, 255, .4);
  z-index: 10;
  pointer-events: none;
}


/* ── GAME AREA + SCREENS ── */
.game-area {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 70%; height: 65%;
  background: transparent;
  border: 4px dashed var(--deep-sage);
  border-radius: 20px;
  z-index: 5;
  overflow: hidden;
}

.screen {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.screen.hidden { display: none; }

#gameScreen { padding: 0; }

.back-btn {
  position: absolute;
  top: 14px; left: 16px;
  background: rgba(255, 255, 255, .6);
  border: 2px solid var(--deep-sage);
  border-radius: 10px;
  color: var(--deep-sage);
  font-family: 'Lora', serif;
  font-size: .9rem;
  padding: 6px 14px;
  cursor: pointer;
  transition: background .2s;
}
.back-btn:hover { background: rgba(255, 255, 255, .85); }


/* ── MENU SCREEN ── */
.menu-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  margin-bottom: 64px;
}
.menu-tagline {
  font-size: 1rem;
  color: var(--deep-sage);
  opacity: .8;
  letter-spacing: .04em;
  font-style: italic;
}

.bottom-hint { font-size: .75rem; color: var(--deep-sage); opacity: .6; font-style: italic; }

.bottom-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  background: rgba(255, 255, 255, .25);
  border-top: 2px dashed rgba(123, 140, 99, .35);
}

/* Bee/Butterfly toggle */
.follower-toggle-wrap { display: flex; align-items: center; gap: 10px; }
.toggle-label-text    { font-size: .8rem; color: var(--deep-sage); font-style: italic; }

.toggle-bee-mini { position: relative; width: 28px; height: 20px; image-rendering: pixelated; }
.tbm-body        { position: absolute; top: 4px;  left: 2px; width: 20px; height: 12px; background: var(--honey); }
.tbm-stripe      { position: absolute; top: 8px;  left: 2px; width: 20px; height: 3px;  background: #222; }
.tbm-wing-l      { position: absolute; top: 0;    left: 0;   width: 10px; height: 6px;  background: var(--sky); opacity: .8; }
.tbm-wing-r      { position: absolute; top: 0;    right: 0;  width: 10px; height: 6px;  background: var(--sky); opacity: .8; }

.toggle-butterfly-mini { position: relative; width: 26px; height: 20px; image-rendering: pixelated; }
.tbm-bwing-l { position: absolute; top: 0; left: 0;  width: 12px; height: 18px; background: var(--foxglove); border-radius: 60% 20% 20% 40%; }
.tbm-bwing-r { position: absolute; top: 0; right: 0; width: 12px; height: 18px; background: var(--foxglove); border-radius: 20% 60% 40% 20%; }
.tbm-bbody   { position: absolute; top: 2px; left: 50%; transform: translateX(-50%); width: 4px; height: 14px; background: #333; border-radius: 2px; z-index: 2; }

.switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 60px; height: 26px;
}
.toggle {
  opacity: 0;
  width: 0; height: 0;
  position: absolute;
}
.slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--stem);
  border-radius: 13px;
  border: 2px solid var(--deep-sage);
  transition: background .3s;
}
.slider:before {
  box-sizing: border-box;
  position: absolute;
  content: "";
  height: 22px; width: 22px;
  top: 0; left: 0;
  background: var(--honey);
  border-radius: 50%;
  border: 2px solid var(--deep-sage);
  transition: transform .3s;
}
.toggle:checked + .slider                { background: var(--lavender); }
.toggle:checked + .slider:before         { transform: translateX(34px); background: var(--foxglove); }


/* ── BACKGROUND DECORATIVE BEES ── */
.pixel-bee {
  position: absolute;
  width: 16px;
  height: 16px;
  background: var(--honey);
  image-rendering: pixelated;
  animation: floatBee 3s ease-in-out infinite;
  z-index: 3;
}
.pixel-bee::before {
  content: "";
  position: absolute;
  width: 16px;
  height: 8px;
  background: black;
  top: 4px;
}
.pixel-bee::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--sky);
  top: -6px;
  left: -4px;
  box-shadow: 12px 0 var(--sky);
}
.bee1 { top: 10%; left: 5%; }
.bee2 { bottom: 10%; right: 5%; animation-delay: 2s; }

@keyframes floatBee {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-15px); }
  100% { transform: translateY(0); }
}


/* ── BACKGROUND DECORATIVE BUTTERFLIES ── */
.butterfly-image {
  position: absolute;
  width: 150px;
  height: auto;
  image-rendering: pixelated;
  animation: floatButterfly 3s ease-in-out infinite;
  z-index: 3;
}
.butterfly1 { top: 5%; right: 5%; }
.butterfly2 { bottom: 5%; left: 5%; animation-delay: 3s; }

@keyframes floatButterfly {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-10px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}


/* ── FLOWER INDEX BUTTON ── */
.btn {
  height: 4em;
  width: 12em;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0px solid black;
  cursor: pointer;
}

.btn-corner {
  position: absolute;
  bottom: 10px;
  right: 10px;
  z-index: 20;
}

.btn .wrapper {
  height: 2em;
  width: 8em;
  position: relative;
  background: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
}

.btn .text {
  font-size: 17px;
  z-index: 1;
  color: var(--deep-sage);
  padding: 4px 12px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.7);
  transition: all 0.5s ease;
  font-family: 'Lora', serif;
  font-style: italic;
}

.btn .flower {
  display: grid;
  grid-template-columns: 1em 1em;
  position: absolute;
  transition: grid-template-columns 0.8s ease;
}

.btn .flower1 { top: -12px;  left: -13px; transform: rotate(5deg); }
.btn .flower2 { bottom: -5px; left: 8px;  transform: rotate(35deg); }
.btn .flower3 { bottom: -15px;             transform: rotate(0deg); }
.btn .flower4 { top: -14px;                transform: rotate(15deg); }
.btn .flower5 { right: 11px;  top: -3px;  transform: rotate(25deg); }
.btn .flower6 { right: -15px; bottom: -15px; transform: rotate(30deg); }

.btn .petal {
  height: 1em;
  width: 1em;
  border-radius: 40% 70% / 7% 90%;
  background: linear-gradient(#07a6d7, #93e0ee);
  border: 0.5px solid #96d1ec;
  z-index: 0;
  transition: width 0.8s ease, height 0.8s ease;
}

.btn .two   { transform: rotate(90deg); }
.btn .three { transform: rotate(270deg); }
.btn .four  { transform: rotate(180deg); }

.btn:hover .petal         { background: linear-gradient(#0761d7, #93bdee); border: 0.5px solid #96b4ec; }
.btn:hover .flower        { grid-template-columns: 1.5em 1.5em; }
.btn:hover .flower .petal { width: 1.5em; height: 1.5em; }
.btn:hover .text          { background: rgba(255, 255, 255, 0.4); }

.btn:hover div.flower1 { animation: 15s linear 0s normal none infinite running btnF1; }
.btn:hover div.flower2 { animation: 13s linear 1s normal none infinite running btnF2; }
.btn:hover div.flower3 { animation: 16s linear 1s normal none infinite running btnF3; }
.btn:hover div.flower4 { animation: 17s linear 1s normal none infinite running btnF4; }
.btn:hover div.flower5 { animation: 20s linear 1s normal none infinite running btnF5; }
.btn:hover div.flower6 { animation: 15s linear 1s normal none infinite running btnF6; }

@keyframes btnF1 { 0% { transform: rotate(5deg); }   100% { transform: rotate(365deg); }  }
@keyframes btnF2 { 0% { transform: rotate(35deg); }  100% { transform: rotate(-325deg); } }
@keyframes btnF3 { 0% { transform: rotate(0deg); }   100% { transform: rotate(360deg); }  }
@keyframes btnF4 { 0% { transform: rotate(15deg); }  100% { transform: rotate(375deg); }  }
@keyframes btnF5 { 0% { transform: rotate(25deg); }  100% { transform: rotate(-335deg); } }
@keyframes btnF6 { 0% { transform: rotate(30deg); }  100% { transform: rotate(390deg); }  }


/* ── START BUTTON ── */
.button {
  position: relative;
  text-align: center;
  transition: .3s ease-in-out;
  cursor: pointer;
  background-color: var(--peony);
  display: inline-flex;
  align-items: center;
  user-select: none;
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: bold;
  font-style: italic;
  color: var(--deep-sage);
  padding: .8em 1.8em;
  border: none;
  border-radius: 2rem;
  box-shadow: var(--deep-sage) 4px 4px 0 1px;
  animation: idle 1s infinite ease-in-out;
  overflow: hidden;
}
.highlight {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  fill: rgba(224, 180, 81, .4);
  stroke: rgba(224, 180, 81, .6);
  stroke-width: 10;
  stroke-linecap: round;
  pointer-events: none;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  transition: stroke-dashoffset .5s ease-in-out;
}
@keyframes idle   { 0%, 100% { rotate: 0deg; } 50% { rotate: 2.5deg; } }
@keyframes bHover {
  0%, 100% { rotate: 0deg;  translate: 0 0; }
  25%      { rotate: -1deg; translate: 0 -2px; }
  50%      { rotate: 0deg;  translate: 0 2px; }
  75%      { rotate: -1deg; translate: 0 -2px; }
}
@keyframes bActive {
  0%   { translate: 0 -1px; }
  25%  { rotate: -3deg; }
  50%  { translate: 0 1px; }
  66%  { rotate: 1.5deg; }
  100% { translate: 0 -1px; }
}
.button:hover                 { rotate: -2.5deg; animation: bHover 2.5s infinite ease-in-out; background-color: var(--blush); }
.button:hover .highlight      { stroke-dashoffset: 0; }
.button:active                { box-shadow: inset var(--deep-sage) 4px 4px 0 1px; rotate: -2.5deg; animation: bActive 1s infinite ease-in-out; }

.button-secondary {
  background-color: rgba(255, 255, 255, 0.75) !important;
  color: var(--deep-sage) !important;
  border: 2px solid var(--deep-sage) !important;
  font-style: italic;
}
.button-secondary .highlight rect {
  fill: none !important;
  stroke: var(--deep-sage) !important;
  stroke-width: 2px;
}
.button-secondary:hover {
  background-color: rgba(255, 255, 255, 0.95) !important;
}


/* ── STACKED PHOTO CARD ── */
.stack {
  width: 150px;
  transition: .25s ease;
  cursor: default;
}
.stack:hover                  { transform: rotate(5deg); }
.stack:hover .card:before     { transform: translateY(-2%) rotate(-4deg); }
.stack:hover .card:after      { transform: translateY(2%)  rotate(4deg); }

.card {
  aspect-ratio: 3 / 2;
  border: 3px solid var(--deep-sage);
  background: rgba(255, 255, 255, .88);
  position: relative;
  transition: .15s ease;
  cursor: default;
  padding: 6% 6% 18% 6%;
  border-radius: 4px;
}
.card:before,
.card:after {
  content: "";
  display: block;
  position: absolute;
  height: 100%; width: 100%;
  border: 3px solid var(--deep-sage);
  background: rgba(255, 255, 255, .85);
  transform-origin: center center;
  z-index: -1;
  transition: .15s ease;
  top: 0; left: 0;
  border-radius: 4px;
}
.card:before { transform: translateY(-2%) rotate(-6deg); }
.card:after  { transform: translateY(2%)  rotate(6deg); }

.card-image {
  width: 100%;
  border: 2px solid var(--stem);
  background: var(--sage);
  aspect-ratio: 1 / 1;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cfp    { position: relative; width: 36px; height: 36px; }
.cfp-pt { position: absolute; top: 0;    left: 50%; transform: translateX(-50%); width: 9px; height: 13px; background: var(--wisteria); border-radius: 50% 50% 0 0; }
.cfp-pb { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 9px; height: 13px; background: var(--wisteria); border-radius: 0 0 50% 50%; }
.cfp-pl { position: absolute; left: 0;   top: 50%;  transform: translateY(-50%); width: 13px; height: 9px; background: var(--lilac); border-radius: 50% 0 0 50%; }
.cfp-pr { position: absolute; right: 0;  top: 50%;  transform: translateY(-50%); width: 13px; height: 9px; background: var(--lilac); border-radius: 0 50% 50% 0; }
.cfp-c  { position: absolute; top: 50%;  left: 50%; transform: translate(-50%, -50%); width: 12px; height: 12px; background: var(--honey); border-radius: 50%; }

.card-caption {
  position: absolute;
  bottom: 4%; left: 0; right: 0;
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .62rem;
  color: var(--deep-sage);
  letter-spacing: .05em;
}

.stack-btn {
  background: none; border: none; padding: 0;
  cursor: default;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.stack-label { font-size: .8rem; color: var(--deep-sage); font-style: italic; opacity: .8; }


/* ── FLOWER INDEX SCREEN ── */
.index-title {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.5rem;
  color: var(--deep-sage);
  margin-bottom: 14px;
  margin-top: 8px;
}

/* 4-column grid for compact thumbnails */
.flower-index-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  width: 100%;
  max-height: calc(100% - 90px);
  overflow-y: auto;
  padding: 0 4px 8px;
  scrollbar-width: thin;
  scrollbar-color: var(--sage) transparent;
}

.flower-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 12px;
  padding: 10px 8px;
  border: 2px solid rgba(123, 140, 99, 0.2);
  transition: transform .2s, background .2s, box-shadow .2s;
  text-align: center;
  cursor: default;
}
.flower-card:hover {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, 0.80);
  box-shadow: 0 4px 12px rgba(123, 140, 99, 0.18);
}

.index-stack { width: 58px; flex-shrink: 0; transition: .2s ease; }
.index-stack:hover { transform: rotate(5deg); }
.index-card {
  aspect-ratio: 1 / 1;
  border: 2px solid var(--deep-sage);
  background: rgba(255, 255, 255, .9);
  position: relative;
  border-radius: 3px;
  overflow: hidden;
}
.index-card:before,
.index-card:after {
  content: "";
  position: absolute; inset: 0;
  border: 2px solid var(--deep-sage);
  background: rgba(255, 255, 255, .9);
  z-index: -1;
  border-radius: 3px;
}
.index-card:before { transform: rotate(-4deg); }
.index-card:after  { transform: rotate(4deg); }

.flower-swatch { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.flower-info   { display: flex; flex-direction: column; gap: 2px; }
.flower-info strong { font-size: .82rem; color: var(--deep-sage); }
.flower-hex         { font-size: .68rem; color: #999; font-family: monospace; }
.flower-info p      { font-size: .7rem; color: #555; line-height: 1.4; margin-top: 2px; }

/* Game flower thumbnail */
.index-flower-thumb {
  width: 72px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid rgba(123, 140, 99, 0.3);
  background: rgba(200, 212, 176, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.index-flower-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
  display: block;
}

.index-flower-locked {
  background: rgba(180, 170, 160, 0.2);
  border-color: rgba(180, 170, 160, 0.3);
}
.index-lock-icon {
  font-size: 1.8rem;
  color: rgba(150, 140, 130, 0.5);
  font-family: 'Playfair Display', serif;
  font-style: italic;
}

.index-flower-name {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: .78rem;
  color: var(--deep-sage);
  font-weight: 600;
  line-height: 1.2;
}

.index-flower-hint {
  font-size: .62rem;
  color: #aaa;
  font-style: italic;
}

.tag-row { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.tag { font-size: .62rem; padding: 1px 6px; border-radius: 50px; font-weight: 600; letter-spacing: .03em; }

/* ── GAME SCREEN ── */
#gameCanvas {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0;
}

.pollen-burst {
  position: fixed;
  pointer-events: none;
  z-index: 99997;
  width: 8px; height: 8px;
  background: var(--pollen);
  border-radius: 50%;
  transition: transform .6s ease-out, opacity .6s ease-out;
}


/* ── INFO MODAL ── */
#info-modal {
  position: fixed; inset: 0;
  z-index: 200;
  display: none;
  align-items: center; justify-content: center;
  background: rgba(0, 0, 0, .3);
  backdrop-filter: blur(4px);
}
#info-modal.active { display: flex; }

.modal-card {
  background: var(--cream);
  border: 3px solid var(--deep-sage);
  border-radius: 20px;
  padding: 2rem;
  max-width: 440px; width: 90%;
  box-shadow: 6px 6px 0 var(--deep-sage);
  animation: slideUp .3s ease;
  position: relative;
}
@keyframes slideUp {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.modal-close {
  position: absolute; top: 1rem; right: 1rem;
  background: var(--stem);
  border: 2px solid var(--deep-sage);
  border-radius: 50%;
  width: 30px; height: 30px;
  cursor: pointer;
  font-size: .9rem;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.modal-close:hover { background: var(--blush); }
.modal-flower-color { width: 44px; height: 44px; border-radius: 50%; border: 3px solid var(--deep-sage); margin-bottom: .7rem; }
.modal-card h2 { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.5rem; margin-bottom: .7rem; color: var(--deep-sage); }
.modal-card p  { line-height: 1.7; color: #5a4a3a; margin-bottom: .6rem; font-size: .9rem; }


/* ── CARD MODAL (full-size flower card viewer) ── */
#card-modal {
  position: fixed;
  inset: 0;
  z-index: 200000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
}
#card-modal.active { display: flex; }
#card-modal-inner {
  position: relative;
  max-width: 90vw;
  max-height: 88vh;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.45);
  animation: slideUp .3s ease;
}
#card-modal-img {
  display: block;
  max-width: 90vw;
  max-height: 88vh;
  object-fit: contain;
}
#card-modal-close {
  position: absolute;
  top: 10px; right: 12px;
  background: rgba(255, 255, 255, 0.85);
  border: 2px solid var(--deep-sage);
  border-radius: 50%;
  width: 32px; height: 32px;
  font-size: .95rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: background .2s;
}
#card-modal-close:hover { background: var(--blush); }
