.site-header{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem}.site-header .logo{width:48px;height:48px;image-rendering:pixelated;image-rendering:crisp-edges}.site-header .brand{margin:0}.subtitle{margin-top:-0.25rem;margin-bottom:.75rem;color:#555}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);min-height:100vh;display:flex;justify-content:center;align-items:center}.container{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.2);text-align:center;max-width:500px}h1{color:#333;margin-bottom:1rem;font-size:2.5rem}p{color:#666;margin-bottom:2rem;font-size:1.1rem}.btn{background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);color:#fff;padding:.75rem 2rem;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(102,126,234,.4)}.btn:active{transform:translateY(0)}.scanner-container{position:relative;width:100%;max-width:500px;margin:2rem auto;background:#000;border-radius:10px;overflow:hidden;display:none;aspect-ratio:4/3}.scanner-container.active{display:block}#preview{width:100%;height:100%;border-radius:10px;object-fit:cover;display:block}#qr-reader{width:100%;height:100%;border-radius:10px}#qr-reader video{width:100%;height:100%;object-fit:cover;border-radius:10px}.scan-overlay{position:absolute;inset:0;border:3px solid lime;border-radius:10px;pointer-events:none;z-index:10}.scanning-line{position:absolute;width:100%;height:2px;background:linear-gradient(90deg, transparent, #00ff00, transparent);top:0;animation:scan 2s infinite;box-shadow:0 0 10px lime}@keyframes scan{0%{top:0%}100%{top:100%}}.corner{position:absolute;width:40px;height:40px;border:3px solid lime}.corner-top-left{top:-3px;left:-3px;border-right:none;border-bottom:none}.corner-top-right{top:-3px;right:-3px;border-left:none;border-bottom:none}.corner-bottom-left{bottom:-3px;left:-3px;border-right:none;border-top:none}.corner-bottom-right{bottom:-3px;right:-3px;border-left:none;border-top:none}.scanning-text{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:lime;font-weight:bold;text-shadow:0 0 10px lime;font-size:.9rem;animation:pulse 1s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}h2{color:#333;margin-top:2rem;margin-bottom:1rem;font-size:1.3rem}#capturedList{list-style:none;text-align:left}#capturedList li{background:#f0f0f0;padding:.75rem;margin:.5rem 0;border-radius:5px;color:#333}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);justify-content:center;align-items:center;z-index:2000;padding:1rem}.modal.show{display:flex}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:560px;box-shadow:0 10px 40px rgba(0,0,0,.3);overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(90deg, #667eea, #764ba2);color:#fff}.modal-header h3{margin:0;font-size:1.1rem}.close-btn{background:rgba(0,0,0,0);border:none;color:#fff;font-size:1.4rem;cursor:pointer}.modal-body{padding:1rem 1.25rem 1.5rem 1.25rem;color:#333;max-height:60vh;overflow-y:auto}.scan-result{display:flex;gap:1rem;align-items:center}.scan-info{flex:1}.tag{display:inline-block;background:#eef2ff;color:#4c51bf;padding:.2rem .5rem;border-radius:6px;font-size:.85rem;margin-bottom:.5rem}.pokemon-name{font-weight:700;font-size:1.15rem;margin-bottom:.35rem}.pokemon-text{color:#555}.modal-footer{padding:.75rem 1.25rem;text-align:right}.btn-primary{background:linear-gradient(90deg, #667eea, #764ba2);color:#fff;border:none;padding:.5rem .85rem;border-radius:8px;cursor:pointer}.thumb{width:48px;height:48px;object-fit:cover;border-radius:8px;margin-right:.75rem;vertical-align:middle}.modal-image{width:96px;height:96px;object-fit:cover;border-radius:10px;margin-right:1rem}.pokemon-item{display:flex;align-items:center;gap:.75rem}.pokemon-item .pokemon-item-name{margin:0}@media(max-width: 600px){body{padding:1rem}.container{width:100%;max-width:420px;padding:1.25rem;border-radius:12px}h1{font-size:1.8rem}p{font-size:1rem}.btn,.btn-primary{width:100%;padding:.85rem 1rem;font-size:1rem;border-radius:10px}.scanner-container{max-width:100%;aspect-ratio:3/4;margin:1.25rem auto}.corner{width:28px;height:28px;border-width:2px}.scanning-text{font-size:.85rem}.scanning-line{height:3px}.modal-content{width:100%;max-width:96%;border-radius:10px}.modal-body{padding:.85rem 1rem 1.25rem 1rem;font-size:.95rem}.modal-header{padding:.75rem 1rem}.modal-footer{text-align:center}.pokemon-name{font-size:1rem}#capturedList li{padding:.9rem}}@media(min-width: 601px)and (max-width: 900px){.container{max-width:680px}.scanner-container{max-width:420px;aspect-ratio:4/3}}