:root{--board:#eef2ea;--board-deep:#e2e8dc;--panel:#fff;--ink:#1c2418;--ink-muted:#5a6654;--line:#c5d0bc;--noun:#f6e27a;--noun-press:#f0d45c;--noun-border:#d4b84a;--folder:#f3c98b;--folder-active:#e8a84a;--speak:#7eb8a2;--speak-ink:#14352c;--danger:#c45c4a;--focus:#2f6fed;--font-ui:"Lexend", "Figtree", sans-serif;--radius:16px;--touch:7.5rem;--vh:1vh;color:var(--ink);background:var(--board);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body{background:var(--board);width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;color:var(--ink);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}img{max-width:100%;display:block}button,input{font:inherit}a{color:#245b8a}#root{width:100%;height:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app{width:100%;height:calc(var(--vh,1vh) * 100);background:var(--board);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.app-shell{width:min(1100px,100%);padding-top:max(.5rem, env(safe-area-inset-top,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));padding-bottom:0;padding-left:max(.75rem, env(safe-area-inset-left,0px));box-sizing:border-box;flex-direction:column;flex:auto;height:100%;min-height:0;margin:0 auto;display:flex}.app-shell[hidden]{display:none!important}.app-shell--board{gap:.65rem;position:relative;overflow:hidden}.app-shell--board .aac-top,.app-shell--board .message-bar,.app-shell--board .aac-folders{flex:none}.board-fill,.board-fill .aac-board{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.board-fill .aac-grid{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow:auto}.app-shell--results{padding-bottom:max(.5rem, env(safe-area-inset-bottom,0px));gap:.75rem;overflow:hidden}.aac-top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.aac-brand{letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(1.45rem,4.2vw,2.2rem);font-weight:700}.aac-brand span{color:#3d6b4f}.aac-search{border:3px solid var(--line);background:var(--panel);width:3.25rem;height:3.25rem;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.aac-search__icon{display:block}.aac-search:active{background:var(--board-deep);transform:scale(.96)}.aac-search:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.message-bar{gap:.75rem;display:grid}.message-bar__window{border:3px solid var(--line);border-radius:var(--radius);background:var(--panel);align-items:center;min-height:4.5rem;padding:1rem 1.15rem;display:flex}.message-bar__window.is-speaking{border-color:var(--speak);box-shadow:0 0 0 3px #7eb8a259}.message-bar__text{letter-spacing:-.02em;overflow-wrap:anywhere;word-break:break-word;margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.2}.message-bar__placeholder{color:var(--ink-muted);margin:0;font-size:1.15rem;font-weight:500}.message-bar__actions{flex-wrap:wrap;gap:.6rem;display:flex}.aac-action{border:3px solid var(--line);background:var(--panel);min-height:3.25rem;color:var(--ink);cursor:pointer;border-radius:999px;padding:.7rem 1.15rem;font-size:1.05rem;font-weight:700}.aac-action:disabled{opacity:.4;cursor:not-allowed}.aac-action:focus-visible,.aac-folder:focus-visible,.aac-btn:focus-visible,.search__field:focus,.search__submit:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.aac-action--speak{background:var(--speak);color:var(--speak-ink);border-color:#5f9e89}.aac-action.is-on{background:var(--noun);border-color:var(--noun-border)}.search-panel__sheet{z-index:20;padding:max(.65rem, env(safe-area-inset-top,0px)) max(.75rem, env(safe-area-inset-right,0px)) .75rem max(.75rem, env(safe-area-inset-left,0px));background:var(--board);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:1rem;display:flex;position:absolute;inset:0;overflow:auto}.search-panel__header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.search-panel__title{letter-spacing:-.03em;color:var(--ink);margin:0;font-size:clamp(1.35rem,3.5vw,1.75rem);font-weight:700}.search-panel__dismiss{border:3px solid var(--line);background:var(--panel);width:3rem;height:3rem;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;flex:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:2rem;font-weight:700;line-height:1;display:inline-flex}.search-panel__dismiss:active{background:var(--board-deep);transform:scale(.96)}.search-panel__dismiss:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.search{flex:none;align-items:stretch;gap:.5rem;display:flex}.search__field{border:3px solid var(--line);background:var(--panel);min-width:0;min-height:3.25rem;color:var(--ink);border-radius:999px;flex:1;padding:.75rem 1.1rem;font-size:1.05rem;font-weight:500}.search__field::placeholder{color:#8a9682}.search__submit{border:3px solid var(--noun-border);background:var(--noun);min-height:3.25rem;color:var(--ink);cursor:pointer;border-radius:999px;padding:.75rem 1.2rem;font-weight:700}.search__submit:disabled{opacity:.5;cursor:wait}.aac-board{flex-direction:column;gap:0;display:flex}.aac-folders{flex-wrap:wrap;flex-shrink:0;gap:.5rem;display:flex}.aac-folder{background:var(--folder);min-height:2.9rem;color:var(--ink);cursor:pointer;border:3px solid #e0a85a;border-radius:14px;padding:.55rem 1rem;font-size:1rem;font-weight:700}.aac-folder.is-active{background:var(--folder-active);border-color:#c88830}.aac-grid{scrollbar-width:thin;-webkit-overflow-scrolling:touch;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;place-items:start stretch;gap:.65rem;padding-right:.25rem;display:grid}.aac-btn{border:4px solid var(--noun-border);border-radius:var(--radius);background:var(--noun);width:100%;min-width:0;height:auto;min-height:0;color:var(--ink);cursor:pointer;text-align:center;isolation:isolate;flex-direction:column;align-items:stretch;gap:.4rem;padding:.45rem;transition:transform .12s,background .12s;display:flex;position:relative;overflow:hidden}.aac-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.aac-btn:hover{background:var(--noun-press)}.aac-search:hover,.search-panel__dismiss:hover{border-color:var(--ink-muted)}}.aac-btn.is-active{background:var(--noun-press);box-shadow:0 0 0 4px #2f6fed47}.aac-btn__image{background:#fff;border:2px solid #1c241814;border-radius:12px;flex:none;width:100%;height:0;padding-bottom:100%;display:block;position:relative;overflow:hidden}.aac-btn__image img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.aac-btn__label{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;flex:none;max-width:100%;padding:.2rem .25rem .4rem;font-size:clamp(.95rem,2.2vw,1.2rem);font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.results{flex-direction:column;flex:1;gap:.85rem;height:100%;min-height:0;display:flex}.results-back{border:4px solid var(--line);border-radius:var(--radius);background:var(--panel);width:100%;min-height:4.25rem;color:var(--ink);letter-spacing:-.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;gap:.65rem;padding:.85rem 1.25rem;font-size:clamp(1.25rem,3.5vw,1.55rem);font-weight:700;display:flex}.results-back__arrow{font-size:clamp(2rem,6vw,2.75rem);font-weight:700;line-height:1}.results-back:active{background:var(--board-deep);transform:scale(.985)}.results-back:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.results__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;align-content:start;gap:1rem;min-height:0;padding-bottom:.5rem;display:grid;overflow:auto}.results__section{gap:.75rem;min-width:0;display:grid}.results__section-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.results__section-head h3{margin:0;font-size:1.2rem}.results__section-head p{color:var(--ink-muted);margin:0;font-size:.95rem;font-weight:500}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.animal{border:3px solid var(--line);border-radius:var(--radius);background:var(--panel);min-width:0;color:var(--ink);cursor:pointer;text-align:center;flex-direction:column;gap:.4rem;padding:.4rem;display:flex}.animal img{aspect-ratio:1;object-fit:cover;background:color-mix(in srgb, var(--line) 35%, transparent);border-radius:12px;width:100%}.animal__meta{min-width:0;padding:0 .15rem .2rem}.animal__meta h3{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;margin:0;font-size:1.05rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.animal__meta p{color:var(--ink-muted);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;margin:.15rem 0 .25rem;font-size:.85rem;font-style:italic;line-height:1.25;display:-webkit-box;overflow:hidden}.status{text-align:center;color:var(--ink-muted);padding:1.5rem 1rem;font-weight:500}.status--error{color:var(--danger)}.skeleton{border-radius:var(--radius);aspect-ratio:1;background:linear-gradient(90deg,#d9e0d4 0%,#eef2ea 50%,#d9e0d4 100%) 0 0/200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-backdrop{z-index:40;background:#1c241873;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:3px solid var(--line);border-radius:20px;width:min(860px,100%);max-height:min(92svh,900px);overflow:auto}.modal__top{aspect-ratio:16/10;background:#d9e0d4;position:relative}.modal__top img{object-fit:cover;width:100%;height:100%}.modal__close{border:3px solid var(--line);background:var(--panel);width:3rem;height:3rem;color:var(--ink);cursor:pointer;border-radius:999px;font-size:1.5rem;font-weight:700;line-height:1;position:absolute;top:.75rem;right:.75rem}.modal__body{padding:1.25rem 1.35rem 1.5rem}.modal__body h2{overflow-wrap:anywhere;word-break:break-word;margin:0 0 .25rem;font-size:clamp(1.5rem,3vw,2rem)}.modal__scientific{color:var(--ink-muted);overflow-wrap:anywhere;word-break:break-word;margin:0 0 .85rem;font-style:italic}.modal__summary{color:var(--ink);margin:0 0 1rem;line-height:1.55}.thumbs{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.5rem;display:grid}.thumbs button{cursor:pointer;aspect-ratio:1;background:0 0;border:3px solid #0000;border-radius:12px;padding:0;overflow:hidden}.thumbs button.is-active{border-color:var(--focus)}.thumbs img{object-fit:cover;width:100%;height:100%}.modal__footer{border-top:2px solid var(--line);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:1rem;padding-top:.85rem;font-size:.9rem;display:flex}.aac-top{flex-shrink:0}@media (width<=599px){.app-shell{padding-top:max(.5rem, env(safe-area-inset-top,0px));padding-right:max(.65rem, env(safe-area-inset-right,0px));padding-bottom:0;padding-left:max(.65rem, env(safe-area-inset-left,0px))}.aac-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.aac-search{width:2.9rem;height:2.9rem}.search{flex-direction:column;display:flex}.search__submit{width:100%}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (width>=600px) and (width<=1024px){.app-shell{width:100%;max-width:none}.aac-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.aac-btn__label{padding:.25rem .3rem .5rem;font-size:clamp(.95rem,1.8vw,1.2rem);line-height:1.35}.aac-folders{gap:.55rem}.aac-folder{min-height:3rem;padding:.6rem 1.1rem;font-size:1.05rem}.message-bar__actions .aac-action{min-height:3.4rem;padding:.75rem 1.25rem}.grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem}.modal{width:min(920px,100% - 2rem)}}@media (width>=768px) and (width<=1024px) and (orientation:portrait){:root{--touch:6.75rem}.aac-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=900px) and (width<=1366px) and (orientation:landscape){:root{--touch:5.5rem}.app-shell{width:min(1280px,100%)}.aac-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.aac-btn{padding:.4rem}.aac-btn__label{padding:.2rem .25rem .45rem}}@media (width<=899px) and (orientation:landscape) and (height<=500px){.aac-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.aac-btn{gap:.3rem;padding:.3rem}.aac-btn__label{padding:.05rem .15rem .2rem;font-size:.85rem}.aac-brand{font-size:1.25rem}}
