
@font-face{font-family:OutfitBadges;src:url('/assets/achievements/Outfit.ttf') format('truetype');font-display:swap}
.achievements-page{padding-top:34px}.achievements-page h1{font-size:clamp(2.2rem,6vw,4rem);letter-spacing:-.05em}.achievement-intro{max-width:680px;color:var(--muted);margin:12px 0 25px}.lp-summary{display:flex;gap:12px;flex-wrap:wrap}.lp-summary>div{min-width:170px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px}.lp-summary span{display:block;font-size:.8rem;color:var(--muted);font-weight:700}.lp-summary strong{display:block;font-size:1.8rem}.achievement-shelf{margin:32px 0}.achievement-shelf h2{font-size:1.35rem;margin-bottom:12px}.shelf-track{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x proximity;padding:8px 3px 19px;scrollbar-color:var(--gold) transparent}.badge-card{position:relative;flex:0 0 180px;scroll-snap-align:start;text-align:left;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:12px;color:var(--ink);min-height:258px;display:block}.badge-card:hover,.badge-card:focus-visible{border-color:var(--gold);transform:translateY(-2px)}.badge-art{position:relative;display:block;width:150px;height:150px;margin:auto}.badge-art img{width:100%;height:100%;object-fit:contain}.badge-card[data-earned=false] .badge-art img{filter:grayscale(1) brightness(.55);opacity:.72}.badge-card[data-earned=false] .badge-art:after{content:'🔒';position:absolute;inset:0;display:grid;place-items:center;font-size:2rem;text-shadow:0 2px 8px #000}.badge-card strong{display:block;font-size:.95rem;line-height:1.2;margin-top:6px}.badge-card small{display:block;color:var(--muted);margin-top:5px}.badge-card .points{color:var(--gold);font-weight:800}.badge-new{position:absolute;right:8px;top:8px;background:var(--sun);color:#17243a;font-size:.65rem;font-weight:900;border-radius:99px;padding:3px 7px;box-shadow:0 0 0 2px var(--card)}.badge-card[data-earned=true][data-new=true]{box-shadow:0 0 0 2px var(--gold),0 0 20px color-mix(in srgb,var(--gold) 35%,transparent)}.badge-text{position:absolute;left:50%;top:var(--text-top,50%);transform:translate(-50%,-50%);font-family:OutfitBadges,sans-serif;font-weight:800;font-size:var(--text-size,50px);color:#fff3d0;line-height:1;text-shadow:-1px -1px #10233c,1px 1px #10233c;white-space:nowrap;pointer-events:none}.badge-text[data-field=year]{letter-spacing:2px}.detail-art{max-width:250px;margin:auto}.detail-art .badge-art{width:220px;height:220px}.detail-art .badge-text{font-size:calc(var(--text-size,50px)*1.46)}dialog{border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--surface);color:var(--ink);max-width:min(440px,calc(100vw - 28px));box-shadow:var(--shadow)}dialog::backdrop{background:#0009}.close-detail{float:right;background:var(--soft);color:var(--ink);min-height:35px;min-width:35px;padding:4px}.detail-title{font-size:1.4rem;text-align:center}.detail-copy{text-align:center;color:var(--muted);margin-top:8px}.detail-progress{margin-top:14px;text-align:center;font-weight:700}.community-visit-link{display:block;width:max-content;max-width:100%;margin:17px auto 2px;padding:10px 17px;border-radius:10px;background:var(--gold);color:#18243a;text-align:center;font-weight:800;text-decoration:none}.community-visit-link:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.empty-state{color:var(--muted)}@media(max-width:600px){.badge-card{flex-basis:155px;min-height:240px}.badge-art{width:130px;height:130px}.account-nav{gap:10px;font-size:.74rem}}@media(prefers-reduced-motion:reduce){.badge-card{transition:none}.badge-card:hover{transform:none}}
