:root{--bg-paper: #f3efe6;--bg-card: #fffdf9;--bg-subtle: #eae3d5;--ink: #191716;--ink-muted: #5c564f;--ink-light: #8c847a;--accent-terracotta: #d95d39;--bsky-blue: #1185fe;--font-serif: "Fraunces", Georgia, serif;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-paper);background-image:radial-gradient(rgba(25,23,22,.08) 1px,transparent 1px);background-size:20px 20px;color:var(--ink);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.app-container{max-width:640px;margin:0 auto;padding:1.75rem 1.25rem 2.5rem;min-height:100vh;display:flex;flex-direction:column}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.25rem}.brand-tag{display:inline-flex;align-items:center;gap:.45rem;background:var(--bg-card);border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);padding:.35rem .75rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--ink)}.brand-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-terracotta);display:inline-block}.lang-switcher{display:inline-flex;align-items:center;background:var(--bg-card);border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:.2rem .55rem;gap:.25rem}.lang-btn{background:none;border:none;font-family:var(--font-sans);font-size:.75rem;font-weight:700;color:var(--ink-light);cursor:pointer;padding:.15rem .3rem;transition:color .15s ease}.lang-btn.active{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}.lang-divider{font-size:.7rem;color:var(--ink-light)}.search-view{margin:auto 0;padding:1rem 0 2.5rem}.hero-header{text-align:center;margin-bottom:2rem}.hero-title{font-family:var(--font-serif);font-size:clamp(2rem,5.5vw,2.75rem);font-weight:800;line-height:1.12;letter-spacing:-.02em;color:var(--ink);margin-bottom:.85rem}.hero-subtitle{font-size:1.02rem;color:var(--ink-muted);max-width:460px;margin:0 auto;font-weight:500}.search-box{background:var(--bg-card);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:1.25rem;padding:1.35rem;max-width:480px;margin:0 auto}.search-form{display:flex;flex-direction:column;gap:.85rem}.input-group{display:flex;align-items:center;background:var(--bg-paper);border:2px solid var(--ink);border-radius:.85rem;padding:0 1rem;transition:background-color .15s ease}.input-group:focus-within{background:#fff}.input-at{font-weight:800;font-size:1.1rem;color:var(--ink-muted);margin-right:.35rem;-webkit-user-select:none;user-select:none}.input-group input{width:100%;border:none;background:transparent;padding:.9rem 0;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--ink);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-group input::-webkit-search-decoration,.input-group input::-webkit-search-cancel-button,.input-group input::-webkit-search-results-button,.input-group input::-webkit-search-results-decoration{display:none}.input-group input::placeholder{color:var(--ink-light);font-weight:500}.pronoun-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.pronoun-btn{background:var(--bg-paper);border:2px solid var(--ink);border-radius:.75rem;padding:.6rem .5rem;font-family:var(--font-sans);font-size:.88rem;font-weight:700;color:var(--ink-muted);cursor:pointer;transition:all .12s ease}.pronoun-btn:hover{color:var(--ink);background:var(--bg-subtle)}.pronoun-btn.active{background:var(--ink);color:var(--bg-card);box-shadow:2px 2px 0 var(--accent-terracotta)}.btn-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent-terracotta);color:#fff;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:.85rem;padding:.95rem 1.25rem;font-family:var(--font-sans);font-size:1rem;font-weight:800;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .15s ease}.btn-submit:hover{background:#c54e2b;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.btn-submit:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.arrow-icon{font-size:1.15rem;line-height:1}.error-banner{margin-top:.9rem;padding:.75rem 1rem;background:#fef2f2;border:1.5px solid #991b1b;color:#991b1b;border-radius:.75rem;font-size:.88rem;font-weight:600;text-align:center}.loading-view{margin:auto 0;text-align:center;padding:4rem 1rem}.ink-spinner{width:38px;height:38px;border:3px solid var(--bg-subtle);border-top-color:var(--ink);border-radius:50%;display:inline-block;margin-bottom:1.1rem;animation:spin-loader .75s infinite linear}@keyframes spin-loader{to{transform:rotate(360deg)}}.loading-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:700;color:var(--ink)}.result-view{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin:auto 0;padding-bottom:1.5rem}.card-wrapper{width:100%;display:flex;justify-content:center}.con-badge-card{width:100%;max-width:390px;background:var(--bg-card);border:2.5px solid var(--ink);box-shadow:7px 7px 0 var(--ink);border-radius:1.35rem;padding:.9rem 1.15rem 1.1rem;display:flex;flex-direction:column;gap:.85rem;color:var(--ink);position:relative;transition:transform .15s ease-out}.badge-slot-row{display:flex;justify-content:center;margin-bottom:-.15rem}.badge-slot{width:54px;height:10px;background:var(--bg-paper);border:2px solid var(--ink);border-radius:999px;box-shadow:inset 0 2px 3px #0000001f}.badge-user-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.badge-user-left{display:flex;align-items:center;gap:.6rem;min-width:0}.badge-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);background:var(--bg-subtle);flex-shrink:0}.badge-user-meta{display:flex;flex-direction:column;min-width:0}.badge-display-name{font-weight:800;font-size:.9rem;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-handle{font-size:.74rem;font-weight:600;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-category-pill{flex-shrink:0;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .6rem;border-radius:999px;border:1.5px solid var(--ink);background:var(--bg-subtle);color:var(--ink)}.badge-art-frame{width:100%;height:325px;border-radius:.95rem;border:2px solid var(--ink);background:var(--bg-subtle);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.badge-art-frame img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}.badge-artist-credit{position:absolute;bottom:.55rem;right:.55rem;background:#191716d1;color:#fffdf9;font-size:.65rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;letter-spacing:.02em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.badge-info-body{display:flex;flex-direction:column;gap:.45rem;padding:.1rem .1rem 0}.badge-title-group{display:flex;flex-direction:column;gap:.1rem}.badge-species-name{font-family:var(--font-serif);font-size:1.55rem;font-weight:800;line-height:1.15;color:var(--ink);letter-spacing:-.01em}.badge-species-sub{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-terracotta)}.badge-description{font-size:.9rem;font-weight:500;color:var(--ink);line-height:1.42}.badge-footer{padding-top:.65rem;border-top:1.5px dashed rgba(25,23,22,.22);display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:700;color:var(--ink-muted)}.badge-footer span:last-child{color:var(--ink);font-weight:800}.result-actions{width:100%;max-width:390px;display:flex;flex-direction:column;align-items:center;gap:.85rem}.primary-actions-row{width:100%;display:flex;flex-direction:column;gap:.65rem}.btn-action{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.15rem;border-radius:.85rem;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--font-sans);font-size:.95rem;font-weight:800;text-decoration:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.btn-action:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.btn-action:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.btn-bsky{background:var(--bsky-blue);color:#fff}.btn-download{background:var(--bg-card);color:var(--ink)}.share-toast{width:100%;background:var(--ink);color:var(--bg-card);border-radius:.75rem;padding:.65rem .9rem;font-size:.82rem;font-weight:700;text-align:center;line-height:1.35}.btn-reset-link{background:none;border:none;font-family:var(--font-sans);font-size:.86rem;font-weight:700;color:var(--ink-muted);cursor:pointer;padding:.35rem .5rem;text-decoration:underline;text-underline-offset:3px}.btn-reset-link:hover{color:var(--ink)}.site-footer{margin-top:auto;padding-top:2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.65rem}.kofi-link-btn{background:var(--bg-card);border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:.4rem .95rem;font-family:var(--font-sans);font-size:.8rem;font-weight:700;color:var(--ink);cursor:pointer;transition:transform .12s ease}.kofi-link-btn:hover{transform:translateY(-1px)}.footer-meta{font-size:.74rem;color:var(--ink-muted);font-weight:500}.kofi-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#191716a6;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.kofi-modal-dialog{position:relative;width:100%;max-width:420px;height:620px;background:#fff;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:1.25rem;overflow:hidden}.kofi-modal-close-btn{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;background:var(--bg-card);border:1.5px solid var(--ink);color:var(--ink);font-size:1.35rem;line-height:1;cursor:pointer;z-index:10}.kofi-modal-iframe{width:100%;height:100%;border:none}@media(max-width:480px){.app-container{padding:1.25rem 1rem 2rem}.badge-art-frame{height:295px}.badge-species-name{font-size:1.4rem}}
