.achievement-badge{position:fixed;z-index:90;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:#fff;text-shadow:0 2px 5px #0008;font-size:24px;cursor:pointer;filter:drop-shadow(0 2px 4px #0005)}
.achievement-badge img{width:56px;height:56px;object-fit:contain}.achievement-badge span{white-space:nowrap}.achievement-toast{position:fixed;inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;border:0;padding:16px 26px 16px 130px;display:flex;align-items:center;min-height:130px;box-sizing:border-box;max-width:calc(100vw - 32px);width:max-content;color:#575757;background:transparent;overflow:visible;pointer-events:none;z-index:2147483000;font-family:inherit}
.achievement-toast[hidden]{display:none}.achievement-scroll{position:absolute;inset:0;border:3px solid #ff8500;border-radius:26px;background:white;box-shadow:inset 0 0 0 1px #56330e,0 10px 28px #0004;transform:scaleX(0)}
.achievement-coin{position:absolute;left:12px;top:50%;width:110px;height:134px;object-fit:contain;filter:drop-shadow(0 5px 5px #0005);transform:translateY(-50%) scale(0)}
.achievement-copy{position:relative;max-width:min(640px,calc(100vw - 198px))}.achievement-kicker{font-size:clamp(14px,2vw,23px);font-weight:600;opacity:0}.achievement-title{font-size:clamp(22px,3.2vw,44px);font-weight:700;color:#cf571d;line-height:1.25;opacity:0;overflow-wrap:anywhere}
.is-showing .achievement-scroll{animation:achievement-scroll .55s cubic-bezier(.08,.85,.22,1) both}.is-showing .achievement-coin{animation:achievement-coin .7s .4s both}.is-showing .achievement-kicker{animation:achievement-up .35s .85s both}.is-showing .achievement-title{animation:achievement-slide .45s 1.05s both}
@keyframes achievement-scroll{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes achievement-coin{0%{transform:translateY(-50%) scale(0) rotate(-180deg)}60%{transform:translateY(-50%) scale(1.15) rotate(8deg)}80%{transform:translateY(-50%) scale(.96) rotate(-3deg)}100%{transform:translateY(-50%) scale(1) rotate(0)}}@keyframes achievement-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes achievement-slide{from{opacity:0;transform:translateX(-28px);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:translateX(0);clip-path:inset(0)}}
.achievement-summary{max-width:520px;margin:0 auto 30px;text-align:center}.achievement-summary progress{width:100%;height:18px;accent-color:#ff6818}.achievement-summary p{color:#bd541e;font-size:20px;font-weight:700}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}.achievement-card{padding:22px 14px;text-align:center;border:1px solid #e7e0d9;background:#faf9f7;border-radius:12px}.achievement-card img{width:90px;height:90px;object-fit:contain;filter:grayscale(1) brightness(1.15);opacity:.5}.achievement-card.is-unlocked{background:#fffaf2;border-color:#efbd74}.achievement-card.is-unlocked img{filter:none;opacity:1}.achievement-card h3{font-size:18px;margin:10px 0;color:#4c433b}.achievement-card p{font-size:13px;color:#777;line-height:1.6}.achievement-card small{color:#b47736}
@media(max-width:600px){.achievement-badge{font-size:16px;bottom:max(85px,calc(env(safe-area-inset-bottom) + 75px));left:8px}.achievement-badge img{width:38px;height:38px}.achievement-toast{min-height:100px;padding:14px 16px 14px 88px}.achievement-coin{width:76px;height:100px;left:6px}.achievement-copy{max-width:calc(100vw - 145px)}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.achievement-card{padding:14px 9px}.achievement-card h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){.is-showing .achievement-scroll,.is-showing .achievement-coin,.is-showing .achievement-kicker,.is-showing .achievement-title{animation-duration:.01ms;animation-delay:0s}}
.achievement-badge{filter:none;text-shadow:none;pointer-events:none;cursor:default}.achievement-badge[hidden]{display:none}.achievement-badge span{display:flex;align-items:baseline;gap:5px}.achievement-earned{display:inline-block;font-size:72px;font-weight:500;line-height:1}.achievement-badge small{font-size:24px}.achievement-toast{top:auto;bottom:130px;transform:translateX(-50%)}.achievement-flight{position:fixed;inset:auto;margin:0;padding:0;border:0;background:transparent;object-fit:contain;pointer-events:none;z-index:2147483001}
.mailbox-contact{position:fixed;max-width:calc(100vw - 40px);padding:34px 48px;border:1px solid #ff6818;border-radius:15px;text-align:center;color:#3c332c;background:#fffaf2}.mailbox-contact::backdrop{background:#0006}.mailbox-contact h2{margin:0 0 20px;font-size:23px}.mailbox-contact a{color:#df5916;font-size:20px}.mailbox-contact-close{position:absolute;right:10px;top:6px;border:0;background:none;font-size:25px;color:#8d6c54;cursor:pointer}
@media(max-width:600px){.achievement-earned{font-size:48px}.achievement-badge small{font-size:16px}}
@media(max-width:760px),(any-pointer:coarse),(max-height:500px) and (max-width:1000px) and (orientation:landscape){
 .achievement-badge{left:50%;right:auto;transform:translateX(-50%);bottom:max(85px,calc(env(safe-area-inset-bottom) + 75px));font-size:16px}
 .achievement-badge img{width:38px;height:38px}
 .achievement-earned{font-size:48px}
 .achievement-badge small{font-size:16px}
 .achievement-toast{min-height:100px;padding:14px 16px 14px 88px}
 .achievement-coin{width:76px;height:100px;left:6px}
 .achievement-copy{max-width:calc(100vw - 145px)}
}
.achievement-card{position:relative;transform:translateY(0) scale(1);transition:transform .26s ease-out,box-shadow .26s ease-out}
@media(hover:hover) and (pointer:fine){.achievement-card:hover{z-index:1;transform:translateY(-7px) scale(1.06);box-shadow:0 12px 25px #54341821;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .26s ease-out}}
@media(prefers-reduced-motion:reduce){.achievement-card,.achievement-card:hover{transition:none;transform:none}}
.mailbox-contact{box-sizing:border-box;padding:34px 24px}.mailbox-contact a{font-size:clamp(14px,3.8vw,20px);text-decoration:none;overflow-wrap:anywhere}.mailbox-contact[open]{animation:mailbox-pop .38s cubic-bezier(.2,.8,.3,1) both}
@keyframes mailbox-pop{0%{opacity:0;transform:translateY(16px) scale(.82)}65%{opacity:1;transform:translateY(-3px) scale(1.035)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.mailbox-contact[open]{animation:none}}
