@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#203128;background:#f3f4ec;font-family:Manrope,sans-serif;font-synthesis:none;--ink: #203128;--muted: #718077;--line: #d8ddd2;--paper: #f3f4ec;--card: #fbfcf7;--moss: #58745b;--moss-dark: #33543e;--lime: #cbdc9d;--coral: #d77f65}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.app-shell{min-height:100vh;padding-bottom:108px;overflow:hidden}.topbar{display:flex;justify-content:space-between;align-items:center;max-width:1180px;height:82px;margin:auto;padding:0 34px}.mobile-brand{display:none;font-weight:800;letter-spacing:-.04em}.topbar-status{display:flex;align-items:center;gap:10px;color:var(--muted);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:50%;background:#7ca664}.status-divider{width:1px;height:14px;background:var(--line)}.page{width:min(100% - 68px,1112px);margin:0 auto}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--moss);font-family:DM Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.scanner-page{padding-top:65px}.scanner-heading,.page-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:22px 0 42px}h1,h2,h3,p{margin:0}h1{max-width:630px;color:var(--ink);font-size:clamp(37px,5vw,67px);font-weight:700;letter-spacing:-.065em;line-height:.98}.scanner-heading p,.page-heading p{max-width:500px;margin-top:20px;color:var(--muted);font-size:15px;line-height:1.7}.location,.community-intro{display:flex;align-items:center;gap:8px;color:var(--moss);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.drop-zone{position:relative;display:grid;place-items:center;min-height:410px;overflow:hidden;border:1px solid var(--line);background:#e6eadc}.drop-zone:after{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:1px dashed rgba(88,116,91,.4);content:"";pointer-events:none}.drop-zone.has-preview{background:#dce2d2}.drop-zone>img{width:100%;height:410px;object-fit:cover}.camera-preview{width:100%;height:410px;object-fit:cover}.camera-controls{position:absolute;z-index:3;right:0;bottom:20px;left:0;display:flex;align-items:center;justify-content:center;gap:18px}.capture-button,.camera-cancel{display:grid;place-items:center;border:2px solid #fff;border-radius:50%;color:#fff;background:#203128b8}.capture-button{width:62px;height:62px;box-shadow:0 0 0 5px #ffffff38}.camera-cancel{width:38px;height:38px;border-width:1px}.drop-empty{position:relative;z-index:1;display:grid;justify-items:center;gap:13px;color:var(--moss-dark)}.drop-empty strong{font-size:18px;font-weight:700}.drop-empty span{color:var(--muted);font-family:DM Mono,monospace;font-size:10px;letter-spacing:.05em}.camera-circle{display:grid;place-items:center;width:70px;height:70px;margin-bottom:4px;border:1px solid rgba(88,116,91,.5);border-radius:50%;color:var(--moss)}.scan-overlay{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:10px;color:#fff;background:#203128b8}.scan-overlay span{color:#d9e2d1;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.05em}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scanner-actions{display:flex;align-items:center;gap:12px;margin:22px 0 48px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 18px;border:1px solid transparent;font-size:12px;font-weight:700;transition:transform .2s,background .2s,border .2s}.button:hover{transform:translateY(-1px)}.button-primary{color:#fff;background:var(--moss-dark)}.button-primary:hover{background:#264832}.button-quiet{color:var(--moss-dark);border-color:var(--line);background:transparent}.button-quiet:hover{border-color:var(--moss);background:#e9ede2}.full-width{width:100%;margin-top:24px}.scanner-note{display:flex;gap:22px;max-width:485px;padding-top:25px;border-top:1px solid var(--line);color:var(--muted)}.scanner-note span{color:var(--moss);font-family:DM Mono,monospace;font-size:11px}.scanner-note p{font-size:12px;line-height:1.7}.error-message{max-width:700px;margin:-25px 0 30px;color:#a65945;font-family:DM Mono,monospace;font-size:10px;line-height:1.6}.archive-page{padding-top:60px}.page-heading{margin-bottom:44px}.page-heading h1{font-size:clamp(35px,4.4vw,58px)}.stat-block{display:grid;justify-items:end;color:var(--muted)}.stat-block strong{color:var(--moss-dark);font-size:36px;letter-spacing:-.06em}.stat-block span{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.search-field{display:flex;align-items:center;gap:10px;width:min(100%,380px);margin-bottom:25px;padding:0 14px;border-bottom:1px solid var(--line);color:var(--muted)}.search-field input{width:100%;padding:13px 0;border:0;outline:0;color:var(--ink);background:transparent;font-size:12px}.search-field input::placeholder{color:#9aa69c}.specimen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.specimen-card{overflow:hidden;border:1px solid var(--line);background:var(--card)}.card-image{position:relative;height:220px;background:#dfe5d7}.card-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{display:grid;place-items:center;align-content:center;gap:8px;width:100%;height:100%;color:var(--muted);background:#e2e7dc;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.05em;text-transform:uppercase}.rarity{display:inline-flex;padding:5px 8px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.07em;text-transform:uppercase}.card-image .rarity{position:absolute;top:12px;left:12px;color:#fff;background:#203128c7}.rarity-rare{color:#766333;background:#eee3b4}.rarity-legendary{color:#944d3b;background:#f0cfc3}.card-copy{padding:16px}.card-category,.card-footer{color:var(--muted);font-family:DM Mono,monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase}.card-category span{color:var(--lime)}.card-copy h3{margin:10px 0 3px;color:var(--ink);font-size:17px;letter-spacing:-.03em}.card-copy p{color:var(--muted);font-size:12px;font-style:italic}.card-footer{display:flex;justify-content:space-between;gap:8px;margin-top:19px;padding-top:12px;border-top:1px solid var(--line)}.card-footer span:first-child{display:flex;align-items:center;gap:5px;color:var(--moss)}.community-mark{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--line);color:var(--moss);background:var(--lime)}.community-intro{margin-bottom:24px}.intro-line{width:80px;height:1px;background:var(--line)}.empty-state{padding:60px 0;color:var(--muted);font-family:DM Mono,monospace;font-size:11px}.bottom-nav{position:fixed;z-index:10;right:0;bottom:0;left:0;border-top:1px solid var(--line);background:#f3f4ecf0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1180px;height:82px;margin:auto;padding:0 34px}.brand-mark{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:17px;font-weight:800;letter-spacing:-.06em}.brand-seed{display:grid;place-items:center;width:25px;height:25px;color:#f3f4ec;border-radius:50% 50% 50% 4px;background:var(--moss);font-size:15px;font-weight:800;transform:rotate(-10deg)}.nav-tabs{display:flex;gap:4px}.nav-tab{display:flex;align-items:center;gap:8px;padding:10px 14px;border:0;color:var(--muted);background:transparent;font-size:11px;font-weight:700}.nav-tab.active{color:var(--moss-dark);background:#e1e8d5}.nav-tab:hover{color:var(--moss-dark)}.modal-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#203128ad}.result-modal{position:relative;display:grid;grid-template-columns:.92fr 1.08fr;width:min(100%,760px);overflow:hidden;background:var(--card);box-shadow:0 25px 70px #20312838}.modal-close{position:absolute;z-index:1;top:13px;right:13px;display:grid;place-items:center;width:34px;height:34px;border:0;color:var(--ink);background:#fbfcf7cc}.result-image{min-height:470px;background:#dfe5d7}.result-image img{width:100%;height:100%;object-fit:cover}.result-copy{padding:38px 34px 30px}.result-copy h2{margin-top:18px;color:var(--ink);font-size:37px;letter-spacing:-.07em;line-height:1}.scientific{margin-top:8px;color:var(--muted);font-size:13px;font-style:italic}.result-meta{display:flex;align-items:center;gap:13px;margin:24px 0;color:var(--moss);font-family:DM Mono,monospace;font-size:10px;text-transform:uppercase}.result-meta>span:last-child{display:flex;align-items:center;gap:5px}.fact-row{display:flex;align-items:flex-start;gap:9px;padding:13px;color:var(--moss-dark);background:#e9eedf;font-size:11px;line-height:1.5}.result-copy blockquote{margin:22px 0;padding-left:15px;border-left:2px solid var(--lime);color:var(--muted);font-size:13px;line-height:1.7}.capture-line{display:flex;align-items:center;gap:7px;color:var(--muted);font-family:DM Mono,monospace;font-size:9px}.save-status{margin-top:17px;color:var(--moss);font-family:DM Mono,monospace;font-size:9px;line-height:1.5}@media(max-width:720px){.app-shell{padding-bottom:91px}.topbar{height:65px;padding:0 20px}.mobile-brand{display:flex;align-items:center;gap:8px}.topbar-status{font-size:8px}.page{width:min(100% - 40px,600px)}.scanner-page,.archive-page{padding-top:37px}.scanner-heading,.page-heading{display:block;margin:17px 0 27px}.scanner-heading p,.page-heading p{margin-top:15px;font-size:13px}.location,.stat-block,.community-mark{margin-top:20px}.stat-block{justify-items:start}.drop-zone,.drop-zone>img,.camera-preview{min-height:310px;height:310px}.scanner-actions{align-items:stretch;flex-direction:column;margin-bottom:35px}.scanner-actions .button{width:100%}.specimen-grid{grid-template-columns:1fr;gap:14px}.card-image{height:235px}.nav-inner{justify-content:center;height:74px;padding:0 12px}.brand-mark{display:none}.nav-tabs{width:100%;justify-content:space-between}.nav-tab{flex:1;justify-content:center;padding:10px 4px;font-size:10px}.result-modal{display:block;max-height:calc(100vh - 40px);overflow-y:auto}.result-image{min-height:220px;height:220px}.result-copy{padding:28px 22px 24px}.result-copy h2{font-size:31px}}
