/* Earned rewards use warm metal against the existing field-green interface. */
.service-record{--award-gold:#f3ce73;--award-bright:#fff1b2;background:radial-gradient(ellipse at 50% 7%,#a6852820,transparent 40%),linear-gradient(145deg,#203630,#102321);border-color:#cbb36c66}
.service-rank-mark{width:88px;height:88px!important;margin:21px auto 12px!important;gap:4px;border:1px solid #ebc8787a;border-radius:50%;background:radial-gradient(circle,#526143 0%,#263d32 52%,#152920 53%,#2d3827 64%,#c7a75d 65%,#5f613b 67%,#20372d 69%);box-shadow:0 0 0 6px #cdb66b0a,0 10px 25px #0004}
.service-rank-mark i{background:linear-gradient(#fff2bc,#dfb454);filter:drop-shadow(0 2px 1px #18271f);width:40px;height:12px}
.service-record .promotion-line,.service-record .service-xp b,.service-record .service-totals b:last-child{color:var(--award-gold)}
.service-record .service-progress i{background:linear-gradient(90deg,#9aa971,#e6c464,#fff0b0);box-shadow:0 0 14px #e1be5a44}
.service-record .sector-path>:is(span,button){appearance:none;min-width:0;border:1px solid #78917e45;text-align:center;border-radius:5px;padding:7px 1px;color:#7f9b8a;font-family:monospace;background:transparent;line-height:normal}
.service-record .sector-path>button b{font-size:15px}.service-record .sector-path>button i{display:block;font-size:12px;font-style:normal;letter-spacing:1px}
.service-record .sector-path .cleared{color:#f2d286;background:linear-gradient(145deg,#9d803c30,#5d663318);border-color:#d8bb7166;box-shadow:inset 0 1px #ffe6a71c}
.service-record .sector-path .just-cleared{border-color:#ffe6a9;box-shadow:0 0 17px #eac66530,inset 0 1px #fff0b866}
.service-record .sector-path>button:disabled{cursor:default;opacity:.6}.service-record .sector-path>button:not(:disabled):hover{background:#dec36e20;border-color:#e3ca82}.service-record .sector-path>button:focus-visible{outline:2px solid #f5d781;outline-offset:3px}
.service-chapter{appearance:none;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;padding:0;width:100%;cursor:pointer;white-space:normal}.service-chapter option{color:#e5ecdc;background:#21372e}.service-chapter:focus-visible{outline:1px solid #e8cc82;outline-offset:5px}
.service-award{border:1px solid #edc97466;border-radius:8px;padding:12px 10px;text-align:center;margin:-11px 0 20px;background:linear-gradient(120deg,#d7ac3524,#817b3620);box-shadow:0 4px 20px #0002}.service-award>span{display:block;font:12px/1.4 Arial,sans-serif;letter-spacing:1.8px;color:#f3daa0}.service-award>strong{display:block;font:700 20px/1.4 Arial,sans-serif;color:#ffe9ab;margin-top:3px}
#mission-overlay.victory .service-record .service-award{animation:service-earned .65s 1.65s both cubic-bezier(.18,.9,.28,1.3)}
@keyframes service-earned{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}
#mission-overlay .mission-stars{gap:20px;margin:5px 0 12px;height:93px;align-items:center}
#mission-overlay .mission-stars .star-slot{position:relative;width:84px;height:88px;display:block;color:inherit;font-size:inherit;text-shadow:none}
.star-slot i{position:absolute;inset:0;display:block;font-style:normal}.star-slot svg{width:100%;height:100%;overflow:visible}.star-outline .star-body{fill:#a5b5910c;stroke:#c4cfb32f;stroke-width:2}.star-outline .star-facet{fill:#b8c8a20a}.star-medal{opacity:0;transform:scale(.3);filter:drop-shadow(0 4px 0 #856227) drop-shadow(0 0 15px #e6b64855)}.star-medal .star-body{fill:#f3c95f;stroke:#fff0aa;stroke-width:2}.star-medal .star-facet{fill:#fff3bf;opacity:.28}
.star-slot.awarded .star-medal{animation:star-land .62s both cubic-bezier(.17,.9,.24,1.25)}
.star-slot .star-burst{inset:-13px;opacity:0;border-radius:50%;border:2px solid #f6d888;background:radial-gradient(circle,#f6d77844,transparent 68%);pointer-events:none}.star-slot.awarded .star-burst{animation:star-burst .7s ease-out both}
@keyframes star-land{0%{opacity:0;transform:translateY(-28px) scale(1.8) rotate(-17deg)}42%{opacity:1;transform:translateY(6px) scale(.87) rotate(4deg)}72%{opacity:1;transform:translateY(-3px) scale(1.07) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes star-burst{0%{opacity:0;transform:scale(.45)}35%{opacity:.8}100%{opacity:0;transform:scale(1.45)}}
.perfect-award{display:flex;align-items:center;justify-content:center;gap:14px;color:#f4d185;font-size:13px;letter-spacing:2px;margin:0 0 12px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .4s}.perfect-award span{font-size:20px}.perfect-revealed .perfect-award{opacity:1;transform:none}.perfect-revealed .star-slot.awarded .star-medal{filter:drop-shadow(0 4px 0 #856227) drop-shadow(0 0 22px #ffd96577)}
.secret-achievement{animation:none!important;border:1px solid #f4ca6d!important;background:radial-gradient(ellipse at 5% 10%,#b98d304a,transparent 75%),linear-gradient(120deg,#424c2cf5,#1b362c)!important;box-shadow:0 0 0 4px #e9c35f0d,0 10px 35px #0003;position:relative;overflow:hidden;opacity:0;transform:translateY(18px) scale(.96)}
.secret-achievement.achievement-revealed{animation:achievement-land .7s both cubic-bezier(.18,.9,.28,1.2)!important}.secret-achievement::after{content:"";position:absolute;inset:-100% -60%;background:linear-gradient(105deg,transparent 40%,#ffedb92b 49%,transparent 58%);transform:translateX(-70%);pointer-events:none}.secret-achievement.achievement-revealed::after{animation:achievement-shine 1.15s .25s both ease-out}.secret-achievement strong{color:#ffe5a3!important;font-size:30px!important;text-shadow:0 2px #504225,0 0 28px #f4cd6f33}.secret-achievement>b{color:#f9d98b!important}
@keyframes achievement-land{0%{opacity:0;transform:translateY(18px) scale(.96)}65%{opacity:1;transform:translateY(-3px) scale(1.015)}100%{opacity:1;transform:none}}@keyframes achievement-shine{to{transform:translateX(70%)}}
.service-record.promotion-revealed{animation:promotion-frame .7s both}.service-record.promotion-revealed .service-rank-mark{animation:promotion-mark 1s both}.service-record.promoted .promotion-line{color:#ffe4a4;font-size:15px}.service-record.promoted h3{color:#ffe7ad}
@keyframes promotion-frame{50%{box-shadow:0 0 0 4px #ebca7326,0 0 70px #ebc96c33}100%{box-shadow:0 0 36px #e9ce7a18,0 20px 70px #0005}}
.compensation-note{margin:20px 0;border:1px solid #dab96966;border-radius:9px;background:#d5bc6820;padding:16px 19px}.compensation-note>span{font-size:12px;font-weight:700;letter-spacing:1.6px;color:#e5c77d}.compensation-note>strong{display:block;font:25px/1.2 Georgia,serif;color:#f6e9c0;margin:7px 0}.result-card .compensation-note p{max-width:none;font-size:15px;line-height:1.55;margin:7px 0}.compensation-note b{color:#f6dc94}.compensation-note .compensation-status{font-size:12px!important;margin:9px 0 0;letter-spacing:1px;color:#cab67c}.compensation-note.speaking .compensation-status::before{content:"▂▅▃▆ ";color:#f2ce75}
/* Loadout cards and weapon picker share cached cutout images. */
.campaign-briefing .briefing-loadout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:19px 0}
.campaign-briefing .briefing-loadout .loadout-card{position:relative;appearance:none;display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:11px 12px 9px;border:1px solid #b8d4ae4a;border-radius:9px;background:linear-gradient(155deg,#748b641d,#10271e7a);color:#e4eddb;text-align:left;cursor:pointer;overflow:hidden;transition:border-color .18s,background .18s,transform .18s}
.campaign-briefing .loadout-card:hover{border-color:#e3cb89;background:#c9d6a51a;transform:translateY(-2px)}.loadout-slot-name{display:flex;justify-content:space-between;font-size:12px;font-weight:700;letter-spacing:1.5px;color:#a4bba0}.loadout-slot-name i{font-size:16px;font-style:normal;color:#d7dca9}
.weapon-art{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none;color:#bdcba3;filter:drop-shadow(0 5px 3px #0004)}.loadout-card .weapon-art{height:57px;margin:3px 0}.loadout-weapon-name{display:block;font-size:15px;line-height:1.25;min-height:38px;letter-spacing:0;font-weight:700;color:#ebefdf}
.loadout-ammunition{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;border-top:1px solid #cad6b526;padding-top:8px;margin-top:8px}.loadout-ammunition b{font:700 27px/1 ui-monospace,monospace;color:#ffe1a0;text-shadow:0 1px 0 #3c472b}.campaign-briefing .loadout-ammunition small{font-size:11px!important;letter-spacing:.4px;color:#b8c7aa;margin:0!important;line-height:1.3}.loadout-change{font-size:10px;letter-spacing:1.1px;color:#a4bba0;margin-top:9px}
.loadout-upgrade{position:absolute;right:7px;top:35px;display:flex;align-items:center;gap:3px;padding:4px 5px;border:1px solid #ebd08c99;background:#253d2bf2;box-shadow:0 3px 12px #0005;color:#ffe4a0;font-size:10px;font-weight:800;letter-spacing:.6px;border-radius:4px}.loadout-upgrade svg{width:14px;height:14px}.loadout-card.ammo-low{border-color:#ecb96f!important}.loadout-card.ammo-low .loadout-ammunition b{color:#ffb875}
#loadout-picker{width:min(890px,calc(100vw - 34px));max-width:none;max-height:94svh;padding:0;border:1px solid #b8d3b97a;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#304638,#12281f);box-shadow:0 30px 120px #0009;color:#e9efdf;font-family:Arial,sans-serif}
#loadout-picker::backdrop{background:#07140ed9;backdrop-filter:blur(8px)}#loadout-picker>header{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:23px 25px 10px}#loadout-picker>header small{font-size:12px;letter-spacing:1.6px;color:#b1c79f}#loadout-picker h2{font:34px/1.1 Georgia,serif;letter-spacing:-.7px;margin:6px 0}#loadout-picker .loadout-close{flex:0 0 44px;width:44px;height:44px;background:#cad8b012;border:1px solid #b3c7a64d;border-radius:50%;color:#e7efdc;font:30px/1 Arial,sans-serif}
.picker-balance{display:flex;gap:12px;justify-content:flex-end;align-items:center;padding:0 25px 14px;font-size:12px;letter-spacing:1px;color:#aec19d}.picker-balance b{font:700 20px ui-monospace,monospace;color:#f6db94}.picker-body{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(0,1.2fr);height:min(62svh,520px);border-top:1px solid #bdd0b235}.picker-catalog{overflow:auto;padding:12px;scrollbar-width:thin}.picker-catalog>button{display:flex;align-items:center;width:100%;gap:10px;min-height:71px;padding:8px;border:1px solid transparent;border-radius:7px;background:none;color:#dce6d1;text-align:left}.picker-catalog>button .weapon-art{width:75px;height:47px;flex:0 0 75px}.picker-catalog>button>span{flex:1;min-width:0}.picker-catalog strong{display:block;font-size:15px;line-height:1.25}.picker-catalog small{display:block;font-size:12px;line-height:1.45;color:#aebf9d;margin-top:5px}.picker-catalog>button[aria-pressed=true]{background:#d1d7aa13;border-color:#e5cf8c99}.picker-catalog>button:hover:not(:disabled){background:#cad8b015}.picker-affordable{width:22px;color:#eccc7c;flex:0 0 22px}.picker-affordable svg{width:100%;height:22px}
.picker-preview{border-left:1px solid #bdd0b228;overflow:auto;padding:15px 23px 22px;background:#0c221b42;scrollbar-width:thin}.picker-hero{height:125px;background:radial-gradient(ellipse,#baca9d1c,transparent 68%)}.picker-hero .weapon-art{height:100%}.picker-caliber{font-size:12px;letter-spacing:1.3px;color:#becc9e}.picker-preview h3{font:27px/1.15 Georgia,serif;margin:8px 0}.picker-preview p{max-width:none;font-size:14px;line-height:1.5;margin:8px 0;color:#bdcdb4}.picker-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid #bac9ab26;padding-top:12px;margin:14px 0}.picker-stats span{font-size:11px;color:#9fb694;letter-spacing:.8px}.picker-stats b{display:block;font:700 17px/1.4 ui-monospace,monospace;letter-spacing:0;color:#dfebce}.picker-ammo{display:flex;gap:10px;align-items:center;margin:12px 0;color:#d0dabb}.picker-ammo b{font:700 25px/1 ui-monospace,monospace;color:#ffe0a0}.picker-ammo span{font-size:12px}.picker-equip{width:100%;min-height:47px;border:0;border-radius:5px;background:#e1d391;color:#203225;font-size:13px;letter-spacing:1px;font-weight:800;padding:12px}.picker-equip:disabled{background:#698063;color:#e0e5ce;opacity:.6;cursor:default}.picker-note{display:block;font-size:12px;line-height:1.45;color:#8fa886;margin-top:10px}.picker-error{padding:0 25px;color:#f8ba8e;font-size:14px;line-height:1.4}.picker-error:empty{display:none}
.completion-record{height:112px;position:relative;margin:6px 0 12px;pointer-events:none}.success-stamp{position:absolute;transform:translate(-50%,-50%) rotate(var(--stamp-turn));width:245px;max-width:88%;padding:10px 9px 8px;color:#e66e63;border:5px double currentColor;border-radius:5px;text-align:center;background:#162a222b;mask-image:repeating-linear-gradient(176deg,#000 0 9px,#000b 9px 10px,#000 10px 17px)}.success-stamp strong{display:block;font:900 44px/.95 Arial,sans-serif;letter-spacing:4px}.success-stamp span{display:block;margin:6px 0 3px;font:700 14px/1.3 ui-monospace,monospace;letter-spacing:1px}.success-stamp small{display:block!important;font:700 12px/1.2 Arial,sans-serif!important;letter-spacing:2px!important;color:inherit!important;margin:0!important}
@media(max-width:760px){#mission-overlay .mission-stars{height:80px;gap:15px}#mission-overlay .mission-stars .star-slot{width:72px;height:76px}.perfect-award{font-size:12px;letter-spacing:1.4px}.service-record .sector-path>button b{font-size:12px}.service-record .sector-path>button i{font-size:10px;letter-spacing:0}.secret-achievement strong{font-size:26px!important}.compensation-note{padding:14px}.result-card .compensation-note p{font-size:14px}.campaign-briefing .briefing-loadout{gap:6px}.campaign-briefing .briefing-loadout .loadout-card{padding:9px 8px 8px}.loadout-card .weapon-art{height:43px}.loadout-weapon-name{font-size:14px;min-height:36px}.loadout-ammunition{gap:4px}.loadout-ammunition b{font-size:24px}.campaign-briefing .loadout-ammunition small{font-size:10px!important}.loadout-change{font-size:9px;letter-spacing:.7px}.loadout-upgrade{font-size:9px;right:4px;top:30px;padding:3px}.success-stamp{width:225px}.success-stamp strong{font-size:38px}}
@media(max-width:700px) and (orientation:portrait){#loadout-picker>header{padding:18px 17px 9px}#loadout-picker h2{font-size:28px}.picker-balance{padding:0 18px 12px}.picker-body{grid-template-columns:1fr;grid-template-rows:minmax(110px,23svh) minmax(0,1fr);height:min(70svh,610px)}.picker-catalog{padding:6px 10px}.picker-catalog>button{min-height:60px}.picker-catalog>button .weapon-art{width:65px;height:38px;flex-basis:65px}.picker-preview{border-left:0;border-top:1px solid #bdd0b228;padding:12px 17px 17px}.picker-hero{height:85px}.picker-preview h3{font-size:24px}.picker-preview p{font-size:14px;margin:6px 0}.picker-stats{padding-top:9px;margin:9px 0}.picker-ammo{margin:9px 0}.picker-note{font-size:12px}}
@media(max-height:600px) and (orientation:landscape){#loadout-picker>header{padding:12px 20px 4px}#loadout-picker h2{font-size:27px;margin:3px 0}.picker-balance{padding-bottom:8px}.picker-body{height:62svh}.picker-preview{padding:10px 18px}.picker-hero{height:65px}.picker-preview h3{font-size:23px;margin:5px 0}.picker-preview p{font-size:14px}.picker-stats{margin:9px 0;padding-top:8px}.picker-catalog>button{min-height:60px}.picker-note{font-size:12px}.campaign-briefing .loadout-card .weapon-art{height:39px}}
@media(prefers-reduced-motion:reduce){.star-slot.awarded .star-medal{opacity:1;transform:none;animation:none!important}.star-slot .star-burst,.secret-achievement::after{display:none}.secret-achievement.achievement-revealed{opacity:1;transform:none;animation:none!important}.perfect-award{transition:none}.service-record,.service-award,.service-rank-mark{animation:none!important}.loadout-card{transition:none!important}}

/* Keep actionable labels readable at phone size. */
.loadout-change{font-size:12px;letter-spacing:.5px}.loadout-upgrade{font-size:12px}.campaign-briefing .loadout-ammunition small{font-size:12px!important}.picker-stats span{font-size:12px}.service-record .sector-path>button i{font-size:12px}
.picker-catalog>button.owned{background:#92d59b0a;border-color:#a3d4a126}.picker-catalog>button.owned strong,.picker-catalog>button.owned small{color:#b8e3b5}.picker-catalog>button.owned[aria-pressed=true]{background:#7fae7324;border-color:#b6e3a9}.picker-catalog>button.unaffordable{color:#a2aca4}.picker-catalog>button.unaffordable small{color:#8f9c92}.picker-catalog>button.unaffordable .weapon-art{filter:grayscale(1) brightness(.72);opacity:.58}.picker-catalog>button.unaffordable[aria-pressed=true]{border-color:#a2b1a572;background:#b0b6ab0b}
#mission-overlay.result{overflow-y:auto;align-items:flex-start;scrollbar-width:thin}#mission-overlay.result .debrief-layout{margin:auto}#mission-overlay.briefing .campaign-briefing{max-height:calc(100svh - 40px);overflow-y:auto;scrollbar-width:thin}
@media(max-width:480px){body.touch-game #mission-overlay .score-breakdown{grid-template-columns:1fr}}
/* Short reward reveals only; the scene stops drawing behind the debrief. */
#mission-overlay.victory .completion-ribbon{display:table;position:relative;margin:0 auto 24px;padding:11px 26px;background:linear-gradient(110deg,#cc9429,#f1be46,#d8a12b);border-radius:5px;color:#fff9e3;font:bold 19px/1.2 Arial,sans-serif;letter-spacing:1.2px;text-align:center;box-shadow:0 5px 0 #926a2244,0 12px 30px #d9b84726;animation:reward-ribbon .55s both cubic-bezier(.18,.85,.25,1.2)}
.completion-ribbon::before,.completion-ribbon::after{content:"";position:absolute;top:9px;bottom:-7px;width:22px;background:#a77620;z-index:-1}.completion-ribbon::before{left:-15px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,35% 50%)}.completion-ribbon::after{right:-15px;clip-path:polygon(0 0,100% 0,65% 50%,100% 100%,0 100%)}
#mission-overlay .mission-trophy{width:124px;min-width:124px;border:0;background:none;box-shadow:none;align-self:center;animation:reward-trophy .8s .1s both cubic-bezier(.17,.9,.22,1.2)}.mission-trophy svg{width:100%;height:130px;filter:drop-shadow(0 8px 0 #4e492933) drop-shadow(0 0 30px #f8d36744)}
.service-rank-mark.service-trophy{width:116px;height:123px!important;margin:16px auto 9px!important;border:0;background:none;box-shadow:none}.service-trophy svg{width:100%;height:100%;filter:drop-shadow(0 6px 0 #263528) drop-shadow(0 0 23px #f4c74a55)}
#mission-overlay.victory .mission-stars .star-slot{width:96px;height:98px}.star-medal .star-body{fill:#ffd044;stroke:#ffeb92}.star-medal .star-facet{fill:#fff0a0;opacity:.45}
.service-record .sector-path .cleared{background:linear-gradient(145deg,#f8d46d,#d5a638);border-color:#ffe498;color:#263426;box-shadow:inset 0 1px #fff1b6,0 3px 10px #b7973e33}.service-record .sector-path .cleared i{color:#fff5c6;text-shadow:0 1px #9f7428}.service-record .sector-path .just-cleared.cleared{box-shadow:0 0 21px #eec64566,inset 0 1px #fff6cf}
.chapter-tally{display:flex;justify-content:space-between;gap:8px;margin:11px 0 0;font-size:13px;line-height:1.4;color:#f5d475}.chapter-tally span{white-space:nowrap}.chapter-tally.chapter-complete{padding:10px 8px;border-radius:5px;background:#e6bd4930;border:1px solid #e2be6588;color:#ffe9a0}
@keyframes reward-ribbon{from{opacity:0;transform:translateY(-9px) scale(.9)}to{opacity:1;transform:none}}@keyframes reward-trophy{from{opacity:0;transform:translateY(15px) scale(.6) rotate(-9deg)}to{opacity:1;transform:none}}
@media(max-width:760px){#mission-overlay.victory .completion-ribbon{font-size:16px;padding:10px 17px;margin-bottom:20px}#mission-overlay .mission-trophy{width:87px;min-width:87px}.mission-trophy svg{height:100px}#mission-overlay.victory .mission-stars .star-slot{width:83px;height:86px}}
@media(prefers-reduced-motion:reduce){#mission-overlay .completion-ribbon,#mission-overlay .mission-trophy{animation:none!important}}
#mission-overlay .mission-trophy{clip-path:none;height:138px;flex-basis:124px}@media(max-width:760px){#mission-overlay .mission-trophy{height:108px;flex-basis:87px}}
.chapter-tally{margin-bottom:9px}.debrief-layout .result-card{max-height:calc(100svh - 48px);overflow-y:auto;scrollbar-width:thin}.result-card .result-actions{position:sticky;bottom:0;z-index:2;margin-bottom:0;padding:12px 0 4px;background:linear-gradient(transparent,#20372bf5 18%,#20372b)}
@media(max-width:760px){#mission-overlay .result-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}#mission-overlay .result-stats>div{min-width:0}#mission-overlay .result-stats span{overflow-wrap:anywhere;line-height:1.35}}
@media(max-width:480px){#mission-overlay .score-breakdown{grid-template-columns:1fr}}
