.exchange-tabs button{flex-direction:column;gap:3px;min-height:57px;font-size:11px}.exchange-tabs svg{width:22px;height:22px}.exchange-tabs{gap:2px}.exchange-tabs button[aria-pressed=true]:after{left:6%;right:6%}
.exchange-balance{color:#f1e4c5;min-height:40px;cursor:pointer}.exchange-balance .wallet-plus{display:grid;place-items:center;border-radius:50%;width:15px;height:15px;background:#698779;color:#e9d2a0;font-size:13px}.exchange-balance:hover{border-color:#e2c685}
.daily-shop-invite{display:flex;align-items:center;gap:11px;width:100%;min-height:68px;margin:0 0 17px;padding:10px 12px;text-align:left;background:linear-gradient(110deg,#556c61,#27484b);border:1px solid #c6bb8588;border-radius:15px;box-shadow:inset 0 1px #fff2}.daily-shop-invite>svg{width:36px;height:36px;flex:none}.daily-shop-invite>span{flex:1;display:flex;flex-direction:column;gap:4px}.daily-shop-invite strong{font:15px var(--body);color:#f4dfac}.daily-shop-invite small{font:11px var(--body);color:#bfd7cb}.daily-shop-invite>svg:last-child{width:22px;height:22px}
.camp-daily{position:absolute;right:0;top:0;display:flex;align-items:center;gap:5px;min-height:44px;padding:7px 9px;border:1px solid #b9b28b88;border-radius:12px;background:#234448e8;color:#f3d89e;font:11px var(--body);z-index:2}.camp-daily>svg{width:25px;height:25px}.camp-daily.ready:after{content:'';position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:50%;background:#f0d47f;box-shadow:0 0 8px #ead16baa}.heroes-open .camp-daily{display:none}
.currency-heading-copy{display:flex;align-items:center;gap:12px;margin:12px 0 16px}.currency-heading-copy>svg{width:44px;height:44px}.currency-heading-copy h2{font:34px/1.05 var(--display);margin:0;color:#f5e7c9}.currency-heading-copy p{font:12px var(--body);margin:6px 0 0;color:#bbd3c9}.currency-pack-grid{display:grid;gap:13px}.currency-pack{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:12px;padding:17px 13px;width:100%;border:1px solid #abb7c88c;border-radius:18px;background:radial-gradient(ellipse at 12% 35%,#7e8dda55,transparent 66%),linear-gradient(115deg,#3d5672,#263f4e);text-align:left;overflow:hidden;min-height:126px}.currency-pack>span{display:flex;flex-direction:column;gap:6px}.currency-pack small{font:10px var(--body);color:#c1d0df}.currency-pack strong{font:29px var(--display);color:#f1e5c9;line-height:1}.currency-pack b{font:16px var(--number);color:#fce1a6}.currency-pack em{font:10px var(--body);font-style:normal;color:#d2d5bb}.currency-pack>span:last-child{text-align:right}.pack-art{position:relative;height:82px;width:82px;display:grid;place-items:center}.pack-art>svg{width:65px;height:65px;filter:drop-shadow(0 5px 7px #15273a88)}.pack-art>i{position:absolute;right:-1px;top:0;width:18px}.currency-pack:nth-child(2) .pack-art>svg{transform:rotate(-10deg) scale(1.06)}.currency-pack:nth-child(3) .pack-art>svg{transform:scale(1.18)}.currency-pack:nth-child(3){background:radial-gradient(ellipse at 15% 30%,#b198d255,transparent 70%),linear-gradient(115deg,#625075,#293f50)}.currency-pack.gold-pack{border-color:#baaa728c;background:radial-gradient(ellipse at 16% 28%,#d8b97f55,transparent 70%),linear-gradient(115deg,#69644d,#304744)}.gold-pack>span:last-child>b{display:flex;gap:4px;align-items:center;justify-content:flex-end}.gold-pack>span:last-child>b svg{width:20px;height:20px}.exchange-rate-note{font:12px/1.6 var(--body);color:#c6d6c7;padding:13px;background:#314a4780;border:1px solid #9caf9255;border-radius:12px;margin:18px 0}.exchange-soft-link{border:0;background:transparent;min-height:44px;padding:8px 2px;color:#e7d69e;font:12px var(--body);text-align:left}
.commerce-sheet{padding:0;border:1px solid #a3b49b;border-radius:23px;width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 24px);color:#f2e8cf;background:radial-gradient(ellipse at 65% 0,#406660,#163840 85%);box-shadow:0 20px 70px #061b28b0;overflow:auto;overscroll-behavior:contain}.commerce-sheet::backdrop{background:#061b26c9}.commerce-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:19px 19px 13px;background:#23464cf5;border-bottom:1px solid #a4bb982d;z-index:3}.commerce-header small{font:8px var(--number);letter-spacing:.12em;color:#c9d4b5}.commerce-header h2{font:28px/1.1 var(--display);margin:6px 0 0}.commerce-close{min-width:44px;min-height:44px;border-radius:50%;padding:0;border:1px solid #9bb5a970;background:#183840;font:26px var(--body)}.commerce-body{padding:18px 19px max(20px,env(safe-area-inset-bottom))}.commerce-sheet button:focus-visible{outline:3px solid #eacc91;outline-offset:2px}.commerce-sheet .primary{width:100%;min-height:50px;background:linear-gradient(120deg,#ffe2a6,#d8af72);border:1px solid #efd19b;color:#1d3c42;border-radius:12px;font:16px var(--body);text-align:center;box-shadow:0 3px 0 #9b784d;display:flex;align-items:center;justify-content:center;gap:8px}.commerce-sheet .primary:disabled{background:#36524f;border-color:#758d7f55;color:#b4c8bf;box-shadow:none}.commerce-sheet .primary svg{width:24px;height:24px}.commerce-cancel{width:100%;min-height:46px;margin-top:12px;background:#1c3c42;border:1px solid #98b2a555;color:#cfdbca;border-radius:12px}.commerce-sheet [hidden]{display:none!important}
.gift-welcome{display:flex;gap:14px;align-items:center;padding:0 0 15px}.gift-welcome>img{width:62px;height:78px;object-fit:cover;object-position:50% 24%;border:1px solid #cdbb87;border-radius:15px;background:#163a43}.gift-welcome small{font:8px var(--number);letter-spacing:.09em;color:#e2c185}.gift-welcome p{font:21px/1.16 var(--display);margin:6px 0 0;color:#f2e7cb}.gift-welcome>svg{width:39px;height:39px;margin-left:auto}.gift-progress{display:flex;justify-content:space-between;gap:8px;align-items:center;font:11px var(--body);color:#c6d6c7;margin:2px 0 12px}.gift-progress>span:last-child{display:flex;gap:4px;align-items:center}.gift-progress svg{width:20px;height:20px}.gift-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.gift-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:102px;border:1px solid #91a79a60;border-radius:13px;background:linear-gradient(150deg,#486456,#2b4646);padding:10px 3px;color:#d5e0cb}.gift-day small{font:9px var(--number);letter-spacing:.06em}.gift-day>span>svg{width:35px;height:35px}.gift-day strong{font:12px var(--number)}.gift-day>b{position:absolute;right:5px;top:5px;font:11px var(--body);color:#ffe1a0}.gift-day>b>svg{width:12px;height:12px;opacity:.7}.gift-day.ready{border:2px solid #efcf8b;background:linear-gradient(140deg,#807c53,#3e6150);box-shadow:0 0 0 3px #edcc8720,inset 0 1px #fce9bd55;color:#ffe5ae}.gift-day.claimed{background:#264944;color:#9fbfb0}.gift-day.claimed>span{opacity:.55}.gift-day.later{background:linear-gradient(145deg,#365451,#263f43);color:#b8cec2}.gift-finale{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;text-align:left;padding:12px 19px;min-height:89px;background:radial-gradient(ellipse at 20% 0,#8475b965,transparent 80%),#324b59!important;border-color:#b3a7d366}.gift-finale>span>svg{width:55px;height:55px}.gift-finale>small{grid-column:2;grid-row:1;align-self:end}.gift-finale>span{grid-column:1;grid-row:1/3}.gift-finale>strong{grid-column:2;grid-row:2;align-self:start;font-size:21px}.gift-finale:after{content:'A little starlight';grid-column:3;grid-row:1/3;font:10px var(--body);color:#d6c9e3;max-width:75px}.gift-note{font:11px/1.5 var(--body);color:#b9d0c3;text-align:center;margin:14px 0}.gift-reset{font:10px/1.45 var(--body);text-align:center;color:#b8cec1;margin:14px 0 0}.gift-receipt{display:flex;align-items:center;justify-content:center;gap:12px;min-height:61px;border:1px solid #b9c19377;border-radius:12px;background:#496452;margin:12px 0;padding:10px;text-align:center;font:13px var(--body)}.gift-receipt>svg{width:35px;height:35px}.gift-receipt b,.gift-receipt small{display:block}.gift-receipt b{color:#ffe4a8;font:20px var(--number)}.gift-receipt small{font:11px var(--body);margin-top:5px;color:#c7dbbf}.gift-receipt.success{animation:gift-saved .45s ease-out}@keyframes gift-saved{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.gem-purchase-art{height:150px;position:relative;display:grid;place-items:center;background:radial-gradient(ellipse,#688cca88,transparent 65%)}.gem-purchase-art>svg{width:124px;height:124px;filter:drop-shadow(0 9px 16px #101f43)}.gem-purchase-art>i,.gem-purchase-art>b{position:absolute;width:25px;left:22%;top:15%}.gem-purchase-art>b{left:auto;right:22%;top:63%;width:17px}.commerce-eyebrow{display:block;text-align:center;font:9px var(--number);letter-spacing:.12em;color:#d7c18d}.purchase-amount{font:36px var(--display);text-align:center;margin:12px 0;color:#f7e7c4}.purchase-purpose{font:14px/1.6 var(--body);color:#c7d7cc;text-align:center;margin:12px 0 20px}.purchase-price{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px;border-top:1px solid #94b39a55;border-bottom:1px solid #94b39a55}.purchase-price b{font:30px var(--number);color:#f4d195}.purchase-price span{font:11px var(--body);color:#b8cfc0}.purchase-state{text-align:center;font:12px/1.6 var(--body);color:#c5d7c8;margin:18px 0}.gold-trade-art{display:flex;align-items:center;justify-content:center;gap:22px;margin:6px 0 15px}.gold-trade-art>span{display:flex;flex-direction:column;align-items:center;gap:6px}.gold-trade-art svg{width:70px;height:70px;filter:drop-shadow(0 5px 8px #13333c)}.gold-trade-art b{font:22px var(--number);color:#efd093}.gold-trade-art>i{font:28px var(--body);font-style:normal;color:#d4c48f}.trade-balances{padding:14px 16px;background:#183a4190;border:1px solid #9cbaa277;border-radius:13px;display:grid;gap:12px}.trade-balances>div{display:flex;align-items:center;gap:9px;font:13px var(--body);color:#c4d5c5}.trade-balances svg{width:25px;height:25px}.trade-balances b{margin-left:auto;color:#efdbb1;font:15px var(--number)}.trade-note{font:11px/1.6 var(--body);color:#c0d2c5;margin:17px 0}.trade-status{font:13px/1.6 var(--body);padding:12px;border:1px solid #afbe9080;border-radius:10px;background:#395951;color:#f2dcaa}.trade-status.success{animation:gift-saved .45s ease-out}
@media(max-width:350px){.exchange-tabs button{font-size:10px}.exchange-balance .wallet-plus{display:none}.currency-pack{grid-template-columns:63px 1fr auto;gap:7px;padding:14px 10px}.pack-art{width:61px}.pack-art>svg{width:52px;height:52px}.currency-pack strong{font-size:25px}.currency-pack small{font-size:9px}.currency-pack b{font-size:14px}.commerce-header{padding:15px 15px 12px}.commerce-header h2{font-size:26px}.commerce-body{padding:15px}.gift-welcome>img{width:48px;height:63px}.gift-welcome p{font-size:20px}.gift-welcome>svg{width:29px;height:29px}.gift-day{min-height:94px}.gift-day strong{font-size:11px}.gift-finale{min-height:84px}.gift-finale strong{font-size:20px}.gift-finale:after{font-size:9px}.gift-progress{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gift-receipt.success,.trade-status.success{animation:none}}
.commerce-header{background:#23464c}
.commerce-sheet button.primary:not(:disabled):hover{background:linear-gradient(120deg,#ffe2a6,#d8af72);filter:brightness(1.04)}
.camp-wallet .currency-illustration{width:27px;height:27px;flex:none}.pack-art>.currency-illustration{width:83px;height:83px}.currency-pack:nth-child(2) .pack-art>.currency-illustration,.currency-pack:nth-child(3) .pack-art>.currency-illustration{transform:none}.currency-pack .pack-art>i{display:none}.gem-purchase-art>.currency-illustration{width:148px;height:148px}
.currency-pack small,.currency-pack em{font-size:12px;line-height:1.35}.currency-heading-copy p,.exchange-rate-note{font-size:14px}.exchange-soft-link{font-size:14px;line-height:1.5}.currency-pack{min-height:138px}.exchange-tabs button{font-size:12px}
@media(max-width:350px){.pack-art>.currency-illustration{width:64px;height:64px}.currency-pack{grid-template-columns:62px minmax(0,1fr) auto}.currency-pack strong{font-size:23px}}
/* A single currency hue across the ladder; illustrations carry pack size. */
.currency-pack[data-gem-pack]{border-color:#86b8dc70;background:radial-gradient(ellipse at 15% 30%,#568be045,transparent 68%),linear-gradient(115deg,#294f73,#183c50)}
.currency-pack[data-pack-art="gem-chest"]{border-color:#b7a9dc80;background:radial-gradient(ellipse at 15% 30%,#9088df35,transparent 68%),linear-gradient(115deg,#3c4f79,#213c51)}
.currency-pack[data-gem-pack] strong{color:#f2f2e7}.currency-pack[data-gem-pack] small,.currency-pack[data-gem-pack] em{color:#cedfeb}
.currency-pack[data-gem-pack] .pack-art>svg{transform:none}
.currency-pack:focus-visible{outline:3px solid #f2cf8b;outline-offset:3px}
.currency-pack{scroll-margin-block:16px}
/* Daily hub (Lead UI over T031): calendar, missions + chest, weekly track, one "Claim all". */
.daily-hub .commerce-body{display:grid;gap:12px}
.daily-hub .gift-receipt{margin:0}
.daily-all{width:100%}
.daily-block{border:1px solid #91a79a55;border-radius:16px;background:#1d4344cc;padding:12px 12px 11px}
.daily-block>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;min-height:34px}
.daily-block h3{margin:0;font-size:15px;letter-spacing:.01em}
.daily-block header small{display:flex;align-items:center;font:11px var(--number);color:#b9cbbb}
.daily-hub .daily-cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.daily-hub .gift-day{min-height:62px;gap:3px;border-radius:10px;padding:4px 0}
.daily-hub .gift-day>span>svg{width:20px;height:20px}
.daily-hub .gift-day small{font-size:8px}
.daily-hub .gift-day strong{font-size:11px}
.daily-claim{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 12px;border:1px solid #efcf8b;border-radius:999px;background:linear-gradient(140deg,#c99a4c,#8a6a35);color:#fff6df;font:600 12px var(--number);cursor:pointer}
.daily-claim:disabled{opacity:.5;cursor:default}
.mission-list{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.mission{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:50px;padding:8px 10px;border:1px solid transparent;border-radius:12px;background:#2a5150}
.mission.ready{border-color:#efcf8b;background:linear-gradient(140deg,#5b5f45,#2f5550);box-shadow:0 0 0 3px #edcc8718}
.mission.done{opacity:.6}
.mission-copy{display:grid;gap:6px;min-width:0}
.mission-copy b{font:600 13px var(--body);line-height:1.2}
.mission-copy small{font:11px var(--body);color:#b9cbbb}
.mission-bar{display:block;height:5px;border-radius:3px;background:#0f2c30}
.mission-bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#7fe3c8,#c9f3a0)}
.mission.ready .mission-bar i{background:#efcf8b}
.mission-count{min-width:40px;text-align:right;font:11px var(--number);color:#d7e3d0}
.mission-chest{grid-template-columns:minmax(0,1fr) auto;border:1px dashed #91a79a66;background:#233f45}
.daily-chips{display:inline-flex;align-items:center;gap:7px;font:600 12px var(--number)}
.daily-chips span{display:inline-flex;align-items:center;gap:3px}
.daily-chips svg{width:15px;height:15px}
.daily-chips.muted{opacity:.72}
.week-pt{color:#ffe5ae}
.mission-state{display:inline-grid;place-items:center}
.mission-state svg{width:20px;height:20px}
.week-bar{height:8px;margin:2px 2px 12px;border-radius:4px;background:#0f2c30}
.week-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#7fe3c8,#efcf8b)}
.week-tiers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.week-tier{display:grid;justify-items:center;align-content:start;gap:6px;padding:9px 4px;border:1px solid transparent;border-radius:12px;background:#2a5150;text-align:center}
.week-tier>b{font:700 13px var(--number)}
.week-tier.ready{border-color:#efcf8b;box-shadow:0 0 0 3px #edcc8718}
.week-tier.done{opacity:.6}
.week-tier .daily-chips{flex-wrap:wrap;justify-content:center}
.week-claim{min-height:30px;padding:4px 12px}
.daily-note{margin:10px 2px 0;font:11px var(--body);color:#b9cbbb}
.camp-daily-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:9px;background:#efcf8b;color:#2a2410;font:700 11px var(--number)}
/* Save transfer sheet (Lead UI over T024). */
.transfer-sheet .commerce-body{display:grid;gap:12px}
.transfer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.transfer-actions button,.transfer-file{display:grid;place-items:center;min-height:44px;padding:8px 10px;border:1px solid #91a79a88;border-radius:12px;background:#24494b;color:#f2e8cf;font-weight:600;font-size:13px;cursor:pointer;text-align:center}
.transfer-actions .primary{border-color:#efcf8b;background:linear-gradient(140deg,#c99a4c,#8a6a35);color:#fff6df}
.transfer-code,.transfer-input{width:100%;min-height:74px;margin-top:8px;padding:8px 10px;border:1px solid #91a79a66;border-radius:10px;background:#0f2a30;color:#e9e3cf;font:11px/1.35 var(--number);resize:vertical;word-break:break-all}
.transfer-review{margin-top:10px;padding:10px 12px;border:1px solid #efcf8b88;border-radius:12px;background:#2f4a40}
.transfer-review p{margin:0 0 6px;font-size:12px;line-height:1.4}
.transfer-warning{color:#ffe1b3}
.transfer-note{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:8px 12px;border:1px solid #efcf8b88;border-radius:12px;background:#4a4331;font-size:12px}
.transfer-status{margin:0;padding:8px 12px;border-radius:10px;background:#3a2e2e;color:#ffd8cc;font-size:12px}
.transfer-status.success{background:#2c4a3c;color:#d8f5e0}
/* Report a problem sheet (Lead UI, T023 minimal). */
.support-sheet .commerce-body{display:grid;gap:10px}
.support-lead{margin:0;font-size:13px;line-height:1.45;color:#dfe7d8}
.support-diag{min-height:120px}
.support-soon{opacity:.6;cursor:default}

/* Rewarded-ad placements (Lead UI, T013). Each renders only when ArclightAds offers its placement, so the
   soft-launch build shows none of them. .ad-status is the calm inline line for no-fill and save retries. */
.ad-status{margin:6px 0 0;font:12px/1.45 var(--body);color:#ecdcb4}
.ad-status:empty{display:none}
/* Ledger reroll: a quiet camp row under the stage card, in the Next goal family. */
.camp-ledger{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:10px;width:100%;margin:8px 0 0;padding:6px 6px 6px 12px;border:1px solid #91a79a55;border-radius:14px;background:#183a40e6;color:#e9e3cf}
.camp-ledger>small{padding:1px 7px;border-radius:8px;background:#24494b;color:#d5b77e;font:700 9px/1.6 var(--number);letter-spacing:.08em;text-transform:uppercase}
.camp-ledger>span{display:flex;flex-direction:column;gap:2px;min-width:0;padding:4px 0}
.camp-ledger b{font:600 13px/1.3 var(--body)}
.camp-ledger em{font:normal 12px/1.35 var(--body);color:#b9ccc4}
.camp-ledger>button{min-height:44px;margin:0;padding:6px 12px;border:1px solid #d5b77e88;border-radius:11px;background:#24494b;color:#f6dca6;font:600 13px var(--body);white-space:nowrap}
.camp-ledger>button:disabled{opacity:.7}
.camp-ledger>.camp-icon{width:24px;height:24px;margin-right:6px}
.camp-ledger .ad-status{grid-column:1/-1;margin:2px 0 4px}
.camp-ledger.banked{border-color:#efcf8b88}
.camp-ledger.banked>small{background:#efcf8b;color:#2a2410}
.heroes-open .camp-ledger{display:none}
/* Salvage the wreck: a self-contained clear-results row (placed by the Lead; run-results.css stays unchanged). */
.ad-salvage{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 12px;margin:12px 0 0;padding:12px;border:1px solid #b9a57877;border-radius:16px;background:linear-gradient(145deg,#294944,#183647);color:#f2e8cf;text-align:left}
.ad-salvage>.camp-icon{width:36px;height:36px}
.ad-salvage-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.ad-salvage-copy b{font:600 15px/1.3 var(--body);color:#fff0ce}
.ad-salvage-copy small{font:12px/1.4 var(--body);color:#d0dedd}
.ad-salvage>button{grid-column:1/-1;min-height:44px;margin:0;padding:8px 12px;border:1px solid #d5b77e88;border-radius:12px;background:#24494b;color:#f6dca6;font:600 14px var(--body)}
.ad-salvage .ad-status{grid-column:1/-1;margin:0}
.ad-salvage.claimed{grid-template-columns:auto minmax(0,1fr) auto;border-color:#efcf8b88}
.ad-salvage.claimed>.camp-icon:last-child{width:24px;height:24px}

/* Welcome Set picker (Lead UI over T044): two Common choices after a verified entitlement. The cards reuse the
   equipment .gear-item look; the confirm stays reachable at the bottom of short phones. */
.welcome-picker-sheet .commerce-body{padding-bottom:0}
.welcome-pick-lead{margin:0 0 12px;font:14px/1.5 var(--body);color:#dfe7d8}
.welcome-pick-includes{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.welcome-pick-includes>span{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border:1px solid #9cbaa266;border-radius:999px;background:#183a4190;font:12px var(--body);color:#e9e3cf}
.welcome-pick-includes .camp-icon{width:20px;height:20px}
.welcome-pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.welcome-pick{justify-content:flex-start;gap:2px;min-height:44px;margin:0;padding:10px 5px 9px;font:inherit;cursor:pointer}
.welcome-pick .gear-art{height:52px}
.welcome-pick .gear-art img,.welcome-pick .gear-art canvas{width:52px!important;height:52px!important}
.welcome-pick .gear-art>.camp-icon{width:44px!important;height:44px!important}
.welcome-pick small{font-size:12px;margin-top:4px}
.welcome-pick strong{font-size:14px;min-height:0;margin:3px 0 2px}
.welcome-pick>span:last-child{font-size:12px}
.welcome-pick-check{position:absolute;top:5px;right:5px;display:none}
.welcome-pick-check .camp-icon{width:22px;height:22px}
.welcome-pick[aria-pressed=true]{border:2px solid #efcf8b;padding:9px 4px 8px;background:linear-gradient(145deg,#6b6a4d,#24433f);box-shadow:0 0 0 3px #edcc8722}
.welcome-pick[aria-pressed=true] .welcome-pick-check{display:block}
.welcome-pick.is-muted{opacity:.55}
.welcome-pick-note{margin:12px 0 0;font:12px/1.5 var(--body);color:#c0d2c5}
.welcome-pick-actions{position:sticky;bottom:0;display:grid;gap:10px;margin:14px -19px 0;padding:12px 19px max(16px,env(safe-area-inset-bottom));background:#163840f2;border-top:1px solid #a4bb982d;z-index:2}
.welcome-pick-actions .trade-status{margin:0}.trade-status[data-tone="error"]{background:#4a2c28;border-color:#e0987a88;color:#f6dccf}
.welcome-picker-sheet .gift-receipt b{font:600 17px var(--body)}
.welcome-received{list-style:none;display:grid;gap:8px;margin:0 0 16px;padding:0}
.welcome-received li{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #9cbaa255;border-radius:12px;background:#183a4190}
.welcome-received li>.camp-icon,.welcome-received .gear-art{flex:none;width:36px;height:36px}
.welcome-received .gear-art img,.welcome-received .gear-art canvas{width:36px!important;height:36px!important}
.welcome-received .gear-art>.camp-icon{width:32px!important;height:32px!important}
.welcome-received b,.welcome-received small{display:block}
.welcome-received b{font:600 14px var(--body);color:#f2e8cf}
.welcome-received small{font:12px var(--body);color:#b9ccc4;margin-top:2px}
@media(max-width:350px){.welcome-pick-grid{gap:6px}
.welcome-pick strong{font-size:13px}
.welcome-pick-actions{margin-inline:-15px;padding-inline:15px}
}
/* Purchase screens (Lead, docs/PURCHASE_UX.md; purchase-ui.js): email link, checkout wait, confirmation and reveal.
   Gold means "yours"; money is never red. Inputs are 16 px so iOS does not zoom on focus. */
.purchase-sheet .commerce-body{display:grid;gap:12px}
.purchase-email,.purchase-sent,.purchase-code,.purchase-wait,.purchase-reveal,.purchase-age{display:grid;gap:12px;text-align:center}
.purchase-hero{display:grid;place-items:center;width:64px;height:64px;margin:4px auto 0;border-radius:20px;background:radial-gradient(circle at 50% 35%,#4d7d74,#1d4449);border:1px solid #b9c19366;box-shadow:inset 0 1px #fff2}
.purchase-hero .camp-icon{width:38px;height:38px}
.purchase-lead{font:20px/1.25 var(--display);color:#f7e7c4;margin:0}
.purchase-sent h3,.purchase-code h3,.purchase-wait h3{font:22px/1.2 var(--display);color:#f7e7c4;margin:0}
.purchase-sent p,.purchase-code p,.purchase-wait p{font:14px/1.55 var(--body);color:#c7d7cc;margin:0}
.purchase-sent b,.purchase-code b{color:#f4d195;font-weight:600}
.purchase-field{display:grid;gap:6px;text-align:left}
.purchase-field span{font:12px var(--number);letter-spacing:.08em;color:#d7c18d}
.purchase-field input{width:100%;min-height:48px;padding:10px 14px;border:1px solid #a3b49b99;border-radius:12px;background:#0f2a33;color:#f2e8cf;font:16px var(--body)}
.purchase-field input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.purchase-field .purchase-code-input{text-align:center;font:600 26px/1 var(--body);letter-spacing:.18em;font-variant-numeric:tabular-nums}

.purchase-go,.purchase-continue,.purchase-close,#packBuy,#purchaseDone{min-height:48px;width:100%}
.purchase-fine{font:12px/1.5 var(--body);color:#b8cfc0;margin:0}
.purchase-sheet .legal-links{justify-content:center}
.purchase-resend{min-height:44px;width:100%;border-radius:12px}
.purchase-change,.purchase-back{min-height:44px}
.purchase-spinner{display:block;width:44px;height:44px;margin:8px auto 2px;border-radius:50%;border:3px solid #f4d19533;border-top-color:#f4d195;animation:purchase-spin .9s linear infinite}
@keyframes purchase-spin{to{transform:rotate(360deg)}}
.purchase-reveal .gift-receipt{margin:0}
.purchase-reveal .welcome-received{text-align:left;margin:0}
.purchase-reveal .welcome-received li .camp-icon,.purchase-reveal .welcome-received li img{width:34px;height:34px;flex:0 0 auto}
.purchase-reveal .welcome-received b{display:block;font:15px var(--body);color:#f2e8cf}
.purchase-reveal .welcome-received small{display:block;font:12px var(--body);color:#b9ccc4;margin-top:2px}
.purchase-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:40;transform:translateX(-50%);max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border:1px solid #b9c19377;border-radius:14px;background:#163840f2;color:#f2e8cf;font:14px/1.45 var(--body);text-align:center;box-shadow:0 12px 40px #01101a80;transition:opacity .4s,transform .4s}
.purchase-toast.out{opacity:0;transform:translate(-50%,8px)}
@media (prefers-reduced-motion:reduce){.purchase-spinner{animation-duration:2.4s}.purchase-toast{transition:none}}
.purchase-manage{display:grid;gap:12px;text-align:center}
.purchase-wallet{display:grid;gap:8px}
.purchase-wallet>span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #9cbaa255;border-radius:12px;background:#183a4190;font:14px var(--body);color:#c7d7cc}
.purchase-wallet .camp-icon{width:26px;height:26px}
.purchase-wallet b{color:#f4d195;font-weight:600}
/* Founder's Pack card (T075, Lead): a quiet night-blue plate under the outfit feature, gold only on the frame and CTA. */
.founder-offer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;align-items:center;margin:12px 0 0;padding:14px;border-radius:16px;border:1px solid #6d5a33;background:linear-gradient(160deg,#1a2744,#101a2e 70%);box-shadow:inset 0 1px 0 #f0cd7c26}
.founder-offer[hidden]{display:none}
.founder-offer-art{width:58px;height:58px;margin-top:6px}
.founder-offer-copy{display:grid;gap:3px;min-width:0}
.founder-offer-copy small{font-size:11px;font-weight:700;letter-spacing:.08em;color:#e8c47c}
.founder-offer-copy h3{margin:0;font-size:18px;line-height:1.25;color:#fff4dc}
.founder-offer-copy p{margin:0;font-size:13px;line-height:1.45;color:#c2cbd8}
.founder-offer-buy{grid-column:1/-1;min-height:44px}
/* Shop gem packs (UI_VIBE_REVIEW #7): a bonus badge instead of a poetic name; the price chip is the call to action. */
.currency-pack[data-gem-pack] .pack-bonus{display:inline-block;justify-self:start;width:max-content;padding:2px 8px;border-radius:10px;background:#e3c27a2e;border:1px solid #e3c27a8c;color:#f3dfb2;font:700 12px/1.4 var(--number,inherit);letter-spacing:0;text-transform:none}
.currency-pack[data-gem-pack] .pack-bonus.plain{background:#ffffff12;border-color:#cedfeb44;color:#cedfeb;font-weight:600}
