*,:before,:after{box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:#f5f5f0;background:#0a1a1a;margin:0}#root{min-height:100vh}p,h1,h2,h3{margin:0}.page{background:radial-gradient(circle at 12% 10%,#00897b24,#0000 36%),radial-gradient(circle at 90% 88%,#c6cc001f,#0000 44%),#0a1a1a;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:clamp(16px,4vw,32px) clamp(12px,3.5vw,24px) clamp(28px,6vw,52px);display:flex}.page-center{background:#0a1a1a;flex-direction:column;justify-content:center;align-items:center;gap:20px;width:100%;min-height:100dvh;padding:24px;display:flex}.spinner{border:4px solid #00897b40;border-top-color:#00897b;border-radius:50%;width:48px;height:48px;animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#a0b8b5;margin:0;font-family:DM Sans,sans-serif;font-size:15px}.error-box{text-align:center;background:#0d2b2b;border:1px solid #1a4040;border-radius:16px;width:min(100%,420px);padding:clamp(24px,5vw,40px) clamp(20px,5vw,32px)}.error-icon{color:#c6cc00;margin-bottom:16px;font-size:40px}.error-title{color:#f5f5f0;letter-spacing:1px;margin:0 0 12px;font-family:Bebas Neue,sans-serif;font-size:28px}.error-msg{color:#a0b8b5;margin:0 0 16px;font-family:DM Sans,sans-serif;font-size:15px;line-height:1.5}.error-hint{color:#6a9090;margin:0;font-family:DM Sans,sans-serif;font-size:13px}.error-hint strong{color:#00897b}.badge-wrapper{background:#0d2b2b;border-radius:clamp(16px,4vw,22px);width:min(100%,560px);overflow:hidden;box-shadow:0 24px 64px #0009,0 0 0 1px #00897b33}.fade-up{animation:.55s cubic-bezier(.22,1,.36,1) both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.top-bar{background:linear-gradient(90deg,#00897b 0%,#c6cc00 100%);height:6px}.bottom-bar{background:linear-gradient(90deg,#c6cc00 0%,#00897b 100%);height:4px}.badge-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px 14px;padding:clamp(16px,3.8vw,22px) clamp(16px,4.2vw,28px) clamp(12px,3vw,18px);display:flex}.logo-block{justify-content:center;align-items:center;width:100%;min-width:0;line-height:1;display:flex}.logo-image{object-fit:contain;width:clamp(148px,34vw,210px);max-width:100%;height:auto;margin-inline:auto;display:block}.logo-image-capture,.capture-mode .logo-image-screen{display:none}.capture-mode .logo-image-capture{display:block}.event-meta{text-align:center;width:100%;min-width:0;margin-left:0}.event-name{color:#f5f5f0;overflow-wrap:anywhere;margin:0 0 4px;font-family:DM Sans,sans-serif;font-size:clamp(.76rem,2.8vw,.88rem);font-weight:600;line-height:1.3}.event-detail{color:#6a9090;letter-spacing:.3px;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(.65rem,2.35vw,.76rem);line-height:1.45}.event-detail-line{display:block}.divider{background:linear-gradient(90deg,#0000,#00897b66 30%,#c6cc004d 70%,#0000);height:1px;margin:0 clamp(16px,4.2vw,28px)}.badge-body{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:clamp(12px,2.8vw,20px);padding:clamp(16px,3.8vw,22px) clamp(16px,4.2vw,28px) clamp(18px,4vw,24px);display:grid}.attendee-info{min-width:0}.attendee-name{color:#f5f5f0;letter-spacing:clamp(.7px,.35vw,1.6px);overflow-wrap:anywhere;margin:0 0 clamp(4px,1.2vw,8px);font-family:Bebas Neue,sans-serif;font-size:clamp(2rem,8vw,2.8rem);line-height:.95}.attendee-designation{color:#a0b8b5;overflow-wrap:anywhere;margin:0 0 4px;font-family:DM Sans,sans-serif;font-size:clamp(.76rem,2.65vw,.88rem);font-weight:400}.attendee-company{color:#c6cc00;overflow-wrap:anywhere;margin:0 0 clamp(10px,2.5vw,14px);font-family:DM Sans,sans-serif;font-size:clamp(.78rem,2.8vw,.95rem);font-weight:600}.type-pill{letter-spacing:clamp(.7px,.4vw,1.2px);text-transform:uppercase;color:#00897b;background:#00897b33;border:1px solid #00897b66;border-radius:100px;padding:clamp(3px,1vw,5px) clamp(10px,2.6vw,14px);font-family:DM Sans,sans-serif;font-size:clamp(.62rem,2.1vw,.72rem);font-weight:700;display:inline-block}.type-pill.type-speaker{color:#c6cc00;background:#c6cc0026;border-color:#c6cc0066}.type-pill.type-vip,.type-pill.type-vip-delegate{color:#ffc850;background:#ffc85026;border-color:#ffc85059}.type-pill.type-exhibitor{color:#64b4ff;background:#64b4ff1f;border-color:#64b4ff4d}.qr-block{background:linear-gradient(#ffffff14,#ffffff05);border:1px solid #b9dbd233;border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.qr-wrap{background:#fff;border-radius:clamp(8px,2.4vw,12px);justify-content:center;align-items:center;width:clamp(120px,24vw,148px);height:clamp(120px,24vw,148px);padding:clamp(4px,1.4vw,8px);display:flex;box-shadow:0 8px 18px #00000047}.qr-img{object-fit:contain;width:100%;height:100%;display:block}.qr-label{color:#d5e7e1;letter-spacing:.3px;text-transform:uppercase;text-align:center;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(.64rem,1.95vw,.72rem);font-weight:700}.badge-footer{background:#00000040;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;padding:clamp(11px,3.2vw,14px) clamp(16px,4.2vw,28px) clamp(12px,3.4vw,16px);display:flex}.tagline{color:#6a9090;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(.63rem,2.15vw,.74rem);font-style:italic}.masked-email{color:#4a7070;letter-spacing:.3px;overflow-wrap:anywhere;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(.63rem,2.15vw,.74rem)}.controls{flex-direction:column;align-items:center;gap:10px;width:min(100%,560px);margin-top:clamp(16px,4vw,24px);display:flex}.download-btn{letter-spacing:.4px;color:#0a1a1a;cursor:pointer;background:linear-gradient(135deg,#00897b 0%,#c6cc00 100%);border:none;border-radius:10px;width:min(100%,360px);min-height:46px;padding:12px clamp(18px,4vw,32px);font-family:DM Sans,sans-serif;font-size:clamp(.84rem,2.75vw,.94rem);font-weight:600;transition:transform .15s,box-shadow .15s,opacity .15s;box-shadow:0 4px 20px #00897b59}.download-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #00897b73}.download-btn:active:not(:disabled){transform:translateY(0)}.download-btn.downloading,.download-btn:disabled{opacity:.6;cursor:not-allowed}.qr-note{color:#4a7070;letter-spacing:.3px;text-align:center;margin:0;font-family:DM Sans,sans-serif;font-size:clamp(.7rem,2.2vw,.78rem)}@media (width<=560px){.badge-wrapper,.controls{width:min(100%,510px)}.badge-body{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px}.qr-block{justify-self:end;margin-top:0;padding:12px}.qr-wrap{width:clamp(144px,40vw,176px);height:clamp(144px,40vw,176px)}.event-meta{text-align:center;width:100%}.attendee-name{font-size:clamp(1.95rem,8.3vw,2.45rem)}}@media (width<=430px){.badge-header{text-align:center;justify-content:center;align-items:center}.logo-block{justify-content:center;align-items:center;width:100%}.badge-body{grid-template-columns:1fr;gap:16px}.attendee-info,.attendee-name,.attendee-designation,.attendee-company{text-align:center}.attendee-name{margin-bottom:8px}.type-pill{margin-inline:auto}.qr-block{justify-self:center;width:min(100%,235px)}.qr-wrap{width:clamp(160px,44vw,188px);height:clamp(160px,44vw,188px)}.event-meta{text-align:center;width:100%}.badge-footer{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px}}@media (width<=380px){.page{padding-inline:10px}.badge-wrapper{border-radius:14px}.download-btn{width:100%}}@media (width>=1024px){.badge-wrapper,.controls{width:min(100%,600px)}}
