/* Layout and interaction states. All visible controls use generated raster art. */
:root{--game-background-veil:rgba(25,68,73,.25)}
/* First painted child: above the garden, below every HUD and board object. */
.game::before{content:"";position:absolute;inset:0;background:var(--game-background-veil);pointer-events:none}
.home-controls{top:493px;gap:9px}
.home-controls>.art-button{height:66px;font-size:21px}
.home-controls>.art-button.small{height:50px;font-size:16px}
.days .page-title{top:105px}
.screen.days{background:var(--art-garden,url('../assets/v4/garden.webp')) center/cover no-repeat}
.days .page-title h1{color:#287782;text-shadow:0 2px 0 #fff;}
.days-panel{top:93px;height:526px;padding:22px 20px 24px;background-image:var(--art-board,url('../assets/v4/board.webp'))}
.days-grid{grid-template-rows:repeat(5,86px);gap:10px 8px}
.day-node{height:86px}
.day-number{position:absolute;top:14px;left:0;right:0;font-size:23px;margin:0}
.day-node.locked>.icon{position:absolute;top:17px;width:25px;height:25px;margin:0}
.day-state{bottom:25px;font-size:8px;line-height:11px;letter-spacing:0;max-width:86%;white-space:nowrap}
.rating-stars{display:flex;align-items:center;justify-content:center}
.rating-stars .empty{opacity:.22!important}
.node-stars{position:absolute;bottom:10px;left:0;right:0;gap:1px;height:14px;direction:ltr}
.node-stars .icon{width:14px;height:14px}
.days-bottom{justify-content:center;top:636px;gap:28px}
.days-bottom>span{max-width:none;min-width:90px;text-align:center;font-size:13px;background:var(--art-counter,url('../assets/v4/counter.webp')) center/100% 100% no-repeat;padding:12px 16px}
.days-bottom .round .icon{width:27px;height:27px}
.move-counter{position:absolute;top:80px;left:50%;transform:translateX(-50%);height:54px;width:246px;padding:7px 20px 9px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--art-move-panel,url('../assets/v4/move-panel.webp')) center/100% 100% no-repeat;color:#1d626d}
.move-counter b{font-size:38px;line-height:1;min-width:28px;text-align:center}
.move-counter .icon{width:31px;height:31px}
.move-copy{display:flex;align-items:center;text-align:left;min-width:0}
.move-copy strong{font-size:14px;letter-spacing:.7px}
.move-copy small{font-size:8px;letter-spacing:.45px;color:#4b858d;font-weight:bold}
.move-delta{position:absolute;right:28px;top:5px;font-size:20px;font-weight:bold;pointer-events:none;animation:move-float .8s ease-out forwards}
.move-spend .move-delta{color:#e2745c}
.move-gain .move-delta{color:#1bb291}
.move-counter.move-spend b{animation:move-number-spend .48s ease-out}
.move-counter.move-gain b{animation:move-number-gain .6s ease-out}
.move-spark{position:absolute;left:29px;top:8px;width:27px;height:27px;pointer-events:none;animation:move-sparkle .65s ease-out forwards}
.paused .move-counter *{animation-play-state:paused}
.reduced .move-counter b{animation-duration:.12s}
@keyframes move-number-spend{0%{transform:translateY(-8px) scale(1.16);color:#e2745c}55%{transform:translateY(3px) scale(.95)}100%{transform:none}}
@keyframes move-number-gain{0%{transform:scale(.8);color:#1bb291}50%{transform:scale(1.25)}100%{transform:none}}
@keyframes move-float{0%{transform:translateY(7px) scale(.75);opacity:0}25%{opacity:1;transform:translateY(0) scale(1)}100%{transform:translateY(-32px);opacity:0}}
@keyframes move-sparkle{0%{transform:scale(.3);opacity:0}35%{transform:scale(1.35) rotate(20deg);opacity:1}100%{transform:scale(1.7) rotate(65deg);opacity:0}}
.board{left:50%;right:auto;transform:translateX(-50%);background:none;border:28px solid transparent;border-image-source:var(--art-board,url('../assets/v4/board.webp'));border-image-slice:100 fill;border-image-width:28px;border-image-repeat:stretch;border-radius:0}
.board-grid{top:50%}
.tile{transition:filter .15s,transform .12s}
.targeting .tile{filter:drop-shadow(0 0 4px #ffd34b) brightness(1.04)}
.hammer-strike{position:absolute;pointer-events:none;z-index:8}
.undo-restored{animation:restored-tile .32s ease-out}
@keyframes restored-tile{0%{transform:scale(.72);filter:brightness(1.4)}70%{transform:scale(1.06)}100%{transform:none;filter:none}}
.game-tools{position:absolute;top:627px;left:23px;right:23px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;height:58px}
.tool-button{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;flex-direction:column;padding:5px 11px 9px;background:var(--art-button-cream,url('../assets/v4/button-cream.webp')) center/100% 100% no-repeat;font-size:10px;font-weight:bold;line-height:1.1;min-width:0}
.tool-button .icon{width:27px;height:27px}
.tool-button.selected{background-image:var(--art-button-teal,url('../assets/v4/button-teal.webp'))}
.tool-count{position:absolute;top:1px;right:4px;width:27px;height:27px;padding:0 0 1px;display:grid;place-items:center;background:var(--art-count-badge,url('../assets/v4/count-badge.webp')) center/contain no-repeat;font-size:13px;line-height:1;font-weight:900;color:#654514;font-variant-numeric:tabular-nums;pointer-events:none}
.tool-button:disabled{opacity:1;filter:none}
.tool-button:disabled>.icon,.tool-button:disabled>span{opacity:.38}
.tool-button:disabled .tool-count{color:#867860}
.challenge-foot{position:absolute;top:633px;left:37px;right:37px;height:46px;background:var(--art-bubble,url('../assets/v4/bubble.webp')) center/100% 100% no-repeat;display:flex;align-items:center;justify-content:center;gap:9px;padding:7px 16px 10px}
.challenge-foot .icon{width:25px;height:25px}
.challenge-foot span{font-size:11px;font-weight:bold;letter-spacing:.6px}
.hammer-notice{position:absolute;top:25px;bottom:auto;left:80px;right:80px;min-height:43px;padding:7px 16px;background:var(--art-feedback-panel,url('../assets/v4/feedback-panel.webp')) center/100% 100% no-repeat;font-size:11px;line-height:1.35;font-weight:bold;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none}
.hammer-notice .icon{width:22px;height:22px}
.hammer-notice span{min-width:0}
.game .toast{bottom:88px}
.modal-panel{padding:58px 34px 36px;max-height:642px}
.pause-panel{padding-top:64px;padding-bottom:36px}
.pause-panel .toggle-row{margin:6px 0;padding:6px 0}
.pause-panel .modal-actions{margin-top:19px}
.result-art{width:168px;height:177px;margin:9px 0 12px}
.sad-art{width:174px;height:188px}
.help-steps{gap:14px;margin:10px 0}
.help-step>.icon{width:36px;height:36px}
.help-steps>p{font-size:12px;line-height:1.4;color:#47777a;text-align:center;margin-top:7px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;padding:0;margin:-1px;border:0}
.toast{bottom:91px;left:52px;right:52px;min-height:43px;padding:8px 18px;background:var(--art-feedback-panel,url('../assets/v4/feedback-panel.webp')) center/100% 100% no-repeat;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;line-height:1.3}
.toast>.icon{width:22px;height:22px}
.toast>span{min-width:0}
.toast.game-feedback{top:25px;bottom:auto;left:80px;right:80px;font-size:12px;padding:7px 16px}
