:root{--ink:#152d23;--muted:#6b776e;--lime:#b5e65c;--paper:#f5f5ee;--line:#dce1d4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #568500;outline-offset:4px}[hidden]{display:none!important}header{max-width:1260px;margin:auto;padding:26px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-weight:800;font-size:27px;text-decoration:none;letter-spacing:-1px}.brand span{color:#8fa37d}.header-note{font-size:13px;color:var(--muted)}.badge{border:1px solid var(--line);border-radius:30px;padding:9px 14px;font-size:12px;font-weight:700}.badge i,.panel-bar i{display:inline-block;width:6px;height:6px;background:#64952a;border-radius:50%;margin-right:5px}main{max-width:1180px;padding:0 30px;margin:auto}.intro{padding:52px 0 36px;position:relative}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#61764b}h1{font-size:clamp(42px,6vw,72px);line-height:1.06;letter-spacing:-3px;margin:18px 0}h1 em{font-family:Georgia,serif;font-weight:400;color:#668339}.lead{color:var(--muted);line-height:1.65;max-width:370px;font-size:15px;position:absolute;right:40px;bottom:44px}.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);border:1px solid var(--line);border-radius:20px;overflow:hidden;background:white;box-shadow:0 12px 45px #1d32190a}.photo-panel{padding:20px;background:#eef0e7}.panel-bar{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;padding:2px 0 18px;color:#526048}.panel-bar #photo-name{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.image-area{height:390px;border-radius:12px;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#f7f8f2,#e3e8d8);border:1px solid #d8decd}.image-area img{width:100%;height:100%;object-fit:contain;background:#16271d}.image-area #empty-state{text-align:center}.viewfinder{border:1px solid #a2b484;border-radius:22px;width:86px;height:86px;margin:0 auto 24px;display:grid;place-items:center;transform:rotate(-6deg);background:#ebf2de}.viewfinder span{font-size:54px;color:#71964a;transform:rotate(6deg)}h2{font-size:21px;letter-spacing:-.5px}#empty-state p{line-height:1.6;color:var(--muted);font-size:13px}.format-note{display:block;margin-top:27px;font-size:10px;color:#829070}.photo-actions{display:flex;gap:10px;margin-top:16px}.photo-actions button{border-radius:10px;padding:14px 12px;flex:1;font-size:13px;font-weight:700}.photo-actions button span{margin-right:7px}.primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}.secondary{border:1px solid #ccd4c0;background:#f7f8f2;color:var(--ink)}.results-panel{padding:30px;display:flex;flex-direction:column}.results-heading{display:flex;align-items:center;justify-content:space-between}.total{border:1px solid var(--line);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:12px}.results-panel h2{margin:18px 0 0}.results-panel>p{font-size:12px;color:var(--muted);line-height:1.6}.results-empty{color:#9da78f;text-align:center;padding:30px 0 38px;font-size:12px;line-height:1.6}.results-empty>span{font-size:28px;border:1px dashed #c5ceba;display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%}#results{flex:1;max-height:210px;overflow-y:auto;min-height:130px}.animal-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eff1e9;padding:13px 0;font-size:13px}.animal-row strong{font-size:14px}.animal-row span{color:#5e7f37;background:#eef4e4;border-radius:6px;padding:5px 8px;font-size:11px}.settings{padding-top:17px;border-top:1px solid var(--line)}.settings label{font-size:11px;display:flex;justify-content:space-between;font-weight:700}.settings input{width:100%;accent-color:#678d35;margin:13px 0 0}.settings p{font-size:10px;color:var(--muted);margin:5px 0 17px}.analyze{border:none;background:var(--lime);color:var(--ink);border-radius:9px;padding:15px;font-weight:700;font-size:13px;display:flex;justify-content:space-between}.status{min-height:18px;margin:10px 0 0}.status.error{color:#a43a25}.download{font-size:12px;color:#477227;margin-top:10px;text-decoration:none}.species{padding:35px 0;display:grid;grid-template-columns:1fr 1.5fr;align-items:center;border-bottom:1px solid var(--line);gap:20px}.species h2{font-size:22px;margin:12px 0}.species-list{display:flex;gap:9px;flex-wrap:wrap}.species-list span{border:1px solid #d4ddc7;border-radius:30px;font-size:12px;padding:8px 13px;background:#f0f3e8}.notes{display:flex;gap:55px;padding:18px 0 34px}.notes p{flex:1;color:var(--muted);font-size:11px;line-height:1.7}footer{max-width:1180px;margin:auto;padding:22px 30px;display:flex;justify-content:space-between;font-size:10px;border-top:1px solid var(--line);color:var(--muted)}footer span:first-child{font-size:18px;font-weight:800;color:var(--ink)}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#10271ddb;color:white;font-size:13px}.spinner{width:36px;height:36px;border:3px solid #ffffff40;border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){header{padding:19px 20px}.header-note{display:none}main{padding:0 18px}.intro{padding:30px 0 24px}h1{letter-spacing:-2px}.lead{position:static;max-width:95%;font-size:14px;margin-bottom:0}.workspace{grid-template-columns:1fr}.photo-panel{padding:14px}.image-area{height:300px}.results-panel{padding:24px}.results-empty{padding:10px 0}#results{min-height:85px}.species{grid-template-columns:1fr;padding:26px 0;gap:12px}.notes{display:block;padding-bottom:18px}.notes p{margin:14px 0}footer{padding:18px;font-size:9px}footer span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
