/* WE ARE FARMER — forest, cream and sage shared with the company site. */
#hero.shooter-hero {
  --bloom-ink: #101f19;
  --bloom-muted: #aab69d;
  --bloom-lime: #b7c98a;
  --bloom-teal: #a5b88c;
  height: min(880px, calc(100svh - 88px));
  min-height: 720px;
  max-height: none;
  scroll-margin-top: 88px;
  color: #f3f0dc;
  background: #101f19;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  letter-spacing: 0;
}
#hero.shooter-hero.is-playing { height: calc(100svh - 88px); min-height: 480px; }
.shooter-hero #farm-container { touch-action: auto; outline-offset: -4px; }
.shooter-hero.is-playing #farm-container { touch-action: none; }
.shooter-hero #farm-container canvas { image-rendering: auto; }
.shooter-hero button, .shooter-hero summary { -webkit-tap-highlight-color: transparent; }
.shooter-hero button:focus-visible, .shooter-hero summary:focus-visible, .shooter-hero #farm-container:focus-visible { outline: 2px solid var(--bloom-lime); outline-offset: 4px; }
.shooter-hero button:disabled { cursor: wait; opacity: .5; }
.shooter-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #101f19f5 0%, #101f19ea 33%, #101f1915 70%), linear-gradient(0deg, #101f19 0%, transparent 45%); }
.shooter-hero.is-playing .shooter-shade { display: none; }
.shooter-hero #welcome-overlay { color: #f3f0dc; }
.bloom-copy { position: absolute; top: 9%; left: 6%; width: 51%; z-index: 2; }
.bloom-eyebrow, .bloom-label, .bloom-lab-heading, .bloom-footer { font-size: 10px; font-weight: 650; letter-spacing: .13em; line-height: 1.6; }
.bloom-eyebrow { display: flex; align-items: center; gap: 9px; color: var(--bloom-teal); }
.bloom-eyebrow > span:last-child { color: #98a68c; margin-left: 9px; font-size: 9px; }
.bloom-dot { height: 6px; width: 6px; border-radius: 100%; background: var(--bloom-lime); box-shadow: 0 0 14px #b7c98a60; }
.bloom-kicker { font-size: 12px; letter-spacing: .2em; color: #c0c9ac; margin: 33px 0 18px; }
.shooter-hero h1 { position: relative; display: inline-block; font-family: Arial, Helvetica, sans-serif; font-size: clamp(56px, 6.8vw, 98px); font-weight: 900; letter-spacing: -.065em; line-height: .94; color: #f5f1df; text-shadow: none; }
.shooter-hero h1 > span { color: var(--bloom-lime); }
.bloom-lead { font-size: clamp(18px, 1.75vw, 25px); line-height: 1.65; margin: 28px 0 14px; letter-spacing: .055em; }
.bloom-lead strong { font-weight: 700; }
.bloom-description { color: #bdc6af; font-size: 12px; line-height: 1.9; }
.bloom-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.bloom-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 20px; border: 1px solid #576b50; border-radius: 8px; font-size: 12px; font-weight: 700; line-height: 1.5; cursor: pointer; transition: background .18s, border-color .18s, transform .18s; pointer-events: auto; }
.bloom-button:hover { transform: translateY(-1px); border-color: #adbd91; }
.bloom-primary { background: var(--bloom-lime); border-color: var(--bloom-lime); color: #20301f; }
.bloom-primary:hover { background: #cbd8a6; border-color: #cbd8a6; }
.bloom-secondary { background: #1b3025bb; color: #e7e7ce; }
.bloom-load { font-size: 10px; color: #b1bba5; margin-top: 12px; line-height: 1.7; }
.bloom-howto { border-top: 1px solid #bdc9a724; margin-top: 26px; padding-top: 17px; display: flex; flex-wrap: wrap; column-gap: 19px; row-gap: 8px; max-width: 470px; color: #c1c9b1; font-size: 10px; }
.bloom-howto b { color: var(--bloom-teal); font-size: 9px; margin-right: 5px; }
.bloom-lab { position: absolute; width: 295px; right: 5%; bottom: 79px; padding: 19px; border: 1px solid #a4b8883b; border-radius: 12px; background: #1b3025e8; backdrop-filter: blur(18px); }
.bloom-lab-heading { display: flex; justify-content: space-between; color: var(--bloom-teal); font-size: 9px; gap: 8px; }
.bloom-lab-heading > span:last-child { font-size: 8px; color: #abb998; letter-spacing: .05em; }
.bloom-core-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 17px 0 10px; }
.bloom-core-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; color: #e9ead5; }
.bloom-core-symbol { color: var(--core-color); display: inline-grid; place-items: center; width: 24px; height: 25px; background: color-mix(in srgb, var(--core-color) 12%, transparent); border: 1px solid color-mix(in srgb, var(--core-color) 45%, transparent); border-radius: 5px; font-size: 14px; font-weight: 700; }
.bloom-lab .bloom-core-chip { flex: 1 1 43%; }
.bloom-lab p { font-size: 10px; color: #b9c4ad; line-height: 1.8; }
.bloom-recipes { margin-top: 14px; border-top: 1px solid #afbd952b; padding-top: 11px; }
.bloom-recipes summary { cursor: pointer; font-size: 11px; color: #edeed9; display: flex; justify-content: space-between; align-items: center; list-style: none; }
.bloom-recipes summary::-webkit-details-marker { display: none; }
.bloom-recipes[open] summary > span { transform: rotate(45deg); }
.bloom-recipe-list { display: grid; gap: 9px; max-height: 195px; overflow-y: auto; overscroll-behavior: contain; padding-right: 5px; margin-top: 13px; scrollbar-width: thin; }
.bloom-recipe-row { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid #b4c4a017; }
.bloom-recipe-pair { display: flex; align-items: center; gap: 3px; color: #95a183; font-size: 10px; }
.bloom-recipe-pair .bloom-core-symbol { width: 22px; height: 24px; font-size: 12px; }
.bloom-recipe-row strong { font-size: 10px; display: block; color: #e9efd9; letter-spacing: .03em; }
.bloom-recipe-row small { font-size: 9px; line-height: 1.5; color: #b8c2a9; display: block; margin-top: 3px; }
.bloom-footer { display: flex; justify-content: space-between; align-items: center; position: absolute; left: 6%; right: 5%; bottom: 24px; border-top: 1px solid #a4b68d28; padding-top: 19px; font-size: 8px; color: #acb69a; }
.bloom-footer button { color: #d7dfbf; font-size: 10px; cursor: pointer; background: transparent; }
.shooter-hero #game-hud { color: #f3f0dc; }
.bloom-hud-top { position: absolute; top: 18px; left: 30px; right: 30px; display: grid; grid-template-columns: 1fr 1fr auto 42px; align-items: center; column-gap: 25px; padding-bottom: 13px; border-bottom: 1px solid #97ad7e28; }
.bloom-label { color: #b7c4a5; font-size: 9px; }
.bloom-mission { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
.bloom-mission > .bloom-label { grid-column: 1 / -1; color: var(--bloom-teal); }
.bloom-mission strong { font-size: 13px; letter-spacing: .07em; line-height: 1.8; }
#hud-elapsed { color: var(--bloom-lime); font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
#hud-elapsed.bloom-time-warning { color: #e7bd82; }
.bloom-score > .bloom-label { display: flex; gap: 14px; }
.bloom-score small { color: #afba9c; font-size: 8px; letter-spacing: .03em; }
.bloom-score > strong { font-size: 25px; line-height: 1.2; font-weight: 750; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.bloom-health .bloom-label { font-size: 8px; }
.bloom-mobile-chain { display: none; }
#hud-multiplier { display: block; margin-top: 2px; font-size: 11px; }
#hud-hp { color: var(--bloom-teal); font-size: 17px; white-space: nowrap; letter-spacing: 2px; }
.bloom-hp-empty { color: #3c4d37; }
.bloom-icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #75896680; border-radius: 8px; background: #20372a; color: #e8ead1; font-size: 18px; pointer-events: auto; cursor: pointer; }
.bloom-icon-button:hover { background: #304a34; }
.bloom-side { position: absolute; width: min(20vw, 200px); top: 30%; font-size: 11px; color: #b5c2a7; }
.bloom-side-left { left: 4.5%; }
.bloom-side-right { right: 4.5%; padding-left: 15px; }
.bloom-chain { display: flex; align-items: baseline; gap: 7px; color: var(--bloom-lime); margin-top: 3px; }
.bloom-chain strong { font-size: 48px; line-height: 1.1; font-weight: 600; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.bloom-chain span { font-size: 9px; letter-spacing: .15em; }
.bloom-side .bloom-meter { width: 112px; margin-top: 9px; }
.bloom-side p { line-height: 1.9; font-size: 11px; margin-top: 14px; }
.bloom-side-rule { width: 28px; border-top: 1px solid #8aa07560; margin: 24px 0; }
.bloom-side .bloom-core-chip { flex: 1 1 40%; }
.bloom-support { color: #c7cfb3; }
.bloom-support > span { display: inline-block; width: 16px; color: var(--bloom-lime); }
.bloom-side kbd { font-family: inherit; display: inline-block; font-size: 9px; background: #243828; color: #e0e4cd; border: 1px solid #758c6555; border-radius: 3px; padding: 2px 4px; margin-bottom: 4px; }
.bloom-save { font-size: 9px; display: block; margin-top: 15px; color: #a4b090; line-height: 1.7; }
.bloom-meter { height: 3px; background: #7382615e; overflow: hidden; border-radius: 4px; }
.bloom-meter > span { display: block; height: 100%; background: var(--bloom-lime); width: 0; transform-origin: left; }
.bloom-boss { position: absolute; top: 78px; width: min(340px, 80%); left: 50%; transform: translateX(-50%); color: #e3c597; font-size: 8px; letter-spacing: .18em; text-align: center; }
.bloom-boss .bloom-meter { height: 3px; margin-top: 3px; }
.bloom-boss .bloom-meter > span { background: #d5aa6b; }
.shooter-hero #game-toast { position: absolute; top: auto; bottom: 129px; left: 50%; transform: translate(-50%, 6px); padding: 7px 12px; width: max-content; max-width: 88%; border: 1px solid #a3b38b51; border-radius: 6px; background: #172b21eb; color: #e4eacd; font-family: inherit; font-size: 10px; letter-spacing: .025em; line-height: 1.5; text-align: center; opacity: 0; transition: opacity .18s, transform .18s; z-index: 3; }
.shooter-hero #game-toast.visible { opacity: 1; transform: translate(-50%, 0); }
.bloom-fusion-dock { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); width: min(820px, calc(100% - 60px)); display: grid; grid-template-columns: 225px 1fr 76px; gap: 24px; align-items: center; background: #1b3025; border: 1px solid #8795754f; border-radius: 12px; padding: 13px 18px; box-shadow: 0 12px 32px #0003; }
.bloom-sockets { display: flex; align-items: center; gap: 7px; margin-top: 9px; }
.bloom-socket { display: grid; place-items: center; width: 34px; height: 34px; flex-shrink: 0; border: 1px solid #7d906b; border-radius: 7px; background: #29402c; color: #b5c2a3; font-size: 19px; }
.bloom-socket-empty { border-style: dashed; background: transparent; color: #97a486; }
.bloom-plus { font-size: 10px; color: #9cac8b; }
#fusion-pending-time { font-size: 10px; color: #c0c9ad; line-height: 1.5; width: 85px; font-variant-numeric: tabular-nums; }
.bloom-weapon { min-width: 0; }
.bloom-weapon > .bloom-label { display: flex; justify-content: space-between; font-size: 8px; color: var(--bloom-teal); letter-spacing: .11em; }
#fusion-time { color: var(--bloom-lime); font-size: 13px; line-height: 1; font-variant-numeric: tabular-nums; }
#fusion-name { display: block; font-size: 17px; margin: 4px 0 8px; line-height: 1.2; font-weight: 650; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.bloom-queue { margin-top: 7px; color: #bdc8ad; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bloom-queue > span:first-child { margin-right: 6px; color: #a1b08f; font-size: 8px; letter-spacing: .1em; }
.bloom-dash { display: grid; place-items: center; min-height: 66px; padding: 4px 8px; border: 1px solid #a6b58566; border-radius: 8px; background: #324730; color: var(--bloom-lime); pointer-events: auto; cursor: pointer; touch-action: none; user-select: none; }
.bloom-dash:disabled { cursor: default; opacity: .55; }
.bloom-dash > span { font-size: 20px; line-height: 1; }
.bloom-dash > strong { font-size: 9px; letter-spacing: .12em; }
.bloom-dash > small { font-size: 8px; letter-spacing: .05em; font-variant-numeric: tabular-nums; }
.bloom-touch-note { display: none; font-size: 9px; color: #b1bea0; }
#magnet-status { color: var(--bloom-teal); }
#hero.shooter-hero .bloom-overlay { position: absolute; inset: 0; z-index: 30; background: #0d1b14e8; backdrop-filter: blur(9px); display: flex; align-items: center; justify-content: center; padding: 24px; overflow-y: auto; overscroll-behavior: contain; }
.bloom-modal { background: #1b3025; border: 1px solid #8e9d7980; border-radius: 16px; box-shadow: 0 24px 90px #0007; width: min(460px, 100%); padding: 32px; max-height: 100%; overflow-y: auto; overscroll-behavior: contain; }
.bloom-modal > .bloom-label { color: var(--bloom-teal); }
.shooter-hero .bloom-modal h2 { font-size: 27px; font-weight: 650; line-height: 1.45; margin: 16px 0 11px; letter-spacing: .02em; color: #f3f0dc; }
.bloom-modal > p { font-size: 11px; color: #bdc7af; line-height: 1.8; margin-bottom: 23px; }
.bloom-modal > .bloom-button { width: 100%; margin-top: 10px; }
.bloom-modal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 9px; }
.bloom-modal-actions .bloom-button { justify-content: center; font-size: 11px; padding: 12px 10px; }
.bloom-pause-help { font-size: 10px; color: #bdc7af; margin-top: 22px; line-height: 1.9; }
.bloom-result-score { margin: 27px 0 17px; color: var(--bloom-lime); }
.bloom-result-score > span { display: block; font-size: 9px; letter-spacing: .2em; color: #b5c2a6; }
.bloom-result-score > strong { display: block; font-size: 46px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.bloom-result-stats { display: flex; justify-content: space-between; gap: 12px; color: #adbb9c; font-size: 9px; margin-bottom: 21px; }
.bloom-result-stats b { color: #e7ead1; font-weight: 500; display: block; font-size: 13px; margin-top: 3px; }
.bloom-noscript { position: absolute; z-index: 5; left: 6%; bottom: 65px; color: #b7c98a; font-size: 12px; background: #23392a; padding: 15px; border-radius: 8px; }
.bloom-noscript a { display: block; text-decoration: underline; margin-top: 8px; }
.bloom-tutorial { width: min(510px, 100%); }
.bloom-tutorial-steps { display: grid; gap: 18px; list-style: none; margin: 23px 0; padding: 0; }
.bloom-tutorial-steps > li { display: grid; grid-template-columns: 16px 38px 1fr; gap: 10px; align-items: center; }
.bloom-tutorial-number { font-size: 9px; color: #a7b795; font-variant-numeric: tabular-nums; }
.bloom-tutorial-steps .bloom-tutorial-icon { width: 38px; height: 38px; font-size: 24px; border-radius: 8px; }
.bloom-tutorial-burst { display: grid; place-items: center; color: var(--bloom-lime); background: #b7c98a14; border: 1px solid #b7c98a55; }
.bloom-tutorial-steps strong { display: block; color: #edf0db; font-size: 13px; font-weight: 650; }
.bloom-tutorial-steps em { font-style: normal; color: var(--bloom-lime); }
.bloom-tutorial-steps p { margin: 5px 0 0; color: #b9c4ad; font-size: 10px; line-height: 1.6; }
.bloom-tutorial-example { display: flex; align-items: center; justify-content: center; gap: 11px; padding: 14px 12px; border: 1px solid #94a37a42; border-radius: 9px; background: #13271c; color: #aaba98; font-size: 11px; }
.bloom-tutorial-example > span { font-size: 24px; }
.bloom-tutorial-example > span:last-of-type { font-size: 16px; }
.bloom-tutorial-example strong { font-size: 13px; color: #e2c18a; font-weight: 650; }
.bloom-tutorial-example small { display: block; color: #c4ccb4; font-size: 9px; font-weight: 400; margin-top: 4px; }
.bloom-modal > .bloom-tutorial-note { margin: 13px 0 0; font-size: 10px; line-height: 1.7; }
.bloom-modal > .bloom-tutorial-mission { margin: 16px 0 4px; padding-top: 13px; border-top: 1px solid #9eae8632; font-size: 10px; line-height: 1.7; color: #d9dfc1; }
.bloom-tutorial-sound { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0 2px; }
.bloom-sound-toggle { min-height: 38px; padding: 8px 10px; border: 1px solid #b7c98a70; border-radius: 8px; background: #243c2b; color: #f3f0dc; font: inherit; font-size: 10px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.bloom-sound-toggle[aria-pressed="true"] { background: #b7c98a; color: #182c1c; border-color: #b7c98a; }
.bloom-sound-toggle:focus-visible { outline: 2px solid #e1ce96; outline-offset: 3px; }
#tutorial-bgm-credit { font-size: 9px; line-height: 1.5; color: #bdc7af; }
@media (max-width: 1000px) {
  .bloom-copy { left: 5%; width: 55%; }
  .bloom-eyebrow > span:last-child { display: none; }
  .bloom-lab { width: 250px; right: 4%; }
  .bloom-howto { max-width: 350px; }
  .bloom-side { width: 18%; }
  .bloom-side-left { left: 3%; }
  .bloom-side-right { right: 3%; padding-left: 0; }
  .bloom-side p { font-size: 10px; }
}
@media (max-width: 840px) {
  .bloom-side { display: none; }
  .bloom-fusion-dock { grid-template-columns: 190px 1fr 65px; gap: 17px; width: calc(100% - 40px); }
  .bloom-hud-top { left: 20px; right: 20px; column-gap: 15px; }
  .bloom-mission strong { font-size: 11px; }
  .bloom-score > strong { font-size: 22px; }
}
@media (max-width: 600px) {
  #hero.shooter-hero { height: 835px; min-height: 835px; scroll-margin-top: 72px; }
  #hero.shooter-hero.is-playing { height: calc(100svh - 72px); min-height: 480px; }
  .shooter-shade { background: linear-gradient(90deg, #101f19eb, #101f1992), linear-gradient(0deg, #101f19 4%, #101f1988 38%, transparent 78%); }
  .bloom-copy { left: 7%; top: 37px; width: 86%; }
  .bloom-eyebrow { font-size: 9px; }
  .bloom-eyebrow > span:last-child { display: inline; font-size: 7px; margin-left: 4px; }
  .bloom-kicker { margin: 27px 0 16px; font-size: 11px; }
  .shooter-hero h1 { font-size: clamp(53px, 13.8vw, 77px); }
  .bloom-lead { font-size: 19px; line-height: 1.7; margin-top: 24px; }
  .bloom-description { font-size: 11px; line-height: 1.85; }
  .bloom-actions { margin-top: 24px; gap: 8px; }
  .bloom-actions .bloom-button { padding: 14px 13px; font-size: 11px; gap: 13px; }
  .bloom-load { font-size: 9px; }
  .bloom-howto { margin-top: 22px; font-size: 9px; row-gap: 7px; }
  .bloom-lab { left: 7%; right: 7%; width: auto; bottom: 69px; padding: 15px; }
  .bloom-lab .bloom-core-list { gap: 8px; margin: 12px 0 0; }
  .bloom-lab .bloom-core-chip { flex: 1 1 20%; font-size: 9px; gap: 4px; }
  .bloom-lab .bloom-core-symbol { width: 20px; height: 23px; font-size: 12px; }
  .bloom-lab p { display: none; }
  .bloom-lab:has(.bloom-recipes[open]) { z-index: 4; box-shadow: 0 -20px 70px #101f19; }
  .bloom-lab .bloom-recipe-list { max-height: 270px; }
  .bloom-footer { left: 7%; right: 7%; bottom: 20px; padding-top: 14px; font-size: 7px; }
  .bloom-footer > span:nth-child(2) { display: none; }
  .bloom-footer button { font-size: 9px; }
  .bloom-hud-top { top: 13px; left: 14px; right: 14px; grid-template-columns: 1fr auto 37px; gap: 7px 14px; padding-bottom: 9px; }
  .bloom-mission { grid-column: 1; grid-row: 1; display: block; }
  .bloom-mission > .bloom-label { display: none; }
  .bloom-mission strong { font-size: 9px; letter-spacing: .07em; display: block; }
  #hud-elapsed { font-size: 12px; display: block; margin-top: 1px; line-height: 1.3; }
  .bloom-score { grid-column: 2; grid-row: 1; }
  .bloom-score > .bloom-label { font-size: 7px; gap: 9px; }
  .bloom-score small { font-size: 6px; }
  .bloom-score > strong { font-size: 21px; letter-spacing: .06em; }
  .bloom-health { grid-column: 1 / 3; grid-row: 2; display: flex; align-items: center; justify-content: space-between; gap: 9px; }
  .bloom-health .bloom-label { font-size: 7px; }
  .bloom-mobile-chain { display: inline; font-size: 7px; color: var(--bloom-lime); white-space: nowrap; }
  .bloom-mobile-chain b { font-size: 10px; }
  .bloom-mobile-chain > span { margin-left: 3px; }
  #hud-hp { font-size: 12px; letter-spacing: 3px; line-height: 1; }
  .bloom-icon-button { grid-column: 3; grid-row: 1 / 3; width: 37px; height: 42px; font-size: 17px; }
  .bloom-boss { top: 86px; font-size: 7px; width: min(260px, 74%); line-height: 1; }
  .bloom-boss .bloom-meter { height: 2px; margin-top: 4px; }
  .bloom-fusion-dock { bottom: 12px; width: calc(100% - 24px); grid-template-columns: 105px minmax(0, 1fr) 51px; padding: 12px 10px 10px; gap: 9px 9px; border-radius: 10px; }
  .bloom-pending > .bloom-label { font-size: 7px; letter-spacing: .06em; }
  .bloom-sockets { gap: 4px; margin-top: 7px; flex-wrap: wrap; }
  .bloom-socket { width: 30px; height: 30px; font-size: 16px; border-radius: 5px; }
  .bloom-plus { font-size: 9px; }
  #fusion-pending-time { width: 100%; font-size: 8px; line-height: 1; margin-top: 2px; }
  .bloom-weapon > .bloom-label { font-size: 6px; letter-spacing: .05em; gap: 2px; }
  #fusion-time { font-size: 11px; }
  #fusion-name { font-size: 13px; margin-top: 7px; margin-bottom: 7px; }
  .bloom-queue { font-size: 8px; margin-top: 8px; }
  .bloom-queue > span:first-child { font-size: 6px; margin-right: 3px; }
  .bloom-dash { min-height: 62px; padding: 4px; border-radius: 6px; }
  .bloom-dash > strong { font-size: 8px; }
  .bloom-dash > small { font-size: 7px; }
  .bloom-touch-note { display: block; grid-column: 1 / -1; text-align: center; font-size: 8px; border-top: 1px solid #90a27731; padding-top: 8px; }
  .shooter-hero #game-toast { bottom: 144px; font-size: 9px; padding: 6px 9px; }
  #hero.shooter-hero .bloom-overlay { padding: 16px; }
  .bloom-modal { padding: 24px; border-radius: 12px; }
  .shooter-hero .bloom-modal h2 { font-size: 25px; }
  .bloom-pause-help { font-size: 9px; }
  .bloom-result-score > strong { font-size: 39px; }
  .bloom-noscript { left: 7%; bottom: 185px; max-width: 86%; }
}
@media (max-height: 640px) and (min-width: 601px) {
  #hero.shooter-hero.is-playing { min-height: 400px; }
  .bloom-side { top: 29%; }
  .bloom-side .bloom-side-rule, .bloom-side .bloom-core-list, .bloom-side .bloom-support { display: none; }
  .bloom-side p { font-size: 9px; margin-top: 9px; }
  .bloom-side-right > .bloom-label:nth-of-type(2), .bloom-side-right > .bloom-label:nth-of-type(2) + p, .bloom-save { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .shooter-hero *, .shooter-hero *::before, .shooter-hero *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media (max-width: 600px) {
  .bloom-tutorial { padding: 22px; }
  .shooter-hero .bloom-tutorial h2 { font-size: 23px; margin: 11px 0 10px; }
  .bloom-tutorial-steps { gap: 14px; margin: 18px 0; }
  .bloom-tutorial-steps > li { grid-template-columns: 13px 32px 1fr; gap: 8px; }
  .bloom-tutorial-steps .bloom-tutorial-icon { width: 32px; height: 34px; font-size: 21px; }
  .bloom-tutorial-steps strong { font-size: 11px; }
  .bloom-tutorial-steps p { font-size: 9px; }
  .bloom-tutorial-example { gap: 8px; padding: 11px 9px; }
  .bloom-tutorial-example strong { font-size: 12px; }
  .bloom-modal > .bloom-tutorial-note, .bloom-modal > .bloom-tutorial-mission { font-size: 9px; }
  .bloom-tutorial > .bloom-button { padding: 12px 15px; }
}
@media (max-height: 760px) {
  .bloom-tutorial { padding: 20px; }
  .shooter-hero .bloom-tutorial h2 { font-size: 22px; margin: 9px 0; }
  .bloom-tutorial-steps { gap: 10px; margin: 15px 0; }
  .bloom-tutorial-steps p { margin-top: 3px; }
  .bloom-tutorial-example { padding: 9px; }
  .bloom-modal > .bloom-tutorial-mission { margin-top: 10px; padding-top: 9px; }
  .bloom-tutorial > .bloom-button { padding-top: 11px; padding-bottom: 11px; }
  .bloom-tutorial-sound { margin-top: 9px; }
}

/* Shared vegetable SVGs stay readable in the library, recipe pairs and pickup socket. */
.bloom-vegetable-icon > img { display: block; width: 100%; height: 100%; padding: 2px; object-fit: contain; }
#fusion-pending > .bloom-vegetable-icon { width: 100%; height: 100%; border: 0; background: transparent; border-radius: inherit; }
.bloom-tutorial-vegetable > .bloom-vegetable-icon { width: 38px; height: 38px; border-radius: 8px; }
.bloom-tutorial-example [data-vegetable-icon] > .bloom-vegetable-icon { width: 30px; height: 30px; border-radius: 6px; }
@media (max-width: 600px) {
  .bloom-tutorial-vegetable > .bloom-vegetable-icon { width: 32px; height: 34px; }
  .bloom-lab .bloom-core-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
  .bloom-lab .bloom-core-chip { font-size: 10px; }
}

/* Recipe cut-ins stay clipped inside the HUD dock, clear of the entire battlefield. */
.bloom-fusion-dock { overflow: hidden; }
.bloom-fusion-announcement {
  --fusion-announcement-color: #b7c98a;
  position: absolute;
  top: 6px;
  right: 150px;
  bottom: 6px;
  left: 6px;
  width: auto;
  display: flex;
  align-items: center;
  gap: 17px;
  padding: 9px 20px;
  border: 1px solid color-mix(in srgb, var(--fusion-announcement-color) 80%, #f3f0dc);
  border-left-width: 5px;
  border-radius: 5px 17px 5px 17px;
  background: linear-gradient(108deg, #162a20 0%, #1d3328 76%, #304331 100%);
  box-shadow: 0 8px 24px #0005, 0 0 27px color-mix(in srgb, var(--fusion-announcement-color) 24%, transparent);
  color: #f3f0dc;
  transform: translateX(var(--fusion-announcement-offset, 0px));
  opacity: 0;
  pointer-events: none;
  z-index: 4;
  overflow: hidden;
}
.bloom-fusion-announcement::after { content: ''; position: absolute; right: 30px; top: -18px; height: 130px; width: 22px; transform: skewX(-27deg); border-left: 1px solid #c7b47e55; border-right: 4px solid #c7b47e35; pointer-events: none; }
.bloom-fusion-announcement-pair { display: flex; align-items: center; gap: 5px; color: #d2d5b6; font-size: 11px; flex-shrink: 0; }
.bloom-fusion-announcement-pair .bloom-core-symbol { width: 35px; height: 37px; border-radius: 8px; }
.bloom-fusion-announcement-copy { position: relative; z-index: 1; min-width: 0; }
.bloom-fusion-announcement-copy > span:first-child { display: block; color: var(--fusion-announcement-color); font-weight: 750; font-size: 10px; letter-spacing: .19em; }
#fusion-announcement-name { display: block; font-size: 23px; font-weight: 850; line-height: 1.35; letter-spacing: -.025em; margin: 3px 0; overflow-wrap: anywhere; }
#fusion-announcement-detail { font-size: 10px; color: #eee8ce; font-weight: 650; letter-spacing: .07em; }
.bloom-fusion-announcement-spark { position: absolute; right: 12px; top: 9px; color: var(--fusion-announcement-color); opacity: .55; font-size: 23px; }
.bloom-fusion-announcement[data-kind="queued"] { padding-top: 9px; padding-bottom: 9px; }
.bloom-fusion-announcement[data-kind="queued"] #fusion-announcement-name { font-size: 18px; }
.bloom-fusion-dock.is-fused { border-color: color-mix(in srgb, var(--fusion-color) 70%, #879575); box-shadow: 0 0 13px color-mix(in srgb, var(--fusion-color) 14%, transparent), 0 12px 32px #0003; }
.bloom-fusion-dock.is-fusion-celebrating { border-color: var(--fusion-color); box-shadow: 0 0 var(--fusion-glow, 0px) color-mix(in srgb, var(--fusion-color) 37%, transparent), inset 0 0 16px color-mix(in srgb, var(--fusion-color) 9%, transparent), 0 12px 32px #0003; }
@media (max-width: 600px) {
  .bloom-fusion-announcement { top: 6px; right: 100px; bottom: 28px; left: 6px; width: auto; gap: 10px; padding: 8px 11px; }
  .bloom-fusion-announcement-pair { gap: 3px; font-size: 9px; }
  .bloom-fusion-announcement-pair .bloom-core-symbol { width: 27px; height: 31px; border-radius: 6px; }
  .bloom-fusion-announcement-copy > span:first-child { font-size: 8px; letter-spacing: .14em; }
  #fusion-announcement-name { font-size: 17px; line-height: 1.35; margin: 3px 0; }
  #fusion-announcement-detail { font-size: 8px; }
  .bloom-fusion-announcement-spark { font-size: 17px; right: 8px; top: 7px; }
  .bloom-fusion-announcement[data-kind="queued"] { width: auto; padding-top: 8px; padding-bottom: 8px; }
  .bloom-fusion-announcement[data-kind="queued"] #fusion-announcement-name { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .bloom-fusion-announcement { transform: none; opacity: 1 !important; box-shadow: 0 8px 24px #0004; }
  .bloom-fusion-dock.is-fusion-celebrating { box-shadow: 0 12px 32px #0003; }
}

/* Keep the live weapon clock visible beside the cut-in, ahead of the DASH column. */
#fusion-time { position: absolute; top: 14px; right: 96px; }
@media (max-width: 600px) {
  #fusion-time { top: 14px; right: 65px; }
  .bloom-fusion-announcement { display: grid; grid-template-columns: auto 1fr; grid-template-rows: 24px auto auto; column-gap: 9px; row-gap: 2px; align-content: center; }
  .bloom-fusion-announcement-pair { grid-column: 1; grid-row: 1; }
  .bloom-fusion-announcement-pair .bloom-core-symbol { width: 22px; height: 24px; }
  .bloom-fusion-announcement-copy { display: contents; }
  .bloom-fusion-announcement-copy > span:first-child { grid-column: 2; grid-row: 1; }
  #fusion-announcement-name { grid-column: 1 / -1; grid-row: 2; margin: 1px 0; font-size: 17px; white-space: nowrap; overflow-wrap: normal; }
  #fusion-announcement-detail { grid-column: 1 / -1; grid-row: 3; }
}
