.campaign-home{max-width:640px;margin:auto;padding-bottom:48px}
.campaign-home .native-home-title{margin-bottom:8px}
.campaign-subtitle,.campaign-note{text-align:center;color:var(--muted);line-height:1.9}
.campaign-subtitle{margin:0 0 32px;font-size:14px}
.campaign-card{max-width:440px;margin:0 auto;padding:30px 24px;text-align:center;border-radius:24px}
.campaign-eyebrow{font-size:12px;letter-spacing:.15em;color:var(--muted)}
.campaign-card h2{font-size:22px;font-weight:500;margin:16px 0 8px}
.campaign-card h2 strong{font-family:DMMono,monospace;font-size:66px;font-weight:500;letter-spacing:-.05em;margin:0 8px}
.campaign-card p{margin:0;color:var(--muted);font-size:13px}
.campaign-card>.primary{width:100%;min-height:54px;justify-content:center;gap:16px;margin-top:28px}
.campaign-stages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:24px}
.campaign-stages>span{position:relative;display:grid;place-items:center;width:62px;height:70px;opacity:.45;border-radius:12px;border:1px solid transparent}
.campaign-stages>span.active{opacity:1;border-color:currentColor;background:color-mix(in srgb,currentColor 4%,transparent)}
.campaign-stages>span.done{opacity:1}
.campaign-stages img{width:38px;height:38px;object-fit:contain}
.campaign-stages small{font:11px monospace;line-height:16px}
.campaign-wallet{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:center;align-items:center;margin:28px 0;font-size:12px}
.campaign-wallet>span{display:flex;gap:7px;align-items:center}
.campaign-wallet .native-icon{width:22px;height:22px}
.campaign-note{font-size:12px;margin:24px auto;max-width:440px}
.campaign-records{max-width:600px;margin:auto}
.campaign-records .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.campaign-resume{display:flex;margin:24px auto;min-width:220px;justify-content:center}
.campaign-rewards>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.campaign-rewards .reward-choice{min-width:0;width:100%;min-height:188px;padding:14px 8px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:transform .15s,background-color .15s}
.campaign-rewards .reward-choice:active{transform:scale(.97)}
.campaign-rewards .reward-choice:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.campaign-rewards .reward-choice img{width:38px;height:38px;object-fit:contain}
.campaign-rewards .reward-choice strong{font-size:13px;line-height:1.5}
.campaign-rewards .reward-choice span,.campaign-rewards .reward-choice small{font-size:11px;line-height:1.6}
.campaign-rewards .reward-choice .reward-currency{font-size:26px;display:flex;align-items:center;gap:6px;margin:8px 0}
.campaign-rewards .reward-tag{color:var(--muted);font-size:10px;letter-spacing:.03em}
.campaign-rewards .special-reward{background:color-mix(in srgb,#bfa873 13%,transparent);border-color:#b09a70}
.campaign-result .result-content{padding-bottom:24px}
.campaign-result .result-content>p{color:var(--muted);font-size:13px;line-height:1.7}
.campaign-result .result-content>.secondary{display:block;margin:16px auto 0}
.campaign-prize{display:grid;gap:14px;justify-content:center;margin:30px 0}
.campaign-prize>span{display:flex;align-items:center;gap:10px}
.campaign-prize .native-icon{width:25px;height:25px}
.bonus-leave{display:block;margin:18px auto;border:0;background:none;color:var(--muted);font-size:12px;padding:10px}
.native-failure>.secondary{display:block;margin:14px auto 0}
.result-stages>span{transition:opacity .2s,transform .2s}
@media(max-width:400px){.campaign-card{padding:24px 18px}.campaign-rewards>div{gap:7px}.campaign-rewards .reward-choice{padding:12px 5px}.campaign-rewards .reward-choice strong{font-size:12px}.campaign-records .stat-box{padding:18px 8px}.campaign-records .stat-box strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.campaign-rewards .reward-choice,.result-stages>span{transition:none}}

.checkin-calendar{max-width:440px;margin:24px auto 0;border-radius:24px;padding:22px}
.checkin-calendar header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.checkin-calendar h2{font-size:17px;font-weight:500;margin:0}
.checkin-calendar header button{border:0;background:none;font-size:26px;min-width:40px;min-height:40px}
.checkin-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}
.checkin-week{color:var(--muted);font-size:11px;padding-bottom:8px}
.checkin-day{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;font-size:13px;border:1px solid transparent}
.checkin-day.today{border-color:currentColor}
.checkin-day.checked{background:var(--green);color:var(--paper)}
.checkin-day b{position:absolute;right:-1px;bottom:-4px;border-radius:50%;font-size:10px;background:var(--paper);color:var(--green);padding:0 3px}
.checkin-calendar p{text-align:center;font-size:12px;color:var(--muted);margin:18px 0 0}
