:root{--bg-primary: #0f172a;--bg-surface: #1e293b;--bg-elevated: #334155;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #f59e0b;--accent-blue: #3b82f6;--accent-green: #10b981;--accent-red: #ef4444;--border: #334155;--border-subtle: #1e293b;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--shadow-modal: 0 8px 48px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);min-height:100%;min-height:-webkit-fill-available;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh;display:flex;flex-direction:column}.app-shell{flex:1;display:flex;flex-direction:column;min-height:100dvh}h1{font-size:1.75rem;font-weight:700;line-height:1.2}h2{font-size:1.375rem;font-weight:600;line-height:1.3}h3{font-size:1.125rem;font-weight:600;line-height:1.4}p{font-size:.9375rem;line-height:1.6;color:var(--text-secondary)}a{color:var(--accent);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:var(--radius-md);border:none;cursor:pointer;font-size:1rem;font-weight:600;font-family:var(--font-body);transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:var(--accent);color:#0f172a}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary)}.btn-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border)}.btn-danger{background:var(--accent-red);color:#fff}.btn-full{width:100%}.card{background:var(--bg-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:100px;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge-verified{background:#10b98126;color:var(--accent-green)}.badge-ai{background:#3b82f626;color:var(--accent-blue)}.badge-noexif{background:#64748b26;color:var(--text-muted)}.input{width:100%;background:var(--bg-elevated);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:1rem;font-family:var(--font-body);padding:14px 16px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.sheet{position:fixed;bottom:0;left:0;right:0;background:var(--bg-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:24px 24px calc(24px + var(--safe-bottom));z-index:101;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 20px}.page{flex:1;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:calc(72px + var(--safe-bottom))}.page-header{padding:16px 20px 12px;display:flex;align-items:center;gap:12px}.page-title{font-size:1.375rem;font-weight:700}.scroll-y{overflow-y:auto;-webkit-overflow-scrolling:touch}img{-webkit-touch-callout:none}.hunt-shell{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#000;z-index:1}.hunt-hero{position:relative;flex:1 1 0;min-height:0;min-width:0;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.hunt-hero>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.hunt-panel{flex-shrink:0;background:var(--bg-primary);display:flex;flex-direction:column;min-height:0}.hunt-info{padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:45dvh}.hunt-cta{padding:16px 20px calc(20px + var(--safe-bottom));border-top:1px solid var(--border);flex-shrink:0}@media (min-width: 900px){.hunt-shell{flex-direction:row}.hunt-hero{flex:1 1 auto}.hunt-panel{width:420px;max-width:38vw;border-left:1px solid var(--border);height:100dvh}.hunt-info{max-height:none;flex:1 1 auto}}.map-container{width:100%;height:calc(100dvh - 160px);min-height:400px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.text-center{text-align:center}.mt-auto{margin-top:auto}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.px-5{padding-left:20px;padding-right:20px}.py-3{padding-top:12px;padding-bottom:12px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fadeIn{animation:fadeIn .25s ease-out forwards}.animate-slideUp{animation:slideUp .3s cubic-bezier(.32,.72,0,1) forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}@keyframes springPop{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}.animate-springPop{animation:springPop .35s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.animate-blink{animation:blink 1s step-end infinite}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--border) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
