.fishing-hud { position: fixed; inset: 0; pointer-events: none; z-index: 8; color: #f7eed8; font-family: ui-monospace, monospace; }
.fishing-hud[hidden], .fishing-hud [hidden] { display: none !important; }
.fishing-hud button, .lake-dialog button { cursor: pointer; font: inherit; }
.fishing-hud button:focus-visible, .lake-dialog button:focus-visible { outline: 3px solid #dba65b; outline-offset: 4px; }
.fishing-eyebrow { display: block; font: 10px/1.6 ui-monospace, monospace; letter-spacing: 2px; color: #bbad84; }
.collection-toggle { position: absolute; left: 28px; bottom: 26px; display: flex; align-items: center; gap: 16px; padding: 13px 18px; pointer-events: auto; background: #252d27f5; border: 1px solid #a39472; color: #f4ebd5; text-align: left; box-shadow: 3px 3px 0 #141c2255; }
.collection-toggle strong { display: block; font: 18px Georgia,serif; }
.collection-toggle small { display: block; margin-top: 5px; font-size: 10px; color: #c7c0a9; }
.book-icon { font-size: 30px; color: #d8ba79; }
.fishing-actions { position: absolute; right: 28px; bottom: 26px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.fishing-status { font-size: 12px; padding: 6px 10px; border-radius: 4px; background: #252d27e8; max-width: 340px; text-align: right; }
.lake-dialog { box-sizing: border-box; width: min(860px, calc(100vw - 40px)); max-height: 86vh; padding: 36px; border: 1px solid #a79671; background: #f1ebd9; color: #303b32; box-shadow: 8px 8px 0 #101c2866; }
.lake-dialog::backdrop { background: #14272cd1; backdrop-filter: blur(4px); }
.lake-dialog .fishing-eyebrow { color: #7f795b; }
.lake-dialog h2 { font: normal 36px/1.1 Georgia,serif; margin: 12px 36px 10px 0; }
.dialog-close { position: absolute; right: 12px; top: 12px; width: 36px; height: 36px; background: transparent; color: #3f4b3e; border: 1px solid #aaa68d; font-size: 26px !important; }
.lake-dialog.is-letter { width: min(620px,calc(100vw - 40px)); padding: 44px; background: #e9d6a7 url('../assets/parchment_px2x.png') center / 100% 100%; color: #58422e; }
.is-letter h2 { font-size: 28px; }
.bottle-letter { font: italic 25px/1.65 Georgia,serif; padding: 15px 0; }
.letter-signature { text-align: right; }
@media(max-width: 800px) { .fishing-status { max-width: 260px; } }
@media(max-width: 580px) { .lake-dialog { padding: 26px 16px; } .lake-dialog h2 { font-size: 28px; } .lake-dialog.is-letter { padding: 32px 24px; } .bottle-letter { font-size: 21px; } .collection-toggle { left: 10px; bottom: 12px; padding: 10px; gap: 8px; } .collection-toggle strong { font-size: 15px; } .book-icon { display: none; } .fishing-actions { right: 10px; bottom: 12px; max-width: 54%; } .fishing-status { font-size: 10px; } }


@font-face { font-family: 'LakePixel'; src: url('../assets/fonts/Silkscreen700.woff2') format('woff2'); font-weight: 700; font-display: swap; }
/* A little cartridge-era inventory: chunky frame, recessed slots, pixel lettering. */
.lake-dialog:not(.is-letter) {
  width: min(840px, calc(100vw - 40px)); padding: 48px 16px 16px;
  overflow: hidden; border: 4px solid #f8e6b9; background: #324663;
  box-shadow: 0 0 0 4px #795949, 0 0 0 8px #253145, 8px 12px 0 #17263b80,
    inset 0 0 0 3px #8da4bc, inset 0 0 0 6px #1d2b47;
  color: #f9edce;
}
.lake-dialog:not(.is-letter)::before {
  content: ''; position: absolute; top: 17px; left: 22px; width: 6px; height: 6px;
  background: #ffdc88; box-shadow: 12px 0 #d0e8dc, 24px 0 #ffdc88;
}
.lake-dialog:not(.is-letter) .dialog-close {
  top: 8px; right: 10px; width: 30px; height: 30px; padding: 0;
  background: #bb6d72; color: #fff0ce; border: 2px solid #f4c8a9;
  box-shadow: 2px 2px 0 #1e2c45, inset -2px -2px #85485c;
  font: bold 24px/24px ui-monospace, monospace !important;
}
.collection-scroll { max-height: calc(86vh - 80px); overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #f0cf8f #1e2c45; scrollbar-width: thin; padding: 4px 6px 6px 4px; }
.collection-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.specimen {
  position: relative; min-width: 0; box-sizing: border-box; padding: 12px 9px 14px;
  text-align: center; color: #263b50; background: #d8e7ce; border: 3px solid #f9efd0;
  box-shadow: 2px 2px 0 #1d2b47, inset -3px -3px 0 #9aafa7, inset 3px 3px 0 #eff5d9;
}
.specimen .slot-number { position: absolute; top: 7px; left: 7px; font: 700 9px 'LakePixel',monospace; color: #637c85; }
.specimen-art { display: block; box-sizing: border-box; width: 112px; max-width: 100%; height: 76px; padding: 10px 12px; object-fit: contain; image-rendering: auto; margin: 1px auto 8px; filter: drop-shadow(2px 3px 0 #34445522); }
/* The original uploaded PNGs already include transparent margins. */
.specimen-art[src$="catch_un_muso.png"], .specimen-art[src$="catch_shoggoth.png"] { padding: 2px 12px; }
.specimen small { display: inline-block; padding: 3px 6px; color: #46636b; background: #bed4c0; font: 700 8px/1.4 'LakePixel',monospace; }
.specimen h3 { display: flex; justify-content: center; align-items: center; min-height: 40px; margin: 8px 0 4px; font: 700 11px/1.65 'LakePixel',monospace; overflow-wrap: anywhere; }
.specimen p { min-height: 38px; margin: 4px 0 10px; color: #4c6773; font: 11px/1.45 ui-monospace,monospace; }
.specimen span:not(.slot-number) { font: 700 9px/1.5 'LakePixel',monospace; }
.specimen[data-band="rare"].discovered { background: #dfd8ed; border-color: #f9e8ff; box-shadow: 2px 2px 0 #1d2b47, inset -3px -3px #aca1c5, inset 3px 3px #f3ecff; }
.specimen[data-band="rare"].discovered small { background: #c9bedf; color: #5c527c; }
.specimen[data-band="gold"].discovered { background: #f8dda0; border-color: #fff4c9; box-shadow: 2px 2px 0 #1d2b47, inset -3px -3px #d3a976, inset 3px 3px #fff0c0; }
.specimen[data-band="gold"].discovered small { background: #eac480; color: #79513d; }
.specimen[data-band="gold"].discovered::after { content: '✦'; position: absolute; right: 8px; top: 6px; font-size: 15px; color: #9e673e; }
.specimen.undiscovered { background: #8ea6b5; border-color: #b9ccce; box-shadow: 2px 2px 0 #1d2b47, inset 3px 3px #6f879c, inset -3px -3px #a2b9c2; color: #364e6b; }
.specimen.undiscovered .specimen-art { filter: brightness(0); opacity: .45; }
.specimen.undiscovered small { background: transparent; color: #3c566c; }
.specimen.undiscovered p { color: #425c70; }
button.specimen:hover, button.specimen:focus-visible { outline: 3px solid #ffde8b; outline-offset: 1px; }
.collection-toggle { border: 3px solid #f6dfaa; background: #324663; box-shadow: 0 0 0 2px #735746, 4px 4px #192a3d88, inset -3px -3px #24344f; }
.collection-toggle strong { font: 700 11px/1.6 'LakePixel',monospace; }
.collection-toggle small { font-size: 10px; color: #d0e0dc; }
@media(max-width: 640px) {
  .lake-dialog:not(.is-letter) { width: calc(100vw - 28px); padding: 46px 9px 10px; }
  .collection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .specimen { padding: 12px 8px; }
  .specimen h3 { font-size: 10px; }
}

.lake-dialog.is-letter::backdrop { background: #14272c55; backdrop-filter: none; }
