:root{color-scheme:dark;--ground:#111611;--surface:#1a201a;--raised:#252c24;--ink:#e4e4d6;--muted:#a0a697;--dim:#717c6b;--accent:#d5a264;--danger:#de9f7b;--health:#bf795c;--armor:#b7c7ab;--card:#d3cbb3;--card-ink:#242d24;--button:#e1decc;--font:"Bahnschrift","Microsoft YaHei UI","PingFang SC",sans-serif;--ease:cubic-bezier(.2,.7,.25,1)}
*{box-sizing:border-box}html{background:var(--ground);scrollbar-color:var(--dim) var(--ground)}body{margin:0;color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a{color:inherit;text-decoration:none}button,a,.icon{flex-shrink:0}button:active:not(:disabled){translate:0 1px}img{user-select:none;-webkit-user-drag:none}.icon{display:inline-block;vertical-align:middle}[hidden]{display:none!important}
.game-shell{min-height:100svh;display:flex;flex-direction:column;overflow:clip}.topbar{height:82px;flex:0 0 82px;display:flex;align-items:center;gap:28px;padding:0 30px;background:var(--ground);position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px;width:218px}.brand img{width:39px;height:45px}.brand>span{font-size:24px;font-weight:700;letter-spacing:.035em;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:.32em;font-weight:400;color:var(--muted);margin-top:2px}.main-nav{display:flex;align-items:center;gap:26px;height:100%}.main-nav button{padding:10px 0;display:flex;align-items:center;gap:8px;background:transparent;color:var(--muted);white-space:nowrap;font-size:13px;transition:color .18s}.main-nav button:hover,.main-nav .nav-current{color:var(--ink)}.nav-count{background:var(--raised);padding:2px 5px;font-size:10px;color:var(--muted)}.player-resources{margin-left:auto;display:flex;align-items:center;gap:28px;white-space:nowrap}.resource{display:flex;align-items:center;gap:9px;font-size:18px;font-variant-numeric:tabular-nums}.resource small{font-size:12px;color:var(--muted)}.health-resource .icon{color:var(--danger);fill:var(--danger);fill-opacity:.12}.scrap-resource .icon{color:var(--accent)}.medkit-button{display:flex;align-items:center;gap:8px;background:transparent;padding:10px 0;color:var(--armor)}.medkit-button span{font-size:16px}.utility-controls{display:flex;gap:12px;align-items:center}.icon-button{width:34px;height:36px;display:inline-flex;justify-content:center;align-items:center;padding:0;background:transparent;color:var(--muted);transition:color .18s,background .18s}.icon-button:hover{color:var(--ink);background:var(--surface)}.platform-entry{display:flex;align-items:center;gap:7px;padding:7px 11px;background:var(--surface);color:var(--muted);font-size:12px;max-width:136px;transition:color .18s,background .18s}.platform-entry .icon{color:var(--accent)}.platform-entry span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-entry:hover{color:var(--ink);background:var(--raised)}
/* Grid closes: 76px route rail + (viewport - 76px) battle canvas. */
.game-layout{display:grid;grid-template-columns:76px minmax(0,1fr);flex:1;min-height:0}.expedition-rail{background:var(--ground);display:flex;flex-direction:column;align-items:center;position:relative;padding-top:26px}.rail-heading{background:transparent;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-size:11px}.rail-heading:hover{color:var(--ink)}.route-track{display:flex;flex-direction:column;align-items:center;gap:17px;margin-top:30px;position:relative}.route-track:before{content:"";position:absolute;top:16px;bottom:16px;left:50%;width:2px;background:var(--raised)}.route-step{position:relative;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ground);color:var(--dim);transition:color .2s,background .2s}.route-step:hover{color:var(--ink)}.route-step.current{background:var(--card);color:var(--ground)}.route-step.completed{background:var(--raised);color:var(--armor)}.rail-progress{color:var(--ink);font-size:20px;margin-top:20px}.rail-progress small{font-size:12px;color:var(--dim)}.rail-bottom{margin-top:auto;margin-bottom:26px}.battle-console{display:flex;flex-direction:column;min-width:0}
/* taste-skill-ignore: neutral contrast scrim over the illustrated battlefield, permitted imagery treatment. */
.battlefield{position:relative;min-height:414px;flex:1;isolation:isolate;background:#626b58;overflow:hidden}.world-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 46%;z-index:-3;animation:world-drift 60s ease-in-out infinite alternate}.world-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgb(15 23 18 / .64),transparent 33%,transparent 63%,rgb(17 22 17 / .92))}.world-shade:after{content:"";position:absolute;inset:0;background:rgb(20 27 19 / .06)}.location-heading{position:absolute;left:34px;top:28px}.chapter-name{font-size:11px;color:var(--ink);opacity:.82;display:flex;align-items:center;gap:7px}.chapter-mark{display:inline-block;width:7px;height:7px;background:var(--accent);rotate:45deg}h1{font-size:35px;letter-spacing:.08em;font-weight:600;margin:13px 0 9px;line-height:1.15}.location-heading p{font-size:12px;margin:0;color:var(--ink);opacity:.75}.location-separator{padding:0 11px;opacity:.45}.environment-note{display:flex;align-items:center;gap:7px;color:var(--ink);opacity:.66;position:absolute;right:30px;top:30px;font-size:11px}.turn-banner{position:absolute;left:50%;top:42px;transform:translateX(-50%);text-align:center;width:230px;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.turn-label{font-size:17px;letter-spacing:.15em}.turn-line{width:32px;height:2px;background:var(--ink);opacity:.28}.turn-number{width:100%;font-size:11px;color:var(--ink);opacity:.65;margin-top:-3px}.combat-stage{position:absolute;inset:0} /* taste-skill-ignore: neutral contrast scrim over world illustration. */
.hero-unit{width:252px;height:402px;position:absolute;left:26%;bottom:20px;transform:translateX(-50%)}.hero-art{position:absolute;width:100%;height:340px;bottom:63px;object-fit:contain;animation:hero-idle 5s ease-in-out infinite;transform-origin:bottom center}.hero-info{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:170px}.unit-name{font-size:12px;display:block;margin-bottom:9px;text-align:left;color:var(--ink);font-weight:500}.hero-class{font-size:10px;margin-left:13px;color:var(--muted);font-weight:400}.hp-line{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.hp-line small{font-size:10px;color:var(--muted)}.hp-track{display:block;width:92px;height:5px;background:rgb(21 30 23 / .75);flex:1;overflow:hidden}.hp-track>span{height:100%;display:block;background:var(--health);transition:width .3s}.hero-hp>span{background:var(--armor)}.hero-buffs{display:flex;gap:12px;color:var(--armor);padding-top:8px;font-size:12px;min-height:22px}.hero-buffs .icon{margin-right:3px}.hero-buffs small{font-size:10px;color:var(--muted)}
.enemy-target{position:absolute;background:transparent;width:270px;height:286px;left:61%;bottom:41px;transform:translateX(-50%);padding:0;text-align:left;transition:opacity .35s}.enemy-art{position:absolute;bottom:53px;left:0;width:100%;height:calc(100% - 85px);object-fit:contain;transform-origin:center bottom;animation:machine-idle 4s ease-in-out infinite}.enemy-target:hover .enemy-art{filter:brightness(1.12)}.enemy-intent{position:absolute;top:-5px;left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:center;white-space:nowrap;color:var(--danger);background:rgb(22 30 23 / .88);padding:8px 10px;border-radius:4px}.enemy-intent>strong{font-size:18px;font-weight:500}.enemy-intent>span{font-size:10px;color:var(--ink);margin-left:4px;opacity:.8}.enemy-intent strong small{font-size:11px;padding-left:3px}.enemy-intent.defensive{color:var(--armor)}.unit-info{display:block;width:153px;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.unit-info .unit-name{margin-bottom:8px}.target-mark{font-size:10px;color:var(--accent);display:flex;justify-content:center;align-items:center;gap:1px;position:absolute;top:43px;width:100%;opacity:0}.targeted .target-mark{opacity:1}.targeted .unit-name{color:var(--card)}.unit-block{position:absolute;top:41px;left:0;font-size:11px;color:var(--armor)}.weak-tag{font-size:10px;color:var(--accent);margin-left:6px}.enemy-drone{width:179px;height:263px;left:82%;bottom:103px}.enemy-drone .enemy-art{animation:drone-idle 4s ease-in-out infinite}.enemy-drone .unit-info{width:136px}.enemy-drone .enemy-intent{top:-1px}.enemy-guardian{width:258px;height:376px;bottom:30px}.enemy-boss{width:340px;height:445px;left:70%;bottom:20px}.enemy-boss .unit-info{width:215px}.enemy-boss .enemy-art{filter:sepia(.2)}.destroyed{opacity:.16;pointer-events:none}.destroyed .enemy-art{animation:none;filter:grayscale(1);transform:rotate(9deg) translateY(15px)}.destroyed .enemy-intent{display:none}
.artifact{position:absolute;bottom:22px;left:32px;display:flex;align-items:center;gap:8px;padding:0;background:transparent;color:var(--accent);text-align:left}.artifact>span{font-size:11px;color:var(--ink)}.artifact small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.threat-indicator{position:absolute;bottom:21px;right:28px;display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.threat-indicator>.icon{color:var(--danger)}.threat-indicator strong{color:var(--danger);font-size:13px;font-weight:500;padding-left:4px}.threat-block{display:flex;align-items:center;gap:4px;margin-left:10px}
.hand-station{background:var(--ground);padding:0 30px 11px;flex:0 0 308px;position:relative;z-index:1}.station-top{display:flex;gap:20px;align-items:center;min-height:40px;padding-bottom:5px}.combat-status{font-size:11px;color:var(--ink);display:flex;align-items:center;gap:7px;white-space:nowrap}.status-dot,.online-dot{width:5px;height:5px;border-radius:50%;display:inline-block;background:var(--armor)}.battle-notice{margin:0;flex:1;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-link{display:flex;align-items:center;gap:4px;background:transparent;color:var(--muted);font-size:11px;padding:6px 0}.log-link:hover{color:var(--ink)}.hand-controls{display:grid;grid-template-columns:118px minmax(0,1fr) 126px;gap:20px;align-items:center;min-height:238px}.energy-and-draw{display:flex;flex-direction:column;align-items:center;align-self:center}.energy-meter{width:86px;height:86px;position:relative}.energy-meter>svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.energy-ring-bg{stroke:var(--raised);stroke-width:3;fill:none}.energy-ring{stroke:var(--accent);stroke-width:3;fill:none;transition:stroke-dasharray .3s;stroke-linecap:round}.energy-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3px;font-variant-numeric:tabular-nums}.energy-value .icon{color:var(--accent);position:absolute;top:9px;width:12px;height:12px}.energy-value strong{font-size:33px;font-weight:400;padding-top:5px}.energy-value small{font-size:12px;color:var(--dim);padding-top:18px}.energy-caption{font-size:11px;color:var(--muted);padding-top:7px}.pile-button{background:transparent;color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 0}.pile-button:hover{color:var(--ink)}.pile-button strong{font-weight:400;color:var(--ink);margin-left:4px}.draw-pile{margin-top:20px}
.hand{display:flex;justify-content:center;align-items:center;gap:clamp(8px,1.05vw,17px);min-height:238px;min-width:0;padding:6px 0 0;position:relative}.game-card{--card-width:155px;display:flex;flex-direction:column;width:var(--card-width);height:219px;position:relative;padding:7px;background:var(--card);color:var(--card-ink);text-align:left;border:3px solid var(--raised);border-radius:6px;transform:rotate(var(--card-angle,0deg));transform-origin:center 130%;transition:transform .22s var(--ease),filter .2s;animation:deal-card .5s var(--ease) backwards;animation-delay:calc(var(--card-index,0) * 45ms)}.game-card:after{content:"";position:absolute;inset:3px;border:1px solid rgb(34 45 35 / .22);border-radius:2px;pointer-events:none}.game-card:hover:not(.collection-card){transform:translateY(-19px) rotate(0) scale(1.055);z-index:3;filter:brightness(1.05)}.game-card:focus-visible{transform:translateY(-16px) rotate(0);z-index:3}.card-cost{position:absolute;top:-13px;left:-12px;width:33px;height:33px;background:var(--card);color:var(--ground);border:3px solid var(--raised);border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:500;z-index:2}.card-name{display:block;font-size:14px;font-weight:700;text-align:center;height:27px;line-height:23px;padding-left:7px;letter-spacing:.01em}.card-art{display:block;width:100%;height:86px;object-fit:cover;background:var(--surface);border-radius:1px}.card-description{display:block;font-size:12px;line-height:1.65;padding:10px 4px 3px;flex:1}.card-type{font-size:10px;display:flex;align-items:center;gap:4px;padding:0 3px 2px;color:#59604f}.card-type>span{margin-left:auto;font-size:9px}.card-key{position:absolute;bottom:-21px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--dim)}.unavailable{filter:saturate(.35) brightness(.7)}.unavailable .card-cost{background:var(--raised);color:var(--muted)}.unavailable:hover{filter:saturate(.5) brightness(.85)!important}.rare-card .card-name{color:#67492e}.card-quantity{position:absolute;right:-9px;top:-10px;background:var(--surface);color:var(--ink);font-size:12px;padding:5px 7px;z-index:2}
.turn-controls{display:flex;flex-direction:column;align-items:center;align-self:center}.end-turn-button{background:var(--button);color:var(--ground);height:43px;width:126px;border-radius:2px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:600;transition:background .2s,transform .2s}.end-turn-button:hover:not(:disabled){background:#fffcec;transform:translateX(2px)}.end-turn-button:disabled{background:var(--raised);color:var(--dim)}.end-turn-key{font-size:10px;color:var(--dim);margin-top:10px}kbd{font:inherit;padding:2px 4px;border-radius:2px;background:var(--raised);color:var(--muted)}.discard-pile{margin-top:28px}.hand-tip{display:flex;justify-content:center;gap:23px;color:var(--dim);font-size:10px;margin-top:14px}.hand-tip .icon{margin-right:5px}.empty-hand{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:var(--muted);width:100%;min-height:210px}.empty-hand>.icon{color:var(--armor)}.game-footer{min-height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#0c100c;color:var(--dim);font-size:10px}.game-footer>span{display:flex;align-items:center;gap:6px}.footer-divider{padding:0 9px;opacity:.5}.game-footer .online-dot{width:4px;height:4px;margin-right:4px}.save-status button{background:transparent;font-size:10px;color:var(--muted);padding:6px 0}.save-status button:hover{color:var(--ink)}
.dust{position:absolute;width:3px;height:3px;background:var(--card);opacity:.25;pointer-events:none;border-radius:50%;animation:dust-drift 19s linear infinite}.dust-one{top:50%;left:12%}.dust-two{top:40%;left:45%;animation-delay:-8s}.dust-three{top:72%;left:67%;animation-delay:-14s}.damage-float{position:absolute;top:23%;left:45%;font-size:35px;color:#f6c09c;pointer-events:none;font-weight:600;animation:damage-rise .8s ease-out both;z-index:5}.block-float{color:#d5e4c4}.hit .enemy-art{animation:enemy-hit .35s ease-out}.hero-hit .hero-art{animation:player-hit .4s ease-out}.power-up .hero-art{animation:player-power .45s ease-out}.enemy-turn .enemy-art{animation:enemy-lunge .5s ease-in-out}
/* Flat focused overlays; no glass, neon borders or resting shadows. */
.overlay{position:fixed;z-index:20;inset:0;background:rgb(5 11 7 / .85);display:flex;align-items:center;justify-content:center;padding:28px;overflow:auto}.modal-open{overflow:hidden}.modal-panel{width:700px;max-width:100%;max-height:calc(100svh - 56px);overflow:auto;padding:35px 38px 30px;position:relative;background:var(--surface);border-radius:4px;animation:modal-enter .25s var(--ease)}.modal-wide{width:940px}.modal-close{position:absolute;right:19px;top:19px;z-index:1}.modal-heading{margin-bottom:27px;padding-right:20px}.modal-brand{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin-bottom:24px}.modal-brand img{width:14px;height:17px}.modal-brand>span{color:var(--dim);margin-left:5px}.modal-title{margin:0 0 12px;font-size:27px;font-weight:500;line-height:1.3;letter-spacing:-.02em}.modal-heading>p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.primary-button,.secondary-button{min-height:43px;display:inline-flex;gap:14px;align-items:center;justify-content:center;background:var(--button);color:var(--ground);font-size:13px;padding:0 22px;border-radius:2px;transition:transform .18s,background .18s}.primary-button:hover{background:#fffcec;transform:translateY(-2px)}.secondary-button{background:var(--raised);color:var(--ink)}.secondary-button:hover{background:#343d31}.centered-button{display:flex;margin:24px auto 0;width:max-content}.text-button{background:transparent;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:10px;padding:8px 0}.text-button:hover{color:var(--ink)}.skip-button{margin:17px auto 0}.panel-note{font-size:12px;color:var(--muted);text-align:center;margin:15px 0 0;line-height:1.7}
.reward-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 20px;background:var(--raised);margin-bottom:32px;font-size:11px;color:var(--muted)}.reward-summary>span{display:flex;align-items:center;gap:7px}.reward-summary strong{font-size:20px;color:var(--accent);font-weight:500;margin-right:4px}.reward-summary .icon{color:var(--accent)}.reward-summary>span+span .icon{color:var(--danger)}.reward-cards{display:flex;justify-content:center;gap:24px;padding:6px 10px 13px;flex-wrap:wrap}.reward-cards .game-card{--card-width:165px;height:238px}.reward-cards .card-art{height:98px}.reward-cards .game-card:hover{transform:translateY(-7px)}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:25px;padding:10px 8px 12px}.collection-grid .game-card{--card-width:100%;height:228px;cursor:default}.collection-grid .card-art{height:92px}.deck-summary{display:flex;align-items:center;gap:20px;font-size:12px;margin-top:17px;padding-top:16px;color:var(--muted)}.deck-summary button{margin-left:auto;background:transparent;color:var(--muted);font-size:12px}.panel-empty{text-align:center;padding:40px 0;color:var(--dim)}.panel-empty p{color:var(--ink);font-size:16px;margin:20px 0 10px}.panel-empty>span{color:var(--muted);font-size:13px}
.map-summary{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);background:var(--raised);padding:15px 17px}.map-summary>span{display:flex;align-items:center;gap:8px}.map-summary strong{color:var(--card);font-weight:400}.route-map-scroll{overflow:auto;margin:7px 0 5px}.route-map{min-width:790px;width:100%;height:247px;position:relative}.route-map>svg{position:absolute;width:100%;height:230px;inset:0}.map-path{fill:none;stroke:var(--raised);stroke-width:2;stroke-dasharray:4 5}.path-travelled{stroke:var(--dim);stroke-dasharray:none}.map-node{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;position:absolute;transform:translate(-50%,-50%);background:var(--raised);color:var(--dim)}.map-node>span{position:absolute;top:53px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap}.map-node.visited{color:var(--armor)}.map-node.here{background:var(--card);color:var(--ground)}.map-node.here>span{color:var(--ink)}.map-node.available{background:var(--ink);color:var(--ground)}.map-node.available>span{color:var(--ink)}.map-node.available:hover:not(:disabled){background:#fffcec}.map-node.boss-node{border-radius:2px}.map-legend{display:flex;justify-content:center;gap:22px;color:var(--muted);font-size:11px;margin-bottom:22px}.map-legend>span{display:flex;align-items:center;gap:5px}.choice-heading{font-weight:400;font-size:13px;margin:18px 0 14px}.choices{display:grid;gap:12px}.choice-button{padding:20px;display:flex;align-items:center;gap:18px;background:var(--raised);text-align:left;transition:background .2s,transform .2s}.choice-button>.icon:first-child{color:var(--armor)}.choice-button>span{flex:1;min-width:0}.choice-button>.icon:last-child{color:var(--dim)}.choice-button strong{display:block;font-size:14px;font-weight:500;margin-bottom:6px}.choice-button small{color:var(--muted);font-size:12px;line-height:1.6;display:block}.choice-button:hover{background:#333d30;transform:translateX(3px)}.route-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.route-choices .choice-button{padding:16px;gap:12px}.route-choices .choice-button>.icon:first-child{width:22px}.route-choices .choice-button>.icon:last-child{display:none}
.camp-scene{height:180px;background:#303b2c;display:flex;align-items:center;justify-content:space-between;padding:15px 28px 0;margin-bottom:23px;overflow:hidden}.camp-scene img{height:205px;width:128px;align-self:flex-start;margin-top:3px}.camp-scene>.icon{color:var(--dim);opacity:.5}.camp-scene>div{margin-right:auto}.camp-scene div>span{font-size:11px;color:var(--armor)}.camp-scene strong{display:block;font-size:21px;font-weight:400;margin-top:12px}.camp-scene p{color:var(--muted);font-size:12px}.event-story{padding:25px;background:var(--raised);margin-bottom:23px;text-align:center}.event-story>.icon{color:var(--accent);margin-bottom:5px}.event-story p{font-size:18px;line-height:1.8}.event-story>span{display:block;color:var(--muted);font-size:13px;line-height:1.9;max-width:440px;margin:0 auto}.shop-balance{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--raised);padding:12px;margin-bottom:30px;color:var(--muted)}.shop-balance .icon{color:var(--accent)}.shop-balance strong{color:var(--accent);font-size:20px;margin-left:12px}.shop-cards .card-type>span{color:#684d2e;font-size:10px;font-weight:600}.shop-feedback{text-align:center;font-size:12px;color:var(--muted);min-height:20px}
.guide-rows{display:grid;gap:24px}.guide-rows>div{display:flex;align-items:flex-start;gap:17px}.guide-rows>div>.icon{color:var(--armor);margin-top:1px}.guide-rows strong{font-size:14px;font-weight:500}.guide-rows p{font-size:12px;color:var(--muted);line-height:1.9;margin:7px 0 0}.guide-extras{margin-top:25px;background:var(--raised);padding:12px 17px}.guide-extras p{color:var(--muted);font-size:11px;line-height:1.9;margin:6px 0}.guide-extras .icon{margin-right:5px;color:var(--accent)}.guide-extras strong{color:var(--ink);font-weight:400;margin-right:5px}.shortcut-row{display:flex;gap:17px;flex-wrap:wrap;font-size:10px;color:var(--dim);margin-top:22px}.battle-log{padding:0;list-style:none;margin:0}.battle-log li{color:var(--muted);font-size:12px;line-height:1.8;padding:12px 14px}.battle-log li:nth-child(odd){background:var(--raised)}.battle-log li:first-child{color:var(--ink)}.restart-options{display:flex;justify-content:flex-end;gap:12px;margin-top:35px}.ending-art{text-align:center;color:var(--accent);padding:22px 0 30px}.run-stats{display:flex;justify-content:center;gap:65px;padding:20px;background:var(--raised);font-size:11px;color:var(--muted);text-align:center}.run-stats strong{display:block;color:var(--ink);font-size:32px;font-weight:400;margin-bottom:10px}.toast{position:fixed;left:50%;top:100px;transform:translate(-50%,-10px);background:var(--button);color:var(--ground);padding:14px 20px;max-width:calc(100% - 32px);border-radius:3px;z-index:40;font-size:12px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes hero-idle{0%,100%{transform:rotate(-.4deg)}50%{transform:rotate(.4deg) translateY(-2px)}}@keyframes machine-idle{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.013)}}@keyframes drone-idle{0%,100%{transform:translateY(1px) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes world-drift{from{transform:scale(1)}to{transform:scale(1.04) translateX(-.5%)}}@keyframes dust-drift{from{transform:translate(-70px,10px);opacity:0}10%,80%{opacity:.35}to{transform:translate(240px,-55px);opacity:0}}@keyframes deal-card{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}@keyframes modal-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes damage-rise{0%{opacity:0;transform:translateY(5px) scale(.7)}15%,65%{opacity:1}100%{opacity:0;transform:translateY(-55px) scale(1)}}@keyframes enemy-hit{0%,100%{transform:translateX(0)}25%{transform:translateX(13px) rotate(3deg)}70%{transform:translateX(-3px)}}@keyframes player-hit{0%,100%{transform:translateX(0)}35%{transform:translateX(-10px) rotate(-3deg)}}@keyframes player-power{0%,100%{opacity:1}50%{opacity:.6;transform:translateY(-4px)}}@keyframes enemy-lunge{0%,100%{transform:translateX(0)}45%{transform:translateX(-25px) rotate(-3deg)}}
@media(min-width:1600px){
.topbar{padding:0 42px;gap:42px}.brand{width:240px}.main-nav{gap:35px}.hand-station{flex-basis:330px;padding-left:42px;padding-right:42px}.hand-controls{grid-template-columns:145px minmax(0,1fr) 145px;gap:25px;min-height:260px}.game-card{--card-width:173px;height:238px}.card-art{height:98px}.card-name{font-size:15px}.card-description{font-size:13px}.hero-unit{height:440px;width:280px}.hero-art{height:375px}.enemy-target{width:300px;height:310px}.enemy-drone{width:195px;height:280px}.enemy-boss{height:470px;width:365px}.enemy-guardian{height:415px;width:280px}
}
@media(max-width:1200px){
.topbar{gap:18px;padding:0 23px}.brand{width:186px}.brand>span{font-size:22px}.brand img{width:33px}.main-nav{gap:20px}.main-nav button{font-size:12px;gap:6px}.player-resources{gap:18px}.utility-controls{gap:5px}.hand-station{padding-left:20px;padding-right:20px;flex-basis:286px}.hand-controls{grid-template-columns:84px minmax(0,1fr) 105px;gap:14px;min-height:225px}.game-card{--card-width:136px;height:207px;padding:6px}.card-art{height:74px}.card-name{font-size:12px;height:27px}.card-description{font-size:11px;padding-top:9px}.card-type{font-size:9px}.card-cost{height:30px;width:30px;font-size:18px}.hand{gap:7px;min-height:224px}.end-turn-button{width:105px;font-size:12px;gap:7px}.end-turn-key{font-size:9px}.energy-meter{height:74px;width:74px}.energy-value strong{font-size:29px}.energy-value .icon{top:7px}.hand-tip{margin-top:11px}.hero-unit{left:25%}.enemy-target{left:60%}.enemy-drone{left:82%}.enemy-boss{left:69%}.threat-block{display:none}.location-heading{left:26px}.artifact{left:25px}.battle-notice{font-size:10px}
}
@media(max-width:1000px){
.topbar{height:72px;flex-basis:72px;gap:18px}.brand{width:168px;gap:9px}.brand>span{font-size:20px}.brand small{font-size:8px}.brand img{width:31px;height:38px}.main-nav{gap:18px}.main-nav button{gap:5px}.main-nav .nav-current{display:none}.nav-count{display:none}.player-resources{gap:17px}.resource{font-size:16px;gap:6px}.resource small{font-size:10px}.scrap-resource small{display:none}.utility-controls{gap:0}.utility-controls [data-action="sound"]{display:none}.game-layout{grid-template-columns:58px minmax(0,1fr)}.expedition-rail{padding-top:25px}.route-track{gap:16px}.route-step{width:29px;height:29px}.rail-heading .icon{width:20px}.rail-heading span{font-size:10px}.battlefield{min-height:500px}.world-art{object-position:54% 50%}.hero-unit{width:235px;height:380px;left:23%;bottom:28px}.hero-art{height:310px}.hero-info{width:145px}.enemy-target{width:225px;height:267px;left:58%;bottom:48px}.enemy-drone{width:145px;height:245px;left:82%;bottom:133px}.enemy-boss{width:270px;height:385px;left:70%;bottom:35px}.enemy-guardian{width:220px;height:350px}.unit-info{width:132px}.enemy-drone .unit-info{width:117px}.unit-name{font-size:11px}.enemy-intent>span{display:none}.enemy-intent{padding:6px 9px}.enemy-intent strong{font-size:16px}.turn-banner{top:100px;width:190px}.turn-label{font-size:14px}.turn-line{width:22px}.turn-number{font-size:10px}.environment-note{right:22px;font-size:10px}.location-heading{top:25px;left:23px}h1{font-size:31px}.chapter-name{font-size:10px}.artifact{bottom:18px;left:22px}.artifact small{display:none}.threat-indicator{bottom:18px;right:22px}.hand-station{flex-basis:327px;padding:0 20px 14px}.station-top{min-height:35px;gap:12px}.battle-notice{font-size:10px}.log-link{font-size:10px}.combat-status{font-size:10px}.hand-controls{grid-template-columns:68px minmax(0,1fr) 86px;gap:12px;min-height:246px}.hand{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding:20px 12px 25px;scroll-snap-type:x proximity;min-height:246px;scrollbar-width:thin;scrollbar-color:var(--raised) transparent}.hand .game-card{--card-width:131px;height:209px;flex-shrink:0;transform:none;scroll-snap-align:center}.game-card:hover:not(.collection-card){transform:translateY(-9px)}.game-card .card-name{font-size:12px}.hand .card-key{display:none}.card-description{font-size:11px}.card-art{height:77px}.card-cost{width:28px;height:28px;font-size:16px;left:-10px;top:-10px}.end-turn-button{width:86px;font-size:11px;gap:4px;height:40px}.end-turn-button .icon{width:15px}.end-turn-key{display:none}.energy-meter{width:67px;height:67px}.energy-value strong{font-size:26px}.energy-value small{font-size:10px}.energy-value .icon{top:6px;width:10px}.energy-caption{font-size:10px}.draw-pile,.discard-pile{margin-top:20px;flex-direction:column;gap:6px;font-size:10px}.hand-tip{margin-top:6px;font-size:9px;gap:12px}.game-footer{padding:0 22px;font-size:9px}.game-footer button{font-size:9px}.game-footer .footer-divider{padding:0 4px}.reward-cards .card-name{font-size:14px}.reward-cards .card-description{font-size:12px}.reward-cards .card-cost{width:32px;height:32px;font-size:19px}
}
@media(max-width:640px){
/* taste-skill-ignore: neutral contrast scrim over the illustrated battlefield. */
.game-shell{min-height:100svh}.topbar{height:66px;flex-basis:66px;padding:0 16px;gap:12px}.brand{width:auto;gap:7px}.brand>span{font-size:18px;letter-spacing:0}.brand img{width:27px;height:34px}.brand small{font-size:7px;letter-spacing:.29em;margin-top:4px}.main-nav{gap:11px;margin-left:auto}.main-nav button{padding:12px 0}.main-nav button .icon{width:18px}.main-nav button>span{display:none}.player-resources{margin-left:0;gap:12px}.resource{gap:5px;font-size:14px}.resource .icon{width:15px;height:15px}.resource small{font-size:9px}.health-resource small{display:none}.medkit-button{display:none}.utility-controls{display:none}.game-layout{display:block;flex:1}.expedition-rail{display:none}.battle-console{min-height:calc(100svh - 98px)}.battlefield{min-height:405px;flex:1}.world-art{object-position:56% 50%}.world-shade{background:linear-gradient(180deg,rgb(15 23 18 / .65),transparent 30%,transparent 62%,rgb(17 22 17 / .95))}.location-heading{left:20px;top:21px}.chapter-name{font-size:9px;gap:6px}.chapter-mark{width:5px;height:5px}h1{font-size:29px;margin-top:13px;margin-bottom:10px}.location-heading p{font-size:10px}.location-separator{padding:0 7px}.environment-note{top:24px;right:18px;font-size:9px;gap:5px}.environment-note .icon{width:13px}.turn-banner{top:120px;width:155px;gap:8px}.turn-label{font-size:12px}.turn-line{width:18px}.turn-number{font-size:9px}.hero-unit{width:177px;height:260px;bottom:38px;left:22%}.hero-art{height:225px;bottom:44px}.hero-info{width:115px}.hero-class{display:none}.unit-name{font-size:10px;margin-bottom:7px}.hero-buffs{font-size:10px;padding-top:6px}.hero-buffs small{font-size:9px}.hero-buffs .icon{width:12px}.hp-line{gap:6px;font-size:10px}.hp-line small{font-size:8px}.hp-track{height:4px}.enemy-target{width:172px;height:209px;left:59%;bottom:47px}.enemy-art{bottom:40px;height:calc(100% - 57px)}.enemy-drone{width:119px;height:197px;left:83%;bottom:100px}.enemy-drone .enemy-art{bottom:39px}.enemy-intent{top:3px;padding:5px 7px;gap:4px}.enemy-intent .icon{width:12px;height:12px}.enemy-intent strong{font-size:13px}.unit-info{width:105px}.enemy-drone .unit-info{width:96px}.unit-info .unit-name{font-size:9px;margin-bottom:6px}.target-mark{font-size:8px;top:32px}.unit-block{top:32px;font-size:9px}.enemy-guardian{height:280px;width:182px;left:61%;bottom:43px}.enemy-boss{height:300px;width:218px;left:70%;bottom:40px}.enemy-boss .unit-info{width:130px}.enemy-boss .enemy-intent{top:0}.artifact{left:20px;bottom:13px;gap:5px}.artifact .icon{width:14px}.artifact>span{font-size:9px}.threat-indicator{bottom:13px;right:18px;font-size:9px;gap:4px}.threat-indicator strong{font-size:11px}.threat-indicator>.icon{width:12px} /* taste-skill-ignore: neutral contrast scrim over world illustration. */
.hand-station{padding:0 0 14px;flex-basis:330px}.station-top{padding:0 18px;min-height:38px;gap:8px}.combat-status{font-size:9px}.combat-status .status-dot{width:4px;height:4px}.battle-notice{font-size:9px}.log-link{display:none}.hand-controls{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;row-gap:0;align-items:center;min-height:261px}.hand{grid-row:1;grid-column:1 / -1;padding:16px 22px 15px;min-height:224px;gap:10px;width:100%}.hand .game-card{--card-width:129px;height:199px}.card-art{height:73px}.card-name{font-size:12px!important;height:24px;line-height:21px}.card-description{font-size:11px;line-height:1.5;padding-top:8px}.card-type{font-size:9px}.card-type>span{font-size:8px}.card-cost{width:28px;height:28px}.game-card:hover:not(.collection-card){transform:translateY(-5px)}.energy-and-draw{grid-column:1;grid-row:2;flex-direction:row;padding-left:19px;gap:7px}.energy-meter{width:44px;height:44px;flex-shrink:0}.energy-value{gap:1px}.energy-value strong{font-size:21px;padding-top:0}.energy-value .icon{display:none}.energy-value small{font-size:9px;padding-top:9px}.energy-caption{font-size:9px;padding:0}.draw-pile{margin:0;flex-direction:row;gap:4px;padding:10px 0 10px 3px;font-size:9px}.draw-pile>.icon{width:17px}.draw-pile>span{font-size:0}.draw-pile strong{font-size:10px;margin-left:0}.turn-controls{flex-direction:row-reverse;grid-column:2;grid-row:2;justify-content:flex-start;padding-right:20px;gap:12px}.end-turn-button{width:106px;height:38px;font-size:11px;gap:11px}.discard-pile{margin:0;padding:0;flex-direction:row;gap:5px}.discard-pile>.icon{width:17px}.discard-pile>span{font-size:0}.discard-pile strong{font-size:10px;margin-left:0}.hand-tip{margin-top:14px;font-size:9px;gap:0}.hand-tip>span+span{display:none}.hand-tip .icon{width:12px}.game-footer{min-height:32px;padding:0 17px;font-size:8px}.game-footer .footer-divider{padding:0 3px}.game-footer>span:first-child .footer-divider{display:none}.save-status button{font-size:8px}.save-status{gap:4px!important}.save-status .icon{width:10px}.game-footer .online-dot{width:3px;height:3px;margin-right:1px}
.overlay{padding:13px;align-items:center}.modal-panel{padding:26px 22px 25px;max-height:calc(100svh - 26px);border-radius:3px}.modal-close{right:11px;top:11px}.modal-heading{padding-right:7px;margin-bottom:21px}.modal-brand{font-size:10px;margin-bottom:23px}.modal-brand>span{font-size:9px}.modal-title{font-size:22px;line-height:1.5}.modal-heading>p{font-size:12px;line-height:1.8}.reward-summary{padding:12px;flex-wrap:wrap;gap:12px;font-size:10px;margin-bottom:21px}.reward-summary strong{font-size:18px}.reward-summary .icon{width:17px}.reward-cards{gap:17px 13px;padding:9px 0 7px}.reward-cards .game-card{--card-width:132px;height:206px}.reward-cards .card-art{height:77px}.reward-cards .card-description{font-size:11px}.reward-cards .card-cost{width:29px;height:29px;font-size:17px}.reward-cards .card-name{font-size:12px}.panel-note{font-size:11px}.skip-button{font-size:11px;margin-top:11px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;padding-left:1px;padding-right:1px}.collection-grid .game-card{height:207px}.collection-grid .card-art{height:78px}.collection-grid .card-description{font-size:11px}.deck-summary{flex-wrap:wrap;gap:13px;font-size:11px}.deck-summary button{margin-left:0}.map-summary{font-size:10px;padding:12px;gap:5px}.map-summary .icon{width:14px}.route-map{min-width:790px}.map-legend{gap:12px;font-size:9px}.map-legend .icon{width:12px}.route-choices{grid-template-columns:1fr}.choice-button{padding:17px 14px;gap:13px}.choice-button strong{font-size:13px}.choice-button small{font-size:11px;line-height:1.7}.choice-button>.icon:first-child{width:24px}.choice-heading{font-size:12px}.camp-scene{padding:13px 10px 0;height:152px}.camp-scene img{width:105px;height:174px}.camp-scene>.icon{display:none}.camp-scene strong{font-size:17px}.camp-scene div>span{font-size:10px}.camp-scene p{font-size:11px}.event-story{padding:20px 14px}.event-story p{font-size:15px}.event-story>span{font-size:12px}.guide-rows{gap:21px}.guide-rows>div{gap:12px}.guide-rows>div>.icon{width:22px}.guide-rows strong{font-size:13px}.guide-rows p{font-size:11px}.guide-extras{padding:11px 12px}.guide-extras p{font-size:10px}.shortcut-row{font-size:9px;gap:13px}.run-stats{gap:34px;padding:18px}.run-stats strong{font-size:27px}.restart-options{gap:10px}.restart-options button{font-size:12px;padding:0 17px}.toast{top:76px;font-size:11px;width:max-content;padding:12px 17px}.damage-float{font-size:27px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Readability pass: all game labels remain at least 11px at every viewport. */
:root{--dim:#87917e}
.brand small,.nav-count,.chapter-name,.location-heading p,.environment-note,.turn-number,.hero-class,.hp-line small,.hero-buffs small,.enemy-intent>span,.target-mark,.weak-tag,.unit-block,.artifact>span,.artifact small,.threat-indicator,.combat-status,.battle-notice,.log-link,.energy-caption,.pile-button,.end-turn-key,.hand-tip,.card-key,.card-type,.card-type>span,.game-footer,.save-status button,.modal-brand,.modal-brand>span,.map-node>span,.map-legend,.shortcut-row,.guide-extras p,.shop-cards .card-type>span{font-size:11px}
.card-description{font-size:12px}.card-name{font-size:14px}.card-type{color:#49513e}.card-type>span{font-size:11px}.brand small{letter-spacing:.18em}h1{font-size:32px}.game-footer{min-height:35px}.hand:has(.game-card:nth-child(6)){overflow-x:auto;overflow-y:hidden;justify-content:flex-start;padding:22px 14px 26px;scrollbar-width:thin}.hand:has(.game-card:nth-child(6)) .game-card{transform:none}.guide-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.guide-actions button{font-size:12px;min-height:40px;padding:0 14px}.guide-actions .icon{width:17px}
@media(max-width:1000px){.game-footer>span:first-child{font-size:11px}.game-footer>span:first-child .footer-divider{display:none}.game-footer>span:first-child{max-width:120px;white-space:nowrap;overflow:hidden}.hand .game-card{height:218px}.hand .card-description{font-size:12px}.hand-tip>span+span{display:none}.main-nav button{font-size:12px}}
@media(max-width:640px){h1{font-size:25px}.brand small{font-size:8px;letter-spacing:.2em}.brand>span{font-size:17px}.topbar{gap:10px}.player-resources{gap:9px}.main-nav{gap:10px}.hero-buffs small{font-size:11px}.hero-info{width:121px}.unit-info{width:112px}.enemy-drone .unit-info{width:102px}.enemy-drone .unit-name{font-size:11px}.unit-info .unit-name{font-size:11px}.hp-line small{font-size:11px}.target-mark{top:36px}.environment-note{font-size:11px;gap:3px}.environment-note span{max-width:60px;white-space:nowrap;overflow:hidden}.hand-station{flex-basis:344px}.hand .game-card{height:213px;--card-width:136px}.hand{min-height:237px;gap:12px}.card-name{font-size:13px!important}.card-description{font-size:12px}.hand-controls{min-height:278px}.card-art{height:73px}.card-type{font-size:11px}.card-type>span{font-size:11px}.card-type .icon{width:10px}.battle-notice{font-size:11px}.combat-status{font-size:11px}.energy-caption{font-size:11px}.energy-value small{font-size:11px}.draw-pile>span,.discard-pile>span{font-size:0}.draw-pile strong,.discard-pile strong{font-size:11px}.end-turn-button{font-size:12px}.game-footer{min-height:34px;font-size:11px}.game-footer>span:first-child{font-size:0;max-width:65px}.game-footer>span:first-child .online-dot{margin-right:0}.game-footer>span:first-child:after{content:"探索中";font-size:11px;margin-left:2px}.game-footer .footer-divider{padding:0 2px}.save-status{font-size:11px}.save-status button{font-size:11px}.game-footer .online-dot{width:4px;height:4px}.hand-tip{font-size:11px;margin-top:12px}.artifact>span{font-size:11px}.threat-indicator{font-size:11px}.modal-brand{font-size:11px}.modal-brand>span{font-size:11px}.reward-cards .card-type{font-size:11px}.reward-cards .game-card{--card-width:134px;height:222px}.reward-cards .card-description{font-size:12px}.reward-cards .card-name{font-size:13px!important}.reward-cards .card-type>span{font-size:11px}.collection-grid .game-card{height:223px}.collection-grid .card-description{font-size:12px}.map-summary{font-size:11px}.map-legend{font-size:11px;gap:9px}.camp-scene div>span,.guide-extras p,.shortcut-row{font-size:11px}}
.brand small{font-size:11px;letter-spacing:.16em}.hp-line{font-size:12px}
@media(max-width:640px){.brand small{font-size:11px;letter-spacing:.08em}.hp-line{font-size:11px}.topbar{gap:8px}.brand>span{font-size:17px}.main-nav{gap:9px}.resource{font-size:13px}.resource .icon{width:14px}}

@media(max-width:1000px){.footer-motto{display:none}}
@media(max-width:640px){.hero-info .unit-name{font-size:11px}.draw-pile>span,.discard-pile>span{font-size:11px}.pile-label{display:none}.game-footer>span:first-child{font-size:11px;max-width:none}.game-footer>span:first-child:after{display:none}.session-label{font-size:11px}.game-footer{padding:0 12px;gap:10px}.game-footer>span{gap:4px}.environment-note{right:20px;max-width:86px}.environment-note span{display:none}.environment-note:after{content:"沙尘天气";font-size:11px}.energy-and-draw{gap:7px}.unit-name{font-size:11px}}
.enemy-target.enemy-boss,.enemy-target.enemy-guardian{max-height:calc(100% - 48px)}
@media(max-width:640px){.game-footer{padding-left:17px;padding-right:17px}.enemy-drone{left:81%}}
/* Motion is applied to disposable effect layers, never to persistent game values. */
.battle-fx-layer{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden}
.combat-float{top:auto;left:auto;display:flex;align-items:center;gap:5px;position:absolute;font-size:24px;line-height:1;white-space:nowrap;animation:none;transform:translateX(-50%);padding:7px 10px;background:#17221be8;border-radius:2px;color:#f2b38c;font-weight:500}
.combat-float strong{font-size:25px;font-weight:500;font-variant-numeric:tabular-nums}
.combat-float small{font-size:11px;color:inherit;opacity:.85;margin-left:2px}
.fx-armor,.fx-absorbed{color:#c7ddda}.fx-heal{color:#c6e4aa}.fx-strength,.fx-energy{color:#edca87}.fx-weak{color:#c5b29a}
.impact-slash{position:absolute;width:90px;height:3px;background:#f9dfaf;transform-origin:center}.impact-spark{position:absolute;width:3px;height:2px;background:#f4c485}
.impact-ring{position:absolute;transform:translate(-50%,-50%);color:#d1e0cf}.ring-heal{color:#c6e4aa}
.flying-card{position:fixed;z-index:35;pointer-events:none;transform-origin:center;contain:layout style}
.flying-card .game-card{width:100%;height:100%;margin:0;transform:none!important;animation:none!important;transition:none!important}
.flying-card .card-key{display:none}.flying-card:focus{outline:0}
.hero-art,.enemy-art{will-change:transform;backface-visibility:hidden}
.enemy-turn .enemy-art{animation:machine-idle 4s ease-in-out infinite}
.hero-unit{z-index:2}.enemy-target{pointer-events:none}.enemy-target img,.enemy-target .unit-info,.enemy-target .enemy-intent{pointer-events:auto}.enemy-target.destroyed{pointer-events:none}.enemy-target.destroyed *{pointer-events:none}
.enemy-target .unit-info{min-height:33px}.enemy-art{transition:filter .2s ease}
.target-mark{transition:opacity .15s ease}.targeted .unit-name{color:#f0d4a4}.targeted .target-mark{gap:5px}
.hand .game-card{transition:transform .2s cubic-bezier(.16,1,.3,1),filter .18s ease,rotate .2s ease}
.hand .game-card:hover:not(.unavailable){transform:translateY(-13px) rotate(0) scale(1.035)}
.hp-track>span{transition:width .32s cubic-bezier(.16,1,.3,1)}
@media(max-width:640px){.combat-float{padding:5px 7px;gap:3px}.combat-float strong{font-size:20px}.combat-float small{font-size:11px}.combat-float>.icon{width:11px}.hand .game-card:hover:not(.unavailable){transform:translateY(-4px)}.hero-unit{pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.hero-art,.enemy-art{will-change:auto}.combat-float{animation:none!important}.impact-slash,.impact-spark,.impact-ring,.flying-card{display:none!important}}
/* Equipment is aged composite stock; scene lighting stays inside the artwork. */
.game-card{background-color:#d2c8ab;background-image:url('../assets/card-stock.svg');background-size:230px 300px;border-color:#424a39;border-radius:5px}
.game-card:after{border-color:#898b6a66;inset:4px}
.card-art{filter:contrast(1.07) saturate(.78);border-radius:1px;object-position:center}
.card-name{font-weight:600;height:28px;line-height:23px}.card-cost{background:#e0d4b5;border-color:#424a39}
.card-type{color:#46513b}.card-description{color:#263124}
.rare-card .card-name{color:#70502e}.rare-card{border-color:#8c7b53}
.world-art{filter:saturate(.8) contrast(1.035)}
.hero-art,.enemy-art{filter:saturate(.68) contrast(1.08)}
.enemy-target:hover .enemy-art{filter:saturate(.8) contrast(1.08) brightness(1.08)}
.enemy-boss .enemy-art{filter:saturate(.65) contrast(1.1)}
.enemy-target.destroyed .enemy-art{filter:grayscale(1)}
.battlefield{background:#555e50}
@media(prefers-reduced-motion:reduce){.hp-track>span{transition:none}}
/* The unit bounds remain stable; subtle asymmetry keeps the silhouettes breathing. */
@keyframes hero-idle{0%,100%{transform:translateY(0) rotate(-.3deg)}50%{transform:translateY(-1.8px) rotate(.2deg)}}
@keyframes machine-idle{0%,100%{transform:translateY(0) rotate(-.2deg)}48%{transform:translateY(-1.5px) rotate(.2deg)}}
@keyframes drone-idle{0%,100%{transform:translateY(2px) rotate(-1deg)}50%{transform:translateY(-6px) rotate(.7deg)}}
.hero-art{animation-duration:6s}.enemy-hound .enemy-art{animation-duration:4.8s}.enemy-guardian .enemy-art{animation-duration:5.6s}.enemy-boss .enemy-art{animation-duration:6.5s}
/* Character redesign: preserve the original tactical frame and interaction targets. */
.hero-art{height:355px;filter:saturate(.98) contrast(1.04);object-position:center bottom}
.enemy-art{filter:saturate(.96) contrast(1.04)}
.enemy-target:hover .enemy-art{filter:saturate(1) contrast(1.04) brightness(1.08)}
.enemy-boss .enemy-art{filter:saturate(.96) contrast(1.04)}
.enemy-drone{width:205px}
.enemy-drone .enemy-art{bottom:48px;height:calc(100% - 70px)}
.enemy-target.destroyed .enemy-art{filter:grayscale(1)}
@media(min-width:1600px){.hero-art{height:390px}.enemy-drone{width:220px}}
@media(max-width:1000px){.hero-art{height:325px}.enemy-drone{width:177px}}
@media(max-width:640px){.hero-art{height:232px}.enemy-drone{width:139px}.enemy-drone .enemy-art{bottom:38px;height:calc(100% - 55px)}}
