.mission-tip{display:flex;align-items:center;gap:15px;padding:10px 16px;background:#ecedcf;border-bottom:1px solid #c0ceab;color:#284e40;min-height:54px}.tutorial-steps{display:flex;gap:6px;flex-shrink:0}.tutorial-steps>span{display:grid;place-items:center;width:23px;height:23px;border:1px solid #a9bd94;border-radius:50%;font-size:10px;font-weight:750;color:#809477}.tutorial-steps .active{background:#235f54;border-color:#235f54;color:#fff2be;box-shadow:0 0 0 3px #95b3882e}.tutorial-steps .done{background:#c5d8a6;color:#2c654b}.mission-tip p{font-size:11px;line-height:1.6;margin:0;flex:1}.mission-tip button{background:transparent;color:#6a7d61;font-size:18px;min-width:30px;min-height:32px;border-radius:4px}.game-shell .board{position:relative}.pulse-button{position:absolute;left:15px;bottom:15px;z-index:3;display:flex;align-items:center;gap:9px;min-height:57px;padding:9px 13px;border:1px solid #b7dec7;border-radius:9px;background:#103d49ee;color:#eef4d9;box-shadow:0 5px 15px #102e4555;text-align:left;touch-action:manipulation;overflow:hidden}.pulse-button::before{content:"";position:absolute;left:0;bottom:0;width:var(--charge,100%);height:3px;background:#aee3d0;transition:width .15s linear}.pulse-button strong{display:block;font-size:11px;letter-spacing:.25px;margin-bottom:4px}.pulse-button small{display:block;font-size:8px;color:#b3cdc4}.pulse-glyph{font-size:29px;color:#a2ebe0;line-height:1}.pulse-button kbd{border:1px solid #638c8c;border-radius:3px;padding:2px 5px;font:10px system-ui;margin-left:5px;color:#b6ccc1}.pulse-button:disabled{opacity:.7}.pulse-button:not(:disabled){border-color:#c2e6b2;box-shadow:0 0 0 2px #d6edbb16,0 4px 19px #2de5dc31}.pulse-button.is-armed{background:#ccedda;color:#16473e;border-color:#fbefb6;box-shadow:0 0 0 3px #f2df9d88}.pulse-button.is-armed small{color:#387465}.pulse-button.is-armed .pulse-glyph{color:#317d70}.pulse-aiming canvas{cursor:crosshair!important}.boss-health{position:absolute;left:20%;right:20%;top:44px;z-index:2;padding:10px 12px;border-radius:6px;background:#203a45ed;border:1px solid #dab77c;color:#f5e4b9;pointer-events:none}.boss-heading{display:flex;justify-content:space-between;gap:10px;font-size:10px;font-weight:750;margin-bottom:6px;letter-spacing:.5px}.boss-heading span{font-size:9px;font-weight:500;color:#ccd4c4;letter-spacing:0}.boss-track{height:5px;border-radius:5px;overflow:hidden;background:#122a34}.boss-track span{display:block;height:100%;background:linear-gradient(90deg,#cf784b,#f4ca76);transition:width .15s}.game-toast{position:absolute;right:15px;bottom:17px;max-width:min(370px,58%);z-index:4;padding:11px 13px;color:#f6f2d5;background:#143d46ed;border:1px solid #82b3a1;border-radius:7px;font-size:11px;line-height:1.6;box-shadow:0 6px 18px #102b3944;pointer-events:none}.game-toast[data-tone=error]{border-color:#e7a177;background:#613e35ed}.combat-banner{position:absolute;top:25%;left:50%;translate:-50% 0;min-width:245px;max-width:85%;padding:15px 27px;background:linear-gradient(100deg,#163e49ed,#235d59f0);border:1px solid #d6dca1;border-radius:8px;color:#f9edc5;z-index:3;text-align:center;pointer-events:none;box-shadow:0 12px 35px #14333e44}.combat-banner strong{display:block;font-size:26px;letter-spacing:-.5px;line-height:1.2}.combat-banner>span{display:block;margin-top:6px;font-size:10px;color:#c4dbc9}.combat-banner[data-tone=boss]{border-color:#edac73;background:linear-gradient(100deg,#4f3b3aed,#354455ed)}.combat-banner[data-tone=clear]{background:linear-gradient(100deg,#315e46ed,#2d7161ed)}.action-hint{font-size:9px;line-height:1.7;color:#6e8068;margin:8px 0 4px;min-height:17px}.lighthouse-danger .heart{color:#ff947b}.lighthouse-danger .hud{box-shadow:inset 0 -3px 0 #e99775}.lighthouse-danger .hud>div:nth-child(2){color:#ffcb9e}.tower-card.selected{box-shadow:inset 3px 0 0 #517e67,0 3px 10px #487f4c12}.tower-card:hover:not(:disabled){border-color:#789b70}.tower-card.selected .tower-icon{box-shadow:0 2px 4px #55463122}.game-shell.is-fullscreen .mission-tip{flex-shrink:0}.game-shell.is-fullscreen .action-hint{font-size:9px}.game-shell.is-fullscreen .board .overlay.expanded{z-index:220}.game-shell.is-fullscreen .pulse-button{left:max(15px,env(safe-area-inset-left))}.intro-fullscreen{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:#486e59;font-size:10px;text-decoration:underline;margin-top:9px;padding:5px 10px;min-height:32px}
@media(max-width:800px){.action-hint{grid-column:1;grid-row:5;margin:0}.mission-tip{padding:9px 12px;gap:10px}.mission-tip p{font-size:10px}.tutorial-steps{gap:4px}.tutorial-steps>span{width:20px;height:20px;font-size:9px}.pulse-button{min-height:48px;padding:7px 9px;gap:7px}.pulse-glyph{font-size:24px}.pulse-button strong{font-size:10px}.pulse-button small{font-size:7px}.boss-health{left:10%;right:10%}}
@media(max-width:520px){.mission-tip{padding:7px 9px;min-height:49px;gap:7px}.mission-tip p{font-size:9px;line-height:1.6}.tutorial-steps{gap:3px}.tutorial-steps>span{width:16px;height:16px;font-size:8px}.mission-tip button{min-width:24px;font-size:16px}.pulse-button{left:9px;bottom:9px;min-height:43px;padding:6px 8px;border-radius:6px;gap:5px}.pulse-button strong{font-size:9px;margin-bottom:3px}.pulse-button small{font-size:6px}.pulse-glyph{font-size:21px}.pulse-button kbd{display:none}.game-toast{right:8px;bottom:9px;padding:7px 9px;font-size:9px;max-width:55%}.boss-health{top:31px;left:10%;right:10%;padding:7px 9px}.boss-heading{font-size:8px}.boss-heading span{font-size:7px}.combat-banner{top:23%;min-width:170px;padding:12px 18px}.combat-banner strong{font-size:20px}.combat-banner>span{font-size:8px}.action-hint{font-size:8px}.overlay:not(.expanded) .modal p{font-size:9px}.overlay:not(.expanded) .modal .intro-fullscreen{font-size:8px;min-height:21px;margin-top:3px;padding:3px 8px}.overlay:not(.expanded) .modal h2{font-size:21px}.overlay:not(.expanded) .modal{padding:10px 15px}.game-shell.is-fullscreen .pulse-button{left:9px}.game-shell.is-fullscreen .action-hint{display:none}}
@media(max-height:550px) and (orientation:landscape){.game-shell.is-fullscreen .mission-tip{min-height:35px;padding:5px 10px}.game-shell.is-fullscreen .mission-tip p{font-size:8px}.game-shell.is-fullscreen .pulse-button{min-height:42px;padding:6px 9px}.game-shell.is-fullscreen .game-toast{font-size:9px;max-width:52%;bottom:10px}.game-shell.is-fullscreen .combat-banner{top:24%;padding:9px 18px}.game-shell.is-fullscreen .combat-banner strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.pulse-button::before,.boss-track span{transition:none}}
