.achievement-card,.badge-invitation,.badge-earn-prompt{color:rgb(var(--color-text-base))}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:1.5rem;display:grid}.achievement-card{border:1px solid;border-radius:18px;flex-direction:column;align-items:flex-start;padding:1.5rem;display:flex}.achievement-card .achievement-art{width:150px;height:150px;margin:1rem auto}.achievement-art{object-fit:contain;background:#f4f4f0;border-radius:50%;padding:8px}.achievement-card h2,.badge-earn-prompt h2{color:inherit;margin:.5rem 0;font-size:1.15rem}.achievement-card p{margin:.4rem 0;font-size:.9rem}.achievement-card .achievement-requirement{opacity:.8;margin-bottom:1.2rem}.achievement-card a,.achievement-card .achievement-date{margin-top:auto;font-size:.8rem}.badge-invitation{border:1px solid;border-radius:18px;margin:2rem 0;padding:2rem}.badge-invitation h2{color:inherit;margin-top:.8rem}.badge-button{color:#111;font:inherit;cursor:pointer;background:#eee;border:2px solid #111;border-radius:8px;padding:.6rem 1rem;font-size:.9rem;display:inline-block}.badge-button:hover{background:#fff}.badge-button:disabled{opacity:.6;cursor:wait}.badge-button:focus-visible,.badge-dialog-close:focus-visible{outline-offset:3px;outline:3px solid #ee373e}.badge-dialog{border:1px solid rgb(var(--color-text-base), .35);background:rgb(var(--color-fill));width:min(500px,100% - 2rem);max-height:85dvh;color:rgb(var(--color-text-base));border-radius:20px;margin:auto;padding:0;position:fixed;inset:0;overflow:auto;box-shadow:0 24px 80px #0000004d}.badge-dialog::backdrop{backdrop-filter:blur(5px);background:#000000a6}.badge-dialog .badge-login{box-shadow:none;border:0;margin:0;padding-top:3rem}.badge-dialog-close{z-index:1;width:2.75rem;height:2.75rem;color:inherit;cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:1.6rem;line-height:1;display:grid;position:absolute;top:.7rem;right:.7rem}.badge-dialog-close:hover{background:rgb(var(--color-text-base), .08)}.badge-dialog>.badge-signed-in{padding:3rem 1.5rem 1rem}.badge-login{border:1px solid rgb(var(--color-text-base), .35);border-top:4px solid rgb(var(--color-accent));background:rgb(var(--color-card), .2);color:rgb(var(--color-text-base));box-shadow:5px 5px 0 rgb(var(--color-card), .65);border-radius:18px;margin:1.5rem 0 2rem;padding:clamp(1.25rem,4vw,2rem);font-size:1rem;line-height:1.5}.badge-login p{margin:0!important}.badge-login-intro{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.badge-login-intro>div{flex:1;min-width:0}.badge-login .badge-login-intro h2{letter-spacing:-.025em;color:inherit;font-size:clamp(1.5rem,4vw,1.85rem);font-weight:700;line-height:1.15;margin:0 0 .6rem!important}.badge-login-intro p{text-wrap:pretty;max-width:43ch}.badge-login .badge-login-emblem{border:1px dashed rgb(var(--color-text-base), .4);object-fit:contain;background:#f4f4f0;border-radius:50%;flex-shrink:0;width:88px;height:88px;padding:8px;transform:rotate(8deg);margin:0!important}.badge-login form{flex-direction:column;gap:.6rem;display:flex}.badge-login label{font-size:.9rem;font-weight:600}.badge-login-controls{flex-wrap:wrap;gap:.75rem;display:flex}.badge-login-email{flex:15rem;min-width:0;position:relative}.badge-login-email svg{fill:none;stroke:currentColor;stroke-width:1.5px;pointer-events:none;opacity:.65;width:20px;height:20px;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.badge-login input{border:1px solid rgb(var(--color-text-base), .4);background:rgb(var(--color-fill));width:100%;min-height:52px;color:inherit;font:inherit;border-radius:10px;padding:.75rem 1rem .75rem 2.9rem}.badge-login input::placeholder{color:rgb(var(--color-text-base), .6)}.badge-login input:disabled{opacity:.6}.badge-login .badge-login-submit{border:1px solid rgb(var(--color-accent));background:rgb(var(--color-accent));min-height:52px;color:rgb(var(--color-fill));box-shadow:0 3px 0 rgb(var(--color-text-base), .2);border-radius:10px;flex:1 0 auto;justify-content:center;align-items:center;gap:1rem;padding:.75rem 1.1rem;font-size:1rem;font-weight:600;transition:transform .15s,box-shadow .15s;display:flex}.badge-login-submit span{font-size:1.3rem;line-height:1}.badge-login-submit:hover:not(:disabled){box-shadow:0 5px 0 rgb(var(--color-text-base), .2);transform:translateY(-2px)}.badge-login-submit:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.badge-login input:focus-visible,.badge-login .badge-button:focus-visible,.badge-dialog-close:focus-visible{outline:3px solid rgb(var(--color-accent));outline-offset:3px}.badge-login .badge-login-note{opacity:.8;font-size:.85rem;margin-top:.35rem!important}.badge-login-success{border-top:1px dashed rgb(var(--color-text-base), .3);overflow-wrap:anywhere;padding-top:1.25rem}.badge-login .badge-login-success h3{color:inherit;font-size:1.2rem;font-weight:600;margin:0 0 .5rem!important}.badge-login .badge-login-resend{border:1px solid rgb(var(--color-text-base), .4);background:rgb(var(--color-fill));color:inherit;border-radius:10px;margin-top:1rem}.badge-login-resend:hover{border-color:rgb(var(--color-accent))}.badge-login .badge-login-error{background:rgb(var(--color-fill));border-left:3px solid #ee373e;border-radius:0 8px 8px 0;padding:.75rem 1rem;font-size:.9rem;margin-top:1rem!important}@media (width<=400px){.badge-login .badge-login-emblem{width:64px;height:64px;padding:4px}}@media (prefers-reduced-motion:reduce){.badge-login .badge-login-submit,.badge-login .badge-login-submit:is(:hover,:active){transition:none;transform:none}}.badge-earn-prompt{border:1px solid;border-radius:14px;align-items:center;gap:1.5rem;max-width:48rem;margin:1.5rem auto;padding:1.5rem;display:flex}.badge-earn-prompt .achievement-art{flex-shrink:0;width:110px;height:110px;margin:0}.badge-earn-prompt p{margin:.5rem 0}.badge-celebration{z-index:2000;pointer-events:none;color:#111;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.badge-celebration-confetti{position:absolute;top:45%;left:50%}.badge-celebration-content{perspective:900px;justify-items:center;gap:.75rem;display:grid}.badge-celebration .achievement-art{width:min(48vw,220px);height:min(48vw,220px);margin:0;animation:4.2s ease-in-out both badge-spin-in;box-shadow:0 15px 40px #00000040}.badge-celebration-content p{text-align:center;background:#f4f4f0;border-radius:999px;margin:0;padding:.35rem .8rem;font-size:1rem;font-weight:650;animation:4.2s ease-in-out both badge-message-in}@keyframes badge-spin-in{0%{opacity:0;transform:translateY(12vh)rotateY(-720deg)rotate(-25deg)scale(.1)}38%{opacity:1;transform:translateY(-16px)rotateY(0)rotate(8deg)scale(1.18)}62%{opacity:1;transform:translateY(0)rotateY(0)rotate(0)scale(1)}86%{opacity:1}to{opacity:0;transform:translateY(-10px)scale(1)}}@keyframes badge-message-in{0%,26%{opacity:0}38%,86%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.badge-celebration .achievement-art,.badge-celebration-content p{animation:none}}@media (width<=520px){.achievement-grid{grid-template-columns:1fr}.badge-earn-prompt{flex-direction:column;align-items:flex-start}.badge-invitation{padding:1.25rem}}.badge-collection-link{align-items:center;gap:.5rem;display:inline-flex}.badge-collection-link img{width:36px;height:36px;margin:0}.badge-signed-in{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin:1.5rem 0;display:flex}
