:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#0d191d;color:#e7eeea;font-synthesis:none;--mint:#a0c7b9;--muted:#a7b9b4;--line:#344a4b}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{display:grid;place-items:center;min-height:100svh;background:radial-gradient(ellipse at 50% 36%,#273e40,#0d191d 70%)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:-3px}button:active{transform:scale(.99)}button:disabled{cursor:default}[hidden]{display:none!important}
.game{width:min(100%,460px);height:min(calc(100dvh - 24px),940px);display:flex;flex-direction:column;background:#13252a;border:1px solid #354a4c;border-radius:16px;overflow:hidden;box-shadow:0 24px 80px #0007;position:relative}.wave>span{font-size:.875rem;font-weight:650;white-space:nowrap}.wave-pips{display:flex;gap:3px;margin-top:9px}.wave-pips i{width:5px;height:3px;border-radius:1px;background:#3b5155}.wave-pips i.done,.wave-pips i.current{background:var(--mint)}
.arena{flex:1;min-height:0;position:relative;isolation:isolate;background:#c5ad88}#battlefield{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;outline:none;-webkit-tap-highlight-color:transparent}.spawn-label{pointer-events:none;position:absolute;top:15px;inset-inline:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:.75rem;letter-spacing:1.2px;color:#3b4b43}.spawn-label span{width:20px;height:1px;background:#43534888}.wall-health{position:absolute;top:78.2%;left:7%;width:86%;height:27px;background:#273b36;border:1px solid #a1b09a;border-radius:4px;pointer-events:none;overflow:hidden;box-shadow:0 2px 8px #0004}.wall-health-fill{position:absolute;inset:0;background:#537867;transform-origin:left;transition:transform .15s,background .2s}.wall-health.low .wall-health-fill{background:#873e3b}.wall-health-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 9px;text-shadow:0 1px 3px #0007}.wall-health-label span{font-size:.75rem;letter-spacing:1px;font-weight:700}.wall-health-label strong{font-variant-numeric:tabular-nums;font-size:.875rem}.tap-hint{position:absolute;inset-inline:0;top:69%;text-align:center;pointer-events:none;font-size:.875rem;color:#344b43;transition:opacity .5s}.tap-hint.dismissed{opacity:0}.wave-banner{position:absolute;inset-inline:0;top:25%;display:grid;justify-items:center;gap:7px;pointer-events:none;opacity:0;color:#243d34}.wave-banner.show{animation:banner 1.8s ease both}.wave-banner span{font-size:.75rem;letter-spacing:2px}.wave-banner strong{font-size:28px;font-weight:750;text-shadow:0 1px 15px #ece0be}@keyframes banner{0%{opacity:0;transform:translateY(7px)}15%,70%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-5px)}}
.overlay{position:absolute;inset:0;background:#102328f0;display:flex;align-items:flex-start;justify-content:center;padding:20px 14px;z-index:5;overflow:auto;overscroll-behavior:contain}.modal{width:100%;max-width:420px;text-align:center;margin:auto 0}.modal-eyebrow{display:block;color:var(--mint);font-size:.75rem;font-weight:650;letter-spacing:1.5px;margin-bottom:9px}.modal h1{font-size:1.65rem;line-height:1.15;letter-spacing:-.5px;margin:0 0 9px;font-weight:750}.modal>p{font-size:.875rem;color:#b4c5c0;line-height:1.4;margin:0 0 17px}.creature-roster{display:grid;gap:7px}.creature-card{display:flex;width:100%;align-items:center;gap:9px;text-align:left;padding:6px 10px 6px 4px;border:1px solid #405a59;border-radius:8px;background:#20363b;transition:border-color .12s,background .12s;min-height:80px}.creature-card:hover{background:#294348}.creature-card.selected{border-color:#bdd7b9;background:#304944;box-shadow:inset 3px 0 #bdd7b9}.portrait{display:block;width:66px;height:66px;flex:0 0 66px;image-rendering:pixelated;pointer-events:none}.creature-copy{display:block;flex:1;min-width:0}.creature-copy strong{display:inline;font-size:1rem;font-weight:650}.element{font-size:.75rem;display:inline-block;margin-left:7px}.creature-description{display:block;font-size:.875rem;color:#b8c9c3;line-height:1.25;margin-top:3px}.selection-mark{font-size:1rem;min-width:23px;width:23px;height:23px;border:1px solid #657f77;border-radius:50%;text-align:center;line-height:21px;color:var(--mint)}.selected .selection-mark{background:#bdd7b9;color:#213a30;border-color:#bdd7b9}.primary-button,.replay{width:100%;min-height:48px;background:#b7cda9;color:#1b332b;display:flex;align-items:center;justify-content:center;gap:15px;border:0;border-radius:7px;font-size:.9375rem;font-weight:750;padding:13px 9px;margin-top:17px}.primary-button:disabled{background:#304846;color:#a5b7ae}.replay span{font-size:24px;line-height:18px}
.upgrade-overlay{background:#102328d9;padding:20px 8px}.upgrade-overlay .modal{margin:0;max-width:450px}.upgrade-overlay .modal h1{font-size:1.4rem}.upgrade-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.upgrade-card{width:100%;display:flex;align-items:center;flex-direction:column;text-align:center;background:#253c3d;border:1px solid #647969;border-radius:8px;padding:12px 6px;min-height:248px;transition:background .12s,border-color .12s}.upgrade-card:hover{border-color:#c1d6b9;background:#334c46}.upgrade-card .portrait{width:64px;height:64px;flex:0 0 64px}.reward-category{font-size:.75rem;color:#b5c6ad;min-height:32px;display:flex;align-items:center;justify-content:center;line-height:1.2}.reward-symbol{height:64px;display:flex;align-items:center;color:#b5c6ad;font-size:32px}.reward-owner{font-size:.75rem;color:#b5c6ad;display:block;margin-bottom:5px}.upgrade-name{display:block;font-size:.875rem;font-weight:700;line-height:1.25;margin-bottom:7px;overflow-wrap:anywhere}.upgrade-description{display:block;font-size:.875rem;line-height:1.3;color:#cfdbd1}.upgrade-level{display:block;font-size:.75rem;color:#b5c6ad;margin-top:8px}.victory-overlay,.defeat-overlay{background:#102328f5}.victory-overlay h1,.defeat-overlay h1{font-size:2.4rem;letter-spacing:2px}.defeat-overlay .modal-eyebrow{color:#d9a59b}.damage-total{display:flex;justify-content:space-between;align-items:center;padding:15px 0 20px;gap:10px;font-size:1rem}.damage-total strong{font-size:1.5rem;color:#c7dac1;font-variant-numeric:tabular-nums}.damage-stats table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:right;font-variant-numeric:tabular-nums}.damage-stats th,.damage-stats td{padding:12px 4px;border-bottom:1px solid #3b514d}.damage-stats thead th{color:#b3c5ba;font-weight:500;font-size:.75rem}.damage-stats tr>:first-child{text-align:left;max-width:155px}.damage-stats tbody th{font-weight:500}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:480px){.game{height:100dvh;width:100%;border:0;border-radius:0;box-shadow:none}}
@media(max-width:370px){.wave-pips{gap:2px}.element{margin-left:0;display:block}.creature-description{font-size:.8125rem}.creature-card{gap:5px}.creature-card .portrait{width:57px;height:57px;flex-basis:57px}.overlay{padding-inline:9px}}
@media(max-height:760px){.overlay{padding-block:13px}.modal>p{margin-bottom:11px}.creature-card{min-height:68px;padding-block:3px}.creature-card .portrait{width:58px;height:58px;flex-basis:58px}.primary-button{margin-top:12px}.modal-eyebrow{margin-bottom:7px}.modal h1{font-size:1.4rem}.creature-roster{gap:5px}}
@media(prefers-reduced-motion:reduce){.wave-banner.show{animation:none;opacity:0}.wall-health-fill,.tap-hint,.creature-card,.upgrade-card{transition:none}}.mission-timer{display:block!important;font-size:.75rem!important;color:#b4c5c0;margin-top:7px;font-variant-numeric:tabular-nums}.mission-timer[hidden]{display:none!important}.mission-timer.over-time{color:#d9ad91}.save-notice{margin:0;padding:9px 14px;background:#594b31;color:#fff1cf;font-size:.875rem;line-height:1.35;z-index:10;flex-shrink:0}.text-button{border:0;background:transparent;color:#c7d8cd;padding:12px 5px;font-size:.875rem;min-height:44px}.star-rating{display:flex;justify-content:center;gap:10px;margin:8px 0 15px;font-size:44px;line-height:1.2;color:#708277}.star-rating .earned{color:#e1c184}.objective-list{list-style:none;margin:0;padding:0;text-align:left;display:grid;gap:9px;font-size:.875rem;color:#93a69d}.objective-list .achieved{color:#d1dfc9}.earned-rewards{display:grid;gap:8px;background:#2b3e38;border:1px solid #627761;border-radius:9px;padding:12px;margin:17px 0 5px;text-align:center}.earned-rewards>strong{color:#e1c184;font-size:1.35rem}.token-reward{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.875rem}.token-reward .portrait{width:42px;height:42px;flex-basis:42px}.damage-total{padding-bottom:10px;font-size:.9375rem}.damage-total strong{font-size:1.3rem}.damage-stats th,.damage-stats td{padding-block:10px}
.menu{flex:1;min-height:0;display:flex;flex-direction:column;background:#15282c}.menu-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:23px 17px 25px;outline:none}.menu-heading{margin-bottom:21px}.menu-heading h1,.creature-detail-heading h1{font-size:1.7rem;line-height:1.15;margin:0 0 9px;color:#edf0e6;letter-spacing:-.5px}.menu-heading p,.menu-note{font-size:.875rem;line-height:1.5;color:#afc3b9;margin:8px 0 14px}.menu-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:4px 8px max(6px,env(safe-area-inset-bottom));background:#102125;border-top:1px solid #40564e;flex-shrink:0}.menu-tabs button{font-size:.8125rem;font-weight:700;letter-spacing:.3px;min-height:58px;background:none;border:0;border-top:2px solid transparent;color:#9eb4aa}.menu-tabs button[aria-selected=true]{color:#d5e2ca;border-top-color:#b7cda9;background:#b7cda909}.mission-card{overflow:hidden;border:1px solid #536657;border-radius:12px;background:#243934}.mission-art{display:block;width:100%;height:155px;object-fit:cover;object-position:center 42%;filter:saturate(.65)}.mission-copy{padding:21px}.mission-copy h2{font-size:1.5rem;margin:0 0 5px}.mission-copy p{font-size:1rem;color:#c7d3c4;margin:5px 0 12px}.mission-stars{font-size:35px;color:#e1c184;letter-spacing:4px;line-height:1.3;margin:14px 0}.mission-copy .mission-record,.mission-copy .mission-target{font-size:.875rem;line-height:1.4}.mission-copy .mission-target{color:#aabdac}.menu .creature-card{min-height:92px;margin-bottom:2px}.menu .creature-copy strong{font-size:.9375rem}.level-label{display:block;color:#cedec1;font-size:.8125rem;margin-top:6px}.collection-tokens{font-size:1.1rem;color:#ccdbc2;text-align:center;padding:4px;flex-shrink:0}.collection-tokens small{display:block;font-size:.75rem;font-weight:400;margin-top:3px}.gold-wallet{padding:20px;background:#384136;border:1px solid #838566;border-radius:11px;display:flex;align-items:center;justify-content:space-between;color:#e1c184}.gold-wallet>span{font-size:.875rem;font-weight:650;letter-spacing:1px}.gold-wallet strong{font-size:2rem;font-variant-numeric:tabular-nums}.currency-list{display:grid;gap:0;margin-top:22px}.currency-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #3b5249}.currency-row .portrait{width:49px;height:49px;flex-basis:49px}.currency-row>span{flex:1;font-size:.9375rem;line-height:1.35}.currency-row strong{font-size:1.25rem;color:#d0dfc8;min-width:30px;text-align:right}.back-button{padding:2px 0 15px;color:#bfd1be}.creature-detail-heading{display:flex;align-items:center;gap:10px;margin:5px 0 16px}.creature-detail-heading>.portrait{width:120px;height:120px;flex-basis:120px}.creature-detail-heading h1{font-size:1.45rem}.creature-detail-heading p{font-size:.9375rem;margin:8px 0;color:#c7d8bd}.detail-description{font-size:1rem;line-height:1.45;color:#bed0c5;margin:0 0 20px}.detail-stats,.upgrade-preview{margin:0}.detail-stats>div,.upgrade-preview>div{display:flex;justify-content:space-between;align-items:baseline;gap:13px;padding:12px 0;border-bottom:1px solid #3c554b;font-size:.9375rem}.detail-stats dt,.upgrade-preview dt{color:#b9cec2}.detail-stats dd,.upgrade-preview dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.detail-stats dd{max-width:59%}.permanent-upgrade{padding:19px 15px;background:#293f36;border:1px solid #647b60;border-radius:10px;margin-top:22px}.permanent-upgrade h2{font-size:1.15rem;margin:0 0 13px}.upgrade-preview>div{font-size:.875rem}.upgrade-cost{font-size:.9375rem;line-height:1.4;margin:18px 0 6px;color:#e0e9d5}.permanent-upgrade .menu-note{margin:0}.permanent-upgrade .primary-button:disabled{color:#99ad9b;background:#3c5345}
@media(max-height:760px){.star-rating{font-size:36px;margin-bottom:10px}.menu-content{padding-top:17px}.mission-art{height:120px}}
@media(max-width:370px){.menu-content{padding-inline:12px}.creature-detail-heading>.portrait{width:95px;height:95px;flex-basis:95px}.creature-detail-heading h1{font-size:1.25rem}.collection-tokens{padding:0}.collection-tokens small{font-size:.75rem}.mission-copy{padding:16px}.objective-list{font-size:.8125rem}.menu-tabs button{font-size:.75rem}.detail-stats>div{font-size:.875rem}}
/* Swipeable mission selection, with adjacent cards peeking into view. */
.mission-carousel{position:relative;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:36px;padding:3px 36px 12px;margin-inline:-17px;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:#789080 transparent}
.mission-carousel .mission-card{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;min-width:0;align-self:stretch;outline:none;display:flex;flex-direction:column;border-color:#42594c;transition:border-color .15s}
.mission-carousel .mission-card.current,.mission-card:focus-visible{border-color:#b9cca6}.mission-carousel .mission-art{height:105px}.mission-carousel .mission-copy{padding:17px;display:flex;flex-direction:column;flex:1}.mission-carousel .mission-stars{font-size:30px;margin:5px 0 9px}.mission-carousel .primary-button{margin-top:auto}.mission-carousel .mission-copy>.mission-target{margin-bottom:16px}.mission-copy .mission-difficulty{font-size:.875rem;display:flex;justify-content:space-between;gap:8px}.mission-difficulty>span{color:#c9b487;white-space:nowrap}.enemy-chips{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 14px}.enemy-chips>span{font-size:.875rem;padding:4px 7px;background:#182d28;border:1px solid #445b4d;border-radius:5px;color:#c1d0bf}.mission-copy .mission-lock{font-size:.875rem;color:#cdbba2;margin-bottom:13px}.mission-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:5px}.mission-controls button{font-size:26px;min-width:48px;padding:3px}.mission-controls button:disabled{opacity:.25}.mission-controls>span{font-size:.875rem;font-variant-numeric:tabular-nums;color:#cbd6c4}.swipe-hint{text-align:center}.enemy-intel{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px;text-align:left}.intel-entry{font-size:.8125rem;line-height:1.4;border-left:2px solid #617d65;background:#253c34;padding:5px 8px}.target-affinity{position:absolute;top:38px;inset-inline:8px;text-align:center;font-size:.75rem;color:#243d32;background:#e4e4ccdb;border-radius:4px;padding:5px;pointer-events:none}.weakness-total{display:block;font-size:.75rem;color:#c1cfac;margin-top:4px;font-weight:400}
@media(max-width:370px){.mission-carousel{margin-inline:-12px}.mission-carousel .mission-copy{padding:14px}}
@media(prefers-reduced-motion:reduce){.mission-carousel .mission-card{transition:none}}

/* Last Stand : titre compact, informations centrées, pause à droite. */
.hud {
  flex: 0 0 auto;
  min-height: 76px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: max(10px, env(safe-area-inset-top)) 16px 10px;
  background: #14262b;
  border-bottom: 1px solid var(--line);
  z-index: 1;
}
.brand { font-size: .8125rem; font-weight: 650; white-space: nowrap; color: #bbceca; }
.wave { text-align: center; min-width: 0; }
.wave-pips { justify-content: center; }
.pause-button {
  justify-self: end;
  width: 44px;
  height: 44px;
  border: 1px solid #526b65;
  border-radius: 8px;
  background: #20363b;
  color: #d5e2ca;
  font-size: 20px;
  line-height: 1;
}
.pause-button:hover { background: #304944; }
.pause-overlay { align-items: center; }
.is-paused .wave-banner { animation-play-state: paused; }
@media (max-width: 370px) {
  .hud { padding-inline: 10px; gap: 5px; }
  .brand { font-size: .75rem; }
  .wave-pips { gap: 2px; }
  .wave-pips i { width: 4px; }
}


.codex-list{display:grid;gap:16px}.codex-family{padding:16px 12px;background:#243934;border:1px solid #536657;border-radius:12px}.codex-family-heading{display:flex;align-items:center;gap:12px}.codex-portrait{display:block;width:76px;height:76px;flex:0 0 76px;background-size:200% 200%;background-position:0 0;background-repeat:no-repeat;image-rendering:pixelated}.codex-copy{min-width:0;flex:1}.codex-copy h2{font-size:1.125rem;line-height:1.35;margin:0;color:#edf0e6}.codex-description{font-size:1rem;line-height:1.45;color:#cedace;margin:6px 0 0}.codex-variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px;margin-top:14px}.codex-variant{display:flex;align-items:center;flex-direction:column;padding:6px 2px;border:1px solid #425f50;border-radius:6px;text-decoration:none;color:#edf0e6;font-size:.875rem;line-height:1.4;background:#1b302c;min-height:82px}.codex-variant .codex-portrait{width:56px;height:56px;flex-basis:56px}.codex-variant:hover,.codex-variant:focus-visible{background:#345443;outline:2px solid #b7cda9;outline-offset:2px}.codex-elements{margin-top:28px}.codex-elements>h2{font-size:1.25rem;margin:0 0 14px}.codex-affinity{padding:16px;background:#203631;border:1px solid #536657;border-radius:10px;margin-top:10px;scroll-margin-block:12px}.codex-affinity:target{outline:2px solid #b7cda9;outline-offset:2px}.codex-affinity h3{display:flex;align-items:center;gap:10px;font-size:1rem;margin:0 0 12px}.codex-swatch{display:inline-block;width:18px;height:18px;flex:0 0 18px;border-radius:50%;border:1px solid #ffffff66}.codex-affinity dl{margin:0;font-size:.875rem;line-height:1.5}.codex-affinity dl>div+div{margin-top:8px}.codex-affinity dt{font-weight:700;color:#b9cec2}.codex-affinity dd{margin:0;color:#edf0e6}

.battle-rewards{position:absolute;z-index:5;inset-inline:6px;bottom:22%;padding:9px;background:#142c2bf2;border:1px solid #819a73;border-radius:10px;max-height:38%;overflow-y:auto;overscroll-behavior:contain}.battle-rewards>p{margin:0 0 6px;font-size:.875rem;color:#e1ead8;font-weight:600}.battle-rewards .upgrade-card{min-height:0;padding:8px 5px}.battle-rewards .portrait{display:block;width:52px;height:52px;flex:0 0 52px}.battle-rewards .reward-tap,.battle-rewards .reward-wall{display:block;width:64px;height:46px;flex:0 0 46px;margin:3px auto;image-rendering:pixelated}.battle-rewards .reward-team{display:flex;align-items:center;justify-content:center;height:52px;flex:0 0 52px}.battle-rewards .reward-team .portrait{width:32px;height:44px;flex-basis:32px}.battle-rewards .reward-team .portrait+.portrait{margin-left:-8px}.battle-rewards .reward-category{min-height:0;font-size:.75rem;margin-bottom:4px}.battle-rewards .upgrade-description{font-size:.875rem;line-height:1.25}.battle-rewards .upgrade-name{font-size:.875rem}.battle-rewards .reward-owner{font-size:.75rem}.battle-rewards .upgrade-level{margin-top:3px}.battle-rewards .upgrade-card:focus-visible{outline:2px solid #e6eabd;outline-offset:-2px}.mission-timer{font-variant-numeric:tabular-nums}
