
[{"id":200582,"date":"2026-07-31T20:56:26","date_gmt":"2026-08-01T01:56:26","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200582"},"modified":"2026-07-31T20:56:27","modified_gmt":"2026-08-01T01:56:27","slug":"mont-belvieu","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/collections\/mont-belvieu\/","title":{"rendered":"Mont Belvieu"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"493\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/image-1.png\" alt=\"\" class=\"wp-image-200585\" srcset=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/image-1.png 740w, https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/image-1-150x100.png 150w, https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/image-1-300x200.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1568,"featured_media":0,"parent":199516,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200582","page","type-page","status-publish","entry","has-post-thumbnail"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200582"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200582\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199516"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200579,"date":"2026-07-31T20:12:02","date_gmt":"2026-08-01T01:12:02","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200579"},"modified":"2026-08-11T16:40:39","modified_gmt":"2026-08-11T21:40:39","slug":"joe-matthews-garden","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/collections\/mont-belvieu\/joe-matthews-garden\/","title":{"rendered":"Joe Matthews Garden"},"content":{"rendered":"\n<!--\nJoe Matthews Park Native Demonstration Garden\nWordPress Custom HTML Block\n-->\n\n<style>\nbody .wp-block-post-title,\nbody .entry-header .entry-title,\nbody .page-header .page-title,\nbody .page-title,\nbody .entry-title {\n  display: none !important;\n}\n\nbody .entry-header,\nbody .page-header {\n  margin: 0 !important;\n  padding: 0 !important;\n  border: 0 !important;\n}\n\nbody .entry-header::before,\nbody .entry-header::after,\nbody .page-header::before,\nbody .page-header::after,\nbody .entry-title::before,\nbody .entry-title::after,\nbody .wp-block-post-title::before,\nbody .wp-block-post-title::after {\n  display: none !important;\n  content: none !important;\n  border: 0 !important;\n}\n\n#jmp5-app {\n  --jmp5-green-950: #173d31;\n  --jmp5-green-800: #285b49;\n  --jmp5-green-650: #427c65;\n  --jmp5-green-300: #c3d7ce;\n  --jmp5-green-100: #eef5f1;\n  --jmp5-cream: #fbf9f2;\n  --jmp5-gold: #d8a73d;\n  --jmp5-ink: #20312a;\n  --jmp5-muted: #68756f;\n  --jmp5-shadow: 0 8px 22px rgba(28, 61, 49, .14);\n  --jmp5-shadow-hover: 0 16px 34px rgba(28, 61, 49, .20);\n  --jmp5-outline-soft: rgba(66, 124, 101, .22);\n  --jmp5-wing-card-width: clamp(94px, 7.9vw, 116px);\n  --jmp5-wing-card-height: 158px;\n  --jmp5-card-height: 214px;\n\n  width: 100%;\n  max-width: 1540px;\n  margin: .65rem auto 0;\n  color: var(--jmp5-ink);\n  font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  line-height: 1.45;\n}\n\n#jmp5-app,\n#jmp5-app *,\n#jmp5-app *::before,\n#jmp5-app *::after {\n  box-sizing: border-box;\n}\n\n#jmp5-app button,\n#jmp5-app summary {\n  font: inherit;\n}\n\n.jmp5-hero {\n  margin: 0 0 1rem;\n  text-align: center;\n  animation: jmp5HeroIn .45s ease both;\n}\n\n@keyframes jmp5HeroIn {\n  from { opacity: 0; transform: translateY(-8px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n.jmp5-eyebrow {\n  margin: 0 0 .2rem;\n  color: var(--jmp5-green-650);\n  font-size: .78rem;\n  font-weight: 850;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.jmp5-hero h2 {\n  position: relative;\n  display: inline-block;\n  margin: 0;\n  padding-bottom: .35rem;\n  border-bottom: 0;\n  color: var(--jmp5-green-950);\n  font-size: clamp(1.75rem, 4.5vw, 2.85rem);\n  line-height: 1.06;\n  text-wrap: balance;\n}\n\n.jmp5-hero h2::after {\n  content: \"\";\n  position: absolute;\n  left: 12%;\n  right: 12%;\n  bottom: 0;\n  height: 4px;\n  border-radius: 999px;\n  background: var(--jmp5-green-800);\n}\n\n.jmp5-hero p {\n  max-width: 700px;\n  margin: .45rem auto 0;\n  color: var(--jmp5-muted);\n  font-size: clamp(.95rem, 2vw, 1.08rem);\n}\n\n.jmp5-tabs {\n  display: grid;\n  grid-template-columns: repeat(6, max-content);\n  justify-content: center;\n  gap: .48rem;\n  margin: 1rem 0 .65rem;\n}\n\n.jmp5-tab {\n  appearance: none;\n  border: 1px solid var(--jmp5-green-300);\n  border-radius: 999px;\n  background: rgba(255,255,255,.88);\n  color: var(--jmp5-green-950);\n  padding: .7rem .92rem;\n  font-weight: 800;\n  cursor: pointer;\n  box-shadow: 0 3px 10px rgba(28,61,49,.06);\n  transition:\n    transform .18s ease,\n    background .18s ease,\n    color .18s ease,\n    box-shadow .18s ease,\n    border-color .18s ease;\n}\n\n.jmp5-tab:hover,\n.jmp5-tab:focus-visible {\n  transform: translateY(-2px);\n  border-color: var(--jmp5-green-650);\n  box-shadow: 0 8px 18px rgba(28,61,49,.12);\n  outline: 3px solid rgba(66, 124, 101, .18);\n  outline-offset: 2px;\n}\n\n.jmp5-tab.is-active {\n  background: linear-gradient(135deg, var(--jmp5-green-950), var(--jmp5-green-800));\n  border-color: var(--jmp5-green-950);\n  color: #fff;\n  box-shadow: 0 8px 20px rgba(23,61,49,.22);\n}\n\n.jmp5-status {\n  min-height: 1.4rem;\n  margin: .25rem 0 .75rem;\n  color: var(--jmp5-muted);\n  text-align: center;\n  font-size: .9rem;\n}\n\n.jmp5-panel[hidden] {\n  display: none !important;\n}\n\n.jmp5-panel {\n  animation: jmp5Fade .22s ease;\n}\n\n@keyframes jmp5Fade {\n  from { opacity: 0; transform: translateY(8px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n\/* Butterfly layout *\/\n.jmp5-butterfly {\n  display: grid;\n  grid-template-columns: minmax(0, 1.12fr) 60px minmax(0, 1.12fr);\n  gap: 1.4rem;\n  align-items: stretch;\n  padding: .2rem 0 1rem;\n}\n\n.jmp5-wing {\n  position: relative;\n  min-width: 0;\n  min-height: 930px;\n  padding: 1.25rem 1.7rem 2rem;\n  isolation: isolate;\n  overflow: visible;\n}\n\n.jmp5-wing::before {\n  content: \"\";\n  position: absolute;\n  z-index: -2;\n  inset: 0;\n  border: 2px solid rgba(40, 91, 73, .22);\n  background:\n    radial-gradient(circle at 50% 34%, rgba(255,255,255,.99), rgba(239,246,242,.88) 58%, rgba(229,240,234,.92) 100%),\n    var(--jmp5-green-100);\n  box-shadow:\n    inset 0 0 36px rgba(66,124,101,.06),\n    0 10px 28px rgba(28,61,49,.06);\n}\n\n.jmp5-wing::after {\n  content: \"\";\n  position: absolute;\n  z-index: -1;\n  inset: 28px 22px 36px;\n  opacity: .22;\n  background-image:\n    radial-gradient(ellipse at 12% 12%, transparent 0 8px, rgba(66,124,101,.18) 9px 10px, transparent 11px),\n    radial-gradient(ellipse at 88% 22%, transparent 0 7px, rgba(66,124,101,.15) 8px 9px, transparent 10px),\n    radial-gradient(ellipse at 15% 73%, transparent 0 9px, rgba(66,124,101,.13) 10px 11px, transparent 12px),\n    radial-gradient(ellipse at 86% 82%, transparent 0 8px, rgba(66,124,101,.15) 9px 10px, transparent 11px);\n  pointer-events: none;\n}\n\n.jmp5-wing-east::before {\n  border-radius: 58% 37% 48% 57% \/ 30% 43% 60% 72%;\n}\n\n.jmp5-wing-west::before {\n  border-radius: 37% 58% 57% 48% \/ 43% 30% 72% 60%;\n}\n\n.jmp5-wing h3,\n.jmp5-triangle h3,\n.jmp5-circle h3 {\n  position: relative;\n  z-index: 2;\n  margin: 0 0 .85rem;\n  text-align: center;\n  color: var(--jmp5-green-950);\n  font-size: 1.08rem;\n}\n\n.jmp5-wing-rows {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  gap: .82rem;\n  justify-items: center;\n  width: 100%;\n}\n\n.jmp5-wing-row {\n  display: flex;\n  justify-content: center;\n  gap: .82rem;\n  width: 100%;\n  min-width: 0;\n}\n\n.jmp5-wing-row .jmp5-card {\n  flex: 0 0 var(--jmp5-wing-card-width);\n  width: var(--jmp5-wing-card-width);\n  height: var(--jmp5-wing-card-height);\n}\n\n\/* Butterfly body *\/\n.jmp5-body {\n  position: relative;\n  min-height: 930px;\n}\n\n.jmp5-body span {\n  position: absolute;\n  left: 50%;\n  display: block;\n  background: #202421;\n  transform: translateX(-50%);\n}\n\n.jmp5-head {\n  top: 135px;\n  width: 46px;\n  height: 50px;\n  border-radius: 50%;\n}\n\n.jmp5-thorax {\n  top: 176px;\n  width: 39px;\n  height: 175px;\n  border-radius: 44% 44% 38% 38%;\n}\n\n.jmp5-abdomen {\n  top: 335px;\n  width: 29px;\n  height: 350px;\n  border-radius: 44% 44% 58% 58%;\n}\n\n.jmp5-antenna {\n  top: 67px;\n  width: 5px;\n  height: 82px;\n  border-radius: 999px;\n  transform-origin: bottom center !important;\n}\n\n.jmp5-antenna-left {\n  transform: translateX(-50%) rotate(-27deg) !important;\n}\n\n.jmp5-antenna-right {\n  transform: translateX(-50%) rotate(27deg) !important;\n}\n\n\/* Cards *\/\n.jmp5-grid {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));\n  gap: .72rem;\n  align-items: start;\n}\n\n.jmp5-card {\n  position: relative;\n  appearance: none;\n  width: 100%;\n  height: var(--jmp5-card-height);\n  padding: 0;\n  border: 0;\n  border-radius: 14px;\n  background: transparent;\n  color: inherit;\n  text-align: left;\n  perspective: 1100px;\n  cursor: pointer;\n  z-index: 1;\n  transition: transform .2s ease;\n}\n\n.jmp5-card:hover {\n  transform: translateY(-5px);\n}\n\n.jmp5-card:active {\n  transform: translateY(-2px) scale(.99);\n}\n\n\n\n.jmp5-card:focus-visible {\n  outline: 3px solid var(--jmp5-gold);\n  outline-offset: 3px;\n}\n\n.jmp5-card-inner {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n  border-radius: inherit;\n  transform-style: preserve-3d;\n  transition:\n    transform .5s cubic-bezier(.2, .7, .2, 1),\n    box-shadow .22s ease;\n  box-shadow: var(--jmp5-shadow);\n}\n\n.jmp5-card:hover .jmp5-card-inner {\n  box-shadow: var(--jmp5-shadow-hover);\n}\n\n.jmp5-card.is-flipped .jmp5-card-inner {\n  transform: rotateY(180deg);\n}\n\n.jmp5-face {\n  position: absolute;\n  inset: 0;\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n  border: 1px solid rgba(40, 91, 73, .17);\n  border-radius: inherit;\n  background: linear-gradient(180deg, #fff 0%, #fdfdfb 100%);\n  backface-visibility: hidden;\n  -webkit-backface-visibility: hidden;\n}\n\n.jmp5-face::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  pointer-events: none;\n  background: linear-gradient(135deg, rgba(255,255,255,.22), transparent 38%);\n}\n\n.jmp5-front img {\n  width: 100%;\n  height: 64%;\n  object-fit: cover;\n  background: #e8eee9;\n  transition: transform .35s ease, filter .35s ease;\n}\n\n.jmp5-card:hover .jmp5-front img {\n  transform: scale(1.035);\n  filter: saturate(1.06) contrast(1.02);\n}\n\n.jmp5-image-fallback {\n  display: grid;\n  height: 64%;\n  place-items: center;\n  background: linear-gradient(135deg, #e7f1ea, #f8f4df);\n  color: var(--jmp5-green-650);\n  font-size: 2rem;\n}\n\n.jmp5-title {\n  display: flex;\n  flex: 1;\n  flex-direction: column;\n  justify-content: center;\n  padding: .5rem .5rem;\n  text-align: center;\n}\n\n.jmp5-title strong {\n  color: var(--jmp5-green-950);\n  font-size: .88rem;\n  line-height: 1.12;\n}\n\n.jmp5-title em {\n  margin-top: .18rem;\n  color: var(--jmp5-muted);\n  font-size: .66rem;\n  line-height: 1.14;\n}\n\n.jmp5-wing-row .jmp5-title strong {\n  font-size: .75rem;\n}\n\n.jmp5-wing-row .jmp5-title em {\n  font-size: .56rem;\n}\n\n.jmp5-back {\n  padding: .68rem;\n  overflow-y: auto;\n  transform: rotateY(180deg);\n  background: linear-gradient(145deg, #fff, var(--jmp5-cream));\n}\n\n.jmp5-back h4 {\n  margin: 0;\n  color: var(--jmp5-green-950);\n  font-size: .94rem;\n  line-height: 1.12;\n}\n\n.jmp5-wing-row .jmp5-back h4 {\n  font-size: .78rem;\n}\n\n.jmp5-scientific {\n  margin: .14rem 0 .42rem;\n  color: var(--jmp5-muted);\n  font-size: .69rem;\n}\n\n.jmp5-wing-row .jmp5-scientific {\n  font-size: .58rem;\n}\n\n.jmp5-facts {\n  display: grid;\n  gap: .26rem;\n  margin: 0;\n  font-size: .7rem;\n}\n\n.jmp5-wing-row .jmp5-facts {\n  font-size: .57rem;\n}\n\n.jmp5-fact {\n  display: grid;\n  grid-template-columns: 56px 1fr;\n  gap: .26rem;\n}\n\n.jmp5-wing-row .jmp5-fact {\n  grid-template-columns: 43px 1fr;\n  gap: .18rem;\n}\n\n.jmp5-fact dt {\n  color: var(--jmp5-green-650);\n  font-weight: 850;\n}\n\n.jmp5-fact dd {\n  margin: 0;\n}\n\n.jmp5-note {\n  margin: .46rem 0 0;\n  padding-top: .42rem;\n  border-top: 1px solid rgba(40, 91, 73, .14);\n  color: #45534e;\n  font-size: .67rem;\n}\n\n.jmp5-existing .jmp5-face {\n  border-color: rgba(216, 167, 61, .62);\n}\n\n.jmp5-existing .jmp5-title {\n  background: #fff8e5;\n}\n\n.jmp5-badge {\n  position: absolute;\n  top: .38rem;\n  right: .38rem;\n  z-index: 3;\n  border: 1px solid rgba(255,255,255,.35);\n  border-radius: 999px;\n  background: rgba(32, 49, 42, .92);\n  color: #fff;\n  padding: .2rem .42rem;\n  font-size: .56rem;\n  font-weight: 850;\n  letter-spacing: .02em;\n  box-shadow: 0 3px 8px rgba(0,0,0,.15);\n}\n\n\/* Triangle *\/\n.jmp5-triangle {\n  position: relative;\n  min-height: 760px;\n  overflow: hidden;\n  padding: 1rem 3% 2.5rem;\n}\n\n.jmp5-triangle-shape {\n  position: absolute;\n  top: 48px;\n  bottom: 24px;\n  left: 6%;\n  right: 6%;\n  background:\n    linear-gradient(\n      180deg,\n      rgba(230,242,236,.28) 0%,\n      rgba(221,236,227,.50) 60%,\n      rgba(212,231,220,.70) 100%\n    ),\n    radial-gradient(circle at 50% 68%, rgba(255,255,255,.66), transparent 62%);\n  filter: drop-shadow(0 12px 26px rgba(28,61,49,.055));\n  clip-path: polygon(50% 0, 96% 100%, 4% 100%);\n  pointer-events: none;\n}\n\n.jmp5-triangle-shape::after {\n  content: \"\";\n  position: absolute;\n  inset: 9px;\n  border: 1px solid rgba(71,120,95,.12);\n  clip-path: polygon(50% 0, 96% 100%, 4% 100%);\n}\n\n.jmp5-triangle-grid {\n  position: relative;\n  z-index: 2;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: .9rem;\n  width: min(100%, 880px);\n  margin: 0 auto;\n}\n\n.jmp5-triangle-row {\n  display: flex;\n  justify-content: center;\n  gap: .9rem;\n  width: 100%;\n}\n\n.jmp5-triangle-row .jmp5-card {\n  flex: 0 0 210px;\n  width: 210px;\n  max-width: 210px;\n  min-width: 0;\n}\n\n\/* Circles *\/\n.jmp5-circles {\n  display: grid;\n  grid-template-columns: minmax(280px, .78fr) minmax(340px, 1.12fr);\n  gap: 1rem;\n  align-items: center;\n}\n\n.jmp5-circle {\n  display: flex;\n  min-height: 380px;\n  flex-direction: column;\n  justify-content: center;\n  padding: 1.65rem;\n  border: 2px solid rgba(40,91,73,.3);\n  border-radius: 50%;\n  background:\n    radial-gradient(circle at 50% 36%, rgba(255,255,255,.99), rgba(235,244,239,.9) 60%, rgba(225,237,231,.95) 100%);\n  box-shadow:\n    inset 0 0 34px rgba(66,124,101,.06),\n    0 12px 28px rgba(28,61,49,.07);\n}\n\n.jmp5-circle-large {\n  min-height: 470px;\n}\n\n.jmp5-circle .jmp5-grid {\n  grid-template-columns: repeat(2, minmax(128px, 1fr));\n}\n\n.jmp5-unassigned {\n  margin-top: 1rem;\n  padding: .8rem;\n  border: 1px dashed #bd8b2d;\n  border-radius: 12px;\n  background: #fff9e9;\n}\n\n.jmp5-unassigned summary {\n  cursor: pointer;\n  color: #6c4d11;\n  font-weight: 850;\n}\n\n.jmp5-unassigned .jmp5-grid {\n  margin-top: .75rem;\n}\n\n.jmp5-message {\n  display: block;\n  padding: .8rem;\n  border-radius: 10px;\n  background: #f4f6f4;\n  color: var(--jmp5-muted);\n}\n\n.jmp5-error {\n  display: block;\n  padding: .8rem;\n  border-radius: 10px;\n  background: #fff0f0;\n  color: #8a1f1f;\n}\n\n\n\n\n\n\/* Native Landscaping *\/\n.jmp5-native{max-width:1120px;margin:0 auto;padding:.75rem 0 2rem}.jmp5-native-hero{padding:clamp(1.4rem,4vw,2.5rem);border:1px solid rgba(40,91,73,.15);border-radius:24px;background:radial-gradient(circle at 86% 16%,rgba(216,167,61,.13),transparent 29%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(235,245,240,.96));box-shadow:0 14px 34px rgba(28,61,49,.10)}.jmp5-native-kicker{margin:0 0 .35rem;color:var(--jmp5-green-650);font-size:.78rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.jmp5-native-hero h3{margin:0;color:var(--jmp5-green-950);font-size:clamp(1.8rem,4vw,3rem);line-height:1.08;text-wrap:balance}.jmp5-native-intro{max-width:850px;margin:.9rem 0 0;color:#43534d;font-size:clamp(1rem,2vw,1.14rem);line-height:1.72}.jmp5-native-section{margin-top:1rem;padding:clamp(1.1rem,3vw,1.6rem);border:1px solid rgba(40,91,73,.12);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(28,61,49,.06)}.jmp5-native-section h4{margin:0 0 .55rem;color:var(--jmp5-green-950);font-size:1.3rem}.jmp5-native-section>p{margin:0;color:#43534d;line-height:1.72}.jmp5-native-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:.9rem}.jmp5-native-card{padding:1rem;border:1px solid rgba(40,91,73,.13);border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbf9);box-shadow:0 6px 16px rgba(28,61,49,.06)}.jmp5-native-card h5{margin:0 0 .3rem;color:var(--jmp5-green-950);font-size:1rem}.jmp5-native-card p{margin:0;color:#4b5b55;font-size:.9rem;line-height:1.58}.jmp5-native-bird-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-top:.9rem}.jmp5-native-bird{padding:.95rem;border:1px solid rgba(40,91,73,.13);border-radius:15px;background:#fbfdfb}.jmp5-native-bird h5{margin:0 0 .25rem;color:var(--jmp5-green-950);font-size:.92rem}.jmp5-native-bird p{margin:0;color:var(--jmp5-muted);font-size:.8rem;line-height:1.45}.jmp5-native-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:.9rem}.jmp5-native-resource{display:flex;min-height:150px;flex-direction:column;justify-content:space-between;padding:1rem;border:1px solid rgba(40,91,73,.14);border-radius:16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 7px 18px rgba(28,61,49,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.jmp5-native-resource:hover,.jmp5-native-resource:focus-visible{transform:translateY(-3px);border-color:var(--jmp5-green-650);box-shadow:0 14px 28px rgba(28,61,49,.13);outline:3px solid rgba(66,124,101,.16);outline-offset:2px}.jmp5-native-resource strong{color:var(--jmp5-green-950);font-size:1rem}.jmp5-native-resource span{display:block;margin-top:.35rem;color:var(--jmp5-muted);font-size:.82rem;line-height:1.45}.jmp5-native-resource b{display:block;margin-top:.8rem;color:var(--jmp5-green-800);font-size:.82rem}.jmp5-native-callout{margin-top:1rem;padding:1.2rem 1.3rem;border-left:5px solid var(--jmp5-gold);border-radius:0 16px 16px 0;background:#fff9e9}.jmp5-native-callout h4{margin:0 0 .4rem;color:var(--jmp5-green-950)}.jmp5-native-callout p{margin:0;color:#43534d;line-height:1.65}.jmp5-native-handout{display:inline-flex;align-items:center;gap:.45rem;margin-top:.9rem;padding:.72rem 1rem;border:1px solid var(--jmp5-green-300);border-radius:999px;background:#f4f8f5;color:var(--jmp5-green-800);font-weight:800;text-decoration:none;cursor:not-allowed;opacity:.72}@media(max-width:900px){.jmp5-native-bird-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.jmp5-native-grid,.jmp5-native-resources{grid-template-columns:1fr}}@media(max-width:520px){.jmp5-native-bird-grid{grid-template-columns:1fr}.jmp5-native-hero,.jmp5-native-section{border-radius:16px}}\n\n\/* Garden History *\/\n.jmp5-history {\n  max-width: 1120px;\n  margin: 0 auto;\n  padding: .75rem 0 2rem;\n}\n\n.jmp5-history-hero {\n  padding: clamp(1.4rem, 4vw, 2.5rem);\n  border: 1px solid rgba(40,91,73,.15);\n  border-radius: 24px;\n  background:\n    radial-gradient(circle at 84% 18%, rgba(216,167,61,.13), transparent 28%),\n    linear-gradient(145deg, rgba(255,255,255,.98), rgba(235,245,240,.95));\n  box-shadow: 0 14px 34px rgba(28,61,49,.10);\n}\n\n.jmp5-history-kicker {\n  margin: 0 0 .35rem;\n  color: var(--jmp5-green-650);\n  font-size: .78rem;\n  font-weight: 850;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.jmp5-history-hero h3 {\n  margin: 0;\n  color: var(--jmp5-green-950);\n  font-size: clamp(1.8rem, 4vw, 3rem);\n  line-height: 1.08;\n  text-wrap: balance;\n}\n\n.jmp5-history-intro {\n  max-width: 820px;\n  margin: .9rem 0 0;\n  color: #43534d;\n  font-size: clamp(1rem, 2vw, 1.14rem);\n  line-height: 1.72;\n}\n\n.jmp5-history-stats {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0,1fr));\n  gap: .8rem;\n  margin: 1rem 0 1.4rem;\n}\n\n.jmp5-history-stat {\n  padding: 1rem;\n  border: 1px solid rgba(40,91,73,.14);\n  border-radius: 16px;\n  background: rgba(255,255,255,.92);\n  box-shadow: 0 7px 18px rgba(28,61,49,.07);\n  text-align: center;\n}\n\n.jmp5-history-stat strong {\n  display: block;\n  color: var(--jmp5-green-950);\n  font-size: 1.22rem;\n  line-height: 1.15;\n}\n\n.jmp5-history-stat span {\n  display: block;\n  margin-top: .28rem;\n  color: var(--jmp5-muted);\n  font-size: .77rem;\n  line-height: 1.3;\n}\n\n.jmp5-history-section {\n  margin-top: 1rem;\n  padding: clamp(1.1rem, 3vw, 1.6rem);\n  border: 1px solid rgba(40,91,73,.12);\n  border-radius: 18px;\n  background: rgba(255,255,255,.94);\n  box-shadow: 0 8px 20px rgba(28,61,49,.06);\n}\n\n.jmp5-history-section h4 {\n  margin: 0 0 .55rem;\n  color: var(--jmp5-green-950);\n  font-size: 1.3rem;\n}\n\n.jmp5-history-section p {\n  margin: 0;\n  color: #43534d;\n  line-height: 1.72;\n}\n\n.jmp5-history-credit-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0,1fr));\n  gap: .85rem;\n  margin-top: .9rem;\n}\n\n.jmp5-history-credit {\n  padding: 1rem;\n  border: 1px solid rgba(40,91,73,.13);\n  border-radius: 15px;\n  background: #fbfdfb;\n}\n\n.jmp5-history-credit strong {\n  display: block;\n  color: var(--jmp5-green-950);\n  font-size: .92rem;\n}\n\n.jmp5-history-credit span {\n  display: block;\n  margin-top: .2rem;\n  color: var(--jmp5-muted);\n  font-size: .84rem;\n  line-height: 1.4;\n}\n\n.jmp5-history-gallery {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0,1fr));\n  gap: .85rem;\n  margin-top: .9rem;\n}\n\n.jmp5-history-media {\n  overflow: hidden;\n  min-height: 190px;\n  border: 1px dashed rgba(40,91,73,.25);\n  border-radius: 16px;\n  background:\n    linear-gradient(145deg, rgba(235,245,240,.95), rgba(255,251,239,.96));\n}\n\n.jmp5-history-media img,\n.jmp5-history-media video,\n.jmp5-history-media iframe {\n  display: block;\n  width: 100%;\n  height: 100%;\n  min-height: 190px;\n  object-fit: cover;\n  border: 0;\n}\n\n.jmp5-history-placeholder {\n  display: grid;\n  min-height: 190px;\n  place-items: center;\n  padding: 1.1rem;\n  text-align: center;\n  color: var(--jmp5-green-650);\n}\n\n.jmp5-history-placeholder strong {\n  display: block;\n  color: var(--jmp5-green-950);\n  font-size: .95rem;\n}\n\n.jmp5-history-placeholder span {\n  display: block;\n  margin-top: .3rem;\n  color: var(--jmp5-muted);\n  font-size: .78rem;\n}\n\n.jmp5-history-timeline {\n  position: relative;\n  display: grid;\n  gap: .9rem;\n  margin-top: .9rem;\n  padding-left: 1.2rem;\n}\n\n.jmp5-history-timeline::before {\n  content: \"\";\n  position: absolute;\n  top: .2rem;\n  bottom: .2rem;\n  left: .26rem;\n  width: 2px;\n  background: rgba(66,124,101,.25);\n}\n\n.jmp5-history-entry {\n  position: relative;\n  padding: .9rem 1rem;\n  border: 1px solid rgba(40,91,73,.12);\n  border-radius: 14px;\n  background: #fff;\n}\n\n.jmp5-history-entry::before {\n  content: \"\";\n  position: absolute;\n  left: -1.23rem;\n  top: 1.05rem;\n  width: .7rem;\n  height: .7rem;\n  border: 3px solid #fff;\n  border-radius: 50%;\n  background: var(--jmp5-green-650);\n  box-shadow: 0 0 0 1px rgba(66,124,101,.25);\n}\n\n.jmp5-history-entry time {\n  display: block;\n  color: var(--jmp5-green-650);\n  font-size: .76rem;\n  font-weight: 850;\n  letter-spacing: .05em;\n  text-transform: uppercase;\n}\n\n.jmp5-history-entry h5 {\n  margin: .2rem 0 .3rem;\n  color: var(--jmp5-green-950);\n  font-size: 1.05rem;\n}\n\n.jmp5-history-entry p {\n  margin: 0;\n  font-size: .9rem;\n}\n\n.jmp5-history-credit-note {\n  margin-top: .85rem !important;\n  padding: 1rem 1.1rem;\n  border-left: 5px solid var(--jmp5-gold);\n  border-radius: 0 14px 14px 0;\n  background: #fff9e9;\n}\n\n.jmp5-history-link {\n  display: inline-flex;\n  align-items: center;\n  gap: .35rem;\n  margin-top: .8rem;\n  color: var(--jmp5-green-800);\n  font-weight: 800;\n  text-decoration: none;\n}\n\n.jmp5-history-link:hover,\n.jmp5-history-link:focus-visible {\n  text-decoration: underline;\n}\n\n@media (max-width: 820px) {\n  .jmp5-history-stats,\n  .jmp5-history-gallery {\n    grid-template-columns: repeat(2, minmax(0,1fr));\n  }\n}\n\n@media (max-width: 620px) {\n  .jmp5-history-credit-grid,\n  .jmp5-history-stats,\n  .jmp5-history-gallery {\n    grid-template-columns: 1fr;\n  }\n\n  .jmp5-history-hero,\n  .jmp5-history-section {\n    border-radius: 16px;\n  }\n}\n\n\n.jmp5-history-feature{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:1rem;align-items:stretch;margin-top:1rem}.jmp5-history-feature-image,.jmp5-history-story-image{overflow:hidden;border:1px solid rgba(40,91,73,.14);border-radius:18px;background:#edf3ef;box-shadow:0 10px 24px rgba(28,61,49,.09)}.jmp5-history-feature-image img,.jmp5-history-story-image img{display:block;width:100%;height:100%;min-height:300px;object-fit:cover}.jmp5-history-feature-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.15rem,3vw,1.7rem);border:1px solid rgba(40,91,73,.12);border-radius:18px;background:rgba(255,255,255,.95);box-shadow:0 8px 20px rgba(28,61,49,.06)}.jmp5-history-feature-copy h4{margin:0 0 .55rem;color:var(--jmp5-green-950);font-size:1.35rem}.jmp5-history-feature-copy p{margin:0;color:#43534d;line-height:1.72}.jmp5-history-photo-card{overflow:hidden;border:1px solid rgba(40,91,73,.14);border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(28,61,49,.07)}.jmp5-history-photo-card img{display:block;width:100%;aspect-ratio:4\/3;object-fit:cover;background:#e8eee9}.jmp5-history-photo-card figcaption{padding:.82rem .9rem .9rem;color:#43534d;font-size:.83rem;line-height:1.45}.jmp5-history-photo-card figcaption strong{display:block;margin-bottom:.16rem;color:var(--jmp5-green-950);font-size:.92rem}.jmp5-history-timeline-photo{display:grid;grid-template-columns:180px minmax(0,1fr);gap:.9rem;align-items:center}.jmp5-history-timeline-photo img{display:block;width:100%;aspect-ratio:4\/3;object-fit:cover;border-radius:12px}.jmp5-history-wildlife,.jmp5-history-sign{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:1rem;align-items:center}.jmp5-history-wildlife img,.jmp5-history-sign img{display:block;width:100%;border-radius:16px;box-shadow:0 10px 24px rgba(28,61,49,.10)}@media(max-width:820px){.jmp5-history-feature,.jmp5-history-wildlife,.jmp5-history-sign{grid-template-columns:1fr}.jmp5-history-timeline-photo{grid-template-columns:1fr}.jmp5-history-feature-image img,.jmp5-history-story-image img{min-height:240px}}\n\n\/* Joe Matthews exhibit *\/\n.jmp5-joe {\n  max-width: 980px;\n  margin: 0 auto;\n  padding: .75rem 0 2rem;\n}\n\n.jmp5-joe-hero {\n  position: relative;\n  overflow: hidden;\n  padding: clamp(1.4rem, 4vw, 2.5rem);\n  border: 1px solid rgba(40,91,73,.16);\n  border-radius: 24px;\n  background:\n    radial-gradient(circle at 82% 18%, rgba(216,167,61,.12), transparent 30%),\n    linear-gradient(145deg, rgba(255,255,255,.98), rgba(236,245,240,.95));\n  box-shadow: 0 14px 34px rgba(28,61,49,.10);\n}\n\n.jmp5-joe-hero::after {\n  content: \"\";\n  position: absolute;\n  right: -70px;\n  bottom: -95px;\n  width: 260px;\n  height: 260px;\n  border: 2px solid rgba(66,124,101,.09);\n  border-radius: 50%;\n}\n\n.jmp5-joe-kicker {\n  margin: 0 0 .35rem;\n  color: var(--jmp5-green-650);\n  font-size: .78rem;\n  font-weight: 850;\n  letter-spacing: .15em;\n  text-transform: uppercase;\n}\n\n.jmp5-joe-hero h3 {\n  max-width: 760px;\n  margin: 0;\n  color: var(--jmp5-green-950);\n  font-size: clamp(1.8rem, 4vw, 3rem);\n  line-height: 1.08;\n  text-wrap: balance;\n}\n\n.jmp5-joe-intro {\n  max-width: 760px;\n  margin: .9rem 0 0;\n  color: #43534d;\n  font-size: clamp(1rem, 2vw, 1.14rem);\n  line-height: 1.7;\n}\n\n.jmp5-joe-hero-grid {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 250px;\n  gap: clamp(1.2rem, 3vw, 2rem);\n  align-items: center;\n}\n\n.jmp5-joe-copy {\n  min-width: 0;\n}\n\n.jmp5-joe-portrait {\n  margin: 0;\n  padding: .7rem;\n  border: 1px solid rgba(40,91,73,.16);\n  border-radius: 20px;\n  background: rgba(255,255,255,.9);\n  box-shadow: 0 12px 28px rgba(28,61,49,.12);\n}\n\n.jmp5-joe-portrait img {\n  display: block;\n  width: 100%;\n  aspect-ratio: 4 \/ 5;\n  object-fit: cover;\n  object-position: center top;\n  border-radius: 14px;\n  background: #e8eee9;\n}\n\n.jmp5-joe-portrait figcaption {\n  padding: .7rem .25rem .1rem;\n  color: #42534d;\n  text-align: center;\n  line-height: 1.4;\n}\n\n.jmp5-joe-portrait figcaption strong {\n  display: block;\n  color: var(--jmp5-green-950);\n  font-size: .95rem;\n}\n\n.jmp5-joe-portrait figcaption span {\n  display: block;\n  margin-top: .18rem;\n  color: var(--jmp5-muted);\n  font-size: .75rem;\n}\n\n@media (max-width: 760px) {\n  .jmp5-joe-hero-grid {\n    grid-template-columns: 1fr;\n  }\n\n  .jmp5-joe-portrait {\n    width: min(100%, 280px);\n    margin: 0 auto;\n    order: -1;\n  }\n}\n\n.jmp5-joe-facts {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0,1fr));\n  gap: .8rem;\n  margin: 1rem 0 1.35rem;\n}\n\n.jmp5-joe-fact {\n  padding: 1rem;\n  border: 1px solid rgba(40,91,73,.14);\n  border-radius: 16px;\n  background: rgba(255,255,255,.9);\n  box-shadow: 0 7px 18px rgba(28,61,49,.07);\n  text-align: center;\n}\n\n.jmp5-joe-fact strong {\n  display: block;\n  color: var(--jmp5-green-950);\n  font-size: 1.35rem;\n  line-height: 1.1;\n}\n\n.jmp5-joe-fact span {\n  display: block;\n  margin-top: .3rem;\n  color: var(--jmp5-muted);\n  font-size: .78rem;\n  line-height: 1.3;\n}\n\n.jmp5-joe-story {\n  display: grid;\n  gap: 1rem;\n}\n\n.jmp5-joe-section {\n  padding: clamp(1.1rem, 3vw, 1.6rem);\n  border: 1px solid rgba(40,91,73,.12);\n  border-radius: 18px;\n  background: rgba(255,255,255,.92);\n  box-shadow: 0 8px 20px rgba(28,61,49,.06);\n}\n\n.jmp5-joe-section h4 {\n  margin: 0 0 .5rem;\n  color: var(--jmp5-green-950);\n  font-size: 1.28rem;\n}\n\n.jmp5-joe-section p {\n  margin: 0;\n  color: #43534d;\n  line-height: 1.72;\n}\n\n.jmp5-joe-quote {\n  margin: 0;\n  padding: 1.15rem 1.25rem;\n  border-left: 5px solid var(--jmp5-gold);\n  border-radius: 0 16px 16px 0;\n  background: #fff9e9;\n  color: #33483f;\n  font-size: 1.05rem;\n  line-height: 1.6;\n}\n\n@media (max-width: 760px) {\n  .jmp5-joe-facts {\n    grid-template-columns: repeat(2, minmax(0,1fr));\n  }\n}\n\n@media (max-width: 430px) {\n  .jmp5-joe-facts {\n    grid-template-columns: 1fr;\n  }\n\n  .jmp5-joe-hero,\n  .jmp5-joe-section,\n  .jmp5-joe-portrait {\n    border-radius: 16px;\n  }\n}\n\n\n\/* Centered plant detail overlay *\/\n.jmp5-modal[hidden] {\n  display: none !important;\n}\n\n.jmp5-modal {\n  position: fixed;\n  inset: 0;\n  z-index: 99999;\n  display: grid;\n  place-items: center;\n  padding: 1.25rem;\n  animation: jmp5ModalFade .2s ease both;\n}\n\n@keyframes jmp5ModalFade {\n  from { opacity: 0; }\n  to { opacity: 1; }\n}\n\n@keyframes jmp5DialogIn {\n  from { opacity: 0; transform: translateY(14px) scale(.965); }\n  to { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n.jmp5-modal-backdrop {\n  position: absolute;\n  inset: 0;\n  background:\n    radial-gradient(circle at center, rgba(18,34,28,.58), rgba(18,34,28,.76));\n  backdrop-filter: blur(4px);\n  -webkit-backdrop-filter: blur(4px);\n}\n\n.jmp5-modal-dialog {\n  position: relative;\n  z-index: 2;\n  width: min(92vw, 560px);\n  max-height: min(88vh, 760px);\n  overflow: auto;\n  border: 1px solid rgba(40, 91, 73, .2);\n  border-radius: 22px;\n  background: linear-gradient(145deg, #fff, var(--jmp5-cream));\n  box-shadow: 0 28px 90px rgba(0,0,0,.34);\n  animation: jmp5DialogIn .24s cubic-bezier(.2,.75,.2,1) both;\n}\n\n.jmp5-modal-close {\n  position: absolute;\n  top: .7rem;\n  right: .7rem;\n  z-index: 4;\n  width: 2.35rem;\n  height: 2.35rem;\n  border: 0;\n  border-radius: 50%;\n  background: rgba(23, 61, 49, .92);\n  color: #fff;\n  font-size: 1.45rem;\n  line-height: 1;\n  cursor: pointer;\n}\n\n.jmp5-modal-close:hover,\n.jmp5-modal-close:focus-visible {\n  background: #0f2d24;\n  outline: 3px solid rgba(216, 167, 61, .38);\n  outline-offset: 2px;\n}\n\n.jmp5-modal-image {\n  width: 100%;\n  height: clamp(220px, 35vw, 330px);\n  object-fit: cover;\n  display: block;\n  background: #e8eee9;\n}\n\n.jmp5-modal-content {\n  padding: 1.25rem 1.35rem 1.45rem;\n}\n\n.jmp5-modal-content h3 {\n  margin: 0;\n  color: var(--jmp5-green-950);\n  font-size: clamp(1.45rem, 3vw, 2rem);\n  line-height: 1.12;\n  text-wrap: balance;\n}\n\n.jmp5-modal-scientific {\n  margin: .25rem 0 .9rem;\n  color: var(--jmp5-muted);\n  font-size: .95rem;\n}\n\n.jmp5-modal-facts {\n  display: grid;\n  gap: .58rem;\n  margin: 0;\n  font-size: .97rem;\n}\n\n.jmp5-modal-fact {\n  display: grid;\n  grid-template-columns: 110px 1fr;\n  gap: .65rem;\n  padding: .56rem .1rem;\n  border-bottom: 1px solid rgba(40, 91, 73, .1);\n}\n\n.jmp5-modal-fact dt {\n  color: var(--jmp5-green-650);\n  font-weight: 850;\n}\n\n.jmp5-modal-fact dd {\n  margin: 0;\n}\n\n.jmp5-modal-note {\n  margin: 1rem 0 0;\n  color: #45534e;\n  font-size: .94rem;\n}\n\nbody.jmp5-modal-open {\n  overflow: hidden;\n}\n\n@media (max-width: 680px) {\n  .jmp5-modal {\n    padding: .65rem;\n    align-items: end;\n  }\n\n  .jmp5-modal-dialog {\n    width: 100%;\n    max-height: 92vh;\n    border-radius: 20px 20px 0 0;\n  }\n\n  .jmp5-modal-image {\n    height: 230px;\n  }\n\n  .jmp5-modal-content {\n    padding: 1rem 1rem 1.25rem;\n  }\n\n  .jmp5-modal-fact {\n    grid-template-columns: 92px 1fr;\n  }\n}\n\n@media (max-width: 1120px) {\n  #jmp5-app {\n    --jmp5-wing-card-width: clamp(86px, 7.4vw, 104px);\n    --jmp5-wing-card-height: 148px;\n  }\n\n  .jmp5-butterfly {\n    grid-template-columns: minmax(0, 1.08fr) 54px minmax(0, 1.08fr);\n    gap: .85rem;\n  }\n\n  .jmp5-wing {\n    padding-inline: 1rem;\n  }\n\n  .jmp5-wing-row {\n    gap: .58rem;\n  }\n}\n\n@media (max-width: 900px) {\n  #jmp5-app {\n    --jmp5-wing-card-width: clamp(78px, 7.5vw, 94px);\n    --jmp5-wing-card-height: 140px;\n  }\n\n  .jmp5-butterfly {\n    grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);\n    gap: .55rem;\n  }\n\n  .jmp5-wing {\n    min-height: 860px;\n    padding-inline: .55rem;\n  }\n\n  .jmp5-body {\n    min-height: 860px;\n  }\n\n  .jmp5-wing-row {\n    gap: .38rem;\n  }\n\n  .jmp5-head {\n    width: 40px;\n    height: 40px;\n  }\n\n  .jmp5-thorax {\n    width: 35px;\n  }\n\n  .jmp5-abdomen {\n    width: 27px;\n  }\n\n  .jmp5-triangle-row {\n    gap: .65rem;\n  }\n\n  .jmp5-triangle-row .jmp5-card {\n    flex-basis: 180px;\n    width: 180px;\n    max-width: 180px;\n  }\n}\n\n\n@media (max-width: 1080px) and (min-width: 681px) {\n  .jmp5-tabs {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    width: min(100%, 760px);\n    margin-left: auto;\n    margin-right: auto;\n    gap: .6rem;\n  }\n\n  .jmp5-tab {\n    width: 100%;\n    padding-inline: .75rem;\n  }\n}\n\n@media (max-width: 680px) {\n\n  #jmp5-app {\n    --jmp5-card-height: 214px;\n  }\n\n  .jmp5-tabs {\n    display: grid;\n    grid-template-columns: 1fr;\n    width: min(100%, 430px);\n    margin-left: auto;\n    margin-right: auto;\n    gap: .55rem;\n  }\n\n  .jmp5-tab {\n    width: 100%;\n  }\n\n  .jmp5-butterfly {\n    display: block;\n  }\n\n  .jmp5-body {\n    display: none;\n  }\n\n  .jmp5-wing {\n    min-height: 0;\n    margin-bottom: .9rem;\n    padding: 1rem;\n  }\n\n  .jmp5-wing::before {\n    border-radius: 28px !important;\n  }\n\n  .jmp5-wing::after {\n    display: none;\n  }\n\n  .jmp5-wing-rows {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0,1fr));\n    gap: .65rem;\n  }\n\n  .jmp5-wing-row {\n    display: contents;\n  }\n\n  .jmp5-wing-row .jmp5-card {\n    width: 100%;\n    min-width: 0;\n    max-width: none;\n    height: var(--jmp5-card-height);\n  }\n\n  .jmp5-wing-row .jmp5-title strong {\n    font-size: .88rem;\n  }\n\n  .jmp5-wing-row .jmp5-title em {\n    font-size: .67rem;\n  }\n\n  .jmp5-wing-row .jmp5-back h4 {\n    font-size: .94rem;\n  }\n\n  .jmp5-wing-row .jmp5-scientific,\n  .jmp5-wing-row .jmp5-facts {\n    font-size: .69rem;\n  }\n\n  .jmp5-wing-row .jmp5-fact {\n    grid-template-columns: 56px 1fr;\n    gap: .26rem;\n  }\n\n  .jmp5-grid,\n  .jmp5-circle .jmp5-grid {\n    grid-template-columns: repeat(2, minmax(0,1fr));\n  }\n\n  .jmp5-triangle-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0,1fr));\n    gap: .65rem;\n    width: 100%;\n  }\n\n  .jmp5-triangle-row {\n    display: contents;\n  }\n\n  .jmp5-triangle-row .jmp5-card {\n    width: 100%;\n    min-width: 0;\n    max-width: none;\n    height: var(--jmp5-card-height);\n  }\n\n  .jmp5-triangle {\n    min-height: 0;\n    padding: .85rem;\n  }\n\n  .jmp5-triangle-shape {\n    top: 44px;\n    bottom: 8px;\n    left: -2%;\n    right: -2%;\n    opacity: .48;\n    clip-path: polygon(50% 0, 98% 100%, 2% 100%);\n  }\n\n  .jmp5-triangle-shape::after {\n    clip-path: polygon(50% 0, 98% 100%, 2% 100%);\n  }\n\n  .jmp5-circles {\n    grid-template-columns: 1fr;\n  }\n\n  .jmp5-circle,\n  .jmp5-circle-large {\n    min-height: 0;\n    padding: .9rem;\n    border-radius: 28px;\n  }\n}\n\n@media (max-width: 390px) {\n  #jmp5-app {\n    --jmp5-card-height: 205px;\n  }\n\n  .jmp5-grid,\n  .jmp5-triangle-grid,\n  .jmp5-circle .jmp5-grid,\n  .jmp5-wing-rows {\n    gap: .52rem;\n  }\n}\n\n\n\/* Tablet and phone typography cleanup *\/\n@media (max-width: 900px) {\n  #jmp5-app h1,\n  #jmp5-app h2,\n  #jmp5-app h3,\n  #jmp5-app h4,\n  #jmp5-app h5,\n  #jmp5-app h6,\n  #jmp5-app a,\n  #jmp5-app button {\n    text-decoration: none !important;\n    text-decoration-line: none !important;\n  }\n\n  #jmp5-app .jmp5-hero h2 {\n    border-bottom: 0 !important;\n    padding-bottom: 0 !important;\n    box-shadow: none !important;\n  }\n\n  #jmp5-app .jmp5-hero h2::after {\n    display: none !important;\n    content: none !important;\n  }\n\n  #jmp5-app h1::before,\n  #jmp5-app h1::after,\n  #jmp5-app h2::before,\n  #jmp5-app h2::after,\n  #jmp5-app h3::before,\n  #jmp5-app h3::after,\n  #jmp5-app h4::before,\n  #jmp5-app h4::after,\n  #jmp5-app a::before,\n  #jmp5-app a::after {\n    text-decoration: none !important;\n    border-bottom: 0 !important;\n    box-shadow: none !important;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .jmp5-card,\n  .jmp5-card-inner,\n  .jmp5-front img,\n  .jmp5-tab,\n  .jmp5-panel,\n  .jmp5-modal,\n  .jmp5-modal-dialog,\n  .jmp5-hero,\n  .jmp5-joe-hero,\n  .jmp5-joe-section,\n  .jmp5-joe-portrait {\n    transition: none;\n    animation: none;\n  }\n}\n<\/style>\n\n<div id=\"jmp5-app\">\n  <header class=\"jmp5-hero\">\n    <p class=\"jmp5-eyebrow\">Joe Matthews Park<\/p>\n    <h2>Native Demonstration Garden<\/h2>\n    <p>Select a garden area, then tap a plant card to see its details.<\/p>\n  <\/header>\n\n  <nav class=\"jmp5-tabs\" role=\"tablist\" aria-label=\"Garden areas\">\n    <button class=\"jmp5-tab is-active\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-controls=\"jmp5-panel-butterfly\" id=\"jmp5-tab-butterfly\" data-tab=\"butterfly\">Butterfly Garden<\/button>\n\n    <button class=\"jmp5-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"jmp5-panel-triangle\" id=\"jmp5-tab-triangle\" data-tab=\"triangle\">Arrowhead Bed<\/button>\n\n    <button class=\"jmp5-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"jmp5-panel-circles\" id=\"jmp5-tab-circles\" data-tab=\"circles\">Circular Beds<\/button>\n\n    <button class=\"jmp5-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"jmp5-panel-joe\" id=\"jmp5-tab-joe\" data-tab=\"joe\">Joe Matthews<\/button>\n\n    <button class=\"jmp5-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"jmp5-panel-history\" id=\"jmp5-tab-history\" data-tab=\"history\">Garden History<\/button>\n\n    <button class=\"jmp5-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"jmp5-panel-native\" id=\"jmp5-tab-native\" data-tab=\"native\">Native Landscaping<\/button>\n  <\/nav>\n\n  <div class=\"jmp5-status\" id=\"jmp5-status\" role=\"status\" aria-live=\"polite\">\n    JavaScript is running. Loading plant information\u2026\n  <\/div>\n  <p class=\"jmp5-status\" style=\"margin-top:-.45rem;\">Tap any plant card to learn more.<\/p>\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-butterfly\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-butterfly\">\n    <div class=\"jmp5-butterfly\">\n      <section class=\"jmp5-wing jmp5-wing-east\" aria-labelledby=\"jmp5-west-title\">\n        <h3 id=\"jmp5-west-title\">West Wing<\/h3>\n        <div class=\"jmp5-wing-rows\" id=\"jmp5-west\"><\/div>\n      <\/section>\n\n      <div class=\"jmp5-body\" aria-hidden=\"true\">\n        <span class=\"jmp5-antenna jmp5-antenna-left\"><\/span>\n        <span class=\"jmp5-antenna jmp5-antenna-right\"><\/span>\n        <span class=\"jmp5-head\"><\/span>\n        <span class=\"jmp5-thorax\"><\/span>\n        <span class=\"jmp5-abdomen\"><\/span>\n      <\/div>\n\n      <section class=\"jmp5-wing jmp5-wing-west\" aria-labelledby=\"jmp5-east-title\">\n        <h3 id=\"jmp5-east-title\">East Wing<\/h3>\n        <div class=\"jmp5-wing-rows\" id=\"jmp5-east\"><\/div>\n      <\/section>\n    <\/div>\n  <\/section>\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-triangle\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-triangle\" hidden=\"\">\n    <div class=\"jmp5-triangle\">\n      <h3>Arrowhead Bed<\/h3>\n      <div class=\"jmp5-triangle-shape\" aria-hidden=\"true\"><\/div>\n      <div class=\"jmp5-grid jmp5-triangle-grid\" id=\"jmp5-triangle\"><\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-circles\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-circles\" hidden=\"\">\n    <div class=\"jmp5-circles\">\n      <section class=\"jmp5-circle\">\n        <h3>12 sq ft Circle<\/h3>\n        <div class=\"jmp5-grid\" id=\"jmp5-circle12\"><\/div>\n      <\/section>\n\n      <section class=\"jmp5-circle jmp5-circle-large\">\n        <h3>28 sq ft Circle<\/h3>\n        <div class=\"jmp5-grid\" id=\"jmp5-circle28\"><\/div>\n      <\/section>\n    <\/div>\n  <\/section>\n\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-joe\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-joe\" hidden=\"\">\n    <article class=\"jmp5-joe\">\n      <header class=\"jmp5-joe-hero\">\n        <div class=\"jmp5-joe-hero-grid\">\n          <div class=\"jmp5-joe-copy\">\n            <p class=\"jmp5-joe-kicker\">The Story Behind the Park<\/p>\n            <h3>Who Was Joe Matthews?<\/h3>\n            <p class=\"jmp5-joe-intro\">\n              If you have ever spent a Saturday afternoon at the community park on Oak Ridge Drive,\n              you have probably seen the name Joe E. Matthews on the sign. His story mirrors the story\n              of Mont Belvieu itself.\n            <\/p>\n          <\/div>\n\n          <figure class=\"jmp5-joe-portrait\">\n            <img src=\"https:\/\/d2mjvz2lqjkhe7.cloudfront.net\/as\/assets-mem-com\/cmi\/7\/4\/6\/3\/8053647\/20181112_102107478_0_orig.jpg\/-\/joseph-matthews-baytown-tx-obituary.jpg?maxheight=650\" alt=\"Portrait of Joe E. Matthews\" loading=\"lazy\" decoding=\"async\" onerror=\"this.closest('figure').style.display='none';\">\n            <figcaption>\n              <strong>Joe E. Matthews (1913\u20132009)<\/strong>\n              <span>Community leader, conservation advocate, and namesake of Joe Matthews Park.<\/span>\n            <\/figcaption>\n          <\/figure>\n        <\/div>\n      <\/header>\n\n      <div class=\"jmp5-joe-facts\" aria-label=\"Joe Matthews facts\">\n        <div class=\"jmp5-joe-fact\">\n          <strong>1913<\/strong>\n          <span>Born in Mont Belvieu<\/span>\n        <\/div>\n        <div class=\"jmp5-joe-fact\">\n          <strong>17 years<\/strong>\n          <span>Barbers Hill School Board service<\/span>\n        <\/div>\n        <div class=\"jmp5-joe-fact\">\n          <strong>9 years<\/strong>\n          <span>School Board president<\/span>\n        <\/div>\n        <div class=\"jmp5-joe-fact\">\n          <strong>2009<\/strong>\n          <span>Died at age 95<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"jmp5-joe-story\">\n        <section class=\"jmp5-joe-section\">\n          <h4>A Local Beginning<\/h4>\n          <p>\n            Joe was born in Mont Belvieu in 1913, when the area was still a bustling,\n            gritty oil-field town. A bright student, he graduated as valedictorian of\n            Robert E. Lee High School in Baytown before attending Rice University.\n            What stands out most is what he chose to do with that education: he came home.\n          <\/p>\n        <\/section>\n\n        <section class=\"jmp5-joe-section\">\n          <h4>Building a Community<\/h4>\n          <p>\n            Old town records show that his fingerprints were on much of the community&#8217;s\n            early growth. He spent 17 years on the Barbers Hill School Board, serving as\n            president for nine of them. He also served on the City Council and helped manage\n            the local water district while the town was building modern infrastructure.\n            It was steady, foundational service that helped a small town grow safely and sustainably.\n          <\/p>\n        <\/section>\n\n        <blockquote class=\"jmp5-joe-quote\">\n          His lasting memorial is not simply a name on a sign, but a living green space\n          where people can pause, connect with nature, and enjoy the community he helped build.\n        <\/blockquote>\n\n        <section class=\"jmp5-joe-section\">\n          <h4>A Love for Nature<\/h4>\n          <p>\n            Joe was also a passionate outdoorsman and conservationist who loved the Texas landscape.\n            That makes it fitting that his memorial is not a statue or a plaque on a building,\n            but a park shaped by trees, trails, water, and wildlife.\n          <\/p>\n        <\/section>\n\n        <section class=\"jmp5-joe-section\">\n          <h4>A Living Legacy<\/h4>\n          <p>\n            Walking trails, a floating kayak dock, and the butterfly garden continue the spirit\n            of his work. They create a place where people can enjoy nature and the community he\n            spent decades helping to build. Joe Matthews died in 2009 at the age of 95, but every\n            trail walk, canoe launch, and garden visit keeps that legacy of community stewardship alive.\n          <\/p>\n        <\/section>\n      <\/div>\n    <\/article>\n  <\/section>\n\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-history\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-history\" hidden=\"\">\n    <article class=\"jmp5-history\">\n      <header class=\"jmp5-history-hero\"><p class=\"jmp5-history-kicker\">A Living Record<\/p><h3>Garden History<\/h3><p class=\"jmp5-history-intro\">The Lower Trinity Basin Chapter of the Texas Master Naturalist Program, the Lower Trinity Valley Bird Club, and the City of Mont Belvieu worked together to bring the Joe Matthews Park Native Demonstration Gardens to life. This page documents the people, planting, stewardship, and continuing growth of the gardens.<\/p><\/header>\n      <div class=\"jmp5-history-stats\" aria-label=\"Garden project summary\"><div class=\"jmp5-history-stat\"><strong>24<\/strong><span>Plant records in the guide<\/span><\/div><div class=\"jmp5-history-stat\"><strong>3<\/strong><span>Demonstration garden areas<\/span><\/div><div class=\"jmp5-history-stat\"><strong>Aug. 1, 2026<\/strong><span>Planting Day<\/span><\/div><div class=\"jmp5-history-stat\"><strong>Mont Belvieu<\/strong><span>Joe Matthews Park<\/span><\/div><\/div>\n      <section class=\"jmp5-history-feature\"><figure class=\"jmp5-history-feature-image\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Final_Crew.jpeg\" alt=\"Planting Day volunteers gathered at the completed native gardens\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"jmp5-history-feature-copy\"><p class=\"jmp5-history-kicker\">August 1, 2026<\/p><h4>A Day of Community<\/h4><p>Volunteers gathered at Joe Matthews Park to turn a carefully prepared planting plan into a living educational landscape. Working together, they prepared the beds, placed native and adapted plants, installed garden features, and created habitat that will support pollinators, birds, and other wildlife as the gardens mature.<\/p><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>Project Leadership and Partners<\/h4><p>The garden reflects the combined work of local volunteers, conservation organizations, and municipal partners committed to native plants, environmental education, water conservation, and wildlife habitat.<\/p><div class=\"jmp5-history-credit-grid\"><div class=\"jmp5-history-credit\"><strong>Project Manager<\/strong><span>Gary Holmes<\/span><\/div><div class=\"jmp5-history-credit\"><strong>Community Partner<\/strong><span>Lower Trinity Basin Chapter, Texas Master Naturalist Program<\/span><\/div><div class=\"jmp5-history-credit\"><strong>Community Partner<\/strong><span>Lower Trinity Valley Bird Club<\/span><\/div><div class=\"jmp5-history-credit\"><strong>Municipal Partner<\/strong><span>City of Mont Belvieu<\/span><\/div><\/div><div class=\"jmp5-history-feature\" style=\"margin-bottom:0\"><figure class=\"jmp5-history-story-image\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Gary_Planning_Meeting-scaled.jpeg\" alt=\"Gary Holmes during a garden planning meeting\" loading=\"lazy\" decoding=\"async\"><\/figure><div class=\"jmp5-history-feature-copy\"><h4>From Plan to Landscape<\/h4><p>Gary Holmes coordinated the garden project and helped guide the work from planning through installation. The finished beds reflect months of plant selection, site review, layout design, and collaboration among the project partners.<\/p><\/div><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>Planting Day \u2014 August 1, 2026<\/h4><p>The photographs below follow the project from the first gathering of the crew through the completed garden and final group photograph.<\/p><div class=\"jmp5-history-gallery\">\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_starting_crew-scaled.jpeg\" alt=\"Volunteers gathering before planting began\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Morning Gathering<\/strong>The planting crew assembled before work began.<\/figcaption><\/figure>\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_group_working-scaled.jpeg\" alt=\"Volunteers working together in the garden beds\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Volunteers at Work<\/strong>Community members worked together throughout the garden.<\/figcaption><\/figure>\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden00432-scaled.jpeg\" alt=\"Planting Day activity at Joe Matthews Park\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Planting Day<\/strong>A moment from the installation of the native gardens.<\/figcaption><\/figure>\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Gary_at_the_butterfly_finshed-scaled.jpeg\" alt=\"Gary Holmes at the completed butterfly garden\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Butterfly Garden Complete<\/strong>Gary Holmes at the finished butterfly garden.<\/figcaption><\/figure>\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Butterfly_Sign_start-scaled.jpeg\" alt=\"Butterfly garden interpretive sign before planting\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Interpretive Sign<\/strong>The sign connects visitors with this guide.<\/figcaption><\/figure>\n        <figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Final_Crew.jpeg\" alt=\"Final crew photograph after garden installation\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>The Final Crew<\/strong>The volunteers and partners who brought the garden together.<\/figcaption><\/figure>\n      <\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>Before Installation<\/h4><p>These photographs preserve the garden areas before planting. They will become especially valuable as the plants mature and future photographs show how dramatically the landscape has changed.<\/p><div class=\"jmp5-history-gallery\"><figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_arrowhead_start-scaled.jpeg\" alt=\"Garden area before planting\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>Garden Area<\/strong>The site before the new planting was installed.<\/figcaption><\/figure><figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_east_butterfly_start-scaled.jpeg\" alt=\"East butterfly wing before planting\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>East Wing \u2014 Before<\/strong>The east butterfly wing at the beginning of Planting Day.<\/figcaption><\/figure><figure class=\"jmp5-history-photo-card\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_west_butterfly_start-scaled.jpeg\" alt=\"West butterfly wing before planting\" loading=\"lazy\" decoding=\"async\"><figcaption><strong>West Wing \u2014 Before<\/strong>The west butterfly wing before volunteers began planting.<\/figcaption><\/figure><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>Project Timeline<\/h4><div class=\"jmp5-history-timeline\"><article class=\"jmp5-history-entry\"><time>Planning<\/time><div class=\"jmp5-history-timeline-photo\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Gary_Planning_Meeting-scaled.jpeg\" alt=\"Garden planning meeting\" loading=\"lazy\" decoding=\"async\"><div><h5>Designing the Demonstration Gardens<\/h5><p>Partners selected native and adapted plants, reviewed the site, and created the Butterfly Garden, Arrowhead Bed, and Circular Beds planting plans.<\/p><\/div><\/div><\/article><article class=\"jmp5-history-entry\"><time>August 1, 2026<\/time><div class=\"jmp5-history-timeline-photo\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_group_working-scaled.jpeg\" alt=\"Volunteers installing the gardens\" loading=\"lazy\" decoding=\"async\"><div><h5>Planting Day<\/h5><p>Volunteers installed the plants and brought the garden design into the landscape.<\/p><\/div><\/div><\/article><article class=\"jmp5-history-entry\"><time>August 1, 2026<\/time><div class=\"jmp5-history-timeline-photo\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Final_Crew.jpeg\" alt=\"The completed garden crew\" loading=\"lazy\" decoding=\"async\"><div><h5>The Gardens Are Established<\/h5><p>The crew marked the completion of the installation and the beginning of the garden&#8217;s continuing story.<\/p><\/div><\/div><\/article><article class=\"jmp5-history-entry\"><time>Coming Next<\/time><h5>Growth, Maintenance, and Wildlife<\/h5><p>Future entries will document first blooms, pollinator sightings, maintenance days, seasonal changes, and continuing stewardship.<\/p><\/article><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>Wildlife Already Arriving<\/h4><div class=\"jmp5-history-wildlife\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/tree_frog_butterfly_gardens.jpeg\" alt=\"Tree frog observed in the butterfly gardens\" loading=\"lazy\" decoding=\"async\"><div><p>This tree frog was among the wildlife documented around the butterfly gardens. Native landscapes provide shelter, food, and resting places for far more than butterflies alone.<\/p><p style=\"margin-top:.7rem\">Future updates will record butterflies, bees, birds, dragonflies, amphibians, and other visitors as the gardens mature.<\/p><\/div><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>At the Garden<\/h4><div class=\"jmp5-history-sign\"><img src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/Butterfly_Garden_Butterfly_Sign_start-scaled.jpeg\" alt=\"Interpretive sign at the butterfly garden\" loading=\"lazy\" decoding=\"async\"><div><p>An interpretive sign at Joe Matthews Park introduces the native plant landscape garden and directs visitors to learn more online. The sign explains how native perennials conserve water, support wildlife, and provide durable choices for home landscapes.<\/p><p style=\"margin-top:.7rem\">A direct City of Mont Belvieu link can be added here once the QR-code destination is confirmed.<\/p><\/div><\/div><\/section>\n      <section class=\"jmp5-history-section\"><h4>A Community Beyond Our Garden<\/h4><p>Most plant photographs in this guide were contributed by members of the iNaturalist community. We are grateful to the photographers who generously share their observations, helping people around the world learn about native plants, wildlife, and biodiversity.<\/p><p class=\"jmp5-history-credit-note\">Their willingness to make these photographs available for education helped make this interactive garden guide possible. Individual photographer names remain recorded in the project spreadsheet and can be added to a dedicated credits list.<\/p><\/section>\n      <section class=\"jmp5-history-section\"><h4>Growing Through Time<\/h4><p>This page will continue to grow with the garden. Future entries can document first blooms, seasonal changes, volunteer maintenance days, pollinator and bird observations, weather challenges, plant replacements, and future improvements to the landscape.<\/p><\/section>\n      <section class=\"jmp5-history-section\"><h4>Visit the Gardens<\/h4><p>The native demonstration gardens are located at Joe Matthews Park in Mont Belvieu, Texas. Visitors are encouraged to enjoy the landscape while helping protect the habitat for butterflies, bees, birds, amphibians, and other wildlife.<\/p><\/section>\n    <\/article>\n  <\/section>\n\n  <section class=\"jmp5-panel\" id=\"jmp5-panel-native\" role=\"tabpanel\" aria-labelledby=\"jmp5-tab-native\" hidden=\"\">\n    <article class=\"jmp5-native\">\n      <header class=\"jmp5-native-hero\">\n        <p class=\"jmp5-native-kicker\">Bring Native Plants Home<\/p>\n        <h3>Native Landscaping<\/h3>\n        <p class=\"jmp5-native-intro\">The Joe Matthews Native Plant Landscape Garden demonstrates how native species can be used in home landscapes. Volunteers from the Lower Trinity Basin Chapter of the Texas Master Naturalist Program and the Lower Trinity Valley Bird Club designed and installed the garden, and they continue to maintain and improve it.<\/p>\n      <\/header>\n\n      <section class=\"jmp5-native-section\">\n        <h4>Why Choose Native Perennials?<\/h4>\n        <p>Native perennials offer sustainable, low-maintenance landscaping that can save money, conserve water, and restore wildlife habitat. Adapted to local climate and soil, they can thrive for years with less upkeep than many exotic plants.<\/p>\n        <div class=\"jmp5-native-grid\">\n          <article class=\"jmp5-native-card\"><h5>Minimal Maintenance<\/h5><p>Established perennials need less replanting, pruning, and soil adjustment.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Water Conservation<\/h5><p>Deep roots and regional adaptation reduce or may eliminate summer irrigation once plants are established.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Fewer Harsh Chemicals<\/h5><p>Local resistance to pests and disease can reduce dependence on synthetic fertilizers and pesticides.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Erosion Control<\/h5><p>Fibrous roots hold soil, stabilize banks, and improve rainwater infiltration.<\/p><\/article>\n        <\/div>\n      <\/section>\n\n      <section class=\"jmp5-native-section\">\n        <h4>Habitat and Wildlife Benefits<\/h4>\n        <div class=\"jmp5-native-grid\">\n          <article class=\"jmp5-native-card\"><h5>Essential Food Sources<\/h5><p>Native plants provide nectar, seeds, pollen, fruit, and insects for local bees, birds, butterflies, and other wildlife.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Caterpillar Host Plants<\/h5><p>Many native perennials support native insects. Milkweed, for example, is essential for monarch reproduction.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Biodiversity Support<\/h5><p>Diverse native gardens create more resilient habitat for soil organisms, insects, birds, and other wildlife.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Seasonal Beauty<\/h5><p>Native plants add regional character through changing textures, blooms, seed heads, and fall color.<\/p><\/article>\n        <\/div>\n      <\/section>\n\n      <section class=\"jmp5-native-section\">\n        <h4>Cost and Long-Term Value<\/h4>\n        <div class=\"jmp5-native-grid\">\n          <article class=\"jmp5-native-card\"><h5>Plants That Multiply<\/h5><p>Healthy perennials often spread and can be divided into additional plants every two or three years.<\/p><\/article>\n          <article class=\"jmp5-native-card\"><h5>Durable Landscapes<\/h5><p>Well-chosen native plants can provide years of beauty while reducing replacement, irrigation, and chemical costs.<\/p><\/article>\n        <\/div>\n      <\/section>\n\n      <section class=\"jmp5-native-section\">\n        <h4>Build a Bird-Friendly Garden<\/h4>\n        <p>A bird-friendly garden gives birds the food, shelter, water, and safety they need to survive and use the landscape throughout the year.<\/p>\n        <div class=\"jmp5-native-bird-grid\">\n          <article class=\"jmp5-native-bird\"><h5>Native Food<\/h5><p>Choose plants that provide seeds, berries, nectar, and insects.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Protective Cover<\/h5><p>Use shrubs, grasses, and small trees for shelter from predators and weather.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Layered Habitat<\/h5><p>Combine low flowers and grasses, middle shrubs, and taller trees.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Food Through the Seasons<\/h5><p>Select plants that produce berries, seeds, or insect food at different times.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Clean Water<\/h5><p>Provide a shallow birdbath or small water feature and keep it clean.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Safe Nesting Places<\/h5><p>Include dense shrubs, native trees, or appropriate nest boxes.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Limit Chemicals<\/h5><p>Birds depend on insects and healthy habitat, so minimize pesticides and herbicides.<\/p><\/article>\n          <article class=\"jmp5-native-bird\"><h5>Reduce Hazards<\/h5><p>Keep cats away from the garden and take steps to reduce window collisions.<\/p><\/article>\n        <\/div>\n      <\/section>\n\n      <section class=\"jmp5-native-section\">\n        <h4>Regional Planting Resources<\/h4>\n        <p>Use these regional tools to choose native plants suited to local conditions and beneficial to pollinators and birds.<\/p>\n        <div class=\"jmp5-native-resources\">\n          <a class=\"jmp5-native-resource\" href=\"https:\/\/www.tpwf.org\/new-wild-thumb-app\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span><strong>Wild Thumb App<\/strong><span>A free Texas-focused tool for selecting, planting, and caring for drought-tolerant native plants for pollinators.<\/span><\/span><b>Explore Wild Thumb \u2192<\/b><\/a>\n          <a class=\"jmp5-native-resource\" href=\"https:\/\/www.wildflower.org\/plants-main\" target=\"_blank\" rel=\"noopener noreferrer\"><span><strong>Lady Bird Johnson Wildflower Center<\/strong><span>Search a broad native plant database for identification, growing conditions, ranges, and landscape use.<\/span><\/span><b>Search the database \u2192<\/b><\/a>\n          <a class=\"jmp5-native-resource\" href=\"https:\/\/www.audubon.org\/native-plants\" target=\"_blank\" rel=\"noopener noreferrer\"><span><strong>Audubon Native Plants Database<\/strong><span>Find native plants that provide food and shelter for birds in your area.<\/span><\/span><b>Find bird-friendly plants \u2192<\/b><\/a>\n        <\/div>\n        <span class=\"jmp5-native-handout\" aria-disabled=\"true\">Printable Native Landscaping Handout \u2014 Coming Soon<\/span>\n      <\/section>\n\n      <aside class=\"jmp5-native-callout\">\n        <h4>Every Native Plant Helps<\/h4>\n        <p>Every native plant added to a yard, school, church, business, or community space helps conserve water, support wildlife, and preserve the natural heritage of Southeast Texas. We hope the Joe Matthews Native Plant Landscape Garden inspires you to begin or expand your own native landscape.<\/p>\n      <\/aside>\n    <\/article>\n  <\/section>\n\n  <section class=\"jmp5-unassigned\" id=\"jmp5-unassigned-wrap\" hidden=\"\">\n    <details>\n      <summary>Plants not yet assigned to a garden section<\/summary>\n      <div class=\"jmp5-grid\" id=\"jmp5-unassigned\"><\/div>\n    <\/details>\n  <\/section>\n\n\n  <div class=\"jmp5-modal\" id=\"jmp5-modal\" hidden=\"\" aria-hidden=\"true\">\n    <div class=\"jmp5-modal-backdrop\" data-close-modal=\"true\"><\/div>\n\n    <article class=\"jmp5-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"jmp5-modal-title\">\n      <button class=\"jmp5-modal-close\" type=\"button\" aria-label=\"Close plant details\" data-close-modal=\"true\">\u00d7<\/button>\n\n      <img class=\"jmp5-modal-image\" id=\"jmp5-modal-image\" alt=\"\" hidden=\"\">\n\n      <div class=\"jmp5-modal-content\">\n        <h3 id=\"jmp5-modal-title\"><\/h3>\n        <p class=\"jmp5-modal-scientific\" id=\"jmp5-modal-scientific\"><\/p>\n        <dl class=\"jmp5-modal-facts\" id=\"jmp5-modal-facts\"><\/dl>\n        <p class=\"jmp5-modal-note\" id=\"jmp5-modal-note\" hidden=\"\"><\/p>\n      <\/div>\n    <\/article>\n  <\/div>\n\n  <noscript>\n    <p class=\"jmp5-error\">JavaScript must be enabled to display the garden cards.<\/p>\n  <\/noscript>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/papaparse@5.4.1\/papaparse.min.js\"><\/script>\n\n<script>\n(() => {\n  \"use strict\";\n\n  const SHEET_CSV_URL = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vSBEui6sFZxv_jDk0EcPvp7-qf4m6Cd3y8l8k9ttd-Qnl-J-mQd_cnK36KGLEa4RuR5a9NRzVQSN6ZV\/pub?gid=162307388&single=true&output=csv\";\n  const app = document.getElementById(\"jmp5-app\");\n  if (!app || app.dataset.ready === \"true\") return;\n  app.dataset.ready = \"true\";\n\n  const status = document.getElementById(\"jmp5-status\");\n\n  const modal = document.getElementById(\"jmp5-modal\");\n  const modalDialog = modal.querySelector(\".jmp5-modal-dialog\");\n  const modalImage = document.getElementById(\"jmp5-modal-image\");\n  const modalTitle = document.getElementById(\"jmp5-modal-title\");\n  const modalScientific = document.getElementById(\"jmp5-modal-scientific\");\n  const modalFacts = document.getElementById(\"jmp5-modal-facts\");\n  const modalNote = document.getElementById(\"jmp5-modal-note\");\n  let lastFocusedCard = null;\n\n  const areas = {\n    east: document.getElementById(\"jmp5-east\"),\n    west: document.getElementById(\"jmp5-west\"),\n    triangle: document.getElementById(\"jmp5-triangle\"),\n    circle12: document.getElementById(\"jmp5-circle12\"),\n    circle28: document.getElementById(\"jmp5-circle28\"),\n    unassigned: document.getElementById(\"jmp5-unassigned\")\n  };\n\n  const fallbackSections = {\n    \"texas-sage\": [\"east\",\"west\"],\n    \"rock-rose\": [\"east\",\"west\"],\n    \"esperanza\": [\"east\",\"west\"],\n    \"gulf-muhly\": [\"east\",\"west\"],\n    \"little-bluestem\": [\"east\",\"west\"],\n    \"winged-loosestrife\": [\"west\"],\n    \"mealy-blue-sage\": [\"east\",\"west\",\"triangle\"],\n    \"autumn-sage\": [\"east\",\"west\"],\n    \"eastern-purple-coneflower\": [\"east\"],\n    \"beebalm\": [\"east\"],\n    \"wine-cup\": [\"east\",\"west\"],\n    \"prairie-verbena\": [\"east\",\"west\"],\n    \"scarlet-sage\": [\"triangle\"],\n    \"butterfly-milkweed\": [\"east\"],\n    \"black-eyed-susan\": [\"west\"],\n    \"white-mistflower\": [\"triangle\"],\n    \"frog-fruit\": [\"triangle\"],\n    \"obedient-plant\": [\"triangle\"],\n    \"inland-sea-oats\": [\"circle12\"],\n    \"greggs-mistflower\": [\"circle28\"],\n    \"crape-myrtle\": [\"triangle\",\"circle12\",\"circle28\"],\n    \"texas-vervain\": [\"east\",\"west\"],\n    \"monkey-grass\": [\"east\",\"west\"],\n    \"aztec-grass\": [\"east\",\"west\"]\n  };\n\n  function clean(value) {\n    return String(value == null ? \"\" : value).trim();\n  }\n\n  function headerKey(value) {\n    return clean(value)\n      .toLowerCase()\n      .replace(\/[\u2019']\/g, \"\")\n      .replace(\/[^a-z0-9]+\/g, \"\");\n  }\n\n  function slug(value) {\n    return clean(value)\n      .toLowerCase()\n      .replace(\/[\u2019']\/g, \"\")\n      .replace(\/\\([^)]*\\)\/g, \"\")\n      .replace(\/[^a-z0-9]+\/g, \"-\")\n      .replace(\/^-+|-+$\/g, \"\");\n  }\n\n  function normalizeRow(row) {\n    const cleaned = {};\n    Object.keys(row).forEach(key => {\n      cleaned[headerKey(key)] = clean(row[key]);\n    });\n    return cleaned;\n  }\n\n  function value(item, labels) {\n    for (const label of labels) {\n      const key = headerKey(label);\n      if (item[key] !== undefined && item[key] !== \"\") return item[key];\n    }\n    return \"\";\n  }\n\n  function plantId(item) {\n    return slug(value(item, [\"Plant ID\",\"ID\",\"Common Name\",\"Plant\"]));\n  }\n\n  function isExisting(item) {\n    const statusText = value(item, [\"Garden Status\",\"Status\",\"Existing\/New\"]).toLowerCase();\n    const common = value(item, [\"Common Name\",\"Plant\"]).toLowerCase();\n\n    return \/existing|relocated\/.test(statusText) ||\n      [\"crape myrtle\",\"texas vervain\",\"monkey grass\",\"aztec grass\"].includes(common);\n  }\n\n  function sectionList(item) {\n    const raw = value(item, [\n      \"Garden Section(s)\",\"Garden Sections\",\"Garden Section\",\n      \"Section(s)\",\"Sections\",\"Bed\",\"Location\"\n    ]);\n\n    const parts = clean(raw)\n      .split(\/\\s*(?:\\||;|,|\\n)\\s*\/)\n      .map(part => part.toLowerCase())\n      .filter(Boolean);\n\n    const found = new Set();\n\n    parts.forEach(part => {\n      if (\/east\/.test(part) && \/butterfly|wing\/.test(part)) found.add(\"east\");\n      if (\/west\/.test(part) && \/butterfly|wing\/.test(part)) found.add(\"west\");\n\n      if (\/butterfly\/.test(part) && !\/east|west\/.test(part)) {\n        found.add(\"east\");\n        found.add(\"west\");\n      }\n\n      if (\/triangle|intersection|arrowhead\/.test(part)) found.add(\"triangle\");\n      if (\/12\/.test(part) && \/circle\/.test(part)) found.add(\"circle12\");\n      if (\/28\/.test(part) && \/circle\/.test(part)) found.add(\"circle28\");\n\n      if (\/circle\/.test(part) && !\/12|28\/.test(part)) {\n        found.add(\"circle12\");\n        found.add(\"circle28\");\n      }\n    });\n\n    const id = plantId(item);\n\n    if (!found.size && fallbackSections[id]) {\n      fallbackSections[id].forEach(section => found.add(section));\n    }\n\n    return [...found];\n  }\n\n\n  function displayGardenLocation(text) {\n    return clean(text)\n      .replace(\/intersection\\s+triangle\/gi, \"Arrowhead Bed\")\n      .replace(\/triangle\\s+bed\/gi, \"Arrowhead Bed\")\n      .replace(\/\\btriangle\\b\/gi, \"Arrowhead Bed\");\n  }\n\n  function addFact(list, label, text) {\n    text = clean(text);\n    if (!text) return;\n\n    const row = document.createElement(\"div\");\n    row.className = \"jmp5-fact\";\n\n    const dt = document.createElement(\"dt\");\n    dt.textContent = label;\n\n    const dd = document.createElement(\"dd\");\n    dd.textContent = text;\n\n    row.append(dt, dd);\n    list.appendChild(row);\n  }\n\n  function joined(...items) {\n    return items.map(clean).filter(Boolean).join(\" \u00b7 \");\n  }\n\n  function addModalFact(label, text) {\n    text = clean(text);\n    if (!text) return;\n\n    const row = document.createElement(\"div\");\n    row.className = \"jmp5-modal-fact\";\n\n    const dt = document.createElement(\"dt\");\n    dt.textContent = label;\n\n    const dd = document.createElement(\"dd\");\n    dd.textContent = text;\n\n    row.append(dt, dd);\n    modalFacts.appendChild(row);\n  }\n\n  function openModal(item, trigger) {\n    const common = value(item, [\"Common Name\",\"Plant\",\"Name\"]) || \"Unnamed plant\";\n    const scientific = value(item, [\"Scientific Name\",\"Botanical Name\"]);\n    const imageUrl = value(item, [\"Image URL\",\"Photo URL\",\"URL\",\"Image\"]);\n    const noteText = value(item, [\n      \"Card Notes\",\"Notes\",\"Description\",\"Interesting Facts\"\n    ]);\n\n    lastFocusedCard = trigger;\n\n    modalTitle.textContent = common;\n    modalScientific.textContent = scientific;\n    modalFacts.textContent = \"\";\n\n    addModalFact(\"Bloom\", joined(\n      value(item, [\"Bloom Color\"]),\n      value(item, [\"Bloom Season\"])\n    ));\n\n    addModalFact(\"Size\", joined(\n      value(item, [\"Mature Height\",\"Height\"]),\n      value(item, [\"Mature Spread\",\"Spread\"])\n    ));\n\n    addModalFact(\"Sun\", value(item, [\"Sun\",\"Light\"]));\n    addModalFact(\"Water\", value(item, [\"Water\",\"Water Needs\"]));\n    addModalFact(\"Wildlife\", value(item, [\"Wildlife Value\",\"Pollinators\"]));\n    addModalFact(\"Host plant\", value(item, [\"Host Plant?\",\"Host Plant\"]));\n    addModalFact(\"Location\", displayGardenLocation(value(item, [\n      \"Garden Section(s)\",\"Garden Sections\",\"Garden Section\",\n      \"Section(s)\",\"Sections\"\n    ])));\n\n    if (imageUrl) {\n      modalImage.src = imageUrl;\n      modalImage.alt = common;\n      modalImage.hidden = false;\n    } else {\n      modalImage.removeAttribute(\"src\");\n      modalImage.alt = \"\";\n      modalImage.hidden = true;\n    }\n\n    if (noteText) {\n      modalNote.textContent = noteText;\n      modalNote.hidden = false;\n    } else {\n      modalNote.textContent = \"\";\n      modalNote.hidden = true;\n    }\n\n    modal.hidden = false;\n    modal.setAttribute(\"aria-hidden\", \"false\");\n    document.body.classList.add(\"jmp5-modal-open\");\n\n    requestAnimationFrame(() => {\n      modal.querySelector(\".jmp5-modal-close\").focus();\n    });\n  }\n\n  function closeModal() {\n    if (modal.hidden) return;\n\n    modal.hidden = true;\n    modal.setAttribute(\"aria-hidden\", \"true\");\n    document.body.classList.remove(\"jmp5-modal-open\");\n\n    if (lastFocusedCard && document.contains(lastFocusedCard)) {\n      lastFocusedCard.focus();\n    }\n\n    lastFocusedCard = null;\n  }\n\n  function makeCard(item) {\n    const common = value(item, [\"Common Name\",\"Plant\",\"Name\"]) || \"Unnamed plant\";\n    const scientific = value(item, [\"Scientific Name\",\"Botanical Name\"]);\n    const imageUrl = value(item, [\"Image URL\",\"Photo URL\",\"URL\",\"Image\"]);\n    const existing = isExisting(item);\n\n    const card = document.createElement(\"button\");\n    card.type = \"button\";\n    card.className = \"jmp5-card\" + (existing ? \" jmp5-existing\" : \"\");\n    card.setAttribute(\"aria-label\", `Open details for ${common}`);\n\n    const inner = document.createElement(\"span\");\n    inner.className = \"jmp5-card-inner\";\n\n    const front = document.createElement(\"span\");\n    front.className = \"jmp5-face jmp5-front\";\n\n    if (existing) {\n      const badge = document.createElement(\"span\");\n      badge.className = \"jmp5-badge\";\n      badge.textContent = \"Existing\";\n      front.appendChild(badge);\n    }\n\n    if (imageUrl) {\n      const image = document.createElement(\"img\");\n      image.src = imageUrl;\n      image.alt = common;\n      image.loading = \"lazy\";\n      image.decoding = \"async\";\n      image.style.opacity = \"0\";\n      image.addEventListener(\"load\", () => {\n        image.style.transition = \"opacity .28s ease\";\n        image.style.opacity = \"1\";\n      }, { once: true });\n\n      image.addEventListener(\"error\", () => {\n        const fallback = document.createElement(\"span\");\n        fallback.className = \"jmp5-image-fallback\";\n        fallback.textContent = \"\ud83c\udf3f\";\n        image.replaceWith(fallback);\n      }, { once: true });\n\n      front.appendChild(image);\n    } else {\n      const fallback = document.createElement(\"span\");\n      fallback.className = \"jmp5-image-fallback\";\n      fallback.textContent = \"\ud83c\udf3f\";\n      front.appendChild(fallback);\n    }\n\n    const title = document.createElement(\"span\");\n    title.className = \"jmp5-title\";\n\n    const strong = document.createElement(\"strong\");\n    strong.textContent = common;\n    title.appendChild(strong);\n\n    if (scientific) {\n      const em = document.createElement(\"em\");\n      em.textContent = scientific;\n      title.appendChild(em);\n    }\n\n    front.appendChild(title);\n\n    const back = document.createElement(\"span\");\n    back.className = \"jmp5-face jmp5-back\";\n\n    const heading = document.createElement(\"h4\");\n    heading.textContent = common;\n\n    const sci = document.createElement(\"p\");\n    sci.className = \"jmp5-scientific\";\n\n    if (scientific) {\n      const em = document.createElement(\"em\");\n      em.textContent = scientific;\n      sci.appendChild(em);\n    }\n\n    const facts = document.createElement(\"dl\");\n    facts.className = \"jmp5-facts\";\n\n    addFact(facts, \"Bloom\", joined(\n      value(item, [\"Bloom Color\"]),\n      value(item, [\"Bloom Season\"])\n    ));\n\n    addFact(facts, \"Size\", joined(\n      value(item, [\"Mature Height\",\"Height\"]),\n      value(item, [\"Mature Spread\",\"Spread\"])\n    ));\n\n    addFact(facts, \"Sun\", value(item, [\"Sun\",\"Light\"]));\n    addFact(facts, \"Water\", value(item, [\"Water\",\"Water Needs\"]));\n    addFact(facts, \"Wildlife\", value(item, [\"Wildlife Value\",\"Pollinators\"]));\n    addFact(facts, \"Host\", value(item, [\"Host Plant?\",\"Host Plant\"]));\n\n    addFact(facts, \"Location\", displayGardenLocation(value(item, [\n      \"Garden Section(s)\",\"Garden Sections\",\"Garden Section\",\n      \"Section(s)\",\"Sections\"\n    ])));\n\n    back.append(heading, sci, facts);\n\n    const noteText = value(item, [\n      \"Card Notes\",\"Notes\",\"Description\",\"Interesting Facts\"\n    ]);\n\n    if (noteText) {\n      const note = document.createElement(\"p\");\n      note.className = \"jmp5-note\";\n      note.textContent = noteText;\n      back.appendChild(note);\n    }\n\n    inner.append(front, back);\n    card.appendChild(inner);\n\n    card.addEventListener(\"click\", () => {\n      openModal(item, card);\n    });\n\n    return card;\n  }\n\n  function chooseBalancedPattern(count) {\n    const patterns = {\n      1: [1],\n      2: [2],\n      3: [1,2],\n      4: [2,2],\n      5: [2,3],\n      6: [2,2,2],\n      7: [2,3,2],\n      8: [2,3,3],\n      9: [2,3,2,2],\n      10: [2,3,3,2],\n      11: [2,3,3,2,1],\n      12: [2,3,3,2,2],\n      13: [2,3,3,3,2],\n      14: [2,3,3,3,2,1],\n      15: [2,3,3,3,2,2],\n      16: [2,3,3,3,3,2],\n      17: [2,3,3,3,3,2,1],\n      18: [2,3,3,3,3,2,2]\n    };\n\n    if (patterns[count]) return patterns[count];\n\n    const rows = [];\n    let remaining = count;\n    const cycle = [2,3,3,3,2];\n\n    while (remaining > 0) {\n      const next = Math.min(cycle[rows.length % cycle.length], remaining);\n      rows.push(next);\n      remaining -= next;\n    }\n\n    return rows;\n  }\n\n  function renderWing(container, items) {\n    container.textContent = \"\";\n\n    const pattern = chooseBalancedPattern(items.length);\n    let cursor = 0;\n\n    pattern.forEach(count => {\n      const row = document.createElement(\"div\");\n      row.className = \"jmp5-wing-row\";\n\n      items.slice(cursor, cursor + count).forEach(item => {\n        row.appendChild(makeCard(item));\n      });\n\n      cursor += count;\n      container.appendChild(row);\n    });\n  }\n\n  function renderTriangle(container, items) {\n    container.textContent = \"\";\n\n    const pattern = items.length === 6\n      ? [1, 2, 3]\n      : chooseBalancedPattern(items.length);\n\n    let cursor = 0;\n\n    for (const count of pattern) {\n      if (cursor >= items.length) break;\n\n      const row = document.createElement(\"div\");\n      row.className = \"jmp5-triangle-row\";\n\n      const rowItems = items.slice(cursor, cursor + count);\n\n      rowItems.forEach(item => {\n        row.appendChild(makeCard(item));\n      });\n\n      container.appendChild(row);\n      cursor += rowItems.length;\n    }\n\n    if (cursor < items.length) {\n      const row = document.createElement(\"div\");\n      row.className = \"jmp5-triangle-row\";\n\n      items.slice(cursor).forEach(item => {\n        row.appendChild(makeCard(item));\n      });\n\n      container.appendChild(row);\n    }\n  }\n\n  function render(items) {\n    const grouped = {\n      east: [],\n      west: [],\n      triangle: [],\n      circle12: [],\n      circle28: [],\n      unassigned: []\n    };\n\n    items.forEach(item => {\n      const common = value(item, [\"Common Name\",\"Plant\",\"Name\"]);\n      if (!common) return;\n\n      const sections = sectionList(item);\n\n      if (!sections.length) {\n        grouped.unassigned.push(item);\n        return;\n      }\n\n      sections.forEach(section => {\n        if (grouped[section]) grouped[section].push(item);\n      });\n    });\n\n    renderWing(areas.east, grouped.east);\n    renderWing(areas.west, grouped.west);\n\n    renderTriangle(areas.triangle, grouped.triangle);\n\n    [\"circle12\",\"circle28\",\"unassigned\"].forEach(section => {\n      areas[section].textContent = \"\";\n\n      grouped[section].forEach(item => {\n        areas[section].appendChild(makeCard(item));\n      });\n    });\n\n    document.getElementById(\"jmp5-unassigned-wrap\").hidden =\n      grouped.unassigned.length === 0;\n\n    status.textContent =\n      `${items.length} plant records loaded.` +\n      (grouped.unassigned.length\n        ? ` ${grouped.unassigned.length} need section assignments.`\n        : \"\");\n\n    [\"triangle\",\"circle12\",\"circle28\"].forEach(section => {\n      if (!areas[section].children.length) {\n        const empty = document.createElement(\"p\");\n        empty.className = \"jmp5-message\";\n        empty.textContent = \"No plants are assigned to this section yet.\";\n        areas[section].appendChild(empty);\n      }\n    });\n  }\n\n  function showError(error) {\n    console.error(\"Joe Matthews garden CSV error:\", error);\n\n    status.innerHTML =\n      '<span class=\"jmp5-error\">' +\n      'The plant spreadsheet could not be loaded. ' +\n      'The tabs still work, but the cards need the published CSV. ' +\n      clean(error.message) +\n      '<\/span>';\n  }\n\n  function activateTab(button) {\n    const selected = button.dataset.tab;\n\n    app.querySelectorAll(\".jmp5-tab\").forEach(tab => {\n      const active = tab === button;\n      tab.classList.toggle(\"is-active\", active);\n      tab.setAttribute(\"aria-selected\", String(active));\n      tab.tabIndex = active ? 0 : -1;\n    });\n\n    app.querySelectorAll(\".jmp5-panel\").forEach(panel => {\n      const active = panel.id === `jmp5-panel-${selected}`;\n      panel.hidden = !active;\n\n      if (active) {\n        panel.style.animation = \"none\";\n        void panel.offsetWidth;\n        panel.style.animation = \"\";\n      }\n    });\n  }\n\n  app.querySelectorAll(\".jmp5-tab\").forEach(button => {\n    button.addEventListener(\"click\", () => activateTab(button));\n\n    button.addEventListener(\"keydown\", event => {\n      const tabs = [...app.querySelectorAll(\".jmp5-tab\")];\n      const index = tabs.indexOf(button);\n\n      if (![\"ArrowLeft\",\"ArrowRight\",\"Home\",\"End\"].includes(event.key)) return;\n\n      event.preventDefault();\n\n      let nextIndex = index;\n      if (event.key === \"ArrowLeft\") nextIndex = (index - 1 + tabs.length) % tabs.length;\n      if (event.key === \"ArrowRight\") nextIndex = (index + 1) % tabs.length;\n      if (event.key === \"Home\") nextIndex = 0;\n      if (event.key === \"End\") nextIndex = tabs.length - 1;\n\n      tabs[nextIndex].focus();\n      activateTab(tabs[nextIndex]);\n    });\n  });\n\n  modal.addEventListener(\"click\", event => {\n    if (event.target.dataset.closeModal === \"true\") {\n      closeModal();\n    }\n  });\n\n  document.addEventListener(\"keydown\", event => {\n    if (modal.hidden) return;\n\n    if (event.key === \"Escape\") {\n      event.preventDefault();\n      closeModal();\n      return;\n    }\n\n    if (event.key === \"Tab\") {\n      const focusable = [\n        ...modalDialog.querySelectorAll(\n          'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n        )\n      ].filter(element => !element.disabled && element.offsetParent !== null);\n\n      if (!focusable.length) return;\n\n      const first = focusable[0];\n      const last = focusable[focusable.length - 1];\n\n      if (event.shiftKey && document.activeElement === first) {\n        event.preventDefault();\n        last.focus();\n      } else if (!event.shiftKey && document.activeElement === last) {\n        event.preventDefault();\n        first.focus();\n      }\n    }\n  });\n\n  async function loadPlants() {\n    if (typeof Papa === \"undefined\") {\n      throw new Error(\"Papa Parse did not load.\");\n    }\n\n    const response = await fetch(SHEET_CSV_URL, { cache: \"no-store\" });\n\n    if (!response.ok) {\n      throw new Error(`Request failed with status ${response.status}.`);\n    }\n\n    const csvText = await response.text();\n\n    const parsed = Papa.parse(csvText, {\n      header: true,\n      skipEmptyLines: true\n    });\n\n    if (parsed.errors && parsed.errors.length) {\n      throw new Error(parsed.errors[0].message);\n    }\n\n    const items = parsed.data\n      .map(normalizeRow)\n      .filter(item => value(item, [\"Common Name\",\"Plant\",\"Name\"]));\n\n    if (!items.length) {\n      throw new Error(\"No plant records were found in the published sheet.\");\n    }\n\n    render(items);\n  }\n\n  loadPlants().catch(showError);\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div style=\"text-align:center;\">\n  <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d3459.777299068985!2d-94.84996042445293!3d29.870695775011484!2m3!1f0!2f0!3f0!2f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x863f45f6fbb0a281%3A0xb7b634d5d494fd0d!2sJoe%20Matthews%20Park!5e0!3m2!1sen!2sus!4v1785550287489!5m2!1sen!2sus\" style=\"border:0; width:50%; max-width:600px; aspect-ratio:4\/3;\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"strict-origin-when-cross-origin\">\n  <\/iframe>\n<\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Open Seven Days a week beginning at 7:30 AM CT until 9:00 PM CT<\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-1\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-1-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Joe Matthews Park Native Demonstration Garden Select a garden area, then tap a plant card to see its details. Butterfly Garden Arrowhead Bed Circular Beds Joe Matthews Garden History Native&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/collections\/mont-belvieu\/joe-matthews-garden\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":200582,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200579","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Joe Matthews Park Native Demonstration Garden Select a garden area, then tap a plant card to see its details. Butterfly Garden Arrowhead Bed Circular Beds Joe Matthews Garden History Native... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200579"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200579\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200582"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200547,"date":"2026-07-29T17:16:41","date_gmt":"2026-07-29T22:16:41","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200547"},"modified":"2026-08-03T17:52:09","modified_gmt":"2026-08-03T22:52:09","slug":"training-class","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/training-class\/","title":{"rendered":"Training Class"},"content":{"rendered":"\n<style>\n\/* =========================================================\n   LOWER TRINITY BASIN \u2014 2026 TRAINING EXPERIENCE\n   Version: 1.2.1\n   Authors: Rodney + ChatGPT\n   Updated: August 2026\n\n   WordPress Custom HTML block\n   ========================================================= *\/\n\n\/* Hide the WordPress-generated page title. *\/\n.entry-header .entry-title,\n.wp-block-post-title,\nh1.entry-title {\n  display: none !important;\n}\n\n\/* =========================================================\n   MAIN COMPONENT\n   ========================================================= *\/\n\n.ltb-training {\n  --ltb-green: #355e3b;\n  --ltb-dark-green: #23472a;\n  --ltb-gold: #c5a45d;\n  --ltb-cream: #f5f1e6;\n  --ltb-panel: #fffdf7;\n  --ltb-soft-gold: #f4efe2;\n  --ltb-text: #26332a;\n  --ltb-muted: #59645c;\n\n  position: relative;\n  isolation: isolate;\n  box-sizing: border-box;\n  width: 100%;\n  padding: 28px 16px 38px;\n  margin: 0 auto 20px;\n  overflow: hidden;\n\n  color: var(--ltb-text);\n  background: var(--ltb-cream);\n  border-top: 6px solid var(--ltb-green);\n  border-bottom: 3px solid var(--ltb-gold);\n  text-align: center;\n}\n\n.ltb-training *,\n.ltb-training *::before,\n.ltb-training *::after {\n  box-sizing: border-box;\n}\n\n\/* Keep primary content above the watermark artwork. *\/\n.ltb-training__intro,\n.ltb-honeycomb,\n.ltb-class-panel,\n.ltb-program-glance,\n.ltb-full-schedule,\n.ltb-training__note,\n.ltb-training__button {\n  position: relative;\n  z-index: 3;\n}\n\n\/* =========================================================\n   BEE AND DRAGONFLY WATERMARKS\n\n   Both layers use the same combined image. Each container\n   crops and positions a different part of the artwork.\n   ========================================================= *\/\n\n.ltb-watermark {\n  position: absolute;\n  z-index: 1;\n  overflow: hidden;\n  pointer-events: none;\n  user-select: none;\n}\n\n.ltb-watermark::before {\n  position: absolute;\n  width: 760px;\n  height: 507px;\n  content: \"\";\n\n  background-image:\n    url(\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/08\/bee_and_butterfly.png\");\n\n  background-repeat: no-repeat;\n  background-size: 760px 507px;\n\n  filter:\n    grayscale(1)\n    sepia(0.18)\n    hue-rotate(55deg)\n    saturate(0.8);\n}\n\n\/* Dragonfly: upper-left crop. *\/\n.ltb-watermark--dragonfly {\n  top: 160px;\n  left: -18px;\n  width: 410px;\n  height: 315px;\n  transform-origin: center;\n\n  animation:\n    ltb-dragonfly-float 29s ease-in-out infinite alternate;\n}\n\n.ltb-watermark--dragonfly::before {\n  top: 0;\n  left: 0;\n  opacity: 0.115;\n  background-position: left top;\n}\n\n\/*\n * Bee: shifted farther right and lower.\n * More of the bee appears beside the lower-right card.\n *\/\n.ltb-watermark--bee {\n  top: 690px;\n  right: -92px;\n  width: 355px;\n  height: 320px;\n  transform-origin: center;\n\n  animation:\n    ltb-bee-float 23s ease-in-out infinite alternate;\n}\n\n.ltb-watermark--bee::before {\n  right: 0;\n  bottom: 0;\n  opacity: 0.13;\n  background-position: right bottom;\n}\n\n\/* =========================================================\n   INTRODUCTION\n   ========================================================= *\/\n\n.ltb-training__intro {\n  max-width: 790px;\n  margin: 0 auto 24px;\n}\n\n.ltb-training__eyebrow {\n  margin: 0 0 7px;\n  color: var(--ltb-green);\n  font-size: 0.9rem;\n  font-weight: 700;\n  letter-spacing: 0.11em;\n  text-transform: uppercase;\n}\n\n.ltb-training__title {\n  margin: 0 0 12px;\n  color: var(--ltb-dark-green);\n  font-size: clamp(1.8rem, 4vw, 2.7rem);\n  line-height: 1.12;\n}\n\n.ltb-training__description {\n  max-width: 670px;\n  margin: 0 auto;\n  font-size: 1.05rem;\n  line-height: 1.6;\n}\n\n.ltb-training__instruction {\n  margin: 13px 0 0;\n  color: var(--ltb-green);\n  font-size: 0.9rem;\n  font-weight: 700;\n}\n\n\/* =========================================================\n   HONEYCOMB\n   ========================================================= *\/\n\n.ltb-honeycomb {\n  --ltb-hex-width: 210px;\n  --ltb-hex-gap: 12px;\n\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  max-width: 980px;\n  margin: 34px auto 24px;\n  padding: 0;\n  gap: var(--ltb-hex-gap);\n  list-style: none;\n}\n\n.ltb-hex {\n  position: relative;\n  isolation: isolate;\n  flex: 0 0 var(--ltb-hex-width);\n  width: var(--ltb-hex-width);\n  aspect-ratio: 1 \/ 1.12;\n  margin: -21px 0;\n\n  background: var(--ltb-gold);\n  opacity: 0;\n  transform: translateY(18px);\n\n  clip-path: polygon(\n    25% 5%,\n    75% 5%,\n    100% 50%,\n    75% 95%,\n    25% 95%,\n    0 50%\n  );\n\n  animation: ltb-hex-enter 520ms ease forwards;\n\n  transition:\n    transform 220ms ease,\n    filter 220ms ease,\n    background-color 220ms ease;\n}\n\n.ltb-hex:nth-child(1) {\n  animation-delay: 40ms;\n}\n\n.ltb-hex:nth-child(2) {\n  animation-delay: 100ms;\n}\n\n.ltb-hex:nth-child(3) {\n  animation-delay: 160ms;\n}\n\n.ltb-hex:nth-child(4) {\n  animation-delay: 220ms;\n}\n\n.ltb-hex:nth-child(5) {\n  animation-delay: 280ms;\n}\n\n.ltb-hex:nth-child(6) {\n  animation-delay: 340ms;\n}\n\n.ltb-hex:nth-child(7) {\n  animation-delay: 400ms;\n}\n\n.ltb-hex:nth-child(8) {\n  animation-delay: 460ms;\n}\n\n.ltb-hex:nth-child(9) {\n  animation-delay: 520ms;\n}\n\n.ltb-hex__button {\n  position: absolute;\n  inset: 4px;\n\n  display: block;\n  width: calc(100% - 8px);\n  height: calc(100% - 8px);\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n\n  border: 0;\n  border-radius: 0;\n  background: var(--ltb-dark-green);\n  cursor: pointer;\n  font: inherit;\n  text-align: inherit;\n\n  clip-path: inherit;\n}\n\n.ltb-hex__image {\n  display: block;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n\n  transition:\n    transform 350ms ease,\n    filter 350ms ease;\n}\n\n.ltb-hex__overlay {\n  position: absolute;\n  inset: 0;\n\n  display: flex;\n  align-items: flex-end;\n  justify-content: center;\n  padding: 24px 10px 34px;\n\n  background: linear-gradient(\n    to bottom,\n    rgba(15, 33, 19, 0.02) 28%,\n    rgba(15, 33, 19, 0.88) 100%\n  );\n}\n\n.ltb-hex__title {\n  display: flex;\n  align-items: flex-end;\n  justify-content: center;\n\n  width: 100%;\n  max-width: 160px;\n  min-height: 2.4em;\n  margin: 0 auto;\n  padding: 0 3px;\n  overflow: visible;\n\n  color: #ffffff;\n  font-size: 1.05rem;\n  font-weight: 700;\n  line-height: 1.2;\n  text-align: center;\n\n  white-space: pre-line !important;\n  overflow-wrap: normal;\n  word-break: normal;\n  text-overflow: clip;\n\n  text-shadow:\n    0 2px 4px rgba(0, 0, 0, 0.85);\n}\n\n.ltb-hex:hover,\n.ltb-hex:focus-within {\n  z-index: 5;\n  transform: translateY(-5px) scale(1.035);\n\n  filter:\n    drop-shadow(0 9px 8px rgba(29, 49, 34, 0.22));\n}\n\n.ltb-hex:hover .ltb-hex__image,\n.ltb-hex:focus-within .ltb-hex__image {\n  transform: scale(1.07);\n  filter: saturate(1.08);\n}\n\n.ltb-hex__button:focus-visible {\n  outline: 5px solid #ffffff;\n  outline-offset: -10px;\n}\n\n\/* Selected card. *\/\n.ltb-hex.is-active {\n  z-index: 6;\n  background: var(--ltb-green);\n  transform: translateY(-6px) scale(1.045);\n\n  filter:\n    drop-shadow(0 11px 10px rgba(29, 49, 34, 0.32));\n}\n\n.ltb-hex.is-active .ltb-hex__image {\n  transform: scale(1.07);\n  filter: saturate(1.12) contrast(1.03);\n}\n\n\/* =========================================================\n   DETAILS PANEL\n   ========================================================= *\/\n\n.ltb-class-panel {\n  max-width: 780px;\n  margin: 18px auto 22px;\n  padding: 20px 22px;\n\n  color: var(--ltb-text);\n  background: rgba(255, 253, 247, 0.97);\n  border: 2px solid var(--ltb-gold);\n  border-left: 7px solid var(--ltb-green);\n  border-radius: 6px;\n  text-align: left;\n}\n\n.ltb-class-panel::before {\n  display: block;\n  width: 58px;\n  height: 3px;\n  margin: 0 0 12px;\n\n  content: \"\";\n  background: var(--ltb-green);\n  transform-origin: left center;\n\n  animation:\n    ltb-line-in 300ms ease both;\n}\n\n.ltb-class-panel__content {\n  opacity: 1;\n  transform: translateY(0);\n\n  transition:\n    opacity 150ms ease,\n    transform 150ms ease;\n}\n\n.ltb-class-panel__content.is-changing {\n  opacity: 0;\n  transform: translateY(4px);\n}\n\n.ltb-class-panel__eyebrow {\n  margin: 0 0 4px;\n  color: var(--ltb-green);\n  font-size: 0.78rem;\n  font-weight: 700;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n}\n\n.ltb-class-panel__title {\n  margin: 0 0 14px;\n  color: var(--ltb-dark-green);\n  font-size: clamp(1.35rem, 3vw, 1.8rem);\n  line-height: 1.2;\n  text-align: left;\n}\n\n.ltb-class-panel__grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 10px;\n  margin: 0 0 16px;\n}\n\n.ltb-class-panel__item {\n  min-height: 86px;\n  padding: 11px 12px;\n  background: var(--ltb-soft-gold);\n  border-radius: 4px;\n}\n\n.ltb-class-panel__label {\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  margin-bottom: 5px;\n\n  color: var(--ltb-green);\n  font-size: 0.76rem;\n  font-weight: 700;\n  letter-spacing: 0.05em;\n  text-transform: uppercase;\n}\n\n.ltb-class-panel__icon {\n  font-size: 1rem;\n  line-height: 1;\n}\n\n.ltb-class-panel__value {\n  display: block;\n  color: var(--ltb-text);\n  font-size: 0.96rem;\n  font-weight: 700;\n  line-height: 1.4;\n}\n\n.ltb-class-panel__subjects-title {\n  margin: 0 0 5px;\n  color: var(--ltb-dark-green);\n  font-size: 1rem;\n  font-weight: 700;\n}\n\n.ltb-class-panel__subjects {\n  margin: 0;\n  color: var(--ltb-text);\n  font-size: 0.98rem;\n  line-height: 1.55;\n}\n\n.ltb-class-panel__additional {\n  margin: 10px 0 0;\n  padding-top: 10px;\n\n  color: var(--ltb-muted);\n  font-size: 0.88rem;\n  line-height: 1.5;\n\n  border-top: 1px solid #d8cfb9;\n}\n\n.ltb-class-panel__prompt {\n  margin: 10px 0 0;\n  color: var(--ltb-green);\n  font-size: 0.83rem;\n  font-weight: 700;\n}\n\n\/* =========================================================\n   PROGRAM STATISTICS\n   ========================================================= *\/\n\n.ltb-program-glance {\n  display: grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n\n  max-width: 780px;\n  margin: 20px auto 24px;\n  overflow: hidden;\n\n  background: var(--ltb-green);\n  border-radius: 6px;\n}\n\n.ltb-program-glance__item {\n  position: relative;\n  padding: 17px 10px;\n  color: #ffffff;\n}\n\n.ltb-program-glance__item +\n.ltb-program-glance__item::before {\n  position: absolute;\n  top: 18%;\n  bottom: 18%;\n  left: 0;\n\n  width: 1px;\n  content: \"\";\n\n  background:\n    rgba(255, 255, 255, 0.32);\n}\n\n.ltb-program-glance__value {\n  display: block;\n  margin-bottom: 3px;\n  font-size: 1.45rem;\n  font-weight: 700;\n  line-height: 1.1;\n}\n\n.ltb-program-glance__label {\n  display: block;\n  font-size: 0.78rem;\n  font-weight: 700;\n  letter-spacing: 0.045em;\n  line-height: 1.3;\n  text-transform: uppercase;\n}\n\n\/* =========================================================\n   EXPANDABLE SCHEDULE\n   ========================================================= *\/\n\n.ltb-full-schedule {\n  max-width: 780px;\n  margin: 18px auto 24px;\n  text-align: left;\n}\n\n.ltb-full-schedule__toggle {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  width: 100%;\n  padding: 13px 16px;\n\n  border: 2px solid var(--ltb-green);\n  border-radius: 5px;\n\n  color: var(--ltb-dark-green);\n  background: rgba(245, 241, 230, 0.92);\n\n  cursor: pointer;\n  font: inherit;\n  font-weight: 700;\n  text-align: left;\n\n  transition:\n    color 180ms ease,\n    background-color 180ms ease;\n}\n\n.ltb-full-schedule__toggle:hover,\n.ltb-full-schedule__toggle:focus-visible {\n  color: #ffffff;\n  background: var(--ltb-green);\n}\n\n.ltb-full-schedule__symbol {\n  margin-left: 16px;\n  font-size: 1.35rem;\n  line-height: 1;\n}\n\n.ltb-full-schedule__content {\n  display: none;\n  padding: 14px 0 0;\n}\n\n.ltb-full-schedule.is-open\n.ltb-full-schedule__content {\n  display: block;\n}\n\n.ltb-full-schedule__list {\n  display: grid;\n  gap: 8px;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.ltb-schedule-row {\n  display: grid;\n  grid-template-columns:\n    48px\n    minmax(170px, 0.8fr)\n    minmax(240px, 1.5fr)\n    60px;\n\n  gap: 12px;\n  align-items: start;\n  padding: 12px;\n\n  background: var(--ltb-panel);\n  border-left: 4px solid var(--ltb-gold);\n}\n\n.ltb-schedule-row__number {\n  color: var(--ltb-green);\n  font-weight: 700;\n}\n\n.ltb-schedule-row__date {\n  font-weight: 700;\n  line-height: 1.4;\n}\n\n.ltb-schedule-row__subjects {\n  line-height: 1.45;\n}\n\n.ltb-schedule-row__hours {\n  color: var(--ltb-muted);\n  font-size: 0.9rem;\n  font-weight: 700;\n  text-align: right;\n}\n\n.ltb-full-schedule__total {\n  margin: 12px 0 0;\n  color: var(--ltb-green);\n  font-weight: 700;\n  text-align: right;\n}\n\n\/* =========================================================\n   CLOSING INFORMATION\n   ========================================================= *\/\n\n.ltb-training__note {\n  max-width: 650px;\n  margin: 22px auto 16px;\n  font-size: 0.9rem;\n  line-height: 1.5;\n}\n\n.ltb-training__button {\n  display: inline-block;\n  max-width: 100%;\n  padding: 14px 24px;\n\n  border: 2px solid var(--ltb-green);\n  border-radius: 5px;\n\n  color: #ffffff !important;\n  background: var(--ltb-green);\n\n  font-size: 1.05rem;\n  font-weight: 700;\n  line-height: 1.25;\n  text-align: center;\n  text-decoration: none !important;\n\n  transition:\n    background 180ms ease,\n    border-color 180ms ease,\n    transform 180ms ease,\n    box-shadow 180ms ease;\n}\n\n.ltb-training__button:hover,\n.ltb-training__button:focus {\n  color: #ffffff !important;\n  background: var(--ltb-dark-green);\n  border-color: var(--ltb-dark-green);\n  transform: translateY(-2px);\n\n  box-shadow:\n    0 7px 12px rgba(35, 71, 42, 0.2);\n}\n\n\/* =========================================================\n   ANIMATIONS\n   ========================================================= *\/\n\n@keyframes ltb-dragonfly-float {\n  0% {\n    transform:\n      translate3d(0, 0, 0)\n      rotate(-1deg);\n  }\n\n  50% {\n    transform:\n      translate3d(7px, -7px, 0)\n      rotate(-0.35deg);\n  }\n\n  100% {\n    transform:\n      translate3d(-3px, 5px, 0)\n      rotate(0.4deg);\n  }\n}\n\n@keyframes ltb-bee-float {\n  0% {\n    transform:\n      translate3d(0, 0, 0)\n      rotate(0.8deg);\n  }\n\n  50% {\n    transform:\n      translate3d(-6px, -4px, 0)\n      rotate(0.15deg);\n  }\n\n  100% {\n    transform:\n      translate3d(4px, 7px, 0)\n      rotate(-0.5deg);\n  }\n}\n\n@keyframes ltb-line-in {\n  from {\n    transform: scaleX(0);\n  }\n\n  to {\n    transform: scaleX(1);\n  }\n}\n\n@keyframes ltb-hex-enter {\n  from {\n    opacity: 0;\n    transform: translateY(18px);\n  }\n\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n\/* =========================================================\n   RESPONSIVE LAYOUT\n   ========================================================= *\/\n\n\/* Medium screens. *\/\n@media (max-width: 820px) {\n  .ltb-watermark--dragonfly {\n    top: 180px;\n    left: -65px;\n    width: 340px;\n    height: 275px;\n  }\n\n  .ltb-watermark--dragonfly::before {\n    width: 650px;\n    height: 433px;\n    background-size: 650px 433px;\n    opacity: 0.09;\n  }\n\n  .ltb-watermark--bee {\n    top: 720px;\n    right: -105px;\n    width: 300px;\n    height: 275px;\n  }\n\n  .ltb-watermark--bee::before {\n    width: 650px;\n    height: 433px;\n    background-size: 650px 433px;\n    opacity: 0.105;\n  }\n\n  .ltb-honeycomb {\n    --ltb-hex-width: 180px;\n    --ltb-hex-gap: 8px;\n    max-width: 650px;\n  }\n\n  .ltb-hex {\n    margin: -17px 0;\n  }\n\n  .ltb-hex__title {\n    max-width: 140px;\n    font-size: 0.98rem;\n  }\n\n  .ltb-schedule-row {\n    grid-template-columns:\n      42px\n      minmax(150px, 0.8fr)\n      minmax(210px, 1.5fr)\n      54px;\n  }\n}\n\n\/* Tablets and phones. *\/\n@media (max-width: 650px) {\n  .ltb-watermark--dragonfly {\n    top: 255px;\n    left: -105px;\n    width: 290px;\n    height: 235px;\n  }\n\n  .ltb-watermark--dragonfly::before {\n    width: 560px;\n    height: 373px;\n    background-size: 560px 373px;\n    opacity: 0.065;\n  }\n\n  .ltb-watermark--bee {\n    top: 840px;\n    right: -120px;\n    width: 260px;\n    height: 240px;\n  }\n\n  .ltb-watermark--bee::before {\n    width: 560px;\n    height: 373px;\n    background-size: 560px 373px;\n    opacity: 0.075;\n  }\n\n  .ltb-class-panel__grid {\n    grid-template-columns: 1fr;\n    gap: 8px;\n  }\n\n  .ltb-class-panel__item {\n    min-height: 0;\n  }\n\n  .ltb-class-panel {\n    padding: 18px 15px;\n  }\n\n  .ltb-program-glance {\n    grid-template-columns:\n      repeat(2, minmax(0, 1fr));\n  }\n\n  .ltb-program-glance__item:nth-child(3)::before {\n    display: none;\n  }\n\n  .ltb-program-glance__item:nth-child(n + 3) {\n    border-top:\n      1px solid rgba(255, 255, 255, 0.32);\n  }\n\n  .ltb-schedule-row {\n    grid-template-columns: 38px 1fr;\n    gap: 5px 10px;\n  }\n\n  .ltb-schedule-row__date,\n  .ltb-schedule-row__subjects {\n    grid-column: 2;\n  }\n\n  .ltb-schedule-row__hours {\n    grid-column: 2;\n    text-align: left;\n  }\n}\n\n\/* Phones. *\/\n@media (max-width: 520px) {\n  .ltb-training {\n    padding-right: 10px;\n    padding-left: 10px;\n  }\n\n  .ltb-watermark--dragonfly {\n    top: 285px;\n    left: -120px;\n    width: 260px;\n    height: 210px;\n  }\n\n  .ltb-watermark--dragonfly::before {\n    width: 500px;\n    height: 333px;\n    background-size: 500px 333px;\n    opacity: 0.052;\n  }\n\n  .ltb-watermark--bee {\n    top: 920px;\n    right: -140px;\n    width: 235px;\n    height: 220px;\n  }\n\n  .ltb-watermark--bee::before {\n    width: 500px;\n    height: 333px;\n    background-size: 500px 333px;\n    opacity: 0.06;\n  }\n\n  .ltb-honeycomb {\n    --ltb-hex-width: 145px;\n    --ltb-hex-gap: 5px;\n\n    max-width: 320px;\n    margin-top: 28px;\n  }\n\n  .ltb-hex {\n    margin: -13px 0;\n  }\n\n  .ltb-hex__overlay {\n    padding: 18px 6px 25px;\n  }\n\n  .ltb-hex__title {\n    max-width: 112px;\n    min-height: 2.3em;\n    padding: 0 2px;\n\n    font-size: 0.84rem;\n    line-height: 1.15;\n  }\n\n  .ltb-training__button {\n    width: 100%;\n    padding: 14px 12px;\n  }\n}\n\n\/* Very narrow phones. *\/\n@media (max-width: 340px) {\n  .ltb-watermark {\n    display: none;\n  }\n\n  .ltb-honeycomb {\n    --ltb-hex-width: 134px;\n  }\n\n  .ltb-hex__title {\n    max-width: 104px;\n    font-size: 0.8rem;\n  }\n}\n\n\/* Reduced-motion accessibility. *\/\n@media (prefers-reduced-motion: reduce) {\n  .ltb-watermark--dragonfly,\n  .ltb-watermark--bee {\n    animation: none;\n    transform: none;\n  }\n\n  .ltb-hex {\n    opacity: 1;\n    transform: none;\n    animation: none;\n  }\n\n  .ltb-hex,\n  .ltb-hex__image,\n  .ltb-class-panel__content,\n  .ltb-training__button,\n  .ltb-full-schedule__toggle {\n    transition: none;\n  }\n\n  .ltb-class-panel::before {\n    animation: none;\n  }\n}\n<\/style>\n\n<section\n  class=\"ltb-training\"\n  aria-labelledby=\"ltb-training-title\"\n>\n\n  <!-- Decorative artwork. Hidden from assistive technology. -->\n  <span\n    class=\"ltb-watermark ltb-watermark--dragonfly\"\n    aria-hidden=\"true\"\n  ><\/span>\n\n  <span\n    class=\"ltb-watermark ltb-watermark--bee\"\n    aria-hidden=\"true\"\n  ><\/span>\n\n  <div class=\"ltb-training__intro\">\n\n    <p class=\"ltb-training__eyebrow\">\n      Explore \u2022 Learn \u2022 Conserve\n    <\/p>\n\n    <h1\n      class=\"ltb-training__title\"\n      id=\"ltb-training-title\"\n    >\n      2026 Texas Master Naturalist Training\n    <\/h1>\n\n    <p class=\"ltb-training__description\">\n      Discover the plants, wildlife, habitats, and conservation work\n      that make Southeast Texas extraordinary.\n    <\/p>\n\n    <p class=\"ltb-training__instruction\">\n      Select a photograph to explore the tentative class details.\n    <\/p>\n\n  <\/div>\n\n  <ul\n    class=\"ltb-honeycomb\"\n    id=\"ltb-honeycomb\"\n    aria-label=\"Texas Master Naturalist training subjects and experiences\"\n  ><\/ul>\n\n  <div\n    class=\"ltb-class-panel\"\n    id=\"ltb-class-panel\"\n    aria-live=\"polite\"\n    aria-atomic=\"true\"\n  >\n\n    <div\n      class=\"ltb-class-panel__content\"\n      id=\"ltb-panel-content\"\n    >\n\n      <p class=\"ltb-class-panel__eyebrow\">\n        Tentative 2026 Schedule\n      <\/p>\n\n      <h2\n        class=\"ltb-class-panel__title\"\n        id=\"ltb-panel-title\"\n      ><\/h2>\n\n      <div class=\"ltb-class-panel__grid\">\n\n        <div class=\"ltb-class-panel__item\">\n\n          <span class=\"ltb-class-panel__label\">\n            <span\n              class=\"ltb-class-panel__icon\"\n              aria-hidden=\"true\"\n            >\n              \ud83d\udcc5\n            <\/span>\n            Date\n          <\/span>\n\n          <span\n            class=\"ltb-class-panel__value\"\n            id=\"ltb-panel-date\"\n          ><\/span>\n\n        <\/div>\n\n        <div class=\"ltb-class-panel__item\">\n\n          <span class=\"ltb-class-panel__label\">\n            <span\n              class=\"ltb-class-panel__icon\"\n              aria-hidden=\"true\"\n            >\n              \ud83d\udd52\n            <\/span>\n            Time\n          <\/span>\n\n          <span\n            class=\"ltb-class-panel__value\"\n            id=\"ltb-panel-time\"\n          ><\/span>\n\n        <\/div>\n\n        <div class=\"ltb-class-panel__item\">\n\n          <span class=\"ltb-class-panel__label\">\n            <span\n              class=\"ltb-class-panel__icon\"\n              aria-hidden=\"true\"\n            >\n              \u23f1\n            <\/span>\n            Duration\n          <\/span>\n\n          <span\n            class=\"ltb-class-panel__value\"\n            id=\"ltb-panel-duration\"\n          ><\/span>\n\n        <\/div>\n\n      <\/div>\n\n      <h3 class=\"ltb-class-panel__subjects-title\">\n        What you\u2019ll experience\n      <\/h3>\n\n      <p\n        class=\"ltb-class-panel__subjects\"\n        id=\"ltb-panel-subjects\"\n      ><\/p>\n\n      <p\n        class=\"ltb-class-panel__additional\"\n        id=\"ltb-panel-additional\"\n      ><\/p>\n\n      <p class=\"ltb-class-panel__prompt\">\n        Select another photograph above to explore a different session.\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n  <div\n    class=\"ltb-program-glance\"\n    aria-label=\"2026 training program at a glance\"\n  >\n\n    <div class=\"ltb-program-glance__item\">\n      <span class=\"ltb-program-glance__value\">13<\/span>\n      <span class=\"ltb-program-glance__label\">\n        Training Sessions\n      <\/span>\n    <\/div>\n\n    <div class=\"ltb-program-glance__item\">\n      <span class=\"ltb-program-glance__value\">48<\/span>\n      <span class=\"ltb-program-glance__label\">\n        Scheduled Hours\n      <\/span>\n    <\/div>\n\n    <div class=\"ltb-program-glance__item\">\n      <span class=\"ltb-program-glance__value\">5<\/span>\n      <span class=\"ltb-program-glance__label\">\n        Field Experiences\n      <\/span>\n    <\/div>\n\n    <div class=\"ltb-program-glance__item\">\n      <span class=\"ltb-program-glance__value\">1<\/span>\n      <span class=\"ltb-program-glance__label\">\n        Naturalist Community\n      <\/span>\n    <\/div>\n\n  <\/div>\n\n  <div\n    class=\"ltb-full-schedule\"\n    id=\"ltb-full-schedule\"\n  >\n\n    <button\n      class=\"ltb-full-schedule__toggle\"\n      id=\"ltb-schedule-toggle\"\n      type=\"button\"\n      aria-expanded=\"false\"\n      aria-controls=\"ltb-schedule-content\"\n    >\n\n      <span>\n        View the Complete Tentative Schedule\n      <\/span>\n\n      <span\n        class=\"ltb-full-schedule__symbol\"\n        id=\"ltb-schedule-symbol\"\n        aria-hidden=\"true\"\n      >\n        +\n      <\/span>\n\n    <\/button>\n\n    <div\n      class=\"ltb-full-schedule__content\"\n      id=\"ltb-schedule-content\"\n    >\n\n      <ol\n        class=\"ltb-full-schedule__list\"\n        id=\"ltb-schedule-list\"\n      ><\/ol>\n\n      <p class=\"ltb-full-schedule__total\">\n        Total scheduled training: 48 hours\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n  <p class=\"ltb-training__note\">\n    The schedule is tentative and may change as subjects, instructors,\n    times, and locations are finalized.\n  <\/p>\n\n  <a\n    class=\"ltb-training__button\"\n    href=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/Combined-Application-and-Schedule.pdf\"\n    target=\"_blank\"\n    rel=\"noopener noreferrer\"\n    aria-label=\"Open the 2026 Lower Trinity Basin training class application and schedule PDF\"\n  >\n    Apply for the 2026 Training Class &rarr;\n  <\/a>\n\n<\/section>\n\n<script>\n(function () {\n  \"use strict\";\n\n  \/* =======================================================\n     FEATURED HONEYCOMB CARDS\n     ======================================================= *\/\n\n  var featuredClasses = [\n    {\n      id: \"orientation\",\n      title: \"Begin Your Journey\",\n      cardTitle: \"Begin Your\\nJourney\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/03\/new_members_banner.png\",\n      alt:\n        \"New members attending Lower Trinity Basin orientation\",\n      date:\n        \"Wednesday, September 2, 2026\",\n      time:\n        \"6:00 p.m. start\",\n      duration:\n        \"1.5 hours\",\n      subjects:\n        \"Orientation, introductions, books and class materials, the pre-survey, and the Volunteer Management System.\",\n      additional:\n        \"This session begins the 2026 fall training program.\"\n    },\n    {\n      id: \"birds\",\n      title: \"Birds & Birding\",\n      cardTitle: \"Birds & Birding\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/eagle_watching.png\",\n      alt:\n        \"Chapter members watching birds with binoculars\",\n      date:\n        \"October 7 and October 10, 2026\",\n      time:\n        \"Wednesday, 6:00\u20139:00 p.m.; Saturday morning\",\n      duration:\n        \"3-hour class and 5-hour combined field session\",\n      subjects:\n        \"Ornithology, birding applications, and an early-morning birding field trip.\",\n      additional:\n        \"The October 10 session also includes classroom herpetology.\"\n    },\n    {\n      id: \"insects\",\n      title: \"Insects & Life Cycles\",\n      cardTitle: \"Insects & Life\\nCycles\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/butterfly_emerging_from_concoon.png\",\n      alt:\n        \"Butterfly emerging from its chrysalis\",\n      date:\n        \"Wednesday, October 28, 2026\",\n      time:\n        \"6:00\u20139:00 p.m.\",\n      duration:\n        \"3.5 hours\",\n      subjects:\n        \"Entomology, including insects and their ecological roles.\",\n      additional:\n        \"This combined session also includes ichthyology and an urban systems test.\"\n    },\n    {\n      id: \"aquatics\",\n      title: \"Wetlands & Aquatic Systems\",\n      cardTitle: \"Wetlands &\\nWildlife\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/alligator_in_the_refuge.png\",\n      alt:\n        \"American alligator in a Southeast Texas wildlife refuge\",\n      date:\n        \"Saturday, November 7, 2026\",\n      time:\n        \"Saturday morning\",\n      duration:\n        \"6.5 hours\",\n      subjects:\n        \"An aquatic-systems field trip exploring water-dependent habitats and wildlife.\",\n      additional:\n        \"The tentative schedule does not list the exact Saturday start time.\"\n    },\n    {\n      id: \"plants\",\n      title: \"Native Plants & Soils\",\n      cardTitle: \"Native Plants\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/05\/IMG_5280.png\",\n      alt:\n        \"Field of pitcher plants in the Big Thicket\",\n      date:\n        \"Saturday, October 3, 2026\",\n      time:\n        \"Saturday morning\",\n      duration:\n        \"4 hours\",\n      subjects:\n        \"A plant field trip, soils, native and invasive plants, and practical use of iNaturalist.\",\n      additional:\n        \"A separate prairie-systems field trip is scheduled for Saturday, November 14.\"\n    },\n    {\n      id: \"herpetology\",\n      title: \"Reptiles & Amphibians\",\n      cardTitle: \"Reptiles &\\nAmphibians\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2021\/04\/Doug-Morris-P0018-Snapper-scaled.jpg\",\n      alt:\n        \"Snapping turtle photographed in Southeast Texas\",\n      date:\n        \"Saturday, October 10, 2026\",\n      time:\n        \"Saturday morning\",\n      duration:\n        \"5-hour combined session\",\n      subjects:\n        \"Classroom herpetology covering reptiles and amphibians.\",\n      additional:\n        \"This session also includes the early-morning birding field trip.\"\n    },\n    {\n      id: \"ecology\",\n      title: \"Ecology & Ecosystems\",\n      cardTitle: \"Ecology &\\nEcosystems\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2020\/06\/Doug-Morris-P0008a-Twins-scaled.jpg\",\n      alt:\n        \"Twin white-tailed deer fawns\",\n      date:\n        \"Wednesday, September 16, 2026\",\n      time:\n        \"6:00\u20139:00 p.m.\",\n      duration:\n        \"3 hours\",\n      subjects:\n        \"Ecological concepts, ecosystems, conservation, and management.\",\n      additional:\n        \"This foundational session examines relationships among organisms, habitats, and natural systems.\"\n    },\n    {\n      id: \"stewardship\",\n      title: \"Land Stewardship\",\n      cardTitle: \"Conservation in\\nAction\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2020\/06\/Gonzales-Arbor-Day-P04-1-scaled.jpg\",\n      alt:\n        \"Volunteers planting a tree during an Arbor Day event\",\n      date:\n        \"Wednesday, September 30, 2026\",\n      time:\n        \"6:00\u20139:00 p.m.\",\n      duration:\n        \"3 hours\",\n      subjects:\n        \"Introduction to iNaturalist, land stewardship, citizen science, and the nature of naming.\",\n      additional:\n        \"The session connects observation and identification with responsible natural-resource management.\"\n    },\n    {\n      id: \"service\",\n      title: \"Volunteer & Serve\",\n      cardTitle: \"Volunteer &\\nServe\",\n      image:\n        \"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/butterfly_garden_maintance.png\",\n      alt:\n        \"Lower Trinity Basin volunteers maintaining a butterfly garden\",\n      date:\n        \"September 2 and September 12, 2026\",\n      time:\n        \"Wednesday evening and Saturday morning\",\n      duration:\n        \"Covered during the opening sessions\",\n      subjects:\n        \"Introduction to the Texas Master Naturalist Program and the Volunteer Management System.\",\n      additional:\n        \"Certification requires volunteer service and advanced training after completion of the initial training.\"\n    }\n  ];\n\n  \/* =======================================================\n     COMPLETE 2026 SCHEDULE\n     ======================================================= *\/\n\n  var completeSchedule = [\n    {\n      number: 1,\n      date: \"Wednesday, September 2, 2026\",\n      subjects:\n        \"Orientation; introductions; books and class materials; pre-survey; Volunteer Management System.\",\n      hours: \"1.5 hrs\"\n    },\n    {\n      number: 2,\n      date: \"Saturday, September 12, 2026\",\n      subjects:\n        \"Introduction to the Texas Master Naturalist Program; historic naturalists; laws and ethics; ecoregions; Volunteer Management System.\",\n      hours: \"4.5 hrs\"\n    },\n    {\n      number: 3,\n      date: \"Wednesday, September 16, 2026\",\n      subjects:\n        \"Ecological concepts; ecosystems; conservation and management.\",\n      hours: \"3 hrs\"\n    },\n    {\n      number: 4,\n      date: \"Wednesday, September 23, 2026\",\n      subjects:\n        \"Weather and climate; Texas water resources.\",\n      hours: \"3 hrs\"\n    },\n    {\n      number: 5,\n      date: \"Wednesday, September 30, 2026\",\n      subjects:\n        \"Introduction to iNaturalist; land stewardship; citizen science test; nature of naming.\",\n      hours: \"3 hrs\"\n    },\n    {\n      number: 6,\n      date: \"Saturday, October 3, 2026\",\n      subjects:\n        \"Plant field trip; soils; native versus invasive plants; practice using iNaturalist.\",\n      hours: \"4 hrs\"\n    },\n    {\n      number: 7,\n      date: \"Wednesday, October 7, 2026\",\n      subjects:\n        \"Archeology and native peoples; ornithology and birding applications.\",\n      hours: \"3 hrs\"\n    },\n    {\n      number: 8,\n      date: \"Saturday, October 10, 2026\",\n      subjects:\n        \"Early-morning birding field trip; classroom herpetology.\",\n      hours: \"5 hrs\"\n    },\n    {\n      number: 9,\n      date: \"Saturday, October 17, 2026\",\n      subjects:\n        \"Forest systems field trip.\",\n      hours: \"4 hrs\"\n    },\n    {\n      number: 10,\n      date: \"Wednesday, October 28, 2026\",\n      subjects:\n        \"Ichthyology; entomology; urban systems test.\",\n      hours: \"3.5 hrs\"\n    },\n    {\n      number: 11,\n      date: \"Saturday, November 7, 2026\",\n      subjects:\n        \"Aquatic systems field trip.\",\n      hours: \"6.5 hrs\"\n    },\n    {\n      number: 12,\n      date: \"Saturday, November 14, 2026\",\n      subjects:\n        \"Prairie systems field trip.\",\n      hours: \"4 hrs\"\n    },\n    {\n      number: 13,\n      date: \"Wednesday, November 18, 2026\",\n      subjects:\n        \"Presentations and post-survey.\",\n      hours: \"3 hrs\"\n    }\n  ];\n\n  var trainingSection =\n    document.querySelector(\".ltb-training\");\n\n  if (!trainingSection) {\n    return;\n  }\n\n  var honeycomb =\n    trainingSection.querySelector(\"#ltb-honeycomb\");\n\n  var scheduleList =\n    trainingSection.querySelector(\"#ltb-schedule-list\");\n\n  var panel =\n    trainingSection.querySelector(\"#ltb-class-panel\");\n\n  var panelContent =\n    trainingSection.querySelector(\"#ltb-panel-content\");\n\n  var panelTitle =\n    trainingSection.querySelector(\"#ltb-panel-title\");\n\n  var panelDate =\n    trainingSection.querySelector(\"#ltb-panel-date\");\n\n  var panelTime =\n    trainingSection.querySelector(\"#ltb-panel-time\");\n\n  var panelDuration =\n    trainingSection.querySelector(\"#ltb-panel-duration\");\n\n  var panelSubjects =\n    trainingSection.querySelector(\"#ltb-panel-subjects\");\n\n  var panelAdditional =\n    trainingSection.querySelector(\"#ltb-panel-additional\");\n\n  var scheduleContainer =\n    trainingSection.querySelector(\"#ltb-full-schedule\");\n\n  var scheduleToggle =\n    trainingSection.querySelector(\"#ltb-schedule-toggle\");\n\n  var scheduleSymbol =\n    trainingSection.querySelector(\"#ltb-schedule-symbol\");\n\n  if (\n    !honeycomb ||\n    !scheduleList ||\n    !panel ||\n    !panelContent ||\n    !panelTitle ||\n    !panelDate ||\n    !panelTime ||\n    !panelDuration ||\n    !panelSubjects ||\n    !panelAdditional ||\n    !scheduleContainer ||\n    !scheduleToggle ||\n    !scheduleSymbol\n  ) {\n    return;\n  }\n\n  var prefersReducedMotion =\n    window.matchMedia(\n      \"(prefers-reduced-motion: reduce)\"\n    ).matches;\n\n  function createHoneycombCard(item, index) {\n    var listItem =\n      document.createElement(\"li\");\n\n    var button =\n      document.createElement(\"button\");\n\n    var image =\n      document.createElement(\"img\");\n\n    var overlay =\n      document.createElement(\"span\");\n\n    var title =\n      document.createElement(\"span\");\n\n    listItem.className = \"ltb-hex\";\n\n    if (index === 0) {\n      listItem.classList.add(\"is-active\");\n    }\n\n    button.className = \"ltb-hex__button\";\n    button.type = \"button\";\n\n    button.setAttribute(\n      \"aria-pressed\",\n      index === 0 ? \"true\" : \"false\"\n    );\n\n    button.setAttribute(\n      \"aria-label\",\n      \"Show tentative details for \" + item.title\n    );\n\n    image.className = \"ltb-hex__image\";\n    image.src = item.image;\n    image.alt = item.alt;\n    image.loading = index < 3 ? \"eager\" : \"lazy\";\n\n    overlay.className = \"ltb-hex__overlay\";\n\n    title.className = \"ltb-hex__title\";\n    title.textContent = item.cardTitle;\n\n    overlay.appendChild(title);\n    button.appendChild(image);\n    button.appendChild(overlay);\n    listItem.appendChild(button);\n\n    button.addEventListener(\n      \"click\",\n      function () {\n        selectCard(index, button);\n      }\n    );\n\n    honeycomb.appendChild(listItem);\n  }\n\n  function createScheduleRow(item) {\n    var row =\n      document.createElement(\"li\");\n\n    var number =\n      document.createElement(\"span\");\n\n    var date =\n      document.createElement(\"span\");\n\n    var subjects =\n      document.createElement(\"span\");\n\n    var hours =\n      document.createElement(\"span\");\n\n    row.className =\n      \"ltb-schedule-row\";\n\n    number.className =\n      \"ltb-schedule-row__number\";\n\n    number.textContent =\n      item.number + \".\";\n\n    date.className =\n      \"ltb-schedule-row__date\";\n\n    date.textContent =\n      item.date;\n\n    subjects.className =\n      \"ltb-schedule-row__subjects\";\n\n    subjects.textContent =\n      item.subjects;\n\n    hours.className =\n      \"ltb-schedule-row__hours\";\n\n    hours.textContent =\n      item.hours;\n\n    row.appendChild(number);\n    row.appendChild(date);\n    row.appendChild(subjects);\n    row.appendChild(hours);\n\n    scheduleList.appendChild(row);\n  }\n\n  function updatePanel(item) {\n    panelTitle.textContent =\n      item.title;\n\n    panelDate.textContent =\n      item.date;\n\n    panelTime.textContent =\n      item.time;\n\n    panelDuration.textContent =\n      item.duration;\n\n    panelSubjects.textContent =\n      item.subjects;\n\n    panelAdditional.textContent =\n      item.additional;\n  }\n\n  function scrollPanelIntoView() {\n    if (window.innerWidth > 650) {\n      return;\n    }\n\n    window.setTimeout(\n      function () {\n        panel.scrollIntoView({\n          behavior:\n            prefersReducedMotion\n              ? \"auto\"\n              : \"smooth\",\n\n          block:\n            \"start\"\n        });\n      },\n\n      prefersReducedMotion\n        ? 0\n        : 180\n    );\n  }\n\n  function selectCard(\n    index,\n    selectedButton\n  ) {\n    var buttons =\n      honeycomb.querySelectorAll(\n        \".ltb-hex__button\"\n      );\n\n    buttons.forEach(\n      function (button) {\n        var card =\n          button.closest(\".ltb-hex\");\n\n        button.setAttribute(\n          \"aria-pressed\",\n          \"false\"\n        );\n\n        if (card) {\n          card.classList.remove(\n            \"is-active\"\n          );\n        }\n      }\n    );\n\n    var selectedCard =\n      selectedButton.closest(\".ltb-hex\");\n\n    selectedButton.setAttribute(\n      \"aria-pressed\",\n      \"true\"\n    );\n\n    if (selectedCard) {\n      selectedCard.classList.add(\n        \"is-active\"\n      );\n    }\n\n    if (prefersReducedMotion) {\n      updatePanel(\n        featuredClasses[index]\n      );\n\n      scrollPanelIntoView();\n      return;\n    }\n\n    panelContent.classList.add(\n      \"is-changing\"\n    );\n\n    window.setTimeout(\n      function () {\n        updatePanel(\n          featuredClasses[index]\n        );\n\n        window.requestAnimationFrame(\n          function () {\n            panelContent.classList.remove(\n              \"is-changing\"\n            );\n          }\n        );\n      },\n\n      150\n    );\n\n    scrollPanelIntoView();\n  }\n\n  function toggleCompleteSchedule() {\n    var isOpen =\n      scheduleContainer.classList.toggle(\n        \"is-open\"\n      );\n\n    scheduleToggle.setAttribute(\n      \"aria-expanded\",\n      isOpen ? \"true\" : \"false\"\n    );\n\n    scheduleSymbol.textContent =\n      isOpen ? \"\u2212\" : \"+\";\n  }\n\n  featuredClasses.forEach(\n    createHoneycombCard\n  );\n\n  completeSchedule.forEach(\n    createScheduleRow\n  );\n\n  updatePanel(\n    featuredClasses[0]\n  );\n\n  scheduleToggle.addEventListener(\n    \"click\",\n    toggleCompleteSchedule\n  );\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Explore \u2022 Learn \u2022 Conserve 2026 Texas Master Naturalist Training Discover the plants, wildlife, habitats, and conservation work that make Southeast Texas extraordinary. Select a photograph to explore the tentative&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/training-class\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":198063,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200547","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Explore \u2022 Learn \u2022 Conserve 2026 Texas Master Naturalist Training Discover the plants, wildlife, habitats, and conservation work that make Southeast Texas extraordinary. Select a photograph to explore the tentative... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200547"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200547\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/198063"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200283,"date":"2026-07-11T06:07:29","date_gmt":"2026-07-11T11:07:29","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200283"},"modified":"2026-07-11T06:14:30","modified_gmt":"2026-07-11T11:14:30","slug":"the-heart-of-the-coast","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/collections\/the-heart-of-the-coast\/","title":{"rendered":"The Heart of The Coast"},"content":{"rendered":"\n<style>\n  .trinity-bay-story {\n    --tb-ink: #243238;\n    --tb-muted: #68777d;\n    --tb-water: #0f6674;\n    --tb-water-dark: #0a4f59;\n    --tb-line: #dbe5e3;\n    --tb-mist: #f4f8f7;\n    --tb-white: #ffffff;\n    width: 95vw;\n    max-width: none;\n    margin-left: calc(50% - 47.5vw);\n    margin-right: calc(50% - 47.5vw);\n    color: var(--tb-ink);\n    font-family: Georgia, \"Times New Roman\", serif;\n    line-height: 1.75;\n  }\n\n  .trinity-bay-story,\n  .trinity-bay-story * {\n    box-sizing: border-box;\n  }\n\n  .trinity-bay-story img {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .trinity-bay-story .tb-intro {\n    width: min(92%, 980px);\n    margin: 0 auto clamp(4rem, 8vw, 7rem);\n    padding-top: clamp(1rem, 3vw, 2.5rem);\n    text-align: center;\n  }\n\n  .trinity-bay-story .tb-eyebrow {\n    margin: 0 0 1rem;\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 0.78rem;\n    font-weight: 700;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--tb-water);\n  }\n\n  .entry-title,\n  .page-title,\n  .wp-block-post-title {\n    text-decoration: none !important;\n    border-bottom: 0 !important;\n    box-shadow: none !important;\n    background-image: none !important;\n  }\n\n  .entry-title::before,\n  .entry-title::after,\n  .page-title::before,\n  .page-title::after,\n  .wp-block-post-title::before,\n  .wp-block-post-title::after {\n    display: none !important;\n    content: none !important;\n  }\n\n  .trinity-bay-story .tb-intro-lead {\n    margin: 0 auto;\n    max-width: 820px;\n    font-size: clamp(1.35rem, 2.4vw, 2rem) !important;\n    line-height: 1.4;\n    color: var(--tb-water-dark);\n  }\n\n  .trinity-bay-story .tb-intro-copy {\n    margin: 1.75rem auto 0;\n    max-width: 760px;\n    font-size: clamp(1.05rem, 1.8vw, 1.25rem);\n    color: var(--tb-muted);\n  }\n\n  .trinity-bay-story .tb-hero-visual {\n    width: 100%;\n    height: clamp(300px, 38vw, 520px);\n    margin: 0 0 clamp(3.5rem, 7vw, 6rem);\n    display: grid;\n    place-items: center;\n    overflow: hidden;\n    background:\n      linear-gradient(180deg, rgba(9, 75, 86, 0.15), rgba(9, 75, 86, 0.55)),\n      linear-gradient(135deg, #79aeb3, #0a4f59 75%);\n  }\n\n  .trinity-bay-story .tb-hero-visual .tb-placeholder {\n    max-width: 520px;\n    padding: 2rem;\n    text-align: center;\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .trinity-bay-story .tb-section {\n    width: min(92%, 1320px);\n    margin: 0 auto clamp(5rem, 10vw, 9rem);\n  }\n\n  .trinity-bay-story .tb-grid {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n    gap: clamp(2.5rem, 7vw, 7rem);\n    align-items: center;\n  }\n\n  .trinity-bay-story .tb-section:nth-of-type(even) .tb-visual-wrap {\n    order: 2;\n  }\n\n  .trinity-bay-story .tb-copy {\n    max-width: 650px;\n  }\n\n  .trinity-bay-story h2 {\n    margin: 0 0 1.5rem !important;\n    font-family: Georgia, \"Times New Roman\", serif !important;\n    font-size: clamp(2rem, 3.2vw, 3.6rem) !important;\n    font-weight: 500 !important;\n    line-height: 1.12 !important;\n    text-transform: none !important;\n    text-decoration: none !important;\n    border-bottom: 0 !important;\n    box-shadow: none !important;\n    background-image: none !important;\n    text-wrap: balance;\n    color: var(--tb-ink) !important;\n  }\n\n  .trinity-bay-story h2::before,\n  .trinity-bay-story h2::after {\n    display: none !important;\n    content: none !important;\n  }\n\n  .trinity-bay-story p {\n    margin: 0 0 1.25rem;\n    font-size: clamp(1rem, 1.2vw, 1.08rem) !important;\n  }\n\n  .trinity-bay-story .tb-lead {\n    font-size: clamp(1.15rem, 1.8vw, 1.3rem) !important;\n    line-height: 1.5;\n    color: var(--tb-water-dark);\n  }\n\n  .trinity-bay-story .tb-visual-wrap {\n    min-width: 0;\n  }\n\n  .trinity-bay-story .tb-visual {\n    width: 100%;\n    aspect-ratio: 4 \/ 3;\n    display: grid;\n    place-items: center;\n    overflow: hidden;\n    background: var(--tb-mist);\n    border-top: 1px solid var(--tb-line);\n    border-bottom: 1px solid var(--tb-line);\n  }\n\n  .trinity-bay-story .tb-visual img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: contain !important;\n    object-position: center center;\n    background: var(--tb-mist);\n  }\n\n  .trinity-bay-story .tb-visual.tb-visual--natural {\n    aspect-ratio: auto;\n    height: auto;\n    overflow: visible;\n  }\n\n  .trinity-bay-story .tb-visual.tb-visual--natural img {\n    width: 100% !important;\n    height: auto !important;\n    object-fit: contain !important;\n    object-position: center center;\n  }\n\n  .trinity-bay-story .tb-placeholder {\n    max-width: 360px;\n    padding: 2rem;\n    text-align: center;\n    font-family: Arial, Helvetica, sans-serif;\n    color: var(--tb-muted);\n  }\n\n  .trinity-bay-story .tb-placeholder strong {\n    display: block;\n    margin-bottom: 0.6rem;\n    font-size: 1rem;\n    color: var(--tb-water-dark);\n  }\n\n  .trinity-bay-story .tb-divider {\n    width: min(92%, 1320px);\n    margin: 0 auto clamp(5rem, 10vw, 9rem);\n    border: 0;\n    border-top: 1px solid var(--tb-line);\n  }\n\n  .trinity-bay-story .tb-closing {\n    width: 100%;\n    padding: clamp(5rem, 10vw, 9rem) 4%;\n    text-align: center;\n    color: var(--tb-white);\n    background: var(--tb-water-dark);\n  }\n\n  .trinity-bay-story .tb-closing-inner {\n    width: min(92%, 820px);\n    margin: 0 auto;\n  }\n\n  .trinity-bay-story .tb-closing h2 {\n    color: var(--tb-white);\n  }\n\n  .trinity-bay-story .tb-closing p {\n    color: rgba(255, 255, 255, 0.86);\n  }\n\n  .trinity-bay-story .tb-final-line {\n    margin-top: 2rem;\n    font-size: clamp(1.6rem, 4vw, 2.7rem);\n    color: var(--tb-white);\n  }\n\n  @media (max-width: 900px) {\n    .trinity-bay-story .tb-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .trinity-bay-story .tb-section:nth-of-type(even) .tb-visual-wrap {\n      order: 0;\n    }\n\n    .trinity-bay-story .tb-copy {\n      max-width: none;\n    }\n\n    .trinity-bay-story .tb-visual {\n      aspect-ratio: 16 \/ 10;\n    }\n  }\n\n  @media (max-width: 600px) {\n    .trinity-bay-story {\n      width: 94vw;\n      margin-left: calc(50% - 47vw);\n      margin-right: calc(50% - 47vw);\n    }\n\n    .trinity-bay-story .tb-section,\n    .trinity-bay-story .tb-divider {\n      width: 92%;\n    }\n\n    .trinity-bay-story .tb-hero-visual {\n      height: 260px;\n    }\n  }\n<\/style>\n\n<div class=\"trinity-bay-story\">\n  <section class=\"tb-intro\" aria-labelledby=\"trinity-intro-heading\">\n    <p class=\"tb-eyebrow\">Discovering Trinity Bay<\/p>\n    <p id=\"trinity-intro-heading\" class=\"tb-intro-lead\">A living estuary shaped by water, wildlife, people, and change.<\/p>\n    <p class=\"tb-intro-copy\">There are places that quietly shape the world around them. Trinity Bay is one of those places.<\/p>\n  <\/section>\n\n  <section class=\"tb-hero-visual\" aria-label=\"Hero image of Trinity Bay\">\n    <img\n      src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/trinity_landscape_image.png\"\n      alt=\"Sunrise over Trinity Bay with marshes, wading birds, fish, and calm estuary waters on the Texas Gulf Coast.\"\n      loading=\"eager\"\n      decoding=\"async\"\n      style=\"width:100%;height:100%;object-fit:cover;display:block;\"\n    >\n  <\/section>\n\n  <section class=\"tb-section\" aria-labelledby=\"discovering-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">The story begins<\/p>\n        <h2 id=\"discovering-heading\">Discovering Trinity Bay<\/h2>\n        <p class=\"tb-lead\">Stretching along the upper Texas coast, the bay is where fresh water from the Trinity River meets the salty waters of Galveston Bay and the Gulf of Mexico.<\/p>\n        <p>It may seem like a simple meeting of river and sea, but it creates one of the richest and most productive ecosystems in Texas.<\/p>\n        <p>Every drop of freshwater that reaches the bay carries nutrients from forests, farms, cities, and prairies hundreds of miles upstream. When that freshwater mixes with the tides, it creates an ever-changing environment where fish spawn, oysters grow, marshes flourish, and migratory birds find food and shelter.<\/p>\n        <p>To understand Trinity Bay is to understand how everything is connected.<\/p>\n        <p>This is the story of a living estuary\u2014its wildlife, its people, its challenges, and the hope that comes from restoring one of Texas\u2019 greatest natural treasures.<\/p>\n      <\/div>\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual\" aria-label=\"Illustrated map of the Trinity Bay estuary\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/map.png\"\n            alt=\"Illustrated map showing the Trinity River flowing into Trinity Bay, where freshwater mixes with saltwater from Galveston Bay and the Gulf of Mexico.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;object-fit:cover;display:block;\"\n          >\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <hr class=\"tb-divider\">\n\n  <section class=\"tb-section\" aria-labelledby=\"freshwater-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual tb-visual--natural\" aria-label=\"Illustration showing freshwater mixing with saltwater in Trinity Bay\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/educational_illustration.png\"\n            alt=\"Cross-sectional illustration showing freshwater from the Trinity River mixing with saltwater from Galveston Bay to form a changing brackish estuary.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:auto;object-fit:contain;display:block;\"\n          >\n        <\/div>\n      <\/div>\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">An estuary in motion<\/p>\n        <h2 id=\"freshwater-heading\">Where Freshwater Meets the Sea<\/h2>\n        <p class=\"tb-lead\">At first glance, Trinity Bay looks peaceful.<\/p>\n        <p>The water stretches toward the horizon while marsh grasses sway with the breeze. Pelicans drift overhead, and fishing boats leave quiet wakes behind them.<\/p>\n        <p>Beneath that calm surface, however, the bay is constantly changing.<\/p>\n        <p>Freshwater flows south through the Trinity River while tides push saltwater inland from Galveston Bay. The balance between the two changes every day with rainfall, river flow, wind, and the tides.<\/p>\n        <p>That balance determines almost everything that happens here.<\/p>\n        <p>Too much freshwater, and some marine species struggle. Too much saltwater, and wetlands begin to change. Somewhere between those extremes lies the delicate mix that supports one of the most diverse estuaries on the Gulf Coast.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <hr class=\"tb-divider\">\n\n  <section class=\"tb-section\" aria-labelledby=\"web-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">Everything is connected<\/p>\n        <h2 id=\"web-heading\">A Living Web<\/h2>\n        <p class=\"tb-lead\">Nothing in Trinity Bay exists by itself.<\/p>\n        <p>Tiny microscopic plankton become food for shrimp and small fish. Those fish feed red drum, spotted seatrout, and flounder. Wading birds patrol the shallows while dolphins hunt in deeper channels.<\/p>\n        <p>Even the marsh grasses and oyster reefs play essential roles, providing shelter, cleaning the water, and protecting young wildlife until they\u2019re ready for open water.<\/p>\n        <p>Nature isn\u2019t organized into separate pieces.<\/p>\n        <p>It is woven together like a web. Strengthen one strand, and the entire system benefits. Damage one part, and the effects spread farther than we often realize.<\/p>\n      <\/div>\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual tb-visual--natural\" aria-label=\"Illustration of the Trinity Bay food web\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/educational_illustration-1.png\"\n            alt=\"Illustration of the Trinity Bay food web showing plankton, marsh grasses, oysters, shrimp, fish, wading birds, and dolphins connected through the estuary ecosystem.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:auto;object-fit:contain;display:block;\"\n          >\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <hr class=\"tb-divider\">\n\n  <section class=\"tb-section\" aria-labelledby=\"adaptation-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual\" aria-label=\"Split-level illustration of wildlife adaptations in Trinity Bay\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/split_level_estuary_illustration.png\"\n            alt=\"Split-level illustration of Trinity Bay showing a great blue heron, brown pelican, red drum, oyster reef, marsh grasses, and changing weather that demonstrates how wildlife adapts to estuary conditions.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;object-fit:cover;display:block;\"\n          >\n        <\/div>\n      <\/div>\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">Life in changing water<\/p>\n        <h2 id=\"adaptation-heading\">Built to Live Here<\/h2>\n        <p class=\"tb-lead\">Life in an estuary isn\u2019t easy.<\/p>\n        <p>Rainstorms can suddenly lower salinity. Summer heat warms shallow water. Winter cold fronts bring dramatic changes in only a few hours.<\/p>\n        <p>The animals that live here have adapted to these changing conditions.<\/p>\n        <p>Fish move between deeper and shallower water as conditions change. Oysters quietly filter gallons of water every day while building reefs that protect shorelines. Herons wait patiently for the perfect moment to strike, while pelicans dive with remarkable precision into schools of baitfish.<\/p>\n        <p>Each species has found its own way to thrive in a place where change is constant.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <hr class=\"tb-divider\">\n\n  <section class=\"tb-section\" aria-labelledby=\"seasons-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">The bay\u2019s changing rhythm<\/p>\n        <h2 id=\"seasons-heading\">Following the Seasons<\/h2>\n        <p class=\"tb-lead\">No two days in Trinity Bay are exactly alike, and no two seasons are either.<\/p>\n        <p>Spring awakens marshes with new growth and signals the beginning of spawning for many fish species. Summer brings warm water and abundant life as young fish, shrimp, and crabs mature in protected nursery habitats.<\/p>\n        <p>Autumn fills the skies with migrating birds stopping to rest and feed before continuing their journeys south. Winter offers a quieter landscape, but life never truly stops. The bay simply settles into a different rhythm until spring returns once again.<\/p>\n        <p>Every season adds another chapter to Trinity Bay\u2019s story.<\/p>\n      <\/div>\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual\" aria-label=\"Panoramic illustration of Trinity Bay through the seasons\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/trinity_bay_transitioning.png\"\n            alt=\"Panoramic illustration of Trinity Bay transitioning through spring, summer, autumn, and winter, showing changing marshes, wildlife, and estuary conditions.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;object-fit:cover;display:block;\"\n          >\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <hr class=\"tb-divider\">\n\n  <section class=\"tb-section\" aria-labelledby=\"sharing-heading\">\n    <div class=\"tb-grid\">\n      <div class=\"tb-visual-wrap\">\n        <div class=\"tb-visual\" aria-label=\"Community stewardship and restoration efforts in Trinity Bay\">\n          <img\n            src=\"http:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/07\/caring_for_the_bay.png\"\n            alt=\"Volunteers restoring oyster reefs and planting marsh grasses along Trinity Bay while scientists monitor water quality and families enjoy the estuary, illustrating community stewardship and conservation.\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;object-fit:cover;display:block;\"\n          >\n        <\/div>\n      <\/div>\n      <div class=\"tb-copy\">\n        <p class=\"tb-eyebrow\">People are part of the story<\/p>\n        <h2 id=\"sharing-heading\">Sharing the Bay<\/h2>\n        <p class=\"tb-lead\">People have depended on Trinity Bay for generations.<\/p>\n        <p>Commercial fishermen, recreational anglers, birdwatchers, hunters, scientists, and families all find something valuable here. Industries and shipping have also shaped the region, bringing economic opportunity while creating new challenges for the environment.<\/p>\n        <p>Like many estuaries around the world, Trinity Bay faces pressures from pollution, habitat loss, shoreline erosion, and changing weather patterns.<\/p>\n        <p>Yet there is reason for optimism.<\/p>\n        <p>Across the bay, volunteers rebuild oyster reefs, restore marshes, monitor wildlife, and improve water quality. Communities are discovering that protecting nature also protects the people who live and work along the coast.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"tb-closing\" aria-labelledby=\"future-heading\">\n    <div class=\"tb-closing-inner\">\n      <p class=\"tb-eyebrow\">The next chapter<\/p>\n      <h2 id=\"future-heading\">Looking Ahead<\/h2>\n      <p>Conservation isn\u2019t about returning Trinity Bay to the past.<\/p>\n      <p>It\u2019s about ensuring that future generations experience the same thriving estuary we enjoy today.<\/p>\n      <p>Scientists continue to learn more about the bay each year. New technology helps monitor water quality and wildlife. Restoration projects are rebuilding habitats that were once thought to be lost.<\/p>\n      <p>Perhaps the greatest hope comes from people who simply care enough to learn.<\/p>\n      <p>Every visitor who asks a question, every student who explores a marsh, every volunteer who plants marsh grass, and every family that spends a day on the water becomes part of Trinity Bay\u2019s continuing story.<\/p>\n      <p>The future of the bay won\u2019t be written by any single organization or project.<\/p>\n      <p class=\"tb-final-line\">It will be written by all of us.<\/p>\n    <\/div>\n  <\/section>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu 2\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-2\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-2-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>","protected":false},"excerpt":{"rendered":"<p>Discovering Trinity Bay A living estuary shaped by water, wildlife, people, and change. There are places that quietly shape the world around them. Trinity Bay is one of those places&#8230;. <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/collections\/the-heart-of-the-coast\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":199516,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200283","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Discovering Trinity Bay A living estuary shaped by water, wildlife, people, and change. There are places that quietly shape the world around them. Trinity Bay is one of those places.... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200283"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200283\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199516"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200187,"date":"2026-07-06T17:58:49","date_gmt":"2026-07-06T22:58:49","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200187"},"modified":"2026-07-06T17:58:52","modified_gmt":"2026-07-06T22:58:52","slug":"my-field-book","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/dashboard\/build-your-field-book\/my-field-book\/","title":{"rendered":"My Field Book"},"content":{"rendered":"\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>My Field Book<\/title>\n  <style>\n    :root {\n      --forest: #174832;\n      --forest-dark: #0f3525;\n      --cream: #fffaf0;\n      --paper: #fffdf7;\n      --sand: #efe6cf;\n      --muted: #64756c;\n      --line: rgba(23, 72, 50, 0.16);\n      --blue: #3f7f94;\n      --bronze: #b87333;\n      --silver: #aeb4b8;\n      --gold: #d8a928;\n      --purple: #8e3fa6;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    body {\n      margin: 0;\n      font-family: Georgia, \"Times New Roman\", serif;\n      color: var(--forest-dark);\n      background: radial-gradient(circle at top, #fffaf0 0%, #e5dcc4 100%);\n    }\n\n    .field-book-shell {\n      max-width: 1240px;\n      margin: 28px auto;\n      padding: 18px;\n    }\n\n    .field-book-header {\n      display: flex;\n      align-items: flex-end;\n      justify-content: space-between;\n      gap: 20px;\n      margin-bottom: 16px;\n    }\n\n    .field-book-title h1 {\n      margin: 0;\n      font-size: clamp(2.6rem, 6vw, 5rem);\n      line-height: 0.9;\n      letter-spacing: 0.02em;\n      color: var(--forest-dark);\n      text-transform: uppercase;\n    }\n\n    .field-book-title p {\n      margin: 10px 0 0;\n      color: var(--muted);\n      font-family: Arial, sans-serif;\n      font-weight: 700;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n    }\n\n    .field-book-actions {\n      display: flex;\n      gap: 10px;\n      flex-wrap: wrap;\n      justify-content: flex-end;\n    }\n\n    .btn {\n      border: 0;\n      border-radius: 999px;\n      padding: 12px 20px;\n      background: var(--forest);\n      color: #fff;\n      font-family: Arial, sans-serif;\n      font-weight: 800;\n      cursor: pointer;\n    }\n\n    .btn.secondary {\n      background: var(--blue);\n    }\n\n    .notebook {\n      display: grid;\n      grid-template-columns: 260px 1fr;\n      min-height: 720px;\n      border: 3px solid var(--forest-dark);\n      border-radius: 28px;\n      background: linear-gradient(90deg, #1f4c35 0 260px, var(--paper) 260px 100%);\n      box-shadow: 0 20px 45px rgba(0,0,0,.18);\n      overflow: hidden;\n    }\n\n    .top-tabs {\n      grid-column: 1 \/ -1;\n      display: flex;\n      gap: 8px;\n      padding: 14px 18px 0;\n      background: #1f4c35;\n      overflow-x: auto;\n    }\n\n    .top-tab {\n      border: 1px solid rgba(255,255,255,.18);\n      border-bottom: 0;\n      border-radius: 12px 12px 0 0;\n      padding: 12px 16px;\n      background: rgba(255,255,255,.12);\n      color: #f8f1dd;\n      font-family: Arial, sans-serif;\n      font-weight: 900;\n      white-space: nowrap;\n      cursor: pointer;\n    }\n\n    .top-tab.active {\n      background: var(--paper);\n      color: var(--forest-dark);\n    }\n\n    .side-tabs {\n      padding: 22px 14px;\n      background: #1f4c35;\n      border-right: 4px solid #b08b46;\n    }\n\n    .side-tab {\n      width: 100%;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 10px;\n      margin-bottom: 10px;\n      border: 1px solid rgba(255,255,255,.14);\n      border-radius: 14px;\n      padding: 12px 14px;\n      background: rgba(255,255,255,.1);\n      color: #f8f1dd;\n      font-family: Arial, sans-serif;\n      font-weight: 800;\n      text-align: left;\n      cursor: pointer;\n    }\n\n    .side-tab.active {\n      background: #f8f1dd;\n      color: var(--forest-dark);\n      box-shadow: 0 0 0 3px rgba(216,169,40,.45);\n    }\n\n    .side-tab span:last-child {\n      font-size: 0.85rem;\n      opacity: 0.8;\n    }\n\n    .book-page {\n      padding: 26px;\n      background:\n        linear-gradient(rgba(23,72,50,.035) 1px, transparent 1px),\n        var(--paper);\n      background-size: 100% 34px;\n    }\n\n    .page-layout {\n      display: grid;\n      grid-template-columns: 1.1fr 0.9fr;\n      gap: 20px;\n      align-items: start;\n    }\n\n    .panel {\n      border: 1px solid var(--line);\n      border-radius: 18px;\n      background: rgba(255,255,255,.72);\n      padding: 18px;\n      box-shadow: 0 8px 18px rgba(0,0,0,.06);\n    }\n\n    .panel h2,\n    .panel h3 {\n      margin: 0 0 12px;\n      color: var(--forest-dark);\n    }\n\n    .badge-list {\n      display: grid;\n      gap: 10px;\n      max-height: 530px;\n      overflow: auto;\n      padding-right: 4px;\n    }\n\n    .badge-card {\n      display: grid;\n      grid-template-columns: 46px 1fr auto;\n      gap: 12px;\n      align-items: center;\n      border: 1px solid var(--line);\n      border-radius: 14px;\n      padding: 12px;\n      background: #fffdf7;\n      cursor: pointer;\n    }\n\n    .badge-card.active {\n      border-color: var(--gold);\n      box-shadow: 0 0 0 3px rgba(216,169,40,.28);\n    }\n\n    .badge-shield {\n      width: 44px;\n      height: 50px;\n      border-radius: 12px 12px 18px 18px;\n      display: grid;\n      place-items: center;\n      color: #fff;\n      font-size: 1.35rem;\n      font-family: Arial, sans-serif;\n      font-weight: 900;\n      background: var(--bronze);\n    }\n\n    .level-silver { background: var(--silver); color: #26332d; }\n    .level-gold { background: var(--gold); color: #26332d; }\n    .level-purple { background: var(--purple); }\n\n    .badge-card strong {\n      display: block;\n      color: var(--forest-dark);\n      font-family: Arial, sans-serif;\n      font-size: 1rem;\n    }\n\n    .badge-card small {\n      color: var(--muted);\n      font-family: Arial, sans-serif;\n    }\n\n    .badge-percent {\n      width: 46px;\n      height: 46px;\n      border-radius: 50%;\n      display: grid;\n      place-items: center;\n      background: var(--sand);\n      color: var(--forest-dark);\n      font-family: Arial, sans-serif;\n      font-weight: 900;\n    }\n\n    .badge-detail {\n      text-align: center;\n      min-height: 360px;\n    }\n\n    .badge-detail .large-shield {\n      width: 150px;\n      height: 170px;\n      margin: 22px auto;\n      border-radius: 34px 34px 58px 58px;\n      display: grid;\n      place-items: center;\n      color: #fff;\n      font-size: 4rem;\n      background: var(--bronze);\n      box-shadow: inset 0 0 0 8px rgba(255,255,255,.18), 0 14px 24px rgba(0,0,0,.18);\n    }\n\n    .large-shield.level-silver { background: var(--silver); color: #26332d; }\n    .large-shield.level-gold { background: var(--gold); color: #26332d; }\n    .large-shield.level-purple { background: var(--purple); }\n\n    .progress-shell {\n      height: 18px;\n      border-radius: 999px;\n      background: rgba(23,72,50,.12);\n      overflow: hidden;\n      margin: 14px 0 8px;\n    }\n\n    .progress-fill {\n      height: 100%;\n      width: 60%;\n      border-radius: 999px;\n      background: var(--forest);\n    }\n\n    .collection-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));\n      gap: 14px;\n    }\n\n    .collection-card {\n      border: 1px solid var(--line);\n      border-radius: 16px;\n      padding: 14px;\n      background: #fffdf7;\n    }\n\n    .collection-card strong {\n      display: block;\n      font-family: Arial, sans-serif;\n      color: var(--forest-dark);\n      margin-bottom: 4px;\n    }\n\n    .collection-card span {\n      color: var(--muted);\n      font-family: Arial, sans-serif;\n      font-size: 0.9rem;\n    }\n\n    .hidden {\n      display: none !important;\n    }\n\n    @media (max-width: 850px) {\n      .field-book-header,\n      .page-layout {\n        grid-template-columns: 1fr;\n        display: block;\n      }\n\n      .notebook {\n        grid-template-columns: 1fr;\n        background: var(--paper);\n      }\n\n      .side-tabs {\n        display: flex;\n        gap: 8px;\n        overflow-x: auto;\n        border-right: 0;\n        border-bottom: 4px solid #b08b46;\n      }\n\n      .side-tab {\n        min-width: 150px;\n      }\n\n      .book-page {\n        padding: 18px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <main class=\"field-book-shell\">\n    <header class=\"field-book-header\">\n      <div class=\"field-book-title\">\n        <h1>Field Book<\/h1>\n        <p>Lower Trinity Basin Chapter<\/p>\n      <\/div>\n      <div class=\"field-book-actions\">\n        <button class=\"btn secondary\" type=\"button\">Back to Challenge<\/button>\n        <button class=\"btn\" type=\"button\">Print Field Book<\/button>\n      <\/div>\n    <\/header>\n\n    <section class=\"notebook\" aria-label=\"My Field Book\">\n      <nav class=\"top-tabs\" aria-label=\"Major field book sections\">\n        <button class=\"top-tab active\" type=\"button\" data-section=\"biology\">Biology<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"ecology\">Ecology<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"water\">Water<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"weather\">Weather<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"geology\">Geology<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"land\">Land<\/button>\n        <button class=\"top-tab\" type=\"button\" data-section=\"txmn\">TXMN<\/button>\n      <\/nav>\n\n      <aside class=\"side-tabs\" aria-label=\"Subcategories\">\n        <button class=\"side-tab active\" type=\"button\" data-subcategory=\"birds\"><span>Birds<\/span><span>2%<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"trees\"><span>Trees<\/span><span>0%<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"wildflowers\"><span>Wildflowers<\/span><span>1%<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"mammals\"><span>Mammals<\/span><span>1%<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"reptiles\"><span>Reptiles<\/span><span>Soon<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"amphibians\"><span>Amphibians<\/span><span>Soon<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"fish\"><span>Fish<\/span><span>Soon<\/span><\/button>\n        <button class=\"side-tab\" type=\"button\" data-subcategory=\"insects\"><span>Insects<\/span><span>Soon<\/span><\/button>\n      <\/aside>\n\n      <section class=\"book-page\">\n        <div class=\"page-layout\">\n          <section class=\"panel\">\n            <h2>Badges<\/h2>\n            <div class=\"badge-list\">\n              <article class=\"badge-card active\">\n                <div class=\"badge-shield\">\ud83d\udc26<\/div>\n                <div>\n                  <strong>Copper Bird Watcher<\/strong>\n                  <small>Master 70% of Easy bird questions<\/small>\n                <\/div>\n                <div class=\"badge-percent\">2%<\/div>\n              <\/article>\n\n              <article class=\"badge-card\">\n                <div class=\"badge-shield level-silver\">\ud83d\udc26<\/div>\n                <div>\n                  <strong>Silver Bird Watcher<\/strong>\n                  <small>Master 70% of Medium bird questions<\/small>\n                <\/div>\n                <div class=\"badge-percent\">0%<\/div>\n              <\/article>\n\n              <article class=\"badge-card\">\n                <div class=\"badge-shield level-gold\">\ud83d\udc26<\/div>\n                <div>\n                  <strong>Gold Bird Watcher<\/strong>\n                  <small>Master 70% of Hard bird questions<\/small>\n                <\/div>\n                <div class=\"badge-percent\">0%<\/div>\n              <\/article>\n\n              <article class=\"badge-card\">\n                <div class=\"badge-shield level-purple\">\ud83d\udc26<\/div>\n                <div>\n                  <strong>Purple Bird Watcher<\/strong>\n                  <small>Master 100% of Epic bird questions<\/small>\n                <\/div>\n                <div class=\"badge-percent\">0%<\/div>\n              <\/article>\n            <\/div>\n          <\/section>\n\n          <section class=\"panel badge-detail\">\n            <h2>Copper Bird Watcher<\/h2>\n            <p>Master 70% of Easy bird questions.<\/p>\n            <div class=\"large-shield\">\ud83d\udc26<\/div>\n            <div class=\"progress-shell\" aria-hidden=\"true\">\n              <div class=\"progress-fill\" style=\"width: 2%;\"><\/div>\n            <\/div>\n            <p><strong>5 \/ 250 mastered<\/strong><\/p>\n            <p>Keep exploring birds to unlock this badge.<\/p>\n          <\/section>\n        <\/div>\n\n        <section class=\"panel\" style=\"margin-top: 20px;\">\n          <h3>My Collection<\/h3>\n          <div class=\"collection-grid\">\n            <article class=\"collection-card\">\n              <strong>Pileated Woodpecker<\/strong>\n              <span>Birds \u00b7 Bottomland Hardwood Forest<\/span>\n            <\/article>\n            <article class=\"collection-card\">\n              <strong>Northern Cardinal<\/strong>\n              <span>Birds \u00b7 Urban\/Suburban<\/span>\n            <\/article>\n            <article class=\"collection-card\">\n              <strong>Turkey Vulture<\/strong>\n              <span>Birds \u00b7 Coastal Prairie<\/span>\n            <\/article>\n          <\/div>\n        <\/section>\n      <\/section>\n    <\/section>\n  <\/main>\n\n  <script>\n    const topTabs = document.querySelectorAll(\".top-tab\");\n    const sideTabs = document.querySelectorAll(\".side-tab\");\n    const badgeCards = document.querySelectorAll(\".badge-card\");\n\n    topTabs.forEach(tab => {\n      tab.addEventListener(\"click\", () => {\n        topTabs.forEach(item => item.classList.remove(\"active\"));\n        tab.classList.add(\"active\");\n      });\n    });\n\n    sideTabs.forEach(tab => {\n      tab.addEventListener(\"click\", () => {\n        sideTabs.forEach(item => item.classList.remove(\"active\"));\n        tab.classList.add(\"active\");\n      });\n    });\n\n    badgeCards.forEach(card => {\n      card.addEventListener(\"click\", () => {\n        badgeCards.forEach(item => item.classList.remove(\"active\"));\n        card.classList.add(\"active\");\n      });\n    });\n  <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>My Field Book Field Book Lower Trinity Basin Chapter Back to Challenge Print Field Book Biology Ecology Water Weather Geology Land TXMN Birds2% Trees0% Wildflowers1% Mammals1% ReptilesSoon AmphibiansSoon FishSoon InsectsSoon&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/dashboard\/build-your-field-book\/my-field-book\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":200084,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200187","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"My Field Book Field Book Lower Trinity Basin Chapter Back to Challenge Print Field Book Biology Ecology Water Weather Geology Land TXMN Birds2% Trees0% Wildflowers1% Mammals1% ReptilesSoon AmphibiansSoon FishSoon InsectsSoon... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200187"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200187\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200084"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200084,"date":"2026-07-05T06:25:08","date_gmt":"2026-07-05T11:25:08","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200084"},"modified":"2026-07-06T21:07:19","modified_gmt":"2026-07-07T02:07:19","slug":"build-your-field-book","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/dashboard\/build-your-field-book\/","title":{"rendered":"Build Your Field Book"},"content":{"rendered":"\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Build Your Field Book | Lower Trinity Basin<\/title>\n  <style>\n    \/* Hide the WordPress page title wrapper when this app is embedded on a WP page. *\/\n    .entry-header,\n    .page-header,\n    .wp-block-post-title,\n    h1.entry-title,\n    .entry-title {\n      display: none !important;\n    }\n    :root {\n      --forest: #24513a;\n      --forest-dark: #173526;\n      --leaf: #6f8f4e;\n      --river: #3f7185;\n      --sand: #f4ecd8;\n      --paper: #fffaf0;\n      --bark: #6d4f35;\n      --clay: #b76e44;\n      --ink: #213027;\n      --muted: #64736a;\n      --white: #ffffff;\n      --shadow: 0 18px 40px rgba(23, 53, 38, 0.18);\n      --radius: 20px;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    body {\n      margin: 0;\n      font-family: Georgia, \"Times New Roman\", serif;\n      color: var(--ink);\n      background:\n        radial-gradient(circle at top left, rgba(111, 143, 78, 0.25), transparent 30%),\n        linear-gradient(135deg, #f8f2df 0%, #e8dfc8 100%);\n      min-height: 100vh;\n      overflow-x: hidden;\n    }\n\n    html {\n      overflow-x: hidden;\n    }\n\n    .page-shell {\n      width: 80vw;\n      max-width: none;\n      margin-left: calc(50% - 40vw);\n      margin-right: calc(50% - 40vw);\n      padding: 28px clamp(12px, 2vw, 32px) 48px;\n    }\n\n    .hero {\n      background: linear-gradient(135deg, var(--forest), var(--forest-dark));\n      color: var(--white);\n      border-radius: 28px;\n      padding: clamp(26px, 4vw, 42px);\n      box-shadow: var(--shadow);\n      position: relative;\n      overflow: hidden;\n      width: 100%;\n    }\n\n    .hero::after {\n      content: \"\";\n      position: absolute;\n      inset: auto -80px -130px auto;\n      width: 320px;\n      height: 320px;\n      border-radius: 50%;\n      background: rgba(244, 236, 216, 0.11);\n    }\n\n    .eyebrow {\n      margin: 0 0 8px;\n      text-transform: uppercase;\n      letter-spacing: 0.16em;\n      font-size: 0.78rem;\n      color: #d9e6c9;\n      font-family: Arial, sans-serif;\n      font-weight: 700;\n    }\n\n    h1, h2, h3, p {\n      margin-top: 0;\n    }\n\n    h1 {\n      font-size: clamp(2.1rem, 5vw, 4.4rem);\n      line-height: 1;\n      margin-bottom: 12px;\n    }\n\n    .hero-text {\n      max-width: 980px;\n      font-size: 1.15rem;\n      line-height: 1.6;\n      color: #f7f1dd;\n      margin-bottom: 0;\n    }\n\n    .layout {\n      display: grid;\n      grid-template-columns: minmax(0, 2.5fr) minmax(320px, 1fr);\n      gap: clamp(18px, 2vw, 32px);\n      margin-top: 24px;\n      align-items: start;\n      width: 100%;\n    }\n\n    .panel {\n      background: rgba(255, 250, 240, 0.92);\n      border: 1px solid rgba(109, 79, 53, 0.18);\n      border-radius: var(--radius);\n      box-shadow: var(--shadow);\n      padding: clamp(22px, 2.4vw, 34px);\n      min-width: 0;\n    }\n\n    .challenge-head {\n      display: flex;\n      justify-content: space-between;\n      gap: 16px;\n      align-items: flex-start;\n      margin-bottom: 18px;\n    }\n\n    .challenge-title {\n      margin: 0;\n      font-size: 1.8rem;\n      color: var(--forest-dark);\n    }\n\n    .challenge-prompt {\n      font-size: 1.08rem;\n      line-height: 1.5;\n      color: var(--bark);\n      margin-bottom: 10px;\n    }\n\n    .question-area {\n      margin-top: 18px;\n      padding: 22px;\n      border: 1px solid rgba(36, 81, 58, 0.12);\n      border-radius: 18px;\n      background: rgba(255, 253, 247, 0.72);\n      box-shadow: 0 10px 24px rgba(33, 48, 39, 0.08);\n    }\n\n    .question-section-title {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      margin: 0 0 12px;\n      color: var(--forest-dark);\n      font-size: 1.35rem;\n    }\n\n    .question-section-title::before {\n      content: \"\u25a3\";\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      width: 32px;\n      height: 32px;\n      border-radius: 9px;\n      background: var(--forest);\n      color: var(--white);\n      font-size: 0.95rem;\n      font-family: Arial, sans-serif;\n    }\n\n    .score-card {\n      min-width: 150px;\n      background: var(--forest);\n      color: var(--white);\n      border-radius: 16px;\n      padding: 14px 16px;\n      text-align: center;\n      font-family: Arial, sans-serif;\n    }\n\n    .score-card strong {\n      display: block;\n      font-size: 2rem;\n      line-height: 1;\n    }\n\n    .score-card span {\n      font-size: 0.78rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #dce8cf;\n    }\n\n    .cards-grid {\n      display: grid;\n      grid-template-columns: repeat(4, minmax(180px, 1fr));\n      gap: clamp(14px, 1.4vw, 22px);\n      width: 100%;\n    }\n\n    .choice-card {\n      border: 0;\n      background: transparent;\n      padding: 0;\n      cursor: pointer;\n      perspective: 1000px;\n      min-height: 320px;\n      font: inherit;\n      color: inherit;\n      width: 100%;\n      min-width: 0;\n    }\n\n    .choice-card:disabled {\n      cursor: default;\n    }\n\n    .choice-inner {\n      display: block;\n      position: relative;\n      width: 100%;\n      height: 100%;\n      min-height: 320px;\n      transition: transform 0.65s ease;\n      transform-style: preserve-3d;\n    }\n\n    .choice-card.flipped .choice-inner {\n      transform: rotateY(180deg);\n    }\n\n    .card-face {\n      display: block;\n      position: absolute;\n      inset: 0;\n      backface-visibility: hidden;\n      border-radius: 18px;\n      overflow: hidden;\n      border: 1px solid rgba(36, 81, 58, 0.18);\n      background: var(--paper);\n      box-shadow: 0 12px 26px rgba(33, 48, 39, 0.14);\n    }\n\n    .card-back {\n      transform: rotateY(180deg);\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      padding: 20px;\n      background: linear-gradient(180deg, #fffdf5, #efe4c9);\n    }\n\n    .species-img {\n      height: 170px;\n      background-size: cover;\n      background-position: center;\n    }\n\n    .choice-card.text-choice {\n      min-height: 220px;\n    }\n\n    .choice-card.text-choice .choice-inner {\n      min-height: 220px;\n    }\n\n    .choice-card.text-choice .card-front {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 220px;\n    }\n\n    .choice-card.text-choice .species-img {\n      display: none;\n    }\n\n    .choice-card.text-choice .species-content {\n      text-align: center;\n      padding: 26px 18px;\n      width: 100%;\n    }\n\n    .choice-card.text-choice .species-name {\n      font-size: clamp(1.25rem, 1.4vw, 1.85rem);\n      line-height: 1.15;\n    }\n\n    .species-content {\n      padding: 16px;\n      text-align: left;\n    }\n\n    .species-type {\n      display: inline-block;\n      font-family: Arial, sans-serif;\n      font-size: 0.7rem;\n      font-weight: 700;\n      letter-spacing: 0.12em;\n      text-transform: uppercase;\n      color: var(--river);\n      margin-bottom: 8px;\n    }\n\n    .species-name {\n      font-size: clamp(1.15rem, 1.35vw, 1.55rem);\n      color: var(--forest-dark);\n      margin-bottom: 6px;\n      overflow-wrap: anywhere;\n      hyphens: auto;\n    }\n\n    .species-hint {\n      font-family: Arial, sans-serif;\n      color: var(--muted);\n      font-size: clamp(0.9rem, 0.9vw, 1rem);\n      line-height: 1.35;\n      margin-bottom: 0;\n    }\n\n    .result-label {\n      display: inline-flex;\n      align-items: center;\n      width: fit-content;\n      border-radius: 999px;\n      padding: 7px 11px;\n      font-family: Arial, sans-serif;\n      font-size: 0.76rem;\n      font-weight: 700;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      margin-bottom: 12px;\n    }\n\n    .correct .result-label {\n      background: rgba(111, 143, 78, 0.18);\n      color: var(--forest);\n    }\n\n    .incorrect .result-label {\n      background: rgba(183, 110, 68, 0.18);\n      color: #8c4424;\n    }\n\n    .card-back h3 {\n      color: var(--forest-dark);\n      margin-bottom: 8px;\n    }\n\n    .card-back p {\n      line-height: 1.45;\n      color: var(--bark);\n      margin-bottom: 0;\n      font-size: 0.96rem;\n    }\n\n    .player-panel {\n      margin: 12px 0 18px;\n      padding: 18px;\n      border: 1px solid rgba(36,81,58,.18);\n      border-radius: 18px;\n      background: rgba(246,239,217,.72);\n    }\n\n    .player-grid {\n      display:grid;\n      grid-template-columns:repeat(2,minmax(0,1fr));\n      gap:12px;\n      margin:16px 0;\n    }\n\n    .player-field {\n      display:flex;\n      flex-direction:column;\n      gap:6px;\n    }\n\n    .player-field label {\n      font:700 .75rem Arial,sans-serif;\n      text-transform:uppercase;\n      color:var(--forest);\n    }\n\n    .player-field input {\n      padding:10px 14px;\n      border-radius:999px;\n      border:1px solid rgba(36,81,58,.25);\n    }\n\n    .player-actions {\n      display:flex;\n      gap:10px;\n      flex-wrap:wrap;\n    }\n\n    .game-start-panel {\n      margin: 0 0 18px;\n      padding: 18px;\n      border: 1px solid rgba(36,81,58,.18);\n      border-radius: 18px;\n      background: rgba(255,253,247,.72);\n    }\n\n    .category-select-wrap {\n      display: flex;\n      flex-direction: column;\n      gap: 6px;\n      max-width: 360px;\n      margin-bottom: 14px;\n    }\n\n    .category-select-wrap label {\n      font: 700 .75rem Arial,sans-serif;\n      text-transform: uppercase;\n      color: var(--forest);\n    }\n\n    .category-select-wrap select {\n      padding: 11px 14px;\n      border-radius: 999px;\n      border: 1px solid rgba(36,81,58,.25);\n      background: #fffdf6;\n      color: var(--ink);\n      font: 700 .95rem Arial,sans-serif;\n    }\n\n    .category-progress {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n      gap: 8px;\n      margin-top: 12px;\n      font-family: Arial, sans-serif;\n    }\n\n    .category-progress-item {\n      border: 1px solid rgba(36,81,58,.16);\n      border-radius: 12px;\n      background: #fffdf6;\n      padding: 9px 11px;\n    }\n\n    .category-progress-item strong {\n      display: block;\n      color: var(--forest-dark);\n      font-size: .88rem;\n      margin-bottom: 2px;\n    }\n\n    .category-progress-item span {\n      color: var(--muted);\n      font-size: .82rem;\n    }\n\n    .category-progress-item.unavailable {\n      opacity: 0.58;\n      background: rgba(255,253,246,.62);\n    }\n\n    .category-progress-item .availability-note {\n      display: block;\n      margin-top: 3px;\n      color: var(--clay);\n      font-weight: 700;\n    }\n\n    .category-progress-item.complete {\n      border-color: rgba(111,143,78,.46);\n      background: rgba(217,230,201,.55);\n    }\n\n    .player-message {\n      margin-top:12px;\n      color:var(--muted);\n      font-family:Arial,sans-serif;\n    }\n\n    .controls {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 12px;\n      margin-top: 22px;\n    }\n\n    .btn {\n      border: 0;\n      border-radius: 999px;\n      padding: 12px 18px;\n      background: var(--forest);\n      color: var(--white);\n      font-family: Arial, sans-serif;\n      font-weight: 700;\n      cursor: pointer;\n      text-decoration: none;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n    }\n\n    .btn.secondary {\n      background: var(--river);\n    }\n\n    .btn.ghost {\n      background: transparent;\n      color: var(--forest);\n      border: 1px solid rgba(36, 81, 58, 0.35);\n    }\n\n    .btn:disabled {\n      opacity: 0.5;\n      cursor: default;\n    }\n\n    .sidebar-title {\n      color: var(--forest-dark);\n      margin-bottom: 12px;\n    }\n\n    .stats {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 10px;\n      margin-bottom: 22px;\n    }\n\n    .stat {\n      background: #f6efd9;\n      border-radius: 14px;\n      padding: 12px;\n      font-family: Arial, sans-serif;\n      border: 1px solid rgba(109, 79, 53, 0.12);\n    }\n\n    .stat strong {\n      display: block;\n      font-size: 1.45rem;\n      color: var(--forest);\n    }\n\n    .stat span {\n      color: var(--muted);\n      font-size: 0.78rem;\n      text-transform: uppercase;\n      letter-spacing: 0.07em;\n      font-weight: 700;\n    }\n\n    .dashboard-section {\n      margin-top: 22px;\n    }\n\n    .dashboard-progress-list {\n      display: grid;\n      gap: 12px;\n    }\n\n    .dashboard-progress-card {\n      background: #fffdf6;\n      border: 1px solid rgba(36, 81, 58, 0.14);\n      border-radius: 14px;\n      padding: 12px;\n      font-family: Arial, sans-serif;\n    }\n\n    .dashboard-progress-head {\n      display: flex;\n      justify-content: space-between;\n      gap: 10px;\n      align-items: baseline;\n      margin-bottom: 7px;\n    }\n\n    .dashboard-progress-head strong {\n      color: var(--forest-dark);\n      font-size: 0.95rem;\n    }\n\n    .dashboard-progress-head span {\n      color: var(--forest);\n      font-weight: 800;\n      font-size: 0.92rem;\n    }\n\n    .progress-bar-shell {\n      width: 100%;\n      height: 10px;\n      background: rgba(36,81,58,.12);\n      border-radius: 999px;\n      overflow: hidden;\n      margin-bottom: 7px;\n    }\n\n    .progress-bar-fill {\n      height: 100%;\n      width: 0%;\n      background: var(--forest);\n      border-radius: 999px;\n    }\n\n    .dashboard-progress-meta {\n      color: var(--muted);\n      font-size: 0.82rem;\n      line-height: 1.35;\n    }\n\n    .latest-discovery-card {\n      background: #fffdf6;\n      border: 1px solid rgba(36, 81, 58, 0.14);\n      border-radius: 14px;\n      padding: 12px;\n      font-family: Arial, sans-serif;\n    }\n\n    .latest-discovery-card strong {\n      display: block;\n      color: var(--forest-dark);\n      margin-bottom: 3px;\n    }\n\n    .latest-discovery-card span {\n      color: var(--muted);\n      font-size: 0.9rem;\n    }\n\n    .field-list,\n    .badge-list {\n      display: grid;\n      gap: 10px;\n    }\n\n    .field-entry,\n    .badge-entry {\n      background: #fffdf6;\n      border: 1px solid rgba(36, 81, 58, 0.14);\n      border-radius: 14px;\n      padding: 12px;\n      font-family: Arial, sans-serif;\n    }\n\n    .field-entry strong,\n    .badge-entry strong {\n      display: block;\n      color: var(--forest-dark);\n      margin-bottom: 3px;\n    }\n\n    .field-entry span,\n    .badge-entry span {\n      color: var(--muted);\n      font-size: 0.9rem;\n    }\n\n    .empty-note {\n      color: var(--muted);\n      line-height: 1.45;\n      font-family: Arial, sans-serif;\n    }\n\n    .print-section {\n      margin-top: 24px;\n    }\n\n    .print-cover {\n      border: 2px solid var(--forest);\n      border-radius: var(--radius);\n      padding: 26px;\n      background: var(--paper);\n      margin-bottom: 18px;\n    }\n\n    .print-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n    }\n\n    .print-entry {\n      border: 1px solid rgba(36, 81, 58, 0.22);\n      border-radius: 16px;\n      overflow: hidden;\n      background: #fffdf7;\n      break-inside: avoid;\n    }\n\n    .print-entry-main {\n      display: grid;\n      grid-template-columns: 120px minmax(0, 1fr);\n      gap: 14px;\n      padding: 14px;\n      align-items: start;\n    }\n\n    .print-photo-frame {\n      width: 120px;\n      height: 95px;\n      display: block;\n      border: 1px solid rgba(36,81,58,.18);\n      border-radius: 12px;\n      background: linear-gradient(135deg, #d9e6c9, #f6efd9);\n      overflow: hidden;\n    }\n\n    .print-photo {\n      width: 120px;\n      height: 95px;\n      object-fit: cover;\n      display: block;\n    }\n\n    .print-entry-body {\n      padding: 0;\n    }\n\n    .print-entry-body h3 {\n      margin-bottom: 5px;\n      color: var(--forest-dark);\n    }\n\n    .print-entry-body em {\n      color: var(--muted);\n      display: block;\n      margin-bottom: 8px;\n    }\n\n    .notes-lines {\n      border-top: 1px solid rgba(36,81,58,.14);\n      padding: 10px 14px 12px;\n      color: var(--muted);\n      font-family: Arial, sans-serif;\n      font-size: 0.88rem;\n    }\n\n    .learned-items {\n      margin-top: 8px;\n      padding-left: 18px;\n      color: var(--bark);\n      font-size: 0.9rem;\n      line-height: 1.35;\n    }\n\n    .learned-items li {\n      margin-bottom: 3px;\n    }\n\n    .badge-print-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 14px;\n      margin-top: 14px;\n    }\n\n    .badge-print {\n      border: 2px dashed var(--leaf);\n      border-radius: 18px;\n      padding: 18px;\n      text-align: center;\n      background: #fffdf7;\n      min-height: 135px;\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n    }\n\n    .badge-icon {\n      font-size: 2rem;\n      margin-bottom: 8px;\n    }\n\n    .hidden {\n      display: none !important;\n    }\n\n\n\n    @media (max-width: 1250px) {\n      .layout {\n        grid-template-columns: 1fr;\n      }\n\n      .cards-grid {\n        grid-template-columns: repeat(4, minmax(180px, 1fr));\n      }\n    }\n\n    @media (max-width: 920px) {\n      .layout {\n        grid-template-columns: 1fr;\n      }\n\n      .cards-grid {\n        grid-template-columns: repeat(2, minmax(220px, 1fr));\n      }\n    }\n\n    @media (max-width: 560px) {\n      .hero {\n        padding: 24px;\n      }\n\n      .challenge-head {\n        flex-direction: column;\n      }\n\n      .score-card {\n        width: 100%;\n      }\n\n      .question-area {\n        padding: 16px;\n      }\n\n      .question-section-title {\n        font-size: 1.15rem;\n      }\n\n      .cards-grid,\n      .print-grid,\n      .badge-print-grid,\n      .player-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media print {\n      @page {\n        size: letter portrait;\n        margin: 0.5in;\n      }\n\n      html,\n      body {\n        background: white !important;\n        color: #213027 !important;\n        margin: 0 !important;\n        padding: 0 !important;\n        overflow: visible !important;\n      }\n\n      body * {\n        visibility: hidden !important;\n      }\n\n      #printSection,\n      #printSection * {\n        visibility: visible !important;\n      }\n\n      #printSection {\n        display: block !important;\n        position: absolute !important;\n        left: 0 !important;\n        top: 0 !important;\n        width: 100% !important;\n        margin: 0 !important;\n        padding: 0 !important;\n        background: white !important;\n      }\n\n      .page-shell {\n        width: 100% !important;\n        max-width: none !important;\n        margin: 0 !important;\n        padding: 0 !important;\n      }\n\n      .print-cover {\n        border: 2px solid #24513a !important;\n        border-radius: 14px !important;\n        padding: 18px !important;\n        margin: 0 0 18px !important;\n        background: #fffaf0 !important;\n        box-shadow: none !important;\n        break-inside: avoid;\n      }\n\n      .print-cover h2 {\n        font-size: 24pt !important;\n        line-height: 1.1 !important;\n        color: #4f7b24 !important;\n        margin: 0 0 12px !important;\n      }\n\n      .print-cover p {\n        font-size: 11pt !important;\n        line-height: 1.4 !important;\n      }\n\n      .print-grid {\n        display: grid !important;\n        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n        gap: 12px !important;\n      }\n\n      .print-entry {\n        border: 1px solid rgba(36, 81, 58, 0.28) !important;\n        border-radius: 12px !important;\n        background: #fffdf7 !important;\n        box-shadow: none !important;\n        overflow: hidden !important;\n        min-height: 0 !important;\n        break-inside: avoid;\n        page-break-inside: avoid;\n      }\n\n      .print-entry-main {\n        display: grid !important;\n        grid-template-columns: 105px minmax(0, 1fr) !important;\n        gap: 10px !important;\n        padding: 10px !important;\n        align-items: start !important;\n      }\n\n      .print-photo-frame {\n        width: 105px !important;\n        height: 82px !important;\n        display: block !important;\n        border: 1px solid rgba(36,81,58,.18) !important;\n        border-radius: 10px !important;\n        background: linear-gradient(135deg, #d9e6c9, #f6efd9) !important;\n        overflow: hidden !important;\n      }\n\n      .print-photo {\n        width: 105px !important;\n        height: 82px !important;\n        object-fit: cover !important;\n        display: block !important;\n      }\n\n      .print-entry-body {\n        padding: 0 !important;\n      }\n\n      .print-entry-body h3 {\n        font-size: 15pt !important;\n        line-height: 1.1 !important;\n        margin: 0 0 3px !important;\n        color: #173526 !important;\n      }\n\n      .print-entry-body em,\n      .print-entry-body p,\n      .notes-lines {\n        font-size: 8.8pt !important;\n        line-height: 1.28 !important;\n      }\n\n      .print-entry-body p {\n        margin: 4px 0 !important;\n      }\n\n      .notes-lines {\n        border-top: 1px solid rgba(36,81,58,.14) !important;\n        padding: 7px 10px 9px !important;\n      }\n\n      .badge-print-grid {\n        display: grid !important;\n        grid-template-columns: repeat(3, 1fr) !important;\n        gap: 12px !important;\n      }\n\n      .badge-print {\n        border: 2px dashed #6f8f4e !important;\n        border-radius: 14px !important;\n        box-shadow: none !important;\n        background: #fffdf7 !important;\n        break-inside: avoid;\n        page-break-inside: avoid;\n      }\n\n      a[href]::after {\n        content: \"\" !important;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <main class=\"page-shell\">\n    <section class=\"hero\">\n      <p class=\"eyebrow\">Lower Trinity Basin Naturalist Challenge<\/p>\n      <h1>Build Your Field Book<\/h1>\n      <p class=\"hero-text\">Identify local species and habitats, add discoveries to your personal field book, earn badges, and print a keepsake guide for future hikes and chapter outings.<\/p>\n    <\/section>\n\n    <section class=\"layout\" aria-label=\"Field book challenge game\">\n      <div class=\"panel\">\n        <div class=\"challenge-head\">\n          <div>\n            <p class=\"eyebrow\" style=\"color: var(--river);\">Discovery Challenge<\/p>\n            <h2 class=\"challenge-title\" id=\"challengeTitle\">Which discovery matches the field note?<\/h2>\n          <\/div>\n          <div class=\"score-card\" aria-live=\"polite\">\n            <strong id=\"scoreValue\">0<\/strong>\n            <span>Nature Points<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"player-panel no-print\">\n          <h3>Play as Guest<\/h3>\n          <p>Play immediately, or save your progress after you begin building your Field Book.<\/p>\n\n          <div class=\"player-grid\">\n            <div class=\"player-field\">\n              <label for=\"playerNameInput\">Name<\/label>\n              <input id=\"playerNameInput\" type=\"text\" placeholder=\"Your name\">\n            <\/div>\n\n            <div class=\"player-field\">\n              <label for=\"playerEmailInput\">Email (optional)<\/label>\n              <input id=\"playerEmailInput\" type=\"email\" placeholder=\"you@example.com\">\n            <\/div>\n\n            <div class=\"player-field\">\n              <label for=\"playerCodeInput\">Returning Player Code<\/label>\n              <input id=\"playerCodeInput\" type=\"text\" placeholder=\"LTB-12345\">\n            <\/div>\n          <\/div>\n\n          <div class=\"player-actions\">\n            <button class=\"btn ghost\" type=\"button\" id=\"guestPlayerBtn\">Play as Guest<\/button>\n            <button class=\"btn\" type=\"button\" id=\"newPlayerBtn\">New Player<\/button>\n            <button class=\"btn secondary\" type=\"button\" id=\"loadPlayerBtn\">Load Player<\/button>\n            <button class=\"btn hidden\" type=\"button\" id=\"savePlayerBtn\">Save New Player<\/button>\n          <\/div>\n\n          <p class=\"player-message\">Enter your name to save this Field Book, or enter a player code to load an existing profile.<\/p>\n        <\/div>\n\n        <div class=\"game-start-panel no-print\">\n          <div class=\"category-select-wrap\">\n            <label for=\"categorySelect\">Choose Category<\/label>\n            <select id=\"categorySelect\">\n              <option value=\"random\">Random<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"category-select-wrap\">\n            <label for=\"questionModeSelect\">Challenge Mode<\/label>\n            <select id=\"questionModeSelect\">\n              <option value=\"learning\">Learning Mode \u2014 skip mastered questions<\/option>\n              <option value=\"review\">Review Mode \u2014 include mastered questions<\/option>\n            <\/select>\n          <\/div>\n          <button class=\"btn\" id=\"beginBtn\" type=\"button\" disabled>Begin<\/button>\n          <div class=\"category-progress\" id=\"categoryProgress\" aria-live=\"polite\"><\/div>\n        <\/div>\n\n        <div class=\"question-area\">\n          <h3 class=\"question-section-title\">Field Note Question<\/h3>\n          <p class=\"challenge-prompt\" id=\"challengePrompt\">Choose a category, then click Begin.<\/p>\n          <div class=\"cards-grid\" id=\"cardsGrid\" aria-label=\"Answer choices\"><\/div>\n        <\/div>\n\n        <div class=\"controls no-print\">\n          <button class=\"btn\" id=\"nextBtn\" type=\"button\" disabled>Next Discovery<\/button>\n          <button class=\"btn secondary\" id=\"printBtn\" type=\"button\">Print Field Book<\/button>\n          <button class=\"btn ghost\" id=\"resetBtn\" type=\"button\">Reset Demo<\/button>\n        <\/div>\n      <\/div>\n\n      <aside class=\"panel\" aria-label=\"Player field book progress\">\n        <h2 class=\"sidebar-title\">My Field Book<\/h2>\n        <div class=\"stats\">\n          <div class=\"stat\"><strong id=\"entryCount\">0<\/strong><span>Discoveries<\/span><\/div>\n          <div class=\"stat\"><strong id=\"badgeCount\">0<\/strong><span>Badges<\/span><\/div>\n          <div class=\"stat\"><strong id=\"streakCount\">0<\/strong><span>Streak<\/span><\/div>\n          <div class=\"stat\"><strong id=\"roundCount\">0<\/strong><span>Rounds<\/span><\/div>\n        <\/div>\n\n        <div class=\"dashboard-section\">\n          <h3 class=\"sidebar-title\">Current Studies<\/h3>\n          <div class=\"dashboard-progress-list\" id=\"dashboardProgressList\">\n            <p class=\"empty-note\">Progress bars will appear after the field book data loads.<\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"dashboard-section\">\n          <h3 class=\"sidebar-title\">Latest Discovery<\/h3>\n          <div class=\"latest-discovery-card\" id=\"latestDiscoveryCard\">\n            <strong>No discoveries yet<\/strong>\n            <span>Correct answers will build your field book.<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"dashboard-section\">\n          <h3 class=\"sidebar-title\">Recent Badges<\/h3>\n          <div class=\"badge-list\" id=\"badgeList\">\n            <p class=\"empty-note\">Earn badges by building your field book.<\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"field-list hidden\" id=\"fieldList\">\n          <p class=\"empty-note\">Correct answers will be added here as discoveries.<\/p>\n        <\/div>\n      <\/aside>\n    <\/section>\n\n    <section class=\"print-section hidden\" id=\"printSection\" aria-label=\"Printable field book\">\n      <div class=\"print-cover\">\n        <p class=\"eyebrow\" style=\"color: var(--river);\">Printable Field Book<\/p>\n        <h2>My Lower Trinity Basin Field Book<\/h2>\n        <p>This field book was built through the Discovery Challenge. Use it as a starter reference for hikes, chapter outings, and personal observations.<\/p>\n        <p><strong>Total Nature Points:<\/strong> <span id=\"printScore\">0<\/span><\/p>\n        <p><strong>Discoveries:<\/strong> <span id=\"printEntries\">0<\/span><\/p>\n      <\/div>\n\n      <div class=\"print-grid\" id=\"printEntriesGrid\"><\/div>\n\n      <div class=\"print-cover\" style=\"margin-top: 22px; page-break-before: always;\">\n        <p class=\"eyebrow\" style=\"color: var(--river);\">Achievement Page<\/p>\n        <h2>Badges Earned<\/h2>\n        <p>These badges recognize progress in learning local species and habitats.<\/p>\n        <div class=\"badge-print-grid\" id=\"printBadgesGrid\"><\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n\n  <script>\n    const API_URL = \"https:\/\/script.google.com\/macros\/s\/AKfycbwiB2sEuGXc3tJb3s9RluB-9hqTYhqhCGuURU_zGvgrpMbPpeMODGs-sUx9nfHDMj-L\/exec\";\n\n    let species = [];\n    let questions = [];\n    let images = [];\n    let badges = [];\n    let categories = [];\n    let habitats = [];\n\n    const state = {\n      player: null,\n      score: 0,\n      streak: 0,\n      rounds: 0,\n      currentQuestion: null,\n      currentAnswer: null,\n      answered: false,\n      fieldBook: [],\n      earnedBadges: [],\n      selectedCategoryId: \"random\",\n      gameStarted: false,\n      questionMode: \"learning\",\n      lastChoiceOrder: \"\"\n    };\n\n    const cardsGrid = document.getElementById(\"cardsGrid\");\n    const challengePrompt = document.getElementById(\"challengePrompt\");\n    const scoreValue = document.getElementById(\"scoreValue\");\n    const entryCount = document.getElementById(\"entryCount\");\n    const badgeCount = document.getElementById(\"badgeCount\");\n    const streakCount = document.getElementById(\"streakCount\");\n    const roundCount = document.getElementById(\"roundCount\");\n    const fieldList = document.getElementById(\"fieldList\");\n    const dashboardProgressList = document.getElementById(\"dashboardProgressList\");\n    const latestDiscoveryCard = document.getElementById(\"latestDiscoveryCard\");\n    const badgeList = document.getElementById(\"badgeList\");\n    const nextBtn = document.getElementById(\"nextBtn\");\n    const printBtn = document.getElementById(\"printBtn\");\n    const resetBtn = document.getElementById(\"resetBtn\");\n    const printSection = document.getElementById(\"printSection\");\n    const playerNameInput = document.getElementById(\"playerNameInput\");\n    const playerEmailInput = document.getElementById(\"playerEmailInput\");\n    const playerCodeInput = document.getElementById(\"playerCodeInput\");\n    const savePlayerBtn = document.getElementById(\"savePlayerBtn\");\n    const loadPlayerBtn = document.getElementById(\"loadPlayerBtn\");\n    const guestPlayerBtn = document.getElementById(\"guestPlayerBtn\");\n    const newPlayerBtn = document.getElementById(\"newPlayerBtn\");\n    const beginBtn = document.getElementById(\"beginBtn\");\n    const categorySelect = document.getElementById(\"categorySelect\");\n    const questionModeSelect = document.getElementById(\"questionModeSelect\");\n    const categoryProgress = document.getElementById(\"categoryProgress\");\n    const playerPanel = document.querySelector(\".player-panel\");\n    const playerPanelTitle = playerPanel.querySelector(\"h3\");\n    const playerPanelText = playerPanel.querySelector(\"p\");\n    const playerMessage = playerPanel.querySelector(\".player-message\");\n\n    function shuffle(array) {\n      return [...array].sort(() => Math.random() - 0.5);\n    }\n\n    function getShuffledChoicesForQuestion(question) {\n      const choices = question.choices.map(choice => getChoiceSpecies(choice, question));\n      let shuffledChoices = shuffle(choices);\n      let orderKey = shuffledChoices.map(choice => choice.choiceKey || choice.choiceText || choice.name).join(\"|\");\n      let attempts = 0;\n\n      while (choices.length > 1 && orderKey === state.lastChoiceOrder && attempts < 10) {\n        shuffledChoices = shuffle(choices);\n        orderKey = shuffledChoices.map(choice => choice.choiceKey || choice.choiceText || choice.name).join(\"|\");\n        attempts += 1;\n      }\n\n      state.lastChoiceOrder = orderKey;\n      return shuffledChoices;\n    }\n\n    function clean(value) {\n      return String(value ?? \"\").trim();\n    }\n\n    function normalize(value) {\n      return clean(value).toLowerCase();\n    }\n\n    function parseBooleanField(value, defaultValue = false) {\n      const normalizedValue = normalize(value);\n\n      if (normalizedValue === \"\") return defaultValue;\n      return normalizedValue === \"true\" || normalizedValue === \"yes\" || normalizedValue === \"1\" || normalizedValue === \"y\";\n    }\n\n    function generatePlayerCode() {\n      return `LTB-${Math.floor(10000 + Math.random() * 90000)}`;\n    }\n\n    function setPlayerMessage(message) {\n      playerMessage.textContent = message;\n    }\n\n    function updatePlayerPanel() {\n      if (state.player) {\n        playerPanelTitle.textContent = `Playing as ${state.player.name}`;\n        playerPanelText.textContent = `Player Code: ${state.player.code}. Keep this code to reload your Field Book later.`;\n        playerNameInput.value = state.player.name || \"\";\n        playerEmailInput.value = state.player.email || \"\";\n        playerCodeInput.value = state.player.code || \"\";\n        savePlayerBtn.classList.add(\"hidden\");\n        setPlayerMessage(\"Player profile is active. Progress can now be saved to Google Sheets.\");\n        return;\n      }\n\n      if (!savePlayerBtn.classList.contains(\"hidden\")) {\n        playerPanelTitle.textContent = \"New Player\";\n        playerPanelText.textContent = \"Enter your name and optional email, then save to create a player code.\";\n        setPlayerMessage(\"New players need a name. Email is optional.\");\n        return;\n      }\n\n      playerPanelTitle.textContent = \"Play as Guest\";\n      playerPanelText.textContent = \"Play immediately, or save your progress after you begin building your Field Book.\";\n      setPlayerMessage(\"Enter your name to save this Field Book, or enter a player code to load an existing profile.\");\n    }\n\n    function showNewPlayerForm() {\n      state.player = null;\n      playerNameInput.value = \"\";\n      playerEmailInput.value = \"\";\n      playerCodeInput.value = \"\";\n      playerPanelTitle.textContent = \"New Player\";\n      playerPanelText.textContent = \"Enter your name and optional email, then save to create a player code.\";\n      savePlayerBtn.classList.remove(\"hidden\");\n      setPlayerMessage(\"New players need a name. Email is optional.\");\n      playerNameInput.focus();\n    }\n\n    function playAsGuest() {\n      state.player = null;\n      savePlayerBtn.classList.add(\"hidden\");\n      updatePlayerPanel();\n      setPlayerMessage(\"Guest mode active. You can play now, then create a player profile later if you want to save progress.\");\n    }\n\n    function populateCategorySelect() {\n      const categoryOptions = getCategoryProgressData(false);\n\n      categorySelect.innerHTML = '<option value=\"random\">Random<\/option>' + categoryOptions.map(category => {\n        const disabled = category.questionCount === 0 ? \" disabled\" : \"\";\n        const label = category.questionCount === 0 ? `${category.name} \u2014 Coming Soon` : category.name;\n        return `<option value=\"${escapeAttribute(category.id)}\"${disabled}>${escapeHtml(label)}<\/option>`;\n      }).join(\"\");\n    }\n\n\n    function getCategoryProgressData(onlyWithSpecies = true) {\n      return categories.map(row => {\n        const id = clean(getFirst(row, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]));\n        const name = clean(getFirst(row, [\"CategoryName\", \"Category Name\", \"Name\", \"Category\"]));\n        const categorySpecies = species.filter(item => {\n          const rawCategoryId = item.raw ? clean(getFirst(item.raw, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"])) : \"\";\n          return normalize(rawCategoryId) === normalize(id);\n        });\n        const discovered = categorySpecies.filter(item => state.fieldBook.some(entry => normalize(entry.id) === normalize(item.id))).length;\n        const categoryQuestions = questions.filter(question => {\n          const questionSpecies = findSpeciesById(question.speciesId);\n          const rawCategoryId = questionSpecies && questionSpecies.raw\n            ? clean(getFirst(questionSpecies.raw, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]))\n            : \"\";\n\n          return normalize(rawCategoryId) === normalize(id);\n        });\n        const questionCount = categoryQuestions.length;\n        const masteredQuestionIds = getMasteredQuestionIds();\n        const masteredQuestionCount = categoryQuestions.filter(question => {\n          const questionId = clean(question.id);\n          return questionId && masteredQuestionIds.has(normalize(questionId));\n        }).length;\n        const completionPercent = questionCount > 0 ? Math.round((masteredQuestionCount \/ questionCount) * 100) : 0;\n\n        return {\n          id,\n          name,\n          discovered,\n          total: categorySpecies.length,\n          questionCount,\n          masteredQuestionCount,\n          completionPercent\n        };\n      }).filter(category => {\n        if (!category.id || !category.name) return false;\n        return onlyWithSpecies ? category.total > 0 : true;\n      });\n    }\n\n    function updateCategoryProgress() {\n      const progressData = getCategoryProgressData(false);\n\n      if (progressData.length === 0) {\n        categoryProgress.innerHTML = '<div class=\"category-progress-item\"><strong>Progress<\/strong><span>No category progress available yet.<\/span><\/div>';\n        return;\n      }\n\n      categoryProgress.innerHTML = progressData.map(category => {\n        const statusText = category.questionCount === 0\n          ? \"Coming Soon\"\n          : `${category.discovered}\/${category.total} discovered \u00b7 ${category.masteredQuestionCount}\/${category.questionCount} mastered \u00b7 ${category.completionPercent}%`;\n        const unavailableClass = category.questionCount === 0 ? \" unavailable\" : \"\";\n        const completeClass = category.questionCount > 0 && category.masteredQuestionCount === category.questionCount ? \" complete\" : \"\";\n        const noteClass = category.questionCount === 0 ? ' class=\"availability-note\"' : \"\";\n\n        return `\n          <div class=\"category-progress-item${unavailableClass}${completeClass}\">\n            <strong>${escapeHtml(category.name)}<\/strong>\n            <span${noteClass}>${escapeHtml(statusText)}<\/span>\n          <\/div>\n        `;\n      }).join(\"\");\n    }\n\n    async function saveLocalPlayer() {\n      const name = clean(playerNameInput.value);\n      const email = clean(playerEmailInput.value);\n\n      if (!name) {\n        setPlayerMessage(\"Enter a name before saving your Field Book.\");\n        playerNameInput.focus();\n        return;\n      }\n\n      const code = state.player ? state.player.code : generatePlayerCode();\n      savePlayerBtn.disabled = true;\n      setPlayerMessage(\"Saving player profile to Google Sheets...\");\n\n      try {\n        const result = await apiAction(\"savePlayer\", {\n          playerName: name,\n          email,\n          playerCode: code,\n          naturePoints: state.score,\n          totalDiscoveries: state.fieldBook.length,\n          badgesEarned: state.earnedBadges.join(\",\")\n        });\n\n        if (!result.success || !result.player) {\n          throw new Error(result.error || \"Player profile could not be saved.\");\n        }\n\n        state.player = normalizePlayer(result.player);\n        updatePlayerPanel();\n\n        if (state.fieldBook.length > 0) {\n          setPlayerMessage(`Saved to Google Sheets. Your player code is ${state.player.code}. Future answers will save automatically.`);\n        } else {\n          setPlayerMessage(`Saved to Google Sheets. Your player code is ${state.player.code}.`);\n        }\n      } catch (error) {\n        state.player = {\n          id: code,\n          name,\n          email,\n          code\n        };\n\n        updatePlayerPanel();\n        setPlayerMessage(`Could not save to Google Sheets yet. Local player code created: ${code}. Check the Apps Script savePlayer action.`);\n        console.warn(error);\n      } finally {\n        savePlayerBtn.disabled = false;\n      }\n    }\n\n    async function loadLocalPlayer() {\n      const code = clean(playerCodeInput.value);\n\n      if (!code) {\n        setPlayerMessage(\"Enter your player code first.\");\n        playerCodeInput.focus();\n        return;\n      }\n\n      loadPlayerBtn.disabled = true;\n      setPlayerMessage(\"Loading player profile from Google Sheets...\");\n\n      try {\n        const result = await apiAction(\"loadPlayer\", { playerCode: code });\n\n        if (!result.success || !result.player) {\n          throw new Error(result.error || \"Player code not found.\");\n        }\n\n        state.player = normalizePlayer(result.player);\n\n        state.score = Number(result.player.NaturePoints || result.player.naturePoints || 0);\n        state.streak = 0;\n        state.rounds = 0;\n\n        const discoveryRows = Array.isArray(result.discoveries)\n          ? result.discoveries\n          : Array.isArray(result.Discoveries)\n            ? result.Discoveries\n            : Array.isArray(result.fieldBook)\n              ? result.fieldBook\n              : [];\n\n        if (discoveryRows.length > 0) {\n          state.fieldBook = buildFieldBookFromDiscoveryRows(discoveryRows);\n        }\n\n        updatePlayerPanel();\n        updateDisplay();\n        setPlayerMessage(`Welcome back, ${state.player.name}.`);\n      } catch (error) {\n        setPlayerMessage(`Unable to load that player code: ${error.message}`);\n        console.warn(error);\n      } finally {\n        loadPlayerBtn.disabled = false;\n      }\n    }\n\n    function isActive(row) {\n      const value = normalize(row.Active);\n      return value === \"\" || value === \"true\" || value === \"yes\" || value === \"active\" || value === \"1\";\n    }\n\n    function getFirst(row, keys, fallback = \"\") {\n      for (const key of keys) {\n        if (row[key] !== undefined && row[key] !== null && String(row[key]).trim() !== \"\") {\n          return row[key];\n        }\n      }\n\n      const normalizedLookup = Object.keys(row).reduce((lookup, key) => {\n        const normalizedKey = normalize(key).replace(\/[^a-z0-9]\/g, \"\");\n        lookup[normalizedKey] = row[key];\n        return lookup;\n      }, {});\n\n      for (const key of keys) {\n        const normalizedKey = normalize(key).replace(\/[^a-z0-9]\/g, \"\");\n        const value = normalizedLookup[normalizedKey];\n\n        if (value !== undefined && value !== null && String(value).trim() !== \"\") {\n          return value;\n        }\n      }\n\n      return fallback;\n    }\n\n    function loadJsonp(url) {\n      return new Promise((resolve, reject) => {\n        const callbackName = `fieldBookCallback_${Date.now()}_${Math.floor(Math.random() * 100000)}`;\n        const separator = url.includes(\"?\") ? \"&\" : \"?\";\n        const script = document.createElement(\"script\");\n\n        window[callbackName] = payload => {\n          delete window[callbackName];\n          script.remove();\n          resolve(payload);\n        };\n\n        script.onerror = () => {\n          delete window[callbackName];\n          script.remove();\n          reject(new Error(\"Could not reach the Apps Script web app.\"));\n        };\n\n        script.src = `${url}${separator}callback=${callbackName}`;\n        document.body.appendChild(script);\n      });\n    }\n\n    function buildQuery(params) {\n      return Object.entries(params)\n        .filter(([, value]) => value !== undefined && value !== null && value !== \"\")\n        .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n        .join(\"&\");\n    }\n\n    async function apiAction(action, params = {}) {\n      const query = buildQuery({ action, ...params });\n      return loadJsonp(`${API_URL}?${query}`);\n    }\n\n    function normalizePlayer(player) {\n      return {\n        id: clean(player.PlayerID || player.playerId || player.id || player.PlayerCode || player.playerCode),\n        name: clean(player.PlayerName || player.playerName || player.name || \"Returning Player\"),\n        email: clean(player.Email || player.email),\n        code: clean(player.PlayerCode || player.playerCode || player.code)\n      };\n    }\n\n    async function loadGameData() {\n      challengePrompt.textContent = \"Loading field book data...\";\n      cardsGrid.innerHTML = \"\";\n      nextBtn.disabled = true;\n      beginBtn.disabled = true;\n\n      const result = await loadJsonp(`${API_URL}?action=gameData`);\n\n      if (!result.success || !result.data) {\n        throw new Error(\"The game data did not load correctly.\");\n      }\n\n      const data = result.data;\n      categories = data.Categories || [];\n      habitats = data.Habitats || [];\n      images = (data.Images || []).filter(isActive).map(normalizeImageRow);\n      badges = (data.Badges || []).filter(isActive).map(normalizeBadgeRow);\n      species = (data.Species || []).filter(isActive).map(normalizeSpeciesRow);\n      questions = (data.Questions || []).filter(isActive).map(normalizeQuestionRow);\n\n      species = species.map(item => ({\n        ...item,\n        image: getPrimaryImageForSpecies(item.id)\n      }));\n\n      questions = questions.filter(question => {\n        return question.text && question.choices.length === 4 && question.correctAnswer;\n      });\n\n      if (species.length === 0 || questions.length === 0) {\n        throw new Error(\"The Species or Questions tab does not have enough usable data yet.\");\n      }\n\n      populateCategorySelect();\n      updateCategoryProgress();\n      beginBtn.disabled = false;\n      challengePrompt.textContent = \"Choose a category, then click Begin.\";\n      updateDisplay();\n    }\n\n    function normalizeSpeciesRow(row) {\n      const id = clean(getFirst(row, [\"SpeciesID\", \"Species ID\", \"id\"]));\n      const categoryId = clean(getFirst(row, [\"CategoryID\", \"Category\", \"Category ID\"]));\n      const habitatId = clean(getFirst(row, [\"HabitatID\", \"Habitat ID\", \"HabitatId\"]));\n\n      return {\n        id,\n        name: clean(getFirst(row, [\"CommonName\", \"Common Name\", \"Name\"])),\n        scientific: clean(getFirst(row, [\"ScientificName\", \"Scientific Name\"])),\n        category: lookupCategoryName(categoryId) || categoryId,\n        habitat: lookupHabitatName(habitatId) || habitatId,\n        difficulty: clean(getFirst(row, [\"Difficulty\"])),\n        description: clean(getFirst(row, [\"Description\", \"FieldNote\", \"Field Note\"])),\n        fact: clean(getFirst(row, [\"ShortFact\", \"Short Fact\", \"Fact\", \"Description\"])),\n        idTips: clean(getFirst(row, [\"IDTips\", \"ID Tips\"])),\n        raw: row\n      };\n    }\n\n    function normalizeQuestionRow(row) {\n      const choiceDefinitions = [\n        { key: \"Option A\", value: getFirst(row, [\"OptionA\", \"Option A\", \"Choice1\", \"Choice 1\"]) },\n        { key: \"Option B\", value: getFirst(row, [\"OptionB\", \"Option B\", \"Choice2\", \"Choice 2\"]) },\n        { key: \"Option C\", value: getFirst(row, [\"OptionC\", \"Option C\", \"Choice3\", \"Choice 3\"]) },\n        { key: \"Option D\", value: getFirst(row, [\"OptionD\", \"Option D\", \"Choice4\", \"Choice 4\"]) }\n      ].filter(choice => clean(choice.value));\n      const difficultyLevel = clean(getFirst(row, [\"DifficultyLevel\", \"Difficulty Level\", \"Difficulty\"]));\n\n      return {\n        id: clean(getFirst(row, [\"QuestionID\", \"Question ID\"])),\n        speciesId: clean(getFirst(row, [\"SpeciesID\", \"Species ID\"])),\n        type: clean(getFirst(row, [\"QuestionType\", \"Question Type\", \"Type\"])),\n        text: clean(getFirst(row, [\"QuestionText\", \"Question\", \"Question Text\"])),\n        choices: choiceDefinitions.map(choice => ({\n          key: choice.key,\n          text: clean(choice.value)\n        })),\n        correctAnswer: clean(getFirst(row, [\"CorrectAnswer\", \"Correct\", \"Answer\", \"Correct Answer\"])),\n        points: Number(getFirst(row, [\"Points\"], 15)) || 15,\n        difficulty: difficultyLevel,\n        difficultyLevel,\n        addsToFieldBook: parseBooleanField(getFirst(row, [\"AddsToFieldBook\", \"Adds To Field Book\", \"AddToFieldBook\", \"Add To Field Book\"], \"TRUE\"), true),\n        learnedText: clean(getFirst(row, [\"LearnedText\", \"Learned Text\", \"FieldBookText\", \"Field Book Text\"])),\n        raw: row\n      };\n    }\n\n    function normalizeImageRow(row) {\n      return {\n        id: clean(getFirst(row, [\"ImageID\", \"Image ID\"])),\n        speciesId: clean(getFirst(row, [\"SpeciesID\", \"Species ID\"])),\n        url: clean(getFirst(row, [\"ImageURL\", \"Image URL\", \"URL\"])),\n        altText: clean(getFirst(row, [\"AltText\", \"Alt Text\"])),\n        photographer: clean(getFirst(row, [\"Photographer\"])),\n        source: clean(getFirst(row, [\"Source\"])),\n        license: clean(getFirst(row, [\"License\"])),\n        notes: clean(getFirst(row, [\"Notes\"])),\n        raw: row\n      };\n    }\n\n    function normalizeBadgeRow(row) {\n      const level = clean(getFirst(row, [\"BadgeLevel\", \"Badge Level\", \"Level\"]));\n\n      return {\n        id: clean(getFirst(row, [\"BadgeID\", \"Badge ID\"])),\n        name: clean(getFirst(row, [\"BadgeName\", \"Badge Name\"])),\n        level,\n        categoryId: clean(getFirst(row, [\"CategoryID\", \"Category ID\", \"CategoryId\"])),\n        difficultyLevel: clean(getFirst(row, [\"DifficultyLevel\", \"Difficulty Level\", \"Difficulty\"])),\n        requirementType: clean(getFirst(row, [\"RequirementType\", \"Requirement Type\", \"RuleType\", \"Rule Type\"])),\n        ruleValue: Number(getFirst(row, [\"RuleValue\", \"Rule Value\", \"RequirementValue\", \"Requirement Value\"], 0)) || 0,\n        imageUrl: clean(getFirst(row, [\"ImageURL\", \"Image URL\", \"URL\"])),\n        icon: clean(getFirst(row, [\"Icon\"], getBadgeIcon(level))),\n        description: clean(getFirst(row, [\"Description\", \"Criteria\"])),\n        printText: clean(getFirst(row, [\"PrintText\", \"Print Text\", \"Description\", \"Criteria\"])),\n        raw: row\n      };\n    }\n\n    function getBadgeIcon(level) {\n      const normalizedLevel = normalize(level);\n\n      if (normalizedLevel.includes(\"copper\")) return \"\ud83e\udd49\";\n      if (normalizedLevel.includes(\"silver\")) return \"\ud83e\udd48\";\n      if (normalizedLevel.includes(\"gold\")) return \"\ud83e\udd47\";\n      if (normalizedLevel.includes(\"purple\") || normalizedLevel.includes(\"epic\")) return \"\ud83d\udc9c\";\n\n      return \"\ud83c\udfc5\";\n    }\n\n    function getQuestionCategoryId(question) {\n      const questionSpecies = findSpeciesById(question.speciesId);\n\n      return questionSpecies && questionSpecies.raw\n        ? clean(getFirst(questionSpecies.raw, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]))\n        : \"\";\n    }\n\n    function getFieldBookEntryCategoryId(entry) {\n      return entry && entry.raw\n        ? clean(getFirst(entry.raw, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]))\n        : \"\";\n    }\n\n    function questionMatchesBadgeScope(question, badge) {\n      const badgeCategoryId = clean(badge.categoryId);\n      const badgeDifficultyLevel = clean(badge.difficultyLevel);\n      const questionCategoryId = getQuestionCategoryId(question);\n      const questionDifficultyLevel = clean(question.difficulty);\n\n      if (badgeCategoryId && normalize(questionCategoryId) !== normalize(badgeCategoryId)) {\n        return false;\n      }\n\n      if (badgeDifficultyLevel && normalize(questionDifficultyLevel) !== normalize(badgeDifficultyLevel)) {\n        return false;\n      }\n\n      return true;\n    }\n\n    function getBadgeMasteryPercent(badge) {\n      const scopedQuestions = questions.filter(question => questionMatchesBadgeScope(question, badge));\n\n      if (scopedQuestions.length === 0) {\n        return 0;\n      }\n\n      const masteredQuestionIds = getMasteredQuestionIds();\n      const masteredCount = scopedQuestions.filter(question => {\n        const questionId = clean(question.id);\n        return questionId && masteredQuestionIds.has(normalize(questionId));\n      }).length;\n\n      return Math.round((masteredCount \/ scopedQuestions.length) * 100);\n    }\n\n    function getBadgeDiscoveryCount(badge) {\n      const badgeCategoryId = clean(badge.categoryId);\n\n      if (!badgeCategoryId) {\n        return state.fieldBook.length;\n      }\n\n      return state.fieldBook.filter(entry => {\n        return normalize(getFieldBookEntryCategoryId(entry)) === normalize(badgeCategoryId);\n      }).length;\n    }\n\n    function getHighestEarnedBadgeForCategory(categoryId) {\n      const categoryBadges = badges.filter(badge => {\n        return normalize(badge.categoryId) === normalize(categoryId) && state.earnedBadges.includes(badge.id);\n      });\n\n      if (categoryBadges.length === 0) return null;\n\n      const levelRank = {\n        copper: 1,\n        silver: 2,\n        gold: 3,\n        purple: 4,\n        epic: 4\n      };\n\n      return categoryBadges.sort((a, b) => {\n        const aRank = levelRank[normalize(a.level)] || 0;\n        const bRank = levelRank[normalize(b.level)] || 0;\n        return bRank - aRank;\n      })[0];\n    }\n\n    function getNextBadgeForCategory(categoryId) {\n      const categoryBadges = badges.filter(badge => {\n        return normalize(badge.categoryId) === normalize(categoryId) && !state.earnedBadges.includes(badge.id);\n      });\n\n      if (categoryBadges.length === 0) return null;\n\n      const levelRank = {\n        copper: 1,\n        silver: 2,\n        gold: 3,\n        purple: 4,\n        epic: 4\n      };\n\n      return categoryBadges.sort((a, b) => {\n        const aRank = levelRank[normalize(a.level)] || 99;\n        const bRank = levelRank[normalize(b.level)] || 99;\n        return aRank - bRank;\n      })[0];\n    }\n\n    function getDashboardProgressItems() {\n      const progressData = getCategoryProgressData(false)\n        .filter(category => category.questionCount > 0)\n        .map(category => {\n          const currentBadge = getHighestEarnedBadgeForCategory(category.id);\n          const nextBadge = getNextBadgeForCategory(category.id);\n          const questionsRemaining = Math.max(category.questionCount - category.masteredQuestionCount, 0);\n          const isSelectedCategory = state.selectedCategoryId !== \"random\" && normalize(state.selectedCategoryId) === normalize(category.id);\n\n          return {\n            ...category,\n            currentBadge,\n            nextBadge,\n            questionsRemaining,\n            isSelectedCategory\n          };\n        });\n\n      return progressData.sort((a, b) => {\n        if (a.isSelectedCategory !== b.isSelectedCategory) return a.isSelectedCategory ? -1 : 1;\n        if (a.completionPercent !== b.completionPercent) return b.completionPercent - a.completionPercent;\n        return a.questionsRemaining - b.questionsRemaining;\n      }).slice(0, 3);\n    }\n\n    function lookupCategoryName(categoryId) {\n      const normalizedCategoryId = normalize(categoryId);\n\n      const match = categories.find(row => {\n        const rowId = getFirst(row, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]);\n        return normalize(rowId) === normalizedCategoryId;\n      });\n\n      return match ? clean(getFirst(match, [\"CategoryName\", \"Category Name\", \"Name\", \"Category\"])) : \"\";\n    }\n\n    function lookupHabitatName(habitatId) {\n      const normalizedHabitatId = normalize(habitatId);\n\n      const match = habitats.find(row => {\n        const rowId = getFirst(row, [\"HabitatID\", \"Habitat ID\", \"HabitatId\", \"ID\"]);\n        return normalize(rowId) === normalizedHabitatId;\n      });\n      return match ? clean(getFirst(match, [\n        \"HabitatName\",\n        \"Habitat Name\",\n        \"Name\",\n        \"Habitat\"\n      ])) : \"\";\n    }\n    function getDisplayHabitat(item) {\n      const habitatValue = clean(item.habitat);\n      const habitatFromRaw = item.raw ? clean(getFirst(item.raw, [\"HabitatID\", \"Habitat ID\", \"HabitatId\"])) : \"\";\n      const habitatName = lookupHabitatName(habitatValue) || lookupHabitatName(habitatFromRaw);\n\n      return habitatName || habitatValue || habitatFromRaw || \"Field book entry\";\n    }\n\n\n    function getPrimaryImageForSpecies(speciesId) {\n      const matches = images.filter(image => image.speciesId === speciesId && image.url);\n      return matches.length ? shuffle(matches)[0] : null;\n    }\n\n    function getImageDisplayUrl(url) {\n      const rawUrl = clean(url);\n      if (!rawUrl) return \"\";\n\n      const inatMatch = rawUrl.match(\/inaturalist\\.org\\\/photos\\\/(\\d+)\/i);\n      if (inatMatch) {\n        return `https:\/\/inaturalist-open-data.s3.amazonaws.com\/photos\/${inatMatch[1]}\/medium.jpg`;\n      }\n\n      return rawUrl;\n    }\n\n    function getINaturalistPhotoId(url) {\n      const rawUrl = clean(url);\n      const inatMatch = rawUrl.match(\/inaturalist\\.org\\\/photos\\\/(\\d+)\/i);\n      return inatMatch ? inatMatch[1] : \"\";\n    }\n\n    function handlePrintImageError(img) {\n      const photoId = img.dataset.inatPhotoId || \"\";\n      const fallbackStep = Number(img.dataset.fallbackStep || 0);\n\n      if (photoId && fallbackStep === 0) {\n        img.dataset.fallbackStep = \"1\";\n        img.src = `https:\/\/inaturalist-open-data.s3.amazonaws.com\/photos\/${photoId}\/medium.jpeg`;\n        return;\n      }\n\n      if (photoId && fallbackStep === 1) {\n        img.dataset.fallbackStep = \"2\";\n        img.src = `https:\/\/inaturalist-open-data.s3.amazonaws.com\/photos\/${photoId}\/medium.png`;\n        return;\n      }\n\n      img.style.display = \"none\";\n    }\n\n    function findSpeciesByName(name) {\n      return species.find(item => normalize(item.name) === normalize(name));\n    }\n\n    function findSpeciesById(id) {\n      return species.find(item => normalize(item.id) === normalize(id));\n    }\n\n    function findQuestionById(id) {\n      return questions.find(item => normalize(item.id) === normalize(id));\n    }\n\n    function getCorrectAnswerText(question) {\n      if (!question) return \"\";\n\n      const correctAnswer = clean(question.correctAnswer);\n      const normalizedCorrectAnswer = normalize(correctAnswer);\n      const match = question.choices.find(choice => {\n        return normalize(choice.key) === normalizedCorrectAnswer || normalize(choice.text) === normalizedCorrectAnswer;\n      });\n\n      return match ? clean(match.text) : correctAnswer;\n    }\n\n    function getQuestionLearnedText(question) {\n      if (!question || question.addsToFieldBook === false) return \"\";\n      return clean(question.learnedText) || getCorrectAnswerText(question);\n    }\n\n    function getMasteredQuestionIds() {\n      const masteredIds = new Set();\n\n      state.fieldBook.forEach(entry => {\n        const masteredQuestions = Array.isArray(entry.masteredQuestions) ? entry.masteredQuestions : [];\n        masteredQuestions.forEach(question => {\n          const questionId = clean(question.questionId);\n          if (questionId) {\n            masteredIds.add(normalize(questionId));\n          }\n        });\n      });\n\n      return masteredIds;\n    }\n\n    function isCorrectDiscovery(row) {\n      const value = getFirst(row, [\"Correct\", \"correct\", \"IsCorrect\", \"isCorrect\"], \"\");\n      return value === true || normalize(value) === \"true\" || normalize(value) === \"yes\" || normalize(value) === \"1\";\n    }\n\n    function buildFieldBookFromDiscoveryRows(rows) {\n      const fieldBookEntries = [];\n\n      rows.forEach(row => {\n        if (!isCorrectDiscovery(row)) return;\n\n        const speciesId = clean(getFirst(row, [\"SpeciesID\", \"Species ID\", \"speciesId\", \"id\"]));\n        const questionId = clean(getFirst(row, [\"QuestionID\", \"Question ID\", \"questionId\"]));\n        const speciesEntry = findSpeciesById(speciesId);\n\n        if (!speciesEntry) return;\n\n        let entry = fieldBookEntries.find(existing => normalize(existing.id) === normalize(speciesEntry.id));\n\n        if (!entry) {\n          entry = {\n            ...speciesEntry,\n            masteredQuestions: []\n          };\n          fieldBookEntries.push(entry);\n        }\n\n        const question = findQuestionById(questionId);\n        const questionText = question ? question.text : clean(getFirst(row, [\"QuestionText\", \"Question Text\", \"Question\", \"questionText\"]));\n        const correctAnswer = question ? getCorrectAnswerText(question) : clean(getFirst(row, [\"CorrectAnswer\", \"Correct Answer\", \"Answer\", \"correctAnswer\"]));\n        const learnedText = question ? getQuestionLearnedText(question) : correctAnswer;\n        const questionKey = questionId || questionText;\n\n        if (questionKey && learnedText && !entry.masteredQuestions.some(item => normalize(item.questionId || item.questionText) === normalize(questionKey) || normalize(item.learnedText || item.correctAnswer) === normalize(learnedText))) {\n          entry.masteredQuestions.push({\n            questionId,\n            questionText: questionText || questionId,\n            correctAnswer,\n            learnedText\n          });\n        }\n      });\n\n      return fieldBookEntries;\n    }\n\n    function getChoiceSpecies(choice, question) {\n      const choiceText = typeof choice === \"string\" ? choice : choice.text;\n      const choiceKey = typeof choice === \"string\" ? \"\" : choice.key;\n      const matchedSpecies = findSpeciesByName(choiceText) || findSpeciesById(choiceText);\n      const questionSpecies = findSpeciesById(question.speciesId);\n\n      if (matchedSpecies) {\n        return {\n          ...matchedSpecies,\n          choiceKey,\n          choiceText,\n          isSpeciesChoice: true\n        };\n      }\n\n      return {\n        id: `${question.id}-${choiceKey || choiceText}`,\n        name: choiceText,\n        scientific: \"\",\n        category: questionSpecies ? questionSpecies.name : \"Answer Choice\",\n        habitat: \"\",\n        fact: questionSpecies\n          ? `${questionSpecies.name}: ${questionSpecies.description || questionSpecies.fact || \"Field book entry recorded.\"}`\n          : \"Review the correct answer to add this discovery to your field book.\",\n        description: questionSpecies ? questionSpecies.description : \"\",\n        image: questionSpecies ? questionSpecies.image : null,\n        choiceKey,\n        choiceText,\n        speciesId: question.speciesId,\n        isSpeciesChoice: false\n      };\n    }\n\n    function getRandomChallenge() {\n      const selectedCategoryId = categorySelect ? categorySelect.value : \"random\";\n      state.selectedCategoryId = selectedCategoryId || \"random\";\n      state.questionMode = questionModeSelect ? questionModeSelect.value : \"learning\";\n      const isReviewMode = state.questionMode === \"review\";\n\n      let availableQuestions = questions;\n\n      if (state.selectedCategoryId !== \"random\") {\n        availableQuestions = questions.filter(question => {\n          const questionSpecies = findSpeciesById(question.speciesId);\n          const rawCategoryId = questionSpecies && questionSpecies.raw\n            ? clean(getFirst(questionSpecies.raw, [\"CategoryID\", \"Category ID\", \"CategoryId\", \"ID\"]))\n            : \"\";\n\n          return normalize(rawCategoryId) === normalize(state.selectedCategoryId);\n        });\n      }\n\n      if (availableQuestions.length === 0) {\n        return {\n          empty: true,\n          message: \"No questions are available for this category yet. Please choose another category or select Random.\"\n        };\n      }\n\n      let candidateQuestions = availableQuestions;\n\n      if (!isReviewMode) {\n        const masteredQuestionIds = getMasteredQuestionIds();\n        candidateQuestions = availableQuestions.filter(question => {\n          const questionId = clean(question.id);\n          return !questionId || !masteredQuestionIds.has(normalize(questionId));\n        });\n\n        if (candidateQuestions.length === 0) {\n          return {\n            empty: true,\n            message: state.selectedCategoryId === \"random\"\n              ? \"Congratulations! You\u2019ve mastered all available questions. Switch to Review Mode to practice them again.\"\n              : \"Congratulations! You\u2019ve mastered all available questions in this category. Choose another category or switch to Review Mode.\"\n          };\n        }\n      }\n\n      const question = candidateQuestions[Math.floor(Math.random() * candidateQuestions.length)];\n      const correctChoice = question.choices.find(choice => {\n        return normalize(choice.key) === normalize(question.correctAnswer) || normalize(choice.text) === normalize(question.correctAnswer);\n      });\n      const correctSpecies = findSpeciesById(question.speciesId) || findSpeciesByName(correctChoice ? correctChoice.text : question.correctAnswer);\n\n      return {\n        question,\n        answer: correctSpecies || getChoiceSpecies(correctChoice || question.correctAnswer, question),\n        choices: getShuffledChoicesForQuestion(question)\n      };\n    }\n\n    function renderChallenge() {\n      if (questions.length === 0) return;\n\n      const challenge = getRandomChallenge();\n\n      if (!challenge || challenge.empty) {\n        state.gameStarted = false;\n        state.currentQuestion = null;\n        state.currentAnswer = null;\n        state.answered = false;\n        nextBtn.disabled = true;\n        cardsGrid.innerHTML = \"\";\n        challengePrompt.textContent = challenge && challenge.message\n          ? challenge.message\n          : \"No questions are available for this category yet. Please choose another category or select Random.\";\n        return;\n      }\n\n      state.gameStarted = true;\n      state.currentQuestion = challenge.question;\n      state.currentAnswer = challenge.answer;\n      state.answered = false;\n      nextBtn.disabled = true;\n      challengePrompt.textContent = challenge.question.text;\n      cardsGrid.innerHTML = \"\";\n\n      challenge.choices.forEach(choice => {\n        const image = choice.isSpeciesChoice ? (choice.image || getPrimaryImageForSpecies(choice.id)) : null;\n        const imageUrl = image ? image.url : \"\";\n        const altText = image ? image.altText : choice.name;\n        const creditParts = image ? [image.photographer, image.source, image.license].filter(Boolean) : [];\n        const credit = creditParts.length ? creditParts.join(\" \u00b7 \") : \"\";\n\n        const button = document.createElement(\"button\");\n        button.className = imageUrl ? \"choice-card\" : \"choice-card text-choice\";\n        button.type = \"button\";\n        button.dataset.choiceKey = choice.choiceKey || \"\";\n        button.setAttribute(\"aria-label\", `Choose ${choice.name}`);\n        button.innerHTML = `\n          <span class=\"choice-inner\">\n            <span class=\"card-face card-front\">\n              <span class=\"species-img\" role=\"img\" aria-label=\"${escapeHtml(altText)}\" style=\"background-image: ${imageUrl ? `url('${escapeAttribute(imageUrl)}')` : \"linear-gradient(135deg, #d9e6c9, #f6efd9)\"}\"><\/span>\n              <span class=\"species-content\">\n                <span class=\"species-type\">${escapeHtml(choice.category || \"Discovery\")}<\/span>\n                <h3 class=\"species-name\">${escapeHtml(choice.name)}<\/h3>\n                <p class=\"species-hint\">${escapeHtml(choice.choiceKey || \"\")} ${choice.image ? \"Click to make your field identification.\" : \"Select this answer.\"}<\/p>\n              <\/span>\n            <\/span>\n            <span class=\"card-face card-back\">\n              <span class=\"result-label\">Field Note<\/span>\n              <h3>${escapeHtml(choice.name)}<\/h3>\n              <p>${escapeHtml(choice.fact || choice.description || \"Field book entry recorded.\")}<\/p>\n              ${credit ? `<p class=\"species-hint\" style=\"margin-top: 10px;\">${escapeHtml(credit)}<\/p>` : \"\"}\n            <\/span>\n          <\/span>\n        `;\n        button.addEventListener(\"click\", () => handleChoice(button, choice));\n        cardsGrid.appendChild(button);\n      });\n    }\n\n    function handleChoice(button, choice) {\n      if (state.answered) return;\n      state.answered = true;\n      state.rounds += 1;\n\n      const isCorrect = normalize(choice.choiceKey) === normalize(state.currentQuestion.correctAnswer) || normalize(choice.choiceText) === normalize(state.currentQuestion.correctAnswer) || normalize(choice.name) === normalize(state.currentQuestion.correctAnswer);\n      let pointsEarned = 0;\n      button.classList.add(\"flipped\", isCorrect ? \"correct\" : \"incorrect\");\n      button.querySelector(\".result-label\").textContent = isCorrect ? \"Correct Identification\" : \"Not Quite\";\n\n      if (isCorrect) {\n        pointsEarned = state.currentQuestion.points + Math.min(state.streak * 2, 10);\n        state.score += pointsEarned;\n        state.streak += 1;\n        addToFieldBook(findSpeciesById(state.currentQuestion.speciesId) || choice);\n      } else {\n        pointsEarned = 3;\n        state.score += pointsEarned;\n        state.streak = 0;\n        revealCorrectAnswer();\n      }\n\n      document.querySelectorAll(\".choice-card\").forEach(card => card.disabled = true);\n      checkBadges();\n      updateDisplay();\n      saveDiscovery(choice, isCorrect, pointsEarned);\n      nextBtn.disabled = false;\n    }\n\n    async function saveDiscovery(choice, isCorrect, pointsEarned) {\n      if (!state.player) return;\n\n      setPlayerMessage(\"Saving progress to Google Sheets...\");\n\n      try {\n        const result = await apiAction(\"saveDiscovery\", {\n          playerId: state.player.id,\n          playerCode: state.player.code,\n          speciesId: state.currentQuestion.speciesId,\n          questionId: state.currentQuestion.id,\n          correct: isCorrect ? \"TRUE\" : \"FALSE\",\n          pointsEarned,\n          attempts: 1,\n          naturePoints: state.score,\n          totalDiscoveries: state.fieldBook.length,\n          badgesEarned: state.earnedBadges.join(\",\")\n        });\n\n        if (!result.success) {\n          throw new Error(result.error || \"Discovery was not saved.\");\n        }\n\n        setPlayerMessage(\"Progress saved to Google Sheets.\");\n      } catch (error) {\n        setPlayerMessage(\"Answer recorded on this page, but it could not be saved to Google Sheets yet.\");\n        console.warn(error);\n      }\n    }\n\n    function revealCorrectAnswer() {\n      document.querySelectorAll(\".choice-card\").forEach(card => {\n        const name = card.querySelector(\".species-name\").textContent;\n        const key = card.dataset.choiceKey || \"\";\n\n        if (normalize(key) === normalize(state.currentQuestion.correctAnswer) || normalize(name) === normalize(state.currentQuestion.correctAnswer)) {\n          card.classList.add(\"flipped\", \"correct\");\n          card.querySelector(\".result-label\").textContent = \"Correct Answer\";\n        }\n      });\n    }\n\n    function addToFieldBook(item) {\n      const learnedText = getQuestionLearnedText(state.currentQuestion);\n      const questionRecord = state.currentQuestion && learnedText ? {\n        questionId: clean(state.currentQuestion.id),\n        questionText: clean(state.currentQuestion.text),\n        correctAnswer: getCorrectAnswerText(state.currentQuestion),\n        learnedText\n      } : null;\n      const questionKey = questionRecord ? (questionRecord.questionId || questionRecord.questionText) : \"\";\n\n      let entry = state.fieldBook.find(existing => normalize(existing.id) === normalize(item.id));\n      let isNewEntry = false;\n\n      if (!entry) {\n        entry = {\n          ...item,\n          masteredQuestions: []\n        };\n        state.fieldBook.push(entry);\n        isNewEntry = true;\n      }\n\n      if (!Array.isArray(entry.masteredQuestions)) {\n        entry.masteredQuestions = [];\n      }\n\n      if (questionRecord && questionKey && questionRecord.learnedText && !entry.masteredQuestions.some(question => normalize(question.questionId || question.questionText) === normalize(questionKey) || normalize(question.learnedText || question.correctAnswer) === normalize(questionRecord.learnedText))) {\n        entry.masteredQuestions.push(questionRecord);\n      }\n\n      if (isNewEntry || questionRecord) {\n        if (!state.player) {\n          setPlayerMessage(\"You added progress to your Field Book. Click New Player, enter your name, then click Save New Player to create a player code.\");\n        } else {\n          setPlayerMessage(\"Field Book progress added. Saving progress...\");\n        }\n      }\n    }\n\n    function checkBadges() {\n      badges.forEach(badge => {\n        if (state.earnedBadges.includes(badge.id)) return;\n\n        const requirementType = normalize(badge.requirementType);\n        const ruleValue = Number(badge.ruleValue) || 0;\n        let earned = false;\n\n        if (!badge.id || ruleValue <= 0) return;\n\n        if (requirementType.includes(\"mastery\")) {\n          earned = getBadgeMasteryPercent(badge) >= ruleValue;\n        }\n\n        if (requirementType.includes(\"discover\")) {\n          earned = getBadgeDiscoveryCount(badge) >= ruleValue;\n        }\n\n        if (requirementType.includes(\"point\")) {\n          earned = state.score >= ruleValue;\n        }\n\n        if (requirementType.includes(\"streak\")) {\n          earned = state.streak >= ruleValue;\n        }\n\n        if (earned) {\n          state.earnedBadges.push(badge.id);\n          setPlayerMessage(`Badge earned: ${badge.name}`);\n        }\n      });\n    }\n\n    function updateDisplay() {\n      updatePlayerPanel();\n      updateCategoryProgress();\n      scoreValue.textContent = state.score;\n      entryCount.textContent = state.fieldBook.length;\n      badgeCount.textContent = state.earnedBadges.length;\n      streakCount.textContent = state.streak;\n      roundCount.textContent = state.rounds;\n\n      const dashboardItems = getDashboardProgressItems();\n\n      if (dashboardItems.length === 0) {\n        dashboardProgressList.innerHTML = '<p class=\"empty-note\">Progress bars will appear after the field book data loads.<\/p>';\n      } else {\n        dashboardProgressList.innerHTML = dashboardItems.map(item => {\n          const currentBadgeText = item.currentBadge ? `${item.currentBadge.icon} ${item.currentBadge.level}` : \"No badge yet\";\n          const nextBadgeText = item.nextBadge ? `Next: ${item.nextBadge.name}` : \"All listed badges earned\";\n          const remainingText = item.questionsRemaining === 1 ? \"1 question remaining\" : `${item.questionsRemaining} questions remaining`;\n\n          return `\n            <div class=\"dashboard-progress-card\">\n              <div class=\"dashboard-progress-head\">\n                <strong>${escapeHtml(item.name)}<\/strong>\n                <span>${escapeHtml(item.completionPercent)}%<\/span>\n              <\/div>\n              <div class=\"progress-bar-shell\" aria-hidden=\"true\">\n                <div class=\"progress-bar-fill\" style=\"width: ${Math.max(0, Math.min(item.completionPercent, 100))}%;\"><\/div>\n              <\/div>\n              <div class=\"dashboard-progress-meta\">\n                ${escapeHtml(currentBadgeText)} \u00b7 ${escapeHtml(item.masteredQuestionCount)}\/${escapeHtml(item.questionCount)} mastered<br>\n                ${escapeHtml(nextBadgeText)} \u00b7 ${escapeHtml(remainingText)}\n              <\/div>\n            <\/div>\n          `;\n        }).join(\"\");\n      }\n\n      if (state.fieldBook.length === 0) {\n        latestDiscoveryCard.innerHTML = '<strong>No discoveries yet<\/strong><span>Correct answers will build your field book.<\/span>';\n        fieldList.innerHTML = \"\";\n      } else {\n        const latestDiscovery = state.fieldBook[state.fieldBook.length - 1];\n        latestDiscoveryCard.innerHTML = `\n          <strong>${escapeHtml(latestDiscovery.name)}<\/strong>\n          <span>${escapeHtml(latestDiscovery.category || \"Discovery\")} \u00b7 ${escapeHtml(getDisplayHabitat(latestDiscovery))}<\/span>\n        `;\n        fieldList.innerHTML = \"\";\n      }\n\n      if (state.earnedBadges.length === 0) {\n        badgeList.innerHTML = '<p class=\"empty-note\">Earn badges by building your field book.<\/p>';\n      } else {\n        const recentBadgeIds = state.earnedBadges.slice(-3).reverse();\n        badgeList.innerHTML = recentBadgeIds.map(id => {\n          const badge = badges.find(item => item.id === id);\n          if (!badge) return \"\";\n          return `\n            <div class=\"badge-entry\">\n              <strong>${escapeHtml(badge.icon)} ${escapeHtml(badge.name)}<\/strong>\n              <span>${escapeHtml(badge.description || badge.level || \"Badge earned\")}<\/span>\n            <\/div>\n          `;\n        }).join(\"\");\n      }\n    }\n\n    function preparePrintSection() {\n      document.getElementById(\"printScore\").textContent = state.score;\n      document.getElementById(\"printEntries\").textContent = state.fieldBook.length;\n\n      const printEntriesGrid = document.getElementById(\"printEntriesGrid\");\n      printEntriesGrid.innerHTML = state.fieldBook.length === 0\n        ? '<p>No discoveries yet. Complete a discovery before printing.<\/p>'\n        : state.fieldBook.map(item => {\n          const image = item.image || getPrimaryImageForSpecies(item.id);\n          const rawImageUrl = image ? image.url : \"\";\n          const imageUrl = getImageDisplayUrl(rawImageUrl);\n          const inatPhotoId = getINaturalistPhotoId(rawImageUrl);\n          const credit = image ? [image.photographer, image.source, image.license].filter(Boolean).join(\" \u00b7 \") : \"\";\n          const learnedItems = Array.isArray(item.masteredQuestions) ? item.masteredQuestions : [];\n          const learnedItemTexts = [...new Set(learnedItems\n            .map(question => clean(question.learnedText || question.correctAnswer || question.questionText || question.questionId))\n            .filter(Boolean))];\n          const learnedItemsHtml = learnedItemTexts.length\n            ? `<p><strong>Things I\u2019ve Learned (${learnedItemTexts.length}):<\/strong><\/p><ul class=\"learned-items\">${learnedItemTexts.map(text => `<li>${escapeHtml(text)}<\/li>`).join(\"\")}<\/ul>`\n            : \"\";\n\n          return `\n            <article class=\"print-entry\">\n              <div class=\"print-entry-main\">\n                <div class=\"print-photo-frame\">\n                  ${\n                    imageUrl\n                      ? `<img decoding=\"async\" class=\"print-photo\" src=\"${escapeAttribute(imageUrl)}\" alt=\"${escapeAttribute(item.name)}\" data-inat-photo-id=\"${escapeAttribute(inatPhotoId)}\" data-fallback-step=\"0\" loading=\"eager\" referrerpolicy=\"no-referrer\" onerror=\"handlePrintImageError(this);\">`\n                      : \"\"\n                  }\n                <\/div>\n                <div class=\"print-entry-body\">\n                  <h3>${escapeHtml(item.name)}<\/h3>\n                  <em>${escapeHtml(item.scientific)}<\/em>\n                  <p><strong>Category:<\/strong> ${escapeHtml(item.category || \"\")}<\/p>\n                  <p><strong>Habitat:<\/strong> ${escapeHtml(getDisplayHabitat(item))}<\/p>\n                  <p><strong>Field Note:<\/strong> ${escapeHtml(item.fact || item.description || \"\")}<\/p>\n                  ${learnedItemsHtml}\n                  ${credit ? `<p><strong>Image:<\/strong> ${escapeHtml(credit)}<\/p>` : \"\"}\n                <\/div>\n              <\/div>\n              <div class=\"notes-lines\">\n                Observed at: ______________________ &nbsp;&nbsp; Date: __________________<br><br>\n                Notes: ________________________________________________\n              <\/div>\n            <\/article>\n          `;\n        }).join(\"\");\n\n      const printBadgesGrid = document.getElementById(\"printBadgesGrid\");\n      printBadgesGrid.innerHTML = state.earnedBadges.length === 0\n        ? '<p>No badges earned yet.<\/p>'\n        : state.earnedBadges.map(id => {\n          const badge = badges.find(item => item.id === id);\n          if (!badge) return \"\";\n          return `\n            <div class=\"badge-print\">\n              <div class=\"badge-icon\">${escapeHtml(badge.icon)}<\/div>\n              <h3>${escapeHtml(badge.name)}<\/h3>\n              <p>${escapeHtml(badge.printText || badge.description)}<\/p>\n            <\/div>\n          `;\n        }).join(\"\");\n    }\n\n    function escapeHtml(value) {\n      return String(value ?? \"\")\n        .replaceAll(\"&\", \"&amp;\")\n        .replaceAll(\"<\", \"&lt;\")\n        .replaceAll(\">\", \"&gt;\")\n        .replaceAll('\"', \"&quot;\")\n        .replaceAll(\"'\", \"&#039;\");\n    }\n\n    function escapeAttribute(value) {\n      return String(value ?? \"\")\n        .replaceAll(\"&\", \"&amp;\")\n        .replaceAll(\"<\", \"&lt;\")\n        .replaceAll(\">\", \"&gt;\")\n        .replaceAll('\"', \"&quot;\")\n        .replaceAll(\"'\", \"&#039;\");\n    }\n\nguestPlayerBtn.addEventListener(\"click\", playAsGuest);\nnewPlayerBtn.addEventListener(\"click\", showNewPlayerForm);\nbeginBtn.addEventListener(\"click\", renderChallenge);\ncategorySelect.addEventListener(\"change\", () => {\n  state.selectedCategoryId = categorySelect.value || \"random\";\n  updateDisplay();\n  if (!state.gameStarted) {\n    challengePrompt.textContent = \"Choose a category, then click Begin.\";\n  }\n});\n\nquestionModeSelect.addEventListener(\"change\", () => {\n  state.questionMode = questionModeSelect.value || \"learning\";\n  if (!state.gameStarted) {\n    challengePrompt.textContent = \"Choose a category, then click Begin.\";\n  }\n});\nsavePlayerBtn.addEventListener(\"click\", saveLocalPlayer);\nloadPlayerBtn.addEventListener(\"click\", loadLocalPlayer);\n\nnextBtn.addEventListener(\"click\", renderChallenge);\n\n    printBtn.addEventListener(\"click\", () => {\n      preparePrintSection();\n      printSection.classList.remove(\"hidden\");\n      window.print();\n    });\n\n    resetBtn.addEventListener(\"click\", () => {\n      state.player = null;\n      playerNameInput.value = \"\";\n      playerEmailInput.value = \"\";\n      playerCodeInput.value = \"\";\n      savePlayerBtn.classList.add(\"hidden\");\n      updatePlayerPanel();\n      state.score = 0;\n      state.streak = 0;\n      state.rounds = 0;\n      state.currentQuestion = null;\n      state.currentAnswer = null;\n      state.answered = false;\n      state.fieldBook = [];\n      state.earnedBadges = [];\n      state.selectedCategoryId = \"random\";\n      state.questionMode = \"learning\";\n      state.lastChoiceOrder = \"\";\n      state.gameStarted = false;\n      categorySelect.value = \"random\";\n      questionModeSelect.value = \"learning\";\n      beginBtn.disabled = false;\n      nextBtn.disabled = true;\n      challengePrompt.textContent = \"Choose a category, then click Begin.\";\n      cardsGrid.innerHTML = \"\";\n      updateDisplay();\n    });\n\n    updatePlayerPanel();\n    loadGameData().catch(error => {\n      console.error(error);\n      challengePrompt.textContent = \"The field book data could not be loaded. Check the Apps Script JSONP code, deployment URL, and permissions.\";\n      cardsGrid.innerHTML = `\n        <div class=\"field-entry\" style=\"grid-column: 1 \/ -1;\">\n          <strong>Connection issue<\/strong>\n          <span>${escapeHtml(error.message)}<\/span>\n        <\/div>\n      `;\n    });\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Build Your Field Book | Lower Trinity Basin Lower Trinity Basin Naturalist Challenge Build Your Field Book Identify local species and habitats, add discoveries to your personal field book, earn&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/dashboard\/build-your-field-book\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":199544,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200084","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Build Your Field Book | Lower Trinity Basin Lower Trinity Basin Naturalist Challenge Build Your Field Book Identify local species and habitats, add discoveries to your personal field book, earn... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200084"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200084\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199544"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":200023,"date":"2026-06-27T15:44:37","date_gmt":"2026-06-27T20:44:37","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=200023"},"modified":"2026-06-28T14:50:03","modified_gmt":"2026-06-28T19:50:03","slug":"big-thicket-canoe-trip","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/member-articles\/big-thicket-adventure\/big-thicket-canoe-trip\/","title":{"rendered":"Big Thicket Canoe Trip"},"content":{"rendered":"\n\n\n<article class=\"ltb-member-article pine-island-bayou-article\">\n  <style>\n    .pine-island-bayou-article {\n      box-sizing: border-box;\n      width: 100vw;\n      max-width: none;\n      margin-left: calc(50% - 50vw);\n      margin-right: calc(50% - 50vw);\n      padding: 1.75rem max(2rem, calc((100vw - 1180px) \/ 2));\n      color: #243022;\n      font-family: Georgia, \"Times New Roman\", serif;\n      line-height: 1.7;\n      background: #fffdf7;\n    }\n\n\n    \/* Hide the default WordPress page\/post title when this article is embedded. *\/\n    .entry-title,\n    .page-title,\n    h1.entry-title,\n    .wp-block-post-title {\n      display: none !important;\n    }\n\n    .pine-island-bayou-article h1,\n    .pine-island-bayou-article h2,\n    .pine-island-bayou-article h3 {\n      font-family: Georgia, \"Times New Roman\", serif;\n      line-height: 1.25;\n      color: #1f3b2d;\n    }\n\n    .pine-island-bayou-article h1,\n    .pine-island-bayou-article h2,\n    .pine-island-bayou-article h3 {\n      text-decoration: none !important;\n      background: none !important;\n      background-image: none !important;\n      border: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .pine-island-bayou-article h1::before,\n    .pine-island-bayou-article h1::after,\n    .pine-island-bayou-article h2::before,\n    .pine-island-bayou-article h2::after,\n    .pine-island-bayou-article h3::before,\n    .pine-island-bayou-article h3::after {\n      content: none !important;\n      display: none !important;\n      background: none !important;\n      border: 0 !important;\n      box-shadow: none !important;\n    }\n\n    .pine-island-bayou-article h1 {\n      font-size: clamp(2rem, 4vw, 3.2rem);\n      margin: 0 0 0.5rem;\n    }\n\n    .pine-island-bayou-article h2 {\n      font-size: clamp(1.45rem, 3vw, 2rem);\n      margin-top: 2.5rem;\n      padding-bottom: 0.35rem;\n    }\n\n    .pine-island-bayou-article h3 {\n      font-size: 1.2rem;\n      margin-top: 1.75rem;\n    }\n\n    .pine-island-bayou-article p {\n      margin: 1rem 0;\n      font-size: 1.05rem;\n    }\n\n    .pine-island-bayou-article a {\n      color: #1b5e3a;\n      text-decoration-thickness: 1px;\n      text-underline-offset: 3px;\n    }\n\n    .article-kicker {\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      font-size: 0.85rem;\n      color: #6d5e35;\n      font-weight: 700;\n      margin-bottom: 0.35rem;\n      font-family: Arial, Helvetica, sans-serif;\n    }\n\n    .article-subtitle {\n      font-size: 1.25rem;\n      color: #4e5c4f;\n      margin-top: 0.5rem;\n      max-width: 780px;\n    }\n\n    .byline {\n      margin: 1.25rem 0 2rem;\n      font-family: Arial, Helvetica, sans-serif;\n      font-size: 0.95rem;\n      color: #5b665c;\n    }\n\n    .lead {\n      font-size: 1.22rem;\n      color: #2f3c32;\n    }\n\n    .hero-photo,\n    .article-photo {\n      margin: 1.75rem 0;\n      background: #f4efe3;\n      border: 1px solid #dfd5bd;\n      padding: 0.75rem;\n    }\n\n    .hero-photo img,\n    .article-photo img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n\n    .article-photo.portrait {\n      max-width: 420px;\n    }\n\n    .article-photo.right {\n      float: right;\n      width: min(42%, 360px);\n      margin: 0.4rem 0 1rem 1.5rem;\n    }\n\n    .article-photo.left {\n      float: left;\n      width: min(42%, 360px);\n      margin: 0.4rem 1.5rem 1rem 0;\n    }\n\n    .caption {\n      font-family: Arial, Helvetica, sans-serif;\n      font-size: 0.9rem;\n      color: #596157;\n      margin-top: 0.6rem;\n      line-height: 1.45;\n    }\n\n    .pullquote {\n      margin: 2rem 0;\n      padding: 1.25rem 1.5rem;\n      border-left: 6px solid #8a6f32;\n      background: #f6f0df;\n      font-size: 1.25rem;\n      color: #2f3c32;\n      font-style: italic;\n    }\n\n    .info-box {\n      margin: 2rem 0;\n      padding: 1.25rem 1.5rem;\n      background: #eef3ec;\n      border: 1px solid #cbdac9;\n      font-family: Arial, Helvetica, sans-serif;\n      color: #28362b;\n    }\n\n    .info-box h3 {\n      margin-top: 0;\n      font-family: Arial, Helvetica, sans-serif;\n    }\n\n    .info-box ul,\n    .sources ul {\n      margin: 0.75rem 0 0;\n      padding-left: 1.25rem;\n    }\n\n    .info-box li,\n    .sources li {\n      margin: 0.45rem 0;\n    }\n\n    .photo-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1rem;\n      margin: 2rem 0;\n    }\n\n    .photo-grid figure {\n      margin: 0;\n      background: #f4efe3;\n      border: 1px solid #dfd5bd;\n      padding: 0.6rem;\n    }\n\n    .photo-grid img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n\n    .sources {\n      clear: both;\n      margin-top: 3rem;\n      padding-top: 1rem;\n      border-top: 2px solid #d9c69a;\n      font-family: Arial, Helvetica, sans-serif;\n      font-size: 0.95rem;\n    }\n\n    @media (max-width: 760px) {\n      .pine-island-bayou-article {\n        width: 100vw;\n        margin-left: calc(50% - 50vw);\n        margin-right: calc(50% - 50vw);\n        padding: 1rem;\n      }\n\n      .article-photo.right,\n      .article-photo.left {\n        float: none;\n        width: auto;\n        max-width: none;\n        margin: 1.5rem 0;\n      }\n\n      .photo-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n  <\/style>\n\n  <header>\n    <div class=\"article-kicker\">Lower Trinity Basin Master Naturalists<\/div>\n    <h1>Following the Water Road: Paddling Pine Island Bayou<\/h1>\n    <p class=\"article-subtitle\">A first visit to Big Thicket National Preserve, a ranger-led canoe trip, and a reminder that Southeast Texas waterways were once the roads of daily life.<\/p>\n    <p class=\"byline\">By Rodney Franks &bull; Lower Trinity Basin Chapter, Texas Master Naturalist Program<\/p>\n  <\/header>\n\n  <figure class=\"hero-photo\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/fellow_master_naturalists.png\" alt=\"Two paddlers in a red canoe reflected in the dark water of Pine Island Bayou.\" loading=\"eager\">\n    <figcaption class=\"caption\">A red canoe glides across Pine Island Bayou, its reflection nearly undisturbed in the tannin-dark water. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p class=\"lead\">On a rainy Saturday morning, Cynthia and I joined a National Park Service paddle program on Pine Island Bayou in Big Thicket National Preserve. It was Cynthia&#8217;s first visit to the Big Thicket, and the bayou offered the right introduction: dark water, cypress-lined banks, quiet bends, and a sense that the modern world had faded behind the trees.<\/p>\n\n  <p>At first glance, Pine Island Bayou looks like a place set apart for wildlife, paddling, and reflection. Today, that is largely how many of us experience it. We come to observe birds, study plants, photograph reflections, or learn how a blackwater stream moves through a floodplain forest. But for earlier generations in Southeast Texas, a bayou like this was not simply scenery. It was infrastructure.<\/p>\n\n  <div class=\"pullquote\">A modern visitor may see Pine Island Bayou and think, &#8220;What a beautiful place to canoe.&#8221; A nineteenth-century settler may have seen the same water and thought, &#8220;This is the road.&#8221;<\/div>\n\n  <h2>Meeting the Bayou from the Water<\/h2>\n\n  <figure class=\"article-photo right portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/ranger_max.png\" alt=\"National Park Service Ranger Max Harper standing in front of stacked canoes.\" loading=\"lazy\">\n    <figcaption class=\"caption\">Park Ranger Max Harper, Paddle Program Coordinator for Big Thicket National Preserve, led the group onto Pine Island Bayou. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>Our trip was led by Park Ranger Max Harper, Paddle Program Coordinator for Big Thicket National Preserve. Ranger-led paddles are a practical way to experience the preserve from the water, especially for visitors who may not know the local access points, water conditions, or natural history of the area.<\/p>\n\n  <p>Before launching, the group gathered near the canoes, adjusted life jackets, and listened to instructions. A paddle trip begins with simple things: where to sit, how to balance the canoe, how to turn, how to keep spacing between boats, and how to pay attention to weather and water. Those ordinary preparations mattered more under the heavy gray sky, where the air felt humid and the bayou looked both calm and powerful.<\/p>\n\n  <figure class=\"article-photo left portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/preparing_to_launch.png\" alt=\"Canoes arranged at the launch site beside Pine Island Bayou.\" loading=\"lazy\">\n    <figcaption class=\"caption\">Canoes staged at the launch before the group entered the bayou. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>Once underway, the perspective changed immediately. From a road or overlook, a bayou can appear as a line on a map or a dark strip of water between trees. From inside a canoe, it becomes a corridor. The banks rise and fall. Roots hold the soil in some places and surrender it in others. Fallen limbs become perches, habitat, and obstacles. Every bend limits the view ahead, making the next turn part of the experience.<\/p>\n\n  <p>For Cynthia, this was a first encounter with the Big Thicket from the inside rather than from a roadside or trailhead. That matters. The preserve is not one single landscape, but a collection of waterways, forests, bogs, baygalls, uplands, and floodplains. Pine Island Bayou introduces the Thicket by water, and water has always been one of the best ways to understand this region.<\/p>\n\n  <h2>The Bayou as Highway<\/h2>\n\n  <p>Today we often describe Pine Island Bayou in ecological terms, but its human history is just as important. The Texas State Historical Association notes that many of the earliest recorded settlers in Hardin and Jefferson counties settled along the bayou, and that nineteenth-century steamboats navigated its lower waters while trading with residents of the region.<\/p>\n\n  <p>That statement changes how a paddler sees the landscape. The quiet water beneath a canoe was once part of a working transportation network. Before reliable roads, bridges, railroads, and highways, waterways such as the Neches River, Village Creek, Pine Island Bayou, and their tributaries linked scattered settlements to each other and to larger markets.<\/p>\n\n  <p>Roads through the Big Thicket were difficult. Heavy rainfall, low ground, dense vegetation, and floodplain soils made overland travel slow and seasonal. A wagon could bog down in mud. A trail could disappear beneath water. A bayou, by contrast, could carry people, mail, tools, lumber, farm products, and trade goods when conditions allowed. The water was not an obstacle to movement. It was the route.<\/p>\n\n  <figure class=\"article-photo right portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/group_of_canoes.png\" alt=\"A group of canoes traveling together on Pine Island Bayou under an overcast sky.\" loading=\"lazy\">\n    <figcaption class=\"caption\">The paddle group moves along Pine Island Bayou, a waterway that once helped connect isolated communities. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>Historical references to steamboats on Pine Island Bayou can be brief, but they are revealing. They remind us that the bayou was not isolated from commerce. It connected to the Neches River system, and the Neches connected inland communities to Beaumont and the Gulf Coast. In that sense, Pine Island Bayou was not the edge of the world for nineteenth-century residents. It was part of their connection to it.<\/p>\n\n  <p>That is the idea many modern visitors miss. We tend to think in terms of highways, county roads, driveways, and parking lots. Earlier residents thought in terms of landings, river bends, crossings, ferries, flood stages, and navigable channels. Water shaped where people settled, how they traded, when they traveled, and how they understood distance.<\/p>\n\n  <h2>The Character of Blackwater<\/h2>\n\n  <figure class=\"article-photo left portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/here_we_go.png\" alt=\"View from inside a canoe looking over a paddler toward Pine Island Bayou.\" loading=\"lazy\">\n    <figcaption class=\"caption\">From inside the canoe, Pine Island Bayou becomes a corridor rather than a view from the bank. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>The water in Pine Island Bayou was dark brown, almost tea-colored in some places. Visitors sometimes describe this as muddy water, but blackwater streams are often stained by tannins and dissolved organic material from leaves, wood, roots, and floodplain soils. The color is part of the system&#8217;s character.<\/p>\n\n  <p>Along the banks, bald cypress, hardwoods, vines, shrubs, and understory plants crowded the waterline. Some trees stood with roots exposed by erosion. Others appeared to rise directly from the flooded edge. Reflections of trunks and clouds stretched across the surface, broken only by paddle strokes and the wake of passing canoes.<\/p>\n\n  <figure class=\"article-photo right portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/muddy_pine_island_bayou_water.png\" alt=\"Tannin-stained blackwater along the forested bank of Pine Island Bayou.\" loading=\"lazy\">\n    <figcaption class=\"caption\">The dark water of Pine Island Bayou reflects tannins and organic material from the surrounding floodplain forest. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>Big Thicket National Preserve protects a landscape where plant communities overlap in unusual ways. Pine Island Bayou and nearby waterways help support bottomland hardwood forests, cypress-tupelo swamps, baygalls, and wetland edges. These habitats are dynamic. Water rises and falls. Banks erode and rebuild. Logs fall, decay, and become part of the food web.<\/p>\n\n  <p>One fallen log along our route carried pale shelf fungi above the waterline. It was a small detail, but it told a larger story. Decomposition is not waste in a floodplain forest. It is process. Fungi, insects, bacteria, and water slowly return wood to the system, feeding the next generation of growth.<\/p>\n\n  <figure class=\"article-photo left portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/mushrooms_living_on_a_fallen_tree.png\" alt=\"Shelf fungi growing on a fallen tree partly submerged in Pine Island Bayou.\" loading=\"lazy\">\n    <figcaption class=\"caption\">Shelf fungi on a fallen tree show the constant cycle of growth, decay, and renewal in the floodplain. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <h2>A First Visit to the Big Thicket<\/h2>\n\n  <p>Because this was Cynthia&#8217;s first time in the Big Thicket, the trip became more than an outing. It became an introduction. Trails can show the preserve one step at a time, but a canoe shows how the landscape is stitched together by water. The bayou carries the eye forward. It asks the visitor to slow down and notice what is close: a root system, a leaning cypress, a ripple against the hull, the sound of paddles entering the water.<\/p>\n\n  <p>The day was overcast, and at times the sky seemed heavy enough to touch the treetops. That weather suited the bayou. Bright sun can flatten a landscape, but soft gray light deepened the greens of the forest and sharpened the reflections in the water.<\/p>\n\n  <figure class=\"article-photo right portrait\">\n    <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/pine_island_reflection.png\" alt=\"Trees and cloudy sky reflected in the calm water of Pine Island Bayou.\" loading=\"lazy\">\n    <figcaption class=\"caption\">A quiet stretch of Pine Island Bayou reflects the surrounding forest and cloudy sky. Photo by Rodney Franks.<\/figcaption>\n  <\/figure>\n\n  <p>In several places, there were few visible signs of modern development. That absence made the historical imagination easier. It was not difficult to picture a small steamboat working its way through the lower bayou when water levels permitted, or to imagine people waiting at a landing for goods, news, or transport.<\/p>\n\n  <p>Of course, the bayou was never untouched. Indigenous peoples, settlers, traders, farmers, timber interests, and later conservationists all shaped the history of this watershed. But from a canoe, the continuity of the place is still noticeable. The same dark water that carried commerce now carries paddlers. The same floodplain that complicated road building still slows travel and rewards patience.<\/p>\n\n  <h2>Why This Water Road Still Matters<\/h2>\n\n  <p>The National Park Service describes Big Thicket National Preserve as a place with many paddling opportunities on rivers, creeks, bayous, oxbow lakes, and cypress sloughs. That variety is not just recreational. It is central to understanding Southeast Texas.<\/p>\n\n  <p>Waterways shaped settlement patterns, commerce, plant communities, wildlife movement, and the daily decisions of people who lived here before paved roads became dependable. To understand Pine Island Bayou only as a scenic paddle is to miss half the story. To understand it only as a historic route is to miss the living system still at work along its banks.<\/p>\n\n  <p>For Master Naturalists, that combination is important. We study nature, but we also interpret place. A place is more than its species list. It includes memory, use, change, and the ways people have understood the land and water over time. Pine Island Bayou gives us all of that in one slow-moving channel.<\/p>\n\n  <div class=\"info-box\">\n    <h3>Visitor Notes<\/h3>\n    <ul>\n      <li>Big Thicket National Preserve offers ranger-led paddle programs and information about paddling routes, boat launches, and safety.<\/li>\n      <li>Conditions on Southeast Texas waterways can change quickly. Check weather and water levels before paddling.<\/li>\n      <li>Wear a properly fitted life jacket and follow National Park Service guidance for safe paddling.<\/li>\n      <li>Respect public and private boundaries along waterways. The preserve notes that private property may exist along some corridors.<\/li>\n    <\/ul>\n  <\/div>\n\n  <h2>Photo Notes from the Trip<\/h2>\n\n  <div class=\"photo-grid\">\n    <figure>\n      <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/preparing_to_canoe.png\" alt=\"Canoes loaded on a trailer before the paddle program.\" loading=\"lazy\">\n      <figcaption class=\"caption\">Preparing for the paddle program.<\/figcaption>\n    <\/figure>\n    <figure>\n      <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/underway.png\" alt=\"Canoes underway on Pine Island Bayou.\" loading=\"lazy\">\n      <figcaption class=\"caption\">Underway on Pine Island Bayou.<\/figcaption>\n    <\/figure>\n    <figure>\n      <img decoding=\"async\" src=\"https:\/\/txmn.org\/lowertrinitybasin\/files\/2026\/06\/moving_water_facility.png\" alt=\"Canoe on Pine Island Bayou near a water control or industrial facility.\" loading=\"lazy\">\n      <figcaption class=\"caption\">Modern infrastructure appears briefly along the waterway.<\/figcaption>\n    <\/figure>\n  <\/div>\n\n  <h2>Looking Back from the Canoe<\/h2>\n\n  <p>By the end of the trip, Pine Island Bayou felt less like a destination and more like a passage through time. We had paddled through a living ecosystem, but also through a historic corridor. The trees, water, fungi, roots, and reflections were present-day observations. The steamboats, landings, settlers, and trade routes belonged to another century. The bayou held both stories at once.<\/p>\n\n  <p>That may be the lesson worth carrying forward. In Southeast Texas, water was not just scenery. It was movement, connection, commerce, food, work, and daily life. Pine Island Bayou still teaches that lesson, but it teaches slowly. You have to get close to the water, listen to the paddle strokes, and imagine the road that flowed beneath you.<\/p>\n\n  <section class=\"sources\">\n    <h2>Sources and Further Reading<\/h2>\n    <ul>\n      <li><a href=\"https:\/\/www.nps.gov\/bith\/planyourvisit\/paddling-the-big-thicket.htm\">National Park Service: Paddling the Big Thicket<\/a><\/li>\n      <li><a href=\"https:\/\/www.nps.gov\/bith\/planyourvisit\/paddling-trails.htm\">National Park Service: Paddling Trails in Big Thicket National Preserve<\/a><\/li>\n      <li><a href=\"https:\/\/www.nps.gov\/bith\/planyourvisit\/waterway-corridor-units.htm\">National Park Service: Waterway Corridor Units<\/a><\/li>\n      <li><a href=\"https:\/\/www.tshaonline.org\/handbook\/entries\/pine-island-bayou\">Texas State Historical Association: Pine Island Bayou<\/a><\/li>\n      <li><a href=\"https:\/\/www.nps.gov\/bith\/planyourvisit\/boat-launches.htm\">National Park Service: Boat Launches<\/a><\/li>\n    <\/ul>\n  <\/section>\n<\/article>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu 3\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-3\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-3-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>","protected":false},"excerpt":{"rendered":"<p>Lower Trinity Basin Master Naturalists Following the Water Road: Paddling Pine Island Bayou A first visit to Big Thicket National Preserve, a ranger-led canoe trip, and a reminder that Southeast&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/member-articles\/big-thicket-adventure\/big-thicket-canoe-trip\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":199472,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-200023","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Lower Trinity Basin Master Naturalists Following the Water Road: Paddling Pine Island Bayou A first visit to Big Thicket National Preserve, a ranger-led canoe trip, and a reminder that Southeast... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=200023"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/200023\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199472"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=200023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":199546,"date":"2026-05-28T06:55:19","date_gmt":"2026-05-28T11:55:19","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=199546"},"modified":"2026-05-28T06:55:19","modified_gmt":"2026-05-28T11:55:19","slug":"operations","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/","title":{"rendered":"Operations"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Member Operations<\/title>\n\n  <style>\n    :root {\n      --ltb-green-dark: #173f22;\n      --ltb-green: #2f6b3a;\n      --ltb-green-soft: #e6f0df;\n      --ltb-gold: #c58b1c;\n      --ltb-gold-soft: #f5ead2;\n      --ltb-cream: #fbf7ec;\n      --ltb-blue: #2d8c99;\n      --ltb-blue-soft: #dceff1;\n      --ltb-slate: #39463d;\n      --ltb-slate-soft: #eef1ed;\n      --ltb-text: #243126;\n      --ltb-muted: #637062;\n      --ltb-white: #ffffff;\n      --ltb-border: rgba(23, 63, 34, 0.18);\n      --ltb-shadow: 0 16px 34px rgba(23, 63, 34, 0.12);\n    }\n\n    body {\n      margin: 0;\n      font-family: Arial, Helvetica, sans-serif;\n      color: var(--ltb-text);\n      background: linear-gradient(180deg, #fbf7ec 0%, #ffffff 44%, #f5f8f1 100%);\n      line-height: 1.6;\n    }\n\n    .entry-title,\n    .page-title,\n    .wp-block-post-title {\n      display: none;\n    }\n\n    .member-operations {\n      width: 100vw;\n      margin-left: calc(50% - 50vw);\n      margin-right: calc(50% - 50vw);\n      overflow: hidden;\n    }\n\n    .member-operations h1,\n    .member-operations h2,\n    .member-operations h3,\n    .member-operations a {\n      text-decoration: none !important;\n      border-bottom: 0 !important;\n      box-shadow: none !important;\n      background-image: none !important;\n    }\n\n    .member-operations h1::before,\n    .member-operations h1::after,\n    .member-operations h2::before,\n    .member-operations h2::after,\n    .member-operations h3::before,\n    .member-operations h3::after,\n    .member-operations a::before,\n    .member-operations a::after {\n      display: none !important;\n      content: none !important;\n      border: 0 !important;\n      box-shadow: none !important;\n      background: none !important;\n    }\n\n    .member-operations a:focus-visible,\n    .member-operations button:focus-visible,\n    .member-operations [tabindex]:focus-visible {\n      outline: 3px solid var(--ltb-gold);\n      outline-offset: 4px;\n      border-radius: 10px;\n    }\n\n    .operations-wrap {\n      width: min(1280px, calc(100% - 3rem));\n      margin: 0 auto;\n    }\n\n    .operations-hero {\n      position: relative;\n      padding: 3.5rem 1.5rem 2.25rem;\n      background:\n        radial-gradient(circle at top left, rgba(45, 140, 153, 0.18), transparent 30rem),\n        radial-gradient(circle at top right, rgba(197, 139, 28, 0.15), transparent 30rem),\n        linear-gradient(135deg, #fbf7ec, #f4f8ef);\n      isolation: isolate;\n    }\n\n    .operations-hero::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background-image:\n        linear-gradient(rgba(23, 63, 34, 0.045) 1px, transparent 1px),\n        linear-gradient(90deg, rgba(23, 63, 34, 0.045) 1px, transparent 1px);\n      background-size: 42px 42px;\n      mask-image: linear-gradient(to bottom, black, transparent 82%);\n      z-index: -1;\n    }\n\n    .operations-header {\n      display: grid;\n      grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);\n      gap: 1.5rem;\n      align-items: stretch;\n    }\n\n    .identity-card,\n    .status-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 28px;\n      box-shadow: var(--ltb-shadow);\n      backdrop-filter: blur(10px);\n    }\n\n    .identity-card {\n      padding: 2.4rem;\n      background: rgba(255, 255, 255, 0.82);\n    }\n\n    .breadcrumb {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.45rem;\n      margin-bottom: 1rem;\n      color: var(--ltb-muted);\n      font-size: 0.9rem;\n      font-weight: 700;\n    }\n\n    .breadcrumb span:last-child {\n      color: var(--ltb-green-dark);\n    }\n\n    .operations-tag {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.5rem;\n      margin-bottom: 1rem;\n      padding: 0.35rem 0.75rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-blue-soft);\n      font-size: 0.82rem;\n      font-weight: 700;\n      letter-spacing: 0.06em;\n      text-transform: uppercase;\n    }\n\n    .operations-tag::before {\n      content: \"\";\n      width: 0.55rem;\n      height: 0.55rem;\n      border-radius: 50%;\n      background: var(--ltb-blue);\n    }\n\n    .identity-card h1 {\n      margin: 0 0 1rem;\n      color: var(--ltb-green-dark);\n      font-size: clamp(2.3rem, 4.6vw, 4.8rem);\n      line-height: 0.96;\n      letter-spacing: -0.05em;\n    }\n\n    .identity-card p {\n      max-width: 760px;\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 1.06rem;\n    }\n\n    .status-card {\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      gap: 1.25rem;\n      padding: 1.5rem;\n      color: var(--ltb-white);\n      background:\n        linear-gradient(135deg, rgba(23, 63, 34, 0.95), rgba(45, 140, 153, 0.86)),\n        var(--ltb-green-dark);\n      overflow: hidden;\n    }\n\n    .status-card h2 {\n      margin: 0;\n      font-size: 1.35rem;\n      letter-spacing: -0.02em;\n    }\n\n    .status-card p {\n      margin: 0.45rem 0 0;\n      color: rgba(255, 255, 255, 0.78);\n    }\n\n    .status-list {\n      display: grid;\n      gap: 0.7rem;\n    }\n\n    .status-item {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 1rem;\n      padding: 0.85rem;\n      border: 1px solid rgba(255, 255, 255, 0.18);\n      border-radius: 16px;\n      background: rgba(255, 255, 255, 0.1);\n    }\n\n    .status-item strong {\n      font-size: 0.95rem;\n    }\n\n    .status-item span {\n      color: rgba(255, 255, 255, 0.76);\n      font-size: 0.86rem;\n      white-space: nowrap;\n    }\n\n    .section {\n      padding: 2.75rem 1.5rem;\n      background: var(--ltb-white);\n    }\n\n    .section.soft {\n      background: linear-gradient(180deg, #ffffff, #f5f8f1);\n    }\n\n    .section-heading {\n      display: flex;\n      align-items: end;\n      justify-content: space-between;\n      gap: 1.5rem;\n      margin-bottom: 1.25rem;\n    }\n\n    .section-heading h2 {\n      margin: 0;\n      color: var(--ltb-green-dark);\n      font-size: clamp(1.55rem, 3vw, 2.25rem);\n      line-height: 1.1;\n      letter-spacing: -0.035em;\n    }\n\n    .section-heading p {\n      max-width: 580px;\n      margin: 0;\n      color: var(--ltb-muted);\n    }\n\n    .workflow-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 1rem;\n    }\n\n    .workflow-card {\n      position: relative;\n      min-height: 190px;\n      padding: 1.2rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      color: inherit;\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n      overflow: hidden;\n    }\n\n    .workflow-card::after {\n      content: \"\";\n      position: absolute;\n      right: -2.2rem;\n      bottom: -2.2rem;\n      width: 8rem;\n      height: 8rem;\n      border-radius: 50%;\n      background: var(--ltb-blue-soft);\n      z-index: 0;\n    }\n\n    .workflow-card > * {\n      position: relative;\n      z-index: 1;\n    }\n\n    .workflow-label {\n      display: inline-flex;\n      align-items: center;\n      margin-bottom: 0.9rem;\n      padding: 0.28rem 0.62rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-gold-soft);\n      font-size: 0.76rem;\n      font-weight: 700;\n      letter-spacing: 0.04em;\n      text-transform: uppercase;\n    }\n\n    .workflow-card h3 {\n      margin: 0 0 0.45rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.15rem;\n      letter-spacing: -0.02em;\n    }\n\n    .workflow-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-text {\n      display: inline-block;\n      margin-top: 1rem;\n      color: var(--ltb-green-dark);\n      font-weight: 700;\n      font-size: 0.92rem;\n    }\n\n    .operations-layout {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) 360px;\n      gap: 1.25rem;\n      align-items: start;\n    }\n\n    .panel,\n    .rail-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n    }\n\n    .panel,\n    .rail-card {\n      padding: 1.2rem;\n    }\n\n    .panel h2,\n    .rail-card h2 {\n      margin: 0 0 0.9rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.25rem;\n      letter-spacing: -0.02em;\n    }\n\n    .rail {\n      display: grid;\n      gap: 1rem;\n    }\n\n    .task-list,\n    .notice-list,\n    .resource-list {\n      display: grid;\n      gap: 0.75rem;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .task-list li,\n    .notice-list li,\n    .resource-list li {\n      padding: 0.85rem;\n      border-radius: 16px;\n      background: var(--ltb-slate-soft);\n    }\n\n    .task-list strong,\n    .notice-list strong,\n    .resource-list strong {\n      display: block;\n      color: var(--ltb-green-dark);\n      line-height: 1.25;\n    }\n\n    .task-list span,\n    .notice-list span,\n    .resource-list span {\n      display: block;\n      margin-top: 0.25rem;\n      color: var(--ltb-muted);\n      font-size: 0.88rem;\n    }\n\n    .quick-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1rem;\n    }\n\n    .quick-card {\n      padding: 1.1rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 22px;\n      background: rgba(255, 255, 255, 0.85);\n      color: inherit;\n      transition: transform 0.18s ease, box-shadow 0.18s ease;\n    }\n\n    .quick-card:hover {\n      transform: translateY(-2px);\n      box-shadow: 0 12px 24px rgba(23, 63, 34, 0.1);\n    }\n\n    .quick-card h3 {\n      margin: 0 0 0.5rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.08rem;\n    }\n\n    .quick-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-card {\n      cursor: not-allowed;\n    }\n\n    @media (max-width: 1080px) {\n      .operations-header,\n      .operations-layout {\n        grid-template-columns: 1fr;\n      }\n\n      .workflow-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n\n      .quick-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n\n    @media (max-width: 760px) {\n      .operations-wrap {\n        width: min(100% - 2rem, 1280px);\n      }\n\n      .operations-hero {\n        padding-top: 2rem;\n      }\n\n      .identity-card {\n        padding: 1.5rem;\n      }\n\n      .section-heading {\n        align-items: start;\n        flex-direction: column;\n      }\n\n      .workflow-grid,\n      .quick-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .status-item {\n        align-items: start;\n        flex-direction: column;\n        gap: 0.2rem;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <main class=\"member-operations\">\n    <section class=\"operations-hero\" aria-labelledby=\"operations-title\">\n      <div class=\"operations-wrap\">\n        <div class=\"operations-header\">\n          <div class=\"identity-card\">\n            <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n              <span>Member Portal<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>DOSA<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>Operations<\/span>\n            <\/nav>\n            <div class=\"operations-tag\">Operations<\/div>\n            <h1 id=\"operations-title\">Member Operations<\/h1>\n            <p>\n              A working space for the active side of TXMN Lower Trinity Basin chapter activity: projects, events, volunteer reporting, requests, field support, and operational follow-through.\n            <\/p>\n          <\/div>\n\n          <aside class=\"status-card\" aria-labelledby=\"operations-status-title\">\n            <div>\n              <h2 id=\"operations-status-title\">Operations Snapshot<\/h2>\n              <p>Use this area for quick operational status once data sources are available.<\/p>\n            <\/div>\n            <div class=\"status-list\" aria-label=\"Operations status summary\">\n              <div class=\"status-item\">\n                <strong>Projects<\/strong>\n                <span>Active<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Events<\/strong>\n                <span>Upcoming<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Requests<\/strong>\n                <span>Review<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Reports<\/strong>\n                <span>Open<\/span>\n              <\/div>\n            <\/div>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"workflow-title\">\n      <div class=\"operations-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"workflow-title\">Operational Workflows<\/h2>\n          <p>Primary work areas for moving chapter activity from request to planning, execution, reporting, and follow-up.<\/p>\n        <\/div>\n\n        <div class=\"workflow-grid\" aria-label=\"Primary operations workflows\">\n          <article class=\"workflow-card\" aria-labelledby=\"projects-title\">\n            <span class=\"workflow-label\">Plan<\/span>\n            <h3 id=\"projects-title\">Projects<\/h3>\n            <p>Track approved projects, project references, assignments, partners, and working notes.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"workflow-card\" aria-labelledby=\"events-title\">\n            <span class=\"workflow-label\">Schedule<\/span>\n            <h3 id=\"events-title\">Events<\/h3>\n            <p>Coordinate meetings, outreach, training, field activities, and operational event details.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"workflow-card\" aria-labelledby=\"vms-title\">\n            <span class=\"workflow-label\">Report<\/span>\n            <h3 id=\"vms-title\">VMS &#038; Hours<\/h3>\n            <p>Route members to volunteer reporting, service hours, training hours, and related guidance.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"workflow-card\" aria-labelledby=\"requests-title\">\n            <span class=\"workflow-label\">Intake<\/span>\n            <h3 id=\"requests-title\">Requests<\/h3>\n            <p>Central place for operational requests, routing needs, clarifications, and follow-up items.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section soft\" aria-labelledby=\"active-work-title\">\n      <div class=\"operations-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"active-work-title\">Active Work<\/h2>\n          <p>Placeholder panels for data-driven operational information such as open tasks, upcoming deadlines, and recent activity.<\/p>\n        <\/div>\n\n        <div class=\"operations-layout\">\n          <div class=\"panel\" aria-labelledby=\"open-items-title\">\n            <h2 id=\"open-items-title\">Open Items<\/h2>\n            <ul class=\"task-list\">\n              <li>\n                <strong>Project follow-up<\/strong>\n                <span>Placeholder for open project actions, partner follow-up, or member assignments.<\/span>\n              <\/li>\n              <li>\n                <strong>Upcoming event check<\/strong>\n                <span>Placeholder for logistics, calendar review, and preparation status.<\/span>\n              <\/li>\n              <li>\n                <strong>Reporting reminder<\/strong>\n                <span>Placeholder for VMS, hours, training, or report completion reminders.<\/span>\n              <\/li>\n            <\/ul>\n          <\/div>\n\n          <aside class=\"rail\" aria-label=\"Operations notices and resources\">\n            <section class=\"rail-card\" aria-labelledby=\"operations-notices-title\">\n              <h2 id=\"operations-notices-title\">Operations Notices<\/h2>\n              <ul class=\"notice-list\">\n                <li>\n                  <strong>Workflow buildout<\/strong>\n                  <span>Replace placeholders as forms, calendars, and shared folders are finalized.<\/span>\n                <\/li>\n                <li>\n                  <strong>Access planning<\/strong>\n                  <span>Decide which operational tools are member-only or leadership-only.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n\n            <section class=\"rail-card\" aria-labelledby=\"operations-resources-title\">\n              <h2 id=\"operations-resources-title\">Resource Links<\/h2>\n              <ul class=\"resource-list\">\n                <li>\n                  <strong>Operations Drive<\/strong>\n                  <span>Placeholder for shared operations folder.<\/span>\n                <\/li>\n                <li>\n                  <strong>Operations Calendar<\/strong>\n                  <span>Placeholder for working calendar or filtered calendar view.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"quick-links-title\">\n      <div class=\"operations-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"quick-links-title\">Operations Quick Links<\/h2>\n          <p>Compact routing tiles for frequently used operational tools. Replace placeholders with final URLs as they become available.<\/p>\n        <\/div>\n\n        <div class=\"quick-grid\" aria-label=\"Operations quick links\">\n          <a class=\"quick-card\" href=\"https:\/\/calendar.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Calendar in a new tab\">\n            <h3>Google Calendar<\/h3>\n            <p>Open chapter or working calendars for meetings, events, and planning dates.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/drive.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Drive in a new tab\">\n            <h3>Google Drive<\/h3>\n            <p>Open shared folders, project documents, templates, and working files.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/forms.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Forms in a new tab\">\n            <h3>Google Forms<\/h3>\n            <p>Open request forms, signups, surveys, and operational intake forms.<\/p>\n          <\/a>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>VMS<\/h3>\n            <p>Placeholder for volunteer management and reporting system access.<\/p>\n          <\/div>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Project Library<\/h3>\n            <p>Placeholder for approved project references and activity support material.<\/p>\n          <\/div>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Request Intake<\/h3>\n            <p>Placeholder for internal operational support requests.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu 4\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-4\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-4-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>","protected":false},"excerpt":{"rendered":"<p>Member Operations Member Portal \/ DOSA \/ Operations Operations Member Operations A working space for the active side of TXMN Lower Trinity Basin chapter activity: projects, events, volunteer reporting, requests,&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":197589,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-199546","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Member Operations Member Portal \/ DOSA \/ Operations Operations Member Operations A working space for the active side of TXMN Lower Trinity Basin chapter activity: projects, events, volunteer reporting, requests,... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=199546"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199546\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/197589"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=199546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":199548,"date":"2026-05-28T06:54:52","date_gmt":"2026-05-28T11:54:52","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=199548"},"modified":"2026-05-28T06:54:53","modified_gmt":"2026-05-28T11:54:53","slug":"studio","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/studio\/","title":{"rendered":"Studio"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Member Studio<\/title>\n\n  <style>\n    :root {\n      --ltb-green-dark: #173f22;\n      --ltb-green: #2f6b3a;\n      --ltb-green-soft: #e6f0df;\n      --ltb-gold: #c58b1c;\n      --ltb-gold-soft: #f5ead2;\n      --ltb-cream: #fbf7ec;\n      --ltb-blue: #2d8c99;\n      --ltb-blue-soft: #dceff1;\n      --ltb-slate: #39463d;\n      --ltb-slate-soft: #eef1ed;\n      --ltb-text: #243126;\n      --ltb-muted: #637062;\n      --ltb-white: #ffffff;\n      --ltb-border: rgba(23, 63, 34, 0.18);\n      --ltb-shadow: 0 16px 34px rgba(23, 63, 34, 0.12);\n    }\n\n    body {\n      margin: 0;\n      font-family: Arial, Helvetica, sans-serif;\n      color: var(--ltb-text);\n      background: linear-gradient(180deg, #fbf7ec 0%, #ffffff 44%, #f5f8f1 100%);\n      line-height: 1.6;\n    }\n\n    .entry-title,\n    .page-title,\n    .wp-block-post-title {\n      display: none;\n    }\n\n    .member-studio {\n      width: 100vw;\n      margin-left: calc(50% - 50vw);\n      margin-right: calc(50% - 50vw);\n      overflow: hidden;\n    }\n\n    .member-studio h1,\n    .member-studio h2,\n    .member-studio h3,\n    .member-studio a {\n      text-decoration: none !important;\n      border-bottom: 0 !important;\n      box-shadow: none !important;\n      background-image: none !important;\n    }\n\n    .member-studio h1::before,\n    .member-studio h1::after,\n    .member-studio h2::before,\n    .member-studio h2::after,\n    .member-studio h3::before,\n    .member-studio h3::after,\n    .member-studio a::before,\n    .member-studio a::after {\n      display: none !important;\n      content: none !important;\n      border: 0 !important;\n      box-shadow: none !important;\n      background: none !important;\n    }\n\n    .member-studio a:focus-visible,\n    .member-studio button:focus-visible,\n    .member-studio [tabindex]:focus-visible {\n      outline: 3px solid var(--ltb-gold);\n      outline-offset: 4px;\n      border-radius: 10px;\n    }\n\n    .studio-wrap {\n      width: min(1280px, calc(100% - 3rem));\n      margin: 0 auto;\n    }\n\n    .studio-hero {\n      position: relative;\n      padding: 3.5rem 1.5rem 2.25rem;\n      background:\n        radial-gradient(circle at top left, rgba(197, 139, 28, 0.18), transparent 30rem),\n        radial-gradient(circle at top right, rgba(45, 140, 153, 0.16), transparent 30rem),\n        linear-gradient(135deg, #fbf7ec, #f4f8ef);\n      isolation: isolate;\n    }\n\n    .studio-hero::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background-image:\n        linear-gradient(rgba(23, 63, 34, 0.045) 1px, transparent 1px),\n        linear-gradient(90deg, rgba(23, 63, 34, 0.045) 1px, transparent 1px);\n      background-size: 42px 42px;\n      mask-image: linear-gradient(to bottom, black, transparent 82%);\n      z-index: -1;\n    }\n\n    .studio-header {\n      display: grid;\n      grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);\n      gap: 1.5rem;\n      align-items: stretch;\n    }\n\n    .identity-card,\n    .status-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 28px;\n      box-shadow: var(--ltb-shadow);\n      backdrop-filter: blur(10px);\n    }\n\n    .identity-card {\n      padding: 2.4rem;\n      background: rgba(255, 255, 255, 0.82);\n    }\n\n    .breadcrumb {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.45rem;\n      margin-bottom: 1rem;\n      color: var(--ltb-muted);\n      font-size: 0.9rem;\n      font-weight: 700;\n    }\n\n    .breadcrumb span:last-child {\n      color: var(--ltb-green-dark);\n    }\n\n    .studio-tag {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.5rem;\n      margin-bottom: 1rem;\n      padding: 0.35rem 0.75rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-gold-soft);\n      font-size: 0.82rem;\n      font-weight: 700;\n      letter-spacing: 0.06em;\n      text-transform: uppercase;\n    }\n\n    .studio-tag::before {\n      content: \"\";\n      width: 0.55rem;\n      height: 0.55rem;\n      border-radius: 50%;\n      background: var(--ltb-gold);\n    }\n\n    .identity-card h1 {\n      margin: 0 0 1rem;\n      color: var(--ltb-green-dark);\n      font-size: clamp(2.3rem, 4.6vw, 4.8rem);\n      line-height: 0.96;\n      letter-spacing: -0.05em;\n    }\n\n    .identity-card p {\n      max-width: 760px;\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 1.06rem;\n    }\n\n    .status-card {\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      gap: 1.25rem;\n      padding: 1.5rem;\n      color: var(--ltb-white);\n      background:\n        linear-gradient(135deg, rgba(23, 63, 34, 0.95), rgba(197, 139, 28, 0.86)),\n        var(--ltb-green-dark);\n      overflow: hidden;\n    }\n\n    .status-card h2 {\n      margin: 0;\n      font-size: 1.35rem;\n      letter-spacing: -0.02em;\n    }\n\n    .status-card p {\n      margin: 0.45rem 0 0;\n      color: rgba(255, 255, 255, 0.78);\n    }\n\n    .status-list {\n      display: grid;\n      gap: 0.7rem;\n    }\n\n    .status-item {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 1rem;\n      padding: 0.85rem;\n      border: 1px solid rgba(255, 255, 255, 0.18);\n      border-radius: 16px;\n      background: rgba(255, 255, 255, 0.1);\n    }\n\n    .status-item strong {\n      font-size: 0.95rem;\n    }\n\n    .status-item span {\n      color: rgba(255, 255, 255, 0.76);\n      font-size: 0.86rem;\n      white-space: nowrap;\n    }\n\n    .section {\n      padding: 2.75rem 1.5rem;\n      background: var(--ltb-white);\n    }\n\n    .section.soft {\n      background: linear-gradient(180deg, #ffffff, #f5f8f1);\n    }\n\n    .section-heading {\n      display: flex;\n      align-items: end;\n      justify-content: space-between;\n      gap: 1.5rem;\n      margin-bottom: 1.25rem;\n    }\n\n    .section-heading h2 {\n      margin: 0;\n      color: var(--ltb-green-dark);\n      font-size: clamp(1.55rem, 3vw, 2.25rem);\n      line-height: 1.1;\n      letter-spacing: -0.035em;\n    }\n\n    .section-heading p {\n      max-width: 580px;\n      margin: 0;\n      color: var(--ltb-muted);\n    }\n\n    .studio-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 1rem;\n    }\n\n    .studio-card {\n      position: relative;\n      min-height: 190px;\n      padding: 1.2rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      color: inherit;\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n      overflow: hidden;\n    }\n\n    .studio-card::after {\n      content: \"\";\n      position: absolute;\n      right: -2.2rem;\n      bottom: -2.2rem;\n      width: 8rem;\n      height: 8rem;\n      border-radius: 50%;\n      background: var(--ltb-gold-soft);\n      z-index: 0;\n    }\n\n    .studio-card > * {\n      position: relative;\n      z-index: 1;\n    }\n\n    .studio-label {\n      display: inline-flex;\n      align-items: center;\n      margin-bottom: 0.9rem;\n      padding: 0.28rem 0.62rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-blue-soft);\n      font-size: 0.76rem;\n      font-weight: 700;\n      letter-spacing: 0.04em;\n      text-transform: uppercase;\n    }\n\n    .studio-card h3 {\n      margin: 0 0 0.45rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.15rem;\n      letter-spacing: -0.02em;\n    }\n\n    .studio-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-text {\n      display: inline-block;\n      margin-top: 1rem;\n      color: var(--ltb-green-dark);\n      font-weight: 700;\n      font-size: 0.92rem;\n    }\n\n    .studio-layout {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) 360px;\n      gap: 1.25rem;\n      align-items: start;\n    }\n\n    .panel,\n    .rail-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n      padding: 1.2rem;\n    }\n\n    .panel h2,\n    .rail-card h2 {\n      margin: 0 0 0.9rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.25rem;\n      letter-spacing: -0.02em;\n    }\n\n    .rail {\n      display: grid;\n      gap: 1rem;\n    }\n\n    .draft-list,\n    .notice-list,\n    .resource-list {\n      display: grid;\n      gap: 0.75rem;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .draft-list li,\n    .notice-list li,\n    .resource-list li {\n      padding: 0.85rem;\n      border-radius: 16px;\n      background: var(--ltb-slate-soft);\n    }\n\n    .draft-list strong,\n    .notice-list strong,\n    .resource-list strong {\n      display: block;\n      color: var(--ltb-green-dark);\n      line-height: 1.25;\n    }\n\n    .draft-list span,\n    .notice-list span,\n    .resource-list span {\n      display: block;\n      margin-top: 0.25rem;\n      color: var(--ltb-muted);\n      font-size: 0.88rem;\n    }\n\n    .quick-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1rem;\n    }\n\n    .quick-card {\n      padding: 1.1rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 22px;\n      background: rgba(255, 255, 255, 0.85);\n      color: inherit;\n      transition: transform 0.18s ease, box-shadow 0.18s ease;\n    }\n\n    .quick-card:hover {\n      transform: translateY(-2px);\n      box-shadow: 0 12px 24px rgba(23, 63, 34, 0.1);\n    }\n\n    .quick-card h3 {\n      margin: 0 0 0.5rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.08rem;\n    }\n\n    .quick-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-card {\n      cursor: not-allowed;\n    }\n\n    @media (max-width: 1080px) {\n      .studio-header,\n      .studio-layout {\n        grid-template-columns: 1fr;\n      }\n\n      .studio-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n\n      .quick-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n\n    @media (max-width: 760px) {\n      .studio-wrap {\n        width: min(100% - 2rem, 1280px);\n      }\n\n      .studio-hero {\n        padding-top: 2rem;\n      }\n\n      .identity-card {\n        padding: 1.5rem;\n      }\n\n      .section-heading {\n        align-items: start;\n        flex-direction: column;\n      }\n\n      .studio-grid,\n      .quick-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .status-item {\n        align-items: start;\n        flex-direction: column;\n        gap: 0.2rem;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <main class=\"member-studio\">\n    <section class=\"studio-hero\" aria-labelledby=\"studio-title\">\n      <div class=\"studio-wrap\">\n        <div class=\"studio-header\">\n          <div class=\"identity-card\">\n            <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n              <span>Member Portal<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>DOSA<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>Studio<\/span>\n            <\/nav>\n            <div class=\"studio-tag\">Studio<\/div>\n            <h1 id=\"studio-title\">Member Studio<\/h1>\n            <p>\n              A working environment for newsletters, media assets, website updates, draft management, publishing coordination, and content support for TXMN Lower Trinity Basin.\n            <\/p>\n          <\/div>\n\n          <aside class=\"status-card\" aria-labelledby=\"studio-status-title\">\n            <div>\n              <h2 id=\"studio-status-title\">Studio Snapshot<\/h2>\n              <p>Use this area for publishing status, drafts, and media workflow summaries.<\/p>\n            <\/div>\n            <div class=\"status-list\" aria-label=\"Studio status summary\">\n              <div class=\"status-item\">\n                <strong>Newsletter<\/strong>\n                <span>Drafting<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Website<\/strong>\n                <span>Review<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Media<\/strong>\n                <span>Organizing<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Requests<\/strong>\n                <span>Pending<\/span>\n              <\/div>\n            <\/div>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"studio-workflows-title\">\n      <div class=\"studio-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"studio-workflows-title\">Studio Workflows<\/h2>\n          <p>Primary work areas for creating, organizing, reviewing, and publishing chapter-facing content.<\/p>\n        <\/div>\n\n        <div class=\"studio-grid\" aria-label=\"Primary studio workflows\">\n          <article class=\"studio-card\" aria-labelledby=\"newsletter-title\">\n            <span class=\"studio-label\">Publishing<\/span>\n            <h3 id=\"newsletter-title\">Newsletter<\/h3>\n            <p>Draft, organize, review, and publish monthly chapter newsletters and supporting material.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"studio-card\" aria-labelledby=\"media-title\">\n            <span class=\"studio-label\">Assets<\/span>\n            <h3 id=\"media-title\">Media Library<\/h3>\n            <p>Manage images, graphics, documents, media uploads, and reusable chapter assets.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"studio-card\" aria-labelledby=\"website-title\">\n            <span class=\"studio-label\">Website<\/span>\n            <h3 id=\"website-title\">Website Updates<\/h3>\n            <p>Coordinate website requests, public notices, revisions, and page maintenance workflows.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"studio-card\" aria-labelledby=\"archives-title\">\n            <span class=\"studio-label\">Records<\/span>\n            <h3 id=\"archives-title\">Archives<\/h3>\n            <p>Maintain completed newsletters, media records, published notices, and archived content.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section soft\" aria-labelledby=\"active-studio-title\">\n      <div class=\"studio-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"active-studio-title\">Active Studio Work<\/h2>\n          <p>Placeholder areas for current drafts, publishing queues, media review, and active website changes.<\/p>\n        <\/div>\n\n        <div class=\"studio-layout\">\n          <div class=\"panel\" aria-labelledby=\"drafts-title\">\n            <h2 id=\"drafts-title\">Current Drafts<\/h2>\n            <ul class=\"draft-list\">\n              <li>\n                <strong>Monthly newsletter draft<\/strong>\n                <span>Placeholder for newsletter editing, review status, or publication schedule.<\/span>\n              <\/li>\n              <li>\n                <strong>Website revision request<\/strong>\n                <span>Placeholder for public-facing website changes and pending review items.<\/span>\n              <\/li>\n              <li>\n                <strong>Media organization task<\/strong>\n                <span>Placeholder for media cleanup, uploads, tagging, or archive preparation.<\/span>\n              <\/li>\n            <\/ul>\n          <\/div>\n\n          <aside class=\"rail\" aria-label=\"Studio notices and resources\">\n            <section class=\"rail-card\" aria-labelledby=\"studio-notices-title\">\n              <h2 id=\"studio-notices-title\">Studio Notices<\/h2>\n              <ul class=\"notice-list\">\n                <li>\n                  <strong>Workflow development<\/strong>\n                  <span>Replace placeholders as newsletter, media, and website systems mature.<\/span>\n                <\/li>\n                <li>\n                  <strong>Review publishing process<\/strong>\n                  <span>Identify approval flow and publishing responsibilities.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n\n            <section class=\"rail-card\" aria-labelledby=\"studio-resources-title\">\n              <h2 id=\"studio-resources-title\">Studio Resources<\/h2>\n              <ul class=\"resource-list\">\n                <li>\n                  <strong>Media Drive<\/strong>\n                  <span>Placeholder for shared media and design folders.<\/span>\n                <\/li>\n                <li>\n                  <strong>Publishing Calendar<\/strong>\n                  <span>Placeholder for newsletter, social media, and publication schedule.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"studio-links-title\">\n      <div class=\"studio-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"studio-links-title\">Studio Quick Links<\/h2>\n          <p>Frequently used tools for drafting, editing, publishing, and managing chapter media resources.<\/p>\n        <\/div>\n\n        <div class=\"quick-grid\" aria-label=\"Studio quick links\">\n          <a class=\"quick-card\" href=\"https:\/\/docs.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Docs in a new tab\">\n            <h3>Google Docs<\/h3>\n            <p>Draft newsletters, notices, procedures, and public-facing written content.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/drive.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Drive in a new tab\">\n            <h3>Google Drive<\/h3>\n            <p>Access media files, templates, graphics, archives, and publishing folders.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/calendar.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Calendar in a new tab\">\n            <h3>Publishing Calendar<\/h3>\n            <p>Coordinate newsletters, social media timing, notices, and publication deadlines.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open the Lower Trinity Basin Newsroom in a new tab\">\n            <h3>Newsroom<\/h3>\n            <p>Open public-facing newsroom pages, newsletter content, and notices.<\/p>\n          <\/a>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Media Uploads<\/h3>\n            <p>Placeholder for upload workflows and shared media intake.<\/p>\n          <\/div>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Website Requests<\/h3>\n            <p>Placeholder for internal website update and content request workflows.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu 5\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-5\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-5-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>","protected":false},"excerpt":{"rendered":"<p>Member Studio Member Portal \/ DOSA \/ Studio Studio Member Studio A working environment for newsletters, media assets, website updates, draft management, publishing coordination, and content support for TXMN Lower&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/studio\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":197589,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-199548","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Member Studio Member Portal \/ DOSA \/ Studio Studio Member Studio A working environment for newsletters, media assets, website updates, draft management, publishing coordination, and content support for TXMN Lower... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=199548"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199548\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/197589"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=199548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":199550,"date":"2026-05-28T06:54:12","date_gmt":"2026-05-28T11:54:12","guid":{"rendered":"https:\/\/txmn.org\/lowertrinitybasin\/?page_id=199550"},"modified":"2026-05-28T07:05:50","modified_gmt":"2026-05-28T12:05:50","slug":"administration","status":"publish","type":"page","link":"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/administration\/","title":{"rendered":"Administration"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Member Administration<\/title>\n\n  <style>\n    :root {\n      --ltb-green-dark: #173f22;\n      --ltb-green: #2f6b3a;\n      --ltb-green-soft: #e6f0df;\n      --ltb-gold: #c58b1c;\n      --ltb-gold-soft: #f5ead2;\n      --ltb-cream: #fbf7ec;\n      --ltb-blue: #2d8c99;\n      --ltb-blue-soft: #dceff1;\n      --ltb-slate: #39463d;\n      --ltb-slate-soft: #eef1ed;\n      --ltb-text: #243126;\n      --ltb-muted: #637062;\n      --ltb-white: #ffffff;\n      --ltb-border: rgba(23, 63, 34, 0.18);\n      --ltb-shadow: 0 16px 34px rgba(23, 63, 34, 0.12);\n    }\n\n    body {\n      margin: 0;\n      font-family: Arial, Helvetica, sans-serif;\n      color: var(--ltb-text);\n      background: linear-gradient(180deg, #fbf7ec 0%, #ffffff 44%, #f5f8f1 100%);\n      line-height: 1.6;\n    }\n\n    .entry-title,\n    .page-title,\n    .wp-block-post-title {\n      display: none;\n    }\n\n    .member-administration {\n      width: 100vw;\n      margin-left: calc(50% - 50vw);\n      margin-right: calc(50% - 50vw);\n      overflow: hidden;\n    }\n\n    .member-administration h1,\n    .member-administration h2,\n    .member-administration h3,\n    .member-administration a {\n      text-decoration: none !important;\n      border-bottom: 0 !important;\n      box-shadow: none !important;\n      background-image: none !important;\n    }\n\n    .member-administration h1::before,\n    .member-administration h1::after,\n    .member-administration h2::before,\n    .member-administration h2::after,\n    .member-administration h3::before,\n    .member-administration h3::after,\n    .member-administration a::before,\n    .member-administration a::after {\n      display: none !important;\n      content: none !important;\n      border: 0 !important;\n      box-shadow: none !important;\n      background: none !important;\n    }\n\n    .member-administration a:focus-visible,\n    .member-administration button:focus-visible,\n    .member-administration [tabindex]:focus-visible {\n      outline: 3px solid var(--ltb-gold);\n      outline-offset: 4px;\n      border-radius: 10px;\n    }\n\n    .administration-wrap {\n      width: min(1280px, calc(100% - 3rem));\n      margin: 0 auto;\n    }\n\n    .administration-hero {\n      position: relative;\n      padding: 3.5rem 1.5rem 2.25rem;\n      background:\n        radial-gradient(circle at top left, rgba(57, 70, 61, 0.18), transparent 30rem),\n        radial-gradient(circle at top right, rgba(197, 139, 28, 0.12), transparent 30rem),\n        linear-gradient(135deg, #fbf7ec, #f4f8ef);\n      isolation: isolate;\n    }\n\n    .administration-hero::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background-image:\n        linear-gradient(rgba(23, 63, 34, 0.045) 1px, transparent 1px),\n        linear-gradient(90deg, rgba(23, 63, 34, 0.045) 1px, transparent 1px);\n      background-size: 42px 42px;\n      mask-image: linear-gradient(to bottom, black, transparent 82%);\n      z-index: -1;\n    }\n\n    .administration-header {\n      display: grid;\n      grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);\n      gap: 1.5rem;\n      align-items: stretch;\n    }\n\n    .identity-card,\n    .status-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 28px;\n      box-shadow: var(--ltb-shadow);\n      backdrop-filter: blur(10px);\n    }\n\n    .identity-card {\n      padding: 2.4rem;\n      background: rgba(255, 255, 255, 0.82);\n    }\n\n    .breadcrumb {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.45rem;\n      margin-bottom: 1rem;\n      color: var(--ltb-muted);\n      font-size: 0.9rem;\n      font-weight: 700;\n    }\n\n    .breadcrumb span:last-child {\n      color: var(--ltb-green-dark);\n    }\n\n    .administration-tag {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.5rem;\n      margin-bottom: 1rem;\n      padding: 0.35rem 0.75rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-slate-soft);\n      font-size: 0.82rem;\n      font-weight: 700;\n      letter-spacing: 0.06em;\n      text-transform: uppercase;\n    }\n\n    .administration-tag::before {\n      content: \"\";\n      width: 0.55rem;\n      height: 0.55rem;\n      border-radius: 50%;\n      background: var(--ltb-slate);\n    }\n\n    .identity-card h1 {\n      margin: 0 0 1rem;\n      color: var(--ltb-green-dark);\n      font-size: clamp(2.3rem, 4.6vw, 4.8rem);\n      line-height: 0.96;\n      letter-spacing: -0.05em;\n    }\n\n    .identity-card p {\n      max-width: 760px;\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 1.06rem;\n    }\n\n    .status-card {\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      gap: 1.25rem;\n      padding: 1.5rem;\n      color: var(--ltb-white);\n      background:\n        linear-gradient(135deg, rgba(23, 63, 34, 0.95), rgba(57, 70, 61, 0.9)),\n        var(--ltb-green-dark);\n      overflow: hidden;\n    }\n\n    .status-card h2 {\n      margin: 0;\n      font-size: 1.35rem;\n      letter-spacing: -0.02em;\n    }\n\n    .status-card p {\n      margin: 0.45rem 0 0;\n      color: rgba(255, 255, 255, 0.78);\n    }\n\n    .status-list {\n      display: grid;\n      gap: 0.7rem;\n    }\n\n    .status-item {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 1rem;\n      padding: 0.85rem;\n      border: 1px solid rgba(255, 255, 255, 0.18);\n      border-radius: 16px;\n      background: rgba(255, 255, 255, 0.1);\n    }\n\n    .status-item strong {\n      font-size: 0.95rem;\n    }\n\n    .status-item span {\n      color: rgba(255, 255, 255, 0.76);\n      font-size: 0.86rem;\n      white-space: nowrap;\n    }\n\n    .section {\n      padding: 2.75rem 1.5rem;\n      background: var(--ltb-white);\n    }\n\n    .section.soft {\n      background: linear-gradient(180deg, #ffffff, #f5f8f1);\n    }\n\n    .section-heading {\n      display: flex;\n      align-items: end;\n      justify-content: space-between;\n      gap: 1.5rem;\n      margin-bottom: 1.25rem;\n    }\n\n    .section-heading h2 {\n      margin: 0;\n      color: var(--ltb-green-dark);\n      font-size: clamp(1.55rem, 3vw, 2.25rem);\n      line-height: 1.1;\n      letter-spacing: -0.035em;\n    }\n\n    .section-heading p {\n      max-width: 580px;\n      margin: 0;\n      color: var(--ltb-muted);\n    }\n\n    .admin-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 1rem;\n    }\n\n    .admin-card {\n      position: relative;\n      min-height: 190px;\n      padding: 1.2rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      color: inherit;\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n      overflow: hidden;\n    }\n\n    .admin-card::after {\n      content: \"\";\n      position: absolute;\n      right: -2.2rem;\n      bottom: -2.2rem;\n      width: 8rem;\n      height: 8rem;\n      border-radius: 50%;\n      background: var(--ltb-slate-soft);\n      z-index: 0;\n    }\n\n    .admin-card > * {\n      position: relative;\n      z-index: 1;\n    }\n\n    .admin-label {\n      display: inline-flex;\n      align-items: center;\n      margin-bottom: 0.9rem;\n      padding: 0.28rem 0.62rem;\n      border-radius: 999px;\n      color: var(--ltb-green-dark);\n      background: var(--ltb-gold-soft);\n      font-size: 0.76rem;\n      font-weight: 700;\n      letter-spacing: 0.04em;\n      text-transform: uppercase;\n    }\n\n    .admin-card h3 {\n      margin: 0 0 0.45rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.15rem;\n      letter-spacing: -0.02em;\n    }\n\n    .admin-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-text {\n      display: inline-block;\n      margin-top: 1rem;\n      color: var(--ltb-green-dark);\n      font-weight: 700;\n      font-size: 0.92rem;\n    }\n\n    .administration-layout {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) 360px;\n      gap: 1.25rem;\n      align-items: start;\n    }\n\n    .panel,\n    .rail-card {\n      border: 1px solid var(--ltb-border);\n      border-radius: 24px;\n      background: var(--ltb-white);\n      box-shadow: 0 10px 24px rgba(23, 63, 34, 0.08);\n      padding: 1.2rem;\n    }\n\n    .panel h2,\n    .rail-card h2 {\n      margin: 0 0 0.9rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.25rem;\n      letter-spacing: -0.02em;\n    }\n\n    .rail {\n      display: grid;\n      gap: 1rem;\n    }\n\n    .record-list,\n    .notice-list,\n    .resource-list {\n      display: grid;\n      gap: 0.75rem;\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    .record-list li,\n    .notice-list li,\n    .resource-list li {\n      padding: 0.85rem;\n      border-radius: 16px;\n      background: var(--ltb-slate-soft);\n    }\n\n    .record-list strong,\n    .notice-list strong,\n    .resource-list strong {\n      display: block;\n      color: var(--ltb-green-dark);\n      line-height: 1.25;\n    }\n\n    .record-list span,\n    .notice-list span,\n    .resource-list span {\n      display: block;\n      margin-top: 0.25rem;\n      color: var(--ltb-muted);\n      font-size: 0.88rem;\n    }\n\n    .quick-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1rem;\n    }\n\n    .quick-card {\n      padding: 1.1rem;\n      border: 1px solid var(--ltb-border);\n      border-radius: 22px;\n      background: rgba(255, 255, 255, 0.85);\n      color: inherit;\n      transition: transform 0.18s ease, box-shadow 0.18s ease;\n    }\n\n    .quick-card:hover {\n      transform: translateY(-2px);\n      box-shadow: 0 12px 24px rgba(23, 63, 34, 0.1);\n    }\n\n    .quick-card h3 {\n      margin: 0 0 0.5rem;\n      color: var(--ltb-green-dark);\n      font-size: 1.08rem;\n    }\n\n    .quick-card p {\n      margin: 0;\n      color: var(--ltb-muted);\n      font-size: 0.92rem;\n    }\n\n    .pending-card {\n      cursor: not-allowed;\n    }\n\n    @media (max-width: 1080px) {\n      .administration-header,\n      .administration-layout {\n        grid-template-columns: 1fr;\n      }\n\n      .admin-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n\n      .quick-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n\n    @media (max-width: 760px) {\n      .administration-wrap {\n        width: min(100% - 2rem, 1280px);\n      }\n\n      .administration-hero {\n        padding-top: 2rem;\n      }\n\n      .identity-card {\n        padding: 1.5rem;\n      }\n\n      .section-heading {\n        align-items: start;\n        flex-direction: column;\n      }\n\n      .admin-grid,\n      .quick-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .status-item {\n        align-items: start;\n        flex-direction: column;\n        gap: 0.2rem;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <main class=\"member-administration\">\n    <section class=\"administration-hero\" aria-labelledby=\"administration-title\">\n      <div class=\"administration-wrap\">\n        <div class=\"administration-header\">\n          <div class=\"identity-card\">\n            <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n              <span>Member Portal<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>DOSA<\/span>\n              <span aria-hidden=\"true\">\/<\/span>\n              <span>Administration<\/span>\n            <\/nav>\n            <div class=\"administration-tag\">Administration<\/div>\n            <h1 id=\"administration-title\">Member Administration<\/h1>\n            <p>\n              Administrative workspace for governance, procedures, policies, leadership resources, training references, records, and long-term operational continuity for TXMN Lower Trinity Basin.\n            <\/p>\n          <\/div>\n\n          <aside class=\"status-card\" aria-labelledby=\"administration-status-title\">\n            <div>\n              <h2 id=\"administration-status-title\">Administrative Snapshot<\/h2>\n              <p>Use this area for governance reminders, training notices, records status, and administrative summaries.<\/p>\n            <\/div>\n            <div class=\"status-list\" aria-label=\"Administrative status summary\">\n              <div class=\"status-item\">\n                <strong>Policies<\/strong>\n                <span>Review<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Training<\/strong>\n                <span>Current<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Leadership<\/strong>\n                <span>Active<\/span>\n              <\/div>\n              <div class=\"status-item\">\n                <strong>Records<\/strong>\n                <span>Archive<\/span>\n              <\/div>\n            <\/div>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"administration-workflows-title\">\n      <div class=\"administration-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"administration-workflows-title\">Administrative Areas<\/h2>\n          <p>Primary governance and continuity areas for chapter operations, leadership coordination, and institutional reference material.<\/p>\n        <\/div>\n\n        <div class=\"admin-grid\" aria-label=\"Primary administrative areas\">\n          <article class=\"admin-card\" aria-labelledby=\"policies-title\">\n            <span class=\"admin-label\">Governance<\/span>\n            <h3 id=\"policies-title\">Policies &#038; Procedures<\/h3>\n            <p>Maintain governance documents, procedures, standards, and long-term operational guidance.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"admin-card\" aria-labelledby=\"leadership-title\">\n            <span class=\"admin-label\">Leadership<\/span>\n            <h3 id=\"leadership-title\">Leadership Resources<\/h3>\n            <p>Provide leadership references, organizational materials, meeting support, and continuity documentation.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"admin-card\" aria-labelledby=\"training-title\">\n            <span class=\"admin-label\">Training<\/span>\n            <h3 id=\"training-title\">Training &#038; Reference<\/h3>\n            <p>Centralize training material, onboarding resources, chapter references, and operational guidance.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n\n          <article class=\"admin-card\" aria-labelledby=\"records-title\">\n            <span class=\"admin-label\">Records<\/span>\n            <h3 id=\"records-title\">Records &#038; Archives<\/h3>\n            <p>Maintain long-term administrative records, archives, historical material, and organizational continuity.<\/p>\n            <span class=\"pending-text\">Link pending<\/span>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section soft\" aria-labelledby=\"administrative-work-title\">\n      <div class=\"administration-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"administrative-work-title\">Administrative Activity<\/h2>\n          <p>Placeholder areas for governance review, policy updates, training coordination, and administrative follow-up.<\/p>\n        <\/div>\n\n        <div class=\"administration-layout\">\n          <div class=\"panel\" aria-labelledby=\"records-panel-title\">\n            <h2 id=\"records-panel-title\">Administrative Records<\/h2>\n            <ul class=\"record-list\">\n              <li>\n                <strong>Policy review item<\/strong>\n                <span>Placeholder for governance review, revisions, or administrative updates.<\/span>\n              <\/li>\n              <li>\n                <strong>Training coordination<\/strong>\n                <span>Placeholder for onboarding, reference material, or training notices.<\/span>\n              <\/li>\n              <li>\n                <strong>Archive organization<\/strong>\n                <span>Placeholder for historical records, retention planning, or continuity support.<\/span>\n              <\/li>\n            <\/ul>\n          <\/div>\n\n          <aside class=\"rail\" aria-label=\"Administrative notices and resources\">\n            <section class=\"rail-card\" aria-labelledby=\"admin-notices-title\">\n              <h2 id=\"admin-notices-title\">Administrative Notices<\/h2>\n              <ul class=\"notice-list\">\n                <li>\n                  <strong>Governance workflow planning<\/strong>\n                  <span>Replace placeholders as administrative systems and responsibilities mature.<\/span>\n                <\/li>\n                <li>\n                  <strong>Define retention structure<\/strong>\n                  <span>Identify long-term archive and document retention strategy.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n\n            <section class=\"rail-card\" aria-labelledby=\"admin-resources-title\">\n              <h2 id=\"admin-resources-title\">Administrative Resources<\/h2>\n              <ul class=\"resource-list\">\n                <li>\n                  <strong>Administrative Drive<\/strong>\n                  <span>Placeholder for governance and records shared folders.<\/span>\n                <\/li>\n                <li>\n                  <strong>Leadership Calendar<\/strong>\n                  <span>Placeholder for leadership meetings and administrative planning dates.<\/span>\n                <\/li>\n              <\/ul>\n            <\/section>\n          <\/aside>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" aria-labelledby=\"administration-links-title\">\n      <div class=\"administration-wrap\">\n        <div class=\"section-heading\">\n          <h2 id=\"administration-links-title\">Administrative Quick Links<\/h2>\n          <p>Frequently used governance, records, training, and administrative support resources.<\/p>\n        <\/div>\n\n        <div class=\"quick-grid\" aria-label=\"Administrative quick links\">\n          <a class=\"quick-card\" href=\"https:\/\/drive.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Drive in a new tab\">\n            <h3>Google Drive<\/h3>\n            <p>Access governance records, policies, leadership documents, and archived material.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/docs.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Docs in a new tab\">\n            <h3>Google Docs<\/h3>\n            <p>Create procedures, meeting notes, governance documents, and administrative records.<\/p>\n          <\/a>\n\n          <a class=\"quick-card\" href=\"https:\/\/calendar.google.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Calendar in a new tab\">\n            <h3>Leadership Calendar<\/h3>\n            <p>Coordinate administrative meetings, deadlines, reviews, and planning dates.<\/p>\n          <\/a>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Policy Library<\/h3>\n            <p>Placeholder for governance references, policies, and standards.<\/p>\n          <\/div>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Training Resources<\/h3>\n            <p>Placeholder for onboarding, procedures, and administrative guidance.<\/p>\n          <\/div>\n\n          <div class=\"quick-card pending-card\" aria-disabled=\"true\">\n            <h3>Records Archive<\/h3>\n            <p>Placeholder for long-term records and continuity material.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n<nav class=\"is-responsive items-justified-center wp-block-navigation is-content-justification-center is-layout-flex wp-container-core-navigation-is-layout-fe48e5de wp-block-navigation-is-layout-flex\" aria-label=\"top menu 6\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7.5h16v1.5H4z\"><\/path><path d=\"M4 15h16v1.5H4z\"><\/path><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-6\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-6-content\">\n\t\t\t\t\t\t\t\t<ul class=\"wp-block-navigation__container is-responsive items-justified-center wp-block-navigation\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page menu-item-home wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/\" title=\"home\"><span class=\"wp-block-navigation-item__label\">Home<\/span><\/a><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Get Involved<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Get Involved submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Newsroom<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Newsroom submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/newsroom\/chapter-news\/social-media\/\"><span class=\"wp-block-navigation-item__label\">Social Media<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Explore The Basin<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Explore The Basin submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/explore-the-basin\/texas-master-naturalist-program\/\"><span class=\"wp-block-navigation-item__label\">Texas Master Naturalist Program<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">About Us<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"About Us submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/about-us\/officers-and-committee-chairs\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Officers, Directors and Committee Chairs<\/span><\/a><\/li><\/ul><\/li><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/\" title=\"\"><span class=\"wp-block-navigation-item__label\">Member Portal<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Member Portal submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container menu-item menu-item-type-post_type menu-item-object-page wp-block-navigation-submenu\"><li data-wp-context=\"{ &quot;submenuOpenedBy&quot;: { &quot;click&quot;: false, &quot;hover&quot;: false, &quot;focus&quot;: false }, &quot;type&quot;: &quot;submenu&quot;, &quot;modal&quot;: null, &quot;previousFocus&quot;: null }\" data-wp-interactive=\"core\/navigation\" data-wp-on--focusout=\"actions.handleMenuFocusout\" data-wp-on--keydown=\"actions.handleMenuKeydown\" data-wp-on--pointerenter=\"actions.openMenuOnHover\" data-wp-on--pointerleave=\"actions.closeMenuOnHover\" data-wp-watch=\"callbacks.initMenu\" tabindex=\"-1\" class=\"wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu\"><a class=\"wp-block-navigation-item__content\" href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/operations\/reporting-hours\/\"><span class=\"wp-block-navigation-item__label\">Reporting Hours<\/span><\/a><button data-wp-bind--aria-expanded=\"state.isSubmenuOpen\" data-wp-on--click=\"actions.toggleMenuOnClick\" aria-label=\"Reporting Hours submenu\" class=\"wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle\" ><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M1.50002 4L6.00002 8L10.5 4\" stroke-width=\"1.5\"><\/path><\/svg><\/button><ul data-wp-on--focus=\"actions.openMenuOnFocus\" class=\"wp-block-navigation__submenu-container wp-block-navigation-submenu\"><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/members\/reporting-hours\/vms-assist\/\"><span class=\"wp-block-navigation-item__label\">VMS Assist<\/span><\/a><\/li><\/ul><\/li><\/ul><\/li><li class=\"wp-block-navigation-item wp-block-navigation-link\"><a class=\"wp-block-navigation-item__content\"  href=\"https:\/\/txmn.org\/lowertrinitybasin\/get-involved\/contact-new\/\"><span class=\"wp-block-navigation-item__label\">Contact<\/span><\/a><\/li><\/ul>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>","protected":false},"excerpt":{"rendered":"<p>Member Administration Member Portal \/ DOSA \/ Administration Administration Member Administration Administrative workspace for governance, procedures, policies, leadership resources, training references, records, and long-term operational continuity for TXMN Lower Trinity&#8230; <span class=\"read-more\"><a href=\"https:\/\/txmn.org\/lowertrinitybasin\/member-portal\/administration\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1568,"featured_media":0,"parent":197589,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/service-landing-page.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":""},"class_list":["post-199550","page","type-page","status-publish","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"landing-template-slider":false,"landing-template-thumbnail":false,"template-flexcolumns-2":false,"template-flexcolumns-3":false,"1536x1536":false,"2048x2048":false,"archive":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"Rodney","author_link":"https:\/\/txmn.org\/lowertrinitybasin\/author\/rfranks1\/"},"uagb_comment_info":0,"uagb_excerpt":"Member Administration Member Portal \/ DOSA \/ Administration Administration Member Administration Administrative workspace for governance, procedures, policies, leadership resources, training references, records, and long-term operational continuity for TXMN Lower Trinity... Read More &rarr;","_links":{"self":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/users\/1568"}],"replies":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/comments?post=199550"}],"version-history":[{"count":0,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/199550\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/pages\/197589"}],"wp:attachment":[{"href":"https:\/\/txmn.org\/lowertrinitybasin\/wp-json\/wp\/v2\/media?parent=199550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]