.model-status{display:flex;flex-direction:column;align-items:center;gap:.75rem}.model-status p,.model-status span,.status-indicator{text-shadow:0 2px 4px rgba(0,0,0,.4)}.status-indicator{display:flex;align-items:center;gap:.5rem}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.ready{background:#10b981;box-shadow:0 0 8px #10b98180}.status-dot.error{background:#ef4444;box-shadow:0 0 8px #ef444480}.status-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.status-text{font-size:.9rem;color:#ffffffe6;font-weight:500}.loading-progress{width:200px}.progress-bar{width:100%;height:4px;background:#fff3;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px;animation:loading 2s ease-in-out infinite}@keyframes loading{0%{width:0%;margin-left:0%}50%{width:75%;margin-left:12.5%}to{width:0%;margin-left:100%}}.audio-recorder,.audio-recorder *{box-sizing:border-box}.audio-recorder{display:flex;flex-direction:column;align-items:center;padding:1.9rem 1.2rem;background:linear-gradient(180deg,#18102a8c,#120c229e);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:22px;border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 34px #00000047;color:#f6f3fbeb;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.recorder-container{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:100%;max-width:420px}.mic-stage{position:relative;width:130px;height:130px;display:flex;align-items:center;justify-content:center;margin-bottom:.1rem}.mic-halo{position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(240,138,56,.42);pointer-events:none;transition:transform .12s ease-out,opacity .12s ease-out}.mic-halo--inner{inset:2px;border-width:1px;border-color:#f08a382e}.mic-stage:not(.recording) .mic-halo{animation:halo-breathe 2.8s ease-in-out infinite}.mic-stage:not(.recording) .mic-halo--inner{animation:halo-breathe 2.8s ease-in-out infinite .4s}@keyframes halo-breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.06);opacity:.85}}.record-button{position:relative;z-index:1;width:104px;height:104px;border:none;border-radius:50%;background:linear-gradient(160deg,#ea8232,#d1402a);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #d1402a80,inset 0 2px 6px #ffffff47;transition:transform .18s cubic-bezier(.2,.8,.3,1.3),box-shadow .2s ease}.record-button:hover:not(.disabled){transform:scale(1.04);box-shadow:0 12px 34px #d1402a99,inset 0 2px 6px #ffffff4d}.record-button:active:not(.disabled){transform:scale(.93)}.record-button.recording{background:linear-gradient(160deg,#e5602a,#c0331f)}.record-button.disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.35)}.microphone-icon{width:42px;height:42px;display:block;filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(80,20,0,.5))}.microphone-emoji-fallback{font-size:2.4rem;line-height:1}.record-stop{width:28px;height:28px;border-radius:7px;background:#fff;box-shadow:0 1px 3px #0000004d}.upload-button{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1.05rem;border-radius:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.26);color:#ffffffeb;font-size:.85rem;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .15s ease}.upload-button:hover:not(.disabled){background:#ffffff29;border-color:#fff6}.upload-button:active:not(.disabled){transform:scale(.97)}.upload-button.disabled{opacity:.45;cursor:not-allowed}.upload-icon{opacity:.9}.recorder-hint{margin:0;font-size:.85rem;line-height:1.4;color:#f6f3fba8;text-align:center}.recording-info{display:flex;flex-direction:column;align-items:center;gap:.3rem}.recording-indicator{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.85rem;color:#f5a24a}.recording-dot{width:8px;height:8px;border-radius:50%;background:#e5602a;animation:blink 1s infinite}.recording-time{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;color:#fff}.processing-indicator{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:#f5a24a}.processing-spinner{width:16px;height:16px;border:2px solid rgba(245,162,74,.3);border-top:2px solid #F5A24A;border-radius:50%;animation:spin 1s linear infinite}.model-status-container{display:flex;justify-content:center;width:100%}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.mic-halo{animation:none!important}.recording-dot,.processing-spinner{animation:none}.record-button{transition:none}}.permission-pending{display:flex;justify-content:center;align-items:center;padding:2rem}.permission-request{text-align:center;max-width:400px}.permission-request h3{margin:0 0 1rem;color:#fff;font-size:1.25rem}.permission-request p{margin:0 0 1.5rem;color:#f6f3fbcc}.permission-button{padding:.85rem 1.8rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;background:linear-gradient(160deg,#ea8232,#d1402a);color:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-bottom:1.5rem;box-shadow:0 8px 24px #d1402a66}.permission-button:hover{transform:translateY(-2px)}.permission-button:active{transform:translateY(0)}.permission-denied{padding:2.5rem 1.5rem;text-align:center}.error-message{background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:12px;padding:1.25rem;margin-top:1rem;text-align:center}.error-message h3{margin:0 0 .75rem;color:#fca5a5}.error-message p{margin:0 0 1rem;color:#f6f3fbe6}.retry-button{padding:.6rem 1.4rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:transparent;color:#fff;font-weight:600;cursor:pointer;transition:background .2s ease}.mobile-instructions{background:#f08a381a;border:1px solid rgba(240,138,56,.3);border-radius:.5rem;padding:1rem;margin:1rem 0;text-align:left}.mobile-instructions h4{margin:0 0 .5rem;color:#f5a24a;font-size:.9rem}.mobile-instructions ol{margin:0;padding-left:1.2rem;color:#f6f3fbe6;font-size:.85rem;line-height:1.4}.mobile-instructions li{margin-bottom:.3rem}.debug-info{margin-top:1rem;font-size:.8rem}.debug-info details{background:#ffffff0d;border-radius:.3rem;padding:.5rem}.debug-info summary{cursor:pointer;color:#f6f3fbb3;font-weight:500}.debug-info ul{margin:.5rem 0 0;padding-left:1rem;color:#f6f3fb99;font-variant-numeric:tabular-nums}.debug-info li{margin-bottom:.2rem}.results-display,.results-display *{box-sizing:border-box}.results-display{width:100%;padding:1.5rem 1.4rem;border-radius:22px;background:linear-gradient(180deg,#18102a8c,#120c229e);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 34px #00000047;color:#f6f3fbeb;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.insect-result{animation:result-in .45s cubic-bezier(.2,.7,.3,1) both}@keyframes result-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.results-display .eyebrow{margin:0 0 .45rem;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#f6f3fbb8}.insect-hero{display:flex;justify-content:center;margin:.1rem 0 1.15rem}.polaroid{position:relative;transform:rotate(-1.9deg);background:#fbfaf4;padding:10px 10px 16px;border-radius:2px;box-shadow:0 12px 28px #0000006b}.polaroid-photo{display:block;width:min(200px,56vw);aspect-ratio:1 / 1;object-fit:cover;border-radius:1px;background:#e8e4da}.polaroid-photo--fallback{display:flex;align-items:center;justify-content:center;background:#2a1e3e}.polaroid-icon{width:45%;max-width:96px;opacity:.85}.polaroid-tape{position:absolute;top:-11px;width:70px;height:25px;background:#f6e4c066;border:1px solid rgba(246,228,192,.28);box-shadow:0 1px 3px #0000002e}.polaroid-tape--l{left:2px;transform:rotate(-7deg)}.polaroid-tape--r{right:2px;transform:rotate(6deg)}.insect-name{margin:0;font-size:clamp(1.6rem,6vw,1.95rem);font-weight:700;line-height:1.08;letter-spacing:-.015em;color:#fff;text-transform:capitalize}.insect-binomial{margin:.2rem 0 0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-style:italic;font-size:1.05rem;color:#f6f3fb9e}.insect-match-row{margin-top:1.05rem}.insect-match{display:inline-block;font-size:.82rem;font-weight:600;padding:.28em .72em;border-radius:999px;background:#f08a3826;border:1px solid rgba(240,138,56,.45);color:#f5a24a}.insect-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.15rem;padding:.6rem 1.05rem;border-radius:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.26);color:#ffffffeb;text-decoration:none;font-size:.85rem;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease}.insect-link:hover{background:#ffffff29;border-color:#fff6}.insect-section{margin-top:1.4rem;padding-top:1.35rem;border-top:1px solid rgba(255,255,255,.11)}.insect-about{margin:0;font-size:.95rem;line-height:1.6;color:#f6f3fbd9}.insect-facts{margin:1.4rem 0 0;padding-top:1.35rem;border-top:1px solid rgba(255,255,255,.11);display:grid;gap:.85rem}.insect-facts .fact{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.insect-facts dt{flex-shrink:0;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#f6f3fbb8}.insect-facts dd{margin:0;text-align:right;font-size:.9rem;color:#f6f3fbe6}.alt-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.7rem}.alt-item{display:flex;align-items:center;gap:.75rem}.alt-name{flex:1;font-size:.86rem;color:#f6f3fbd9;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alt-track{flex:0 0 84px;height:5px;border-radius:999px;background:#ffffff24;overflow:hidden}.alt-fill{display:block;height:100%;border-radius:999px;background:#f5a24a;opacity:.8}.alt-pct{flex-shrink:0;width:2.3rem;text-align:right;font-size:.78rem;color:#f6f3fb99;font-variant-numeric:tabular-nums}.insect-source{margin:1.4rem 0 0;font-size:.76rem;color:#f6f3fb80}.insect-source a{color:#f5a24a;text-decoration:underline;text-decoration-color:#f5a24a80;text-underline-offset:2px}.insect-source a:hover{text-decoration-color:#f5a24a}.results-display.processing,.results-display.empty,.results-display.error{display:flex;align-items:center;justify-content:center;min-height:240px;text-align:center}.processing-animation p{margin:0;color:#f6f3fbbf;font-size:.95rem}.sound-waves{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:1.25rem}.wave{width:4px;height:22px;border-radius:2px;background:#f5a24a;animation:wave 1.4s ease-in-out infinite}.wave:nth-child(2){animation-delay:.15s}.wave:nth-child(3){animation-delay:.3s}.wave:nth-child(4){animation-delay:.45s}@keyframes wave{0%,to{transform:scaleY(.4);opacity:.55}50%{transform:scaleY(1);opacity:1}}.empty-state{max-width:460px}.empty-state h3{margin:0 0 .75rem;font-size:1.3rem;font-weight:700;color:#fff}.empty-state p{margin:0;color:#f6f3fbb3;line-height:1.6;font-size:.95rem}.error-icon{color:#fca5a5;margin-bottom:.75rem}.error-content h3{margin:0 0 .5rem;color:#fff;font-size:1.3rem}.error-content p{margin:0 0 1.25rem;color:#f6f3fbb3}.retry-button{padding:.6rem 1.4rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:transparent;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s ease}.retry-button:hover{background:#ffffff1a}@media(prefers-reduced-motion:reduce){.insect-result,.wave{animation:none}}.app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse 720px 520px at 82% 6%,rgba(240,138,56,.12),transparent 56%),linear-gradient(180deg,#6e77d4,#7a57a6);background-attachment:fixed;color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-header{text-align:center;padding:calc(.25rem + env(safe-area-inset-top)) .5rem .25rem .5rem;background:linear-gradient(180deg,#00000040,#00000026,#0000000d);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0000001a}.app-logo{height:4rem;max-width:100%;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3))}.app-header p{margin:0;font-size:.8rem;font-weight:400;letter-spacing:-.01em;opacity:.9;text-shadow:0 2px 4px rgba(0,0,0,.4)}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:1.25rem 1rem 2rem}.app-content{width:100%;max-width:640px;display:flex;flex-direction:column;gap:1.5rem}.app-footer{text-align:center;padding:2rem 1rem calc(1rem + env(safe-area-inset-bottom)) 1rem;background:linear-gradient(0deg,#00000040,#00000026,#0000000d);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -4px 20px #0000001a;font-size:.9rem}.footer-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem}.donate-button{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.3rem;border-radius:999px;background:linear-gradient(160deg,#ea8232,#d1402a);color:#fff;font-weight:600;font-size:.9rem;text-decoration:none;cursor:pointer;box-shadow:0 6px 18px #d1402a66;transition:transform .15s ease,box-shadow .2s ease}.donate-button svg{fill:currentColor}.donate-button:hover{transform:translateY(-1px);box-shadow:0 9px 24px #d1402a80}.app-footer a.donate-button,.app-footer a.donate-button:hover{text-decoration:none;text-shadow:none;color:#fff}.about-button{padding:.45rem 1.15rem;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.22);color:#ffffffe6;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease}.about-button:hover{background:#ffffff24;border-color:#fff6}.app-footer p{margin:1.1rem 0 0;opacity:.72}.about-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#0a06149e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:about-fade .2s ease}.about-modal{position:relative;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;padding:1.9rem 1.6rem;border-radius:20px;background:linear-gradient(180deg,#281b3ff7,#1a122cfa);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 64px #00000080;text-align:left;color:#f6f3fbe0;animation:about-rise .28s cubic-bezier(.2,.7,.3,1)}.about-title{margin:0 0 1rem;font-size:1.4rem;font-weight:700;color:#fff}.about-modal p{margin:0 0 1rem;font-size:.95rem;line-height:1.6}.about-modal strong{color:#fff;font-weight:600}.about-modal .donate-button{margin-top:.5rem}.about-close{position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ffffff14;color:#fffc;cursor:pointer;transition:background .2s ease}.about-close:hover{background:#ffffff29;color:#fff}@keyframes about-fade{0%{opacity:0}to{opacity:1}}@keyframes about-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.about-overlay,.about-modal{animation:none}}.app-footer a{color:#ffffffe6;text-decoration:underline;text-decoration-color:#ffffff80;transition:all .3s ease;text-underline-offset:2px}.app-footer a:hover{color:#fff;text-decoration-color:#fffc;text-shadow:0 0 8px rgba(255,255,255,.3)}@media(max-width:768px){.app-logo{height:4rem}.app-header p{font-size:.7rem}.app-content{gap:1rem}.app-main{padding:1rem}}
