/* Square panels, crisp outlines and restrained highlights across every input mode. */
/* The round interaction target follows the nearby shopkeeper in the world. */
#shop-prompt{--hold:0;position:fixed;z-index:16;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:0;color:#fff;transform:translate(-50%,-50%);touch-action:none;user-select:none;text-align:center;filter:drop-shadow(0 2px 3px #07111acc)}
#shop-prompt:active{transform:translate(-50%,-50%)}
.shop-prompt-circle{position:relative;display:grid;place-items:center;width:72px;height:72px;flex:none;border-radius:50%;background:#101b29df;box-shadow:inset 0 0 0 7px #ffffff0a}
.shop-prompt-circle>svg:first-child{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-width:4;transform:rotate(-90deg)}
.prompt-track{stroke:#edf5ffb3}.prompt-progress{stroke:#c5f36b;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--hold));stroke-linecap:round}
.prompt-key{font-size:25px;font-weight:800;line-height:1}.shop-prompt-circle .prompt-bag{display:none;width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.shop-prompt-copy{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 9px;background:#101b29ed;border:1px solid #edf5ffb3;text-shadow:0 2px 3px #07111a;white-space:nowrap}
.shop-prompt-copy strong{font-size:15px}.shop-prompt-copy small{font-size:11px;color:#e1ebf4;white-space:nowrap}
#shop-prompt:hover .prompt-track,#shop-prompt.holding .prompt-track{stroke:#fff}#shop-prompt.holding .shop-prompt-circle{background:#243d31ee}
.touch-controls #shop-prompt .prompt-key,.touch-controls #shop-prompt .prompt-shortcut{display:none}.touch-controls #shop-prompt .prompt-bag{display:block}
@media(max-width:600px){.shop-prompt-circle{width:64px;height:64px}.shop-prompt-copy strong{font-size:13px}.shop-prompt-copy small{font-size:10px}#shop-prompt{gap:7px}}
:root{--ink:#111d29;--yellow:#c5f36b;--surface:#111d29f5;--ui-line:#718595;--ui-muted:#aebdca}
button,input,.panel,dialog{border-radius:0}
button{transition:background .12s,border-color .12s,transform .12s}
button:hover{filter:none}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.primary,.shop-button{border:1px solid #e0ff9d;background:var(--yellow);box-shadow:inset 0 0 0 1px #18252018}
.primary:hover,.shop-button:hover{background:#dbff98}
.secondary,.icon-button,.pause-button,.text-button,input{border:1px solid var(--ui-line);background:#111d29dc}
.secondary:hover,.icon-button:hover,.pause-button:hover,.text-button:hover{border-color:#d6e5f0;background:#25384a}
.brand{letter-spacing:-.5px}
.brand-icon{border:1px solid #e0ff9d;box-shadow:3px 3px 0 #111d29}
.icon-button{font-size:17px}
.panel,dialog,#room-form{border:1px solid var(--ui-line);border-top:3px solid var(--yellow);box-shadow:8px 8px 0 #09111aa6}
dialog::backdrop{background:#060f1b99;backdrop-filter:blur(3px)}
.dialog-head{border-bottom:1px solid #3e5263;padding-bottom:12px}
.dialog-head .eyebrow{color:var(--ui-muted);font-size:11px}
.dialog-head h2{font-weight:700;letter-spacing:-.6px}
.close{border:1px solid #718595;background:#1b2c3c;width:36px;height:36px;line-height:1}
.match-chip,#team-board>div,#resources,#toast,#feed>div,#target-label{background:#111d29e8;border:1px solid var(--ui-line);box-shadow:2px 2px 0 #09111a66}
#team-board>div{border-bottom:3px solid var(--team)}
.match-chip{border-left:3px solid var(--yellow)}
#resources{gap:0;padding:0}
#resources>span{padding:9px 13px;border-right:1px solid #526878}
#resources>span:last-child{border-right:0}
.touch-controls #resources{gap:0;padding:0}
.touch-controls #resources>span{padding:8px 10px}
.health-track,.touch-controls .health-track{border:2px solid #edf4f8;box-shadow:0 0 0 2px #111d29;background:#552c34}
#health,.touch-controls #health{background:#32b653;box-shadow:inset 0 2px 0 #ffffff33}
.player-health-track{border:1px solid #e6f2ef;box-shadow:0 0 0 1px #111d29}
#health-text{font-size:19px}
.inventory-row>button{border:1px solid var(--ui-line);background:#111d29e8}
#hotbar button,.touch-controls #hotbar button{border:1px solid #718595;background:#111d29e8;box-shadow:inset 0 0 0 2px #111d29}
#hotbar button.active,.touch-controls #hotbar button.active{border:2px solid var(--yellow);background:#263e32;box-shadow:inset 0 -3px 0 var(--yellow)}
#hotbar button:hover,.inventory-row>button:hover{border-color:#e9f5ff;background:#25384a}
#hotbar .slot-count{color:white}
#shop-tabs{gap:0;border-bottom:1px solid var(--ui-line);padding-bottom:0}
#shop-tabs button{border:1px solid transparent;border-bottom:3px solid transparent;background:transparent;color:#b8c8d5}
#shop-tabs button.active{background:#223629;border-color:#4b6651;border-bottom-color:var(--yellow);color:var(--yellow)}
#shop-tabs button:hover{background:#263a4b;color:#fff}
#shop-items button{border:1px solid #607585;background:#182a39;box-shadow:none}
#shop-items button:not(:disabled):hover{border-color:var(--yellow);background:#23394a}
#shop-items button:disabled{opacity:.62;background:#152330}
#shop-items small{color:#c2cfdb}
#shop-items b{border-top:1px solid #3b5265;padding-top:10px}
#copy-code{border:1px solid var(--ui-line);background:#0c1722}
#lobby-players>div{border:1px solid #526878;border-left:3px solid var(--team);background:#1b2c3b}
.shift-lock-button,.touch-controls .touch-actions button{border:2px solid #c0cfda;background:#111d29ce;box-shadow:3px 3px 0 #0b162375;text-shadow:none}
.touch-controls #touch-build{border-color:var(--yellow)}
.touch-controls #touch-jump{background:#233c50d9}
.shift-lock-button[aria-pressed="true"],.touch-controls #touch-lock[aria-pressed="true"]{background:#2c4430;border-color:var(--yellow);color:var(--yellow)}
.touch-controls #joystick{border:2px solid #bccbd7;background:#111d2966;box-shadow:inset 0 0 0 6px #111d2940}
.touch-controls #joystick div{border:2px solid #edf5fa;background:#baceda99;box-shadow:3px 3px 0 #111d2933}
#joystick>span{letter-spacing:.5px}
@media(max-width:600px){#resources>span,.touch-controls #resources>span{padding:7px 8px}.panel,dialog{box-shadow:4px 4px 0 #09111a99}#shop-tabs button{padding:10px}}
/* Home screen: compact match panel beside the live arena. */
.menu{top:50%;left:7%;transform:translateY(-48%);width:86%;max-height:calc(100dvh - 155px);overflow-y:auto;display:grid;grid-template-columns:minmax(280px,1fr) 350px;align-items:center;gap:7vw;padding:8px 10px 12px 0}
.home-heading h1{font-size:clamp(58px,7.8vw,108px);line-height:.91;letter-spacing:-3px;margin:22px 0 26px;font-weight:900}
.home-heading .eyebrow{letter-spacing:2px;color:#e3ebf1;font-size:11px}.home-heading .intro{font-size:23px;font-weight:700;margin:0 0 12px}.home-description{font-size:15px;line-height:1.6;color:#d7e4ed;margin:0}.home-teams{display:flex;align-items:center;gap:5px;margin-top:25px}.home-teams i{width:18px;height:7px;background:#58b9ff}.home-teams i:nth-child(2){background:#ff7864}.home-teams i:nth-child(3){background:#6ce2ac}.home-teams i:nth-child(4){background:#ffd267}.home-teams span{margin-left:8px;font-size:12px;font-weight:bold}
.home-play{background:#101d2bef;border:1px solid #8ca2b3;border-top:4px solid var(--yellow);box-shadow:8px 8px 0 #08152266;padding:24px}.home-panel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #455b6b;padding-bottom:20px;margin-bottom:22px}.home-panel-title>span{font-size:25px;font-weight:900;letter-spacing:1px}.home-panel-title small{font-size:10px;letter-spacing:1px;color:#aebdcc}.mode-description,.online-heading{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.mode-description strong,.online-heading strong{font-size:16px}.mode-description span,.online-heading span{font-size:12px;color:#b6c9d6}.menu-actions>.primary{font-size:16px;min-height:54px;align-items:center}.menu-actions>.primary::after{content:'→';font-size:23px}.online-heading{border-top:1px solid #455b6b;margin-top:24px;padding-top:22px}.online-row{gap:8px}.online-row button{font-size:13px;padding:12px}.home-play #menu-status{font-size:11px;color:#bbccda;margin:16px 0;min-height:30px}.home-tip{display:flex;gap:13px;border-top:1px solid #455b6b;padding-top:16px}.home-tip b{font-size:9px;letter-spacing:1px;color:var(--yellow);padding-top:3px;white-space:nowrap}.home-tip span{font-size:11px;line-height:1.6;color:#b6c9d6}#island-label{display:flex;gap:12px;align-items:center;bottom:23px;right:4%}body:not(.playing) #vignette{background:linear-gradient(90deg,#0a192deb,#0a192d72 47%,#0a192d33),linear-gradient(0deg,#0a192da6,transparent 35%)}
/* Inventory is a row of illustrated squares with visibly empty slots. */
#hotbar button,.touch-controls #hotbar button,#hotbar .empty-slot{flex:0 0 58px;min-width:58px;height:62px;position:relative;border:1px solid #718595;background:#111d29e8;box-shadow:inset 0 0 0 2px #111d29}#hotbar .empty-slot{background:#111d29b8;border-color:#506374;box-shadow:inset 0 0 0 3px #0b172344}#hotbar .slot-icon,.touch-controls #hotbar .slot-icon{display:block;width:44px;height:44px;margin:3px auto 0;line-height:1}#hotbar .slot-icon img{display:block;width:100%;height:100%;pointer-events:none;filter:drop-shadow(1px 2px 1px #0008)}#hotbar .slot-name,.touch-controls #hotbar .slot-name{display:none}#hotbar .slot-key{z-index:1;top:3px;left:4px;font-size:10px}#hotbar .slot-count{z-index:1;bottom:3px;right:5px;font-size:13px;text-shadow:1px 1px #000,-1px -1px #000}#selected-item{font-size:12px;line-height:1.5;min-height:22px}
#mining{width:100px;height:6px!important;padding:0;background:none;border:0;box-shadow:none;z-index:7;pointer-events:none;transform:translate(-50%,-100%)}#mining-track{height:6px!important;width:100%!important;background:#34414c!important;border:1px solid #111d29;overflow:hidden}#mining-fill{height:100%;background:#b8ed72;width:100%}#mining.nearly-broken #mining-fill{background:#ff9471}
@media(max-width:760px){.menu{left:6%;width:88%;grid-template-columns:1fr;gap:24px;transform:none;top:95px;max-height:calc(100dvh - 140px);padding-right:8px}.home-heading h1{font-size:58px;margin:14px 0}.home-heading h1 br{display:none}.home-heading h1 em{display:block}.home-heading .intro{font-size:20px}.home-description,.home-teams{display:none}.home-play{padding:20px}.home-panel-title{margin-bottom:16px;padding-bottom:14px}#island-label{display:none}#hotbar button,.touch-controls #hotbar button,#hotbar .empty-slot{flex-basis:54px;min-width:54px;height:58px}#hotbar .slot-icon,.touch-controls #hotbar .slot-icon{width:41px;height:41px}}
@media(max-height:600px) and (min-width:761px){.menu{grid-template-columns:1fr 330px;top:78px;transform:none;max-height:calc(100dvh - 110px);gap:32px}.home-heading h1{font-size:65px;margin:15px 0}.home-heading .intro{font-size:19px}.home-description{font-size:13px}.home-teams{margin-top:16px}.home-play{padding:16px}.home-panel-title{padding-bottom:10px;margin-bottom:12px}.home-panel-title>span{font-size:20px}.online-heading{margin-top:14px;padding-top:12px}.home-play #menu-status{margin:9px 0;min-height:0}.home-tip{display:none}.menu-actions>.primary{min-height:46px}.online-row button{min-height:42px}#island-label{display:none}footer{font-size:9px;bottom:8px}}
@media(max-height:450px) and (min-width:761px){.menu{top:75px;max-height:calc(100dvh - 100px);align-items:start}.home-heading{padding-top:16px}.home-heading h1{font-size:57px}.home-panel-title{padding-bottom:8px;margin-bottom:9px}.home-panel-title>span{font-size:18px}.home-play{padding:12px}.mode-description,.online-heading{gap:4px;margin-bottom:8px}.mode-description strong,.online-heading strong{font-size:14px}.menu-actions>.primary{min-height:42px;padding:7px 12px;font-size:14px}.online-heading{margin-top:10px;padding-top:10px}.online-row{margin-top:5px}.online-row button{min-height:40px;padding:8px}.home-play #menu-status{font-size:10px;line-height:1.2;margin:8px 0 0}}
.camera-button{display:none;min-height:36px;padding:8px 11px;background:#152839;border:1px solid #a9becf;color:white;font-size:11px;font-weight:bold;touch-action:manipulation}body.playing .camera-button{display:block}.camera-button:hover{background:#294459}@media(max-width:600px){body.playing .brand{font-size:15px;gap:6px}body.playing .brand-icon{padding:3px 6px}body.playing .header-right{gap:5px}.camera-button{padding:7px;font-size:10px}}
#player-name{font-size:16px;letter-spacing:0;text-transform:none;padding:10px;margin:5px 0 3px;height:40px}.name-label{display:block;font-size:11px;color:#bdceda;letter-spacing:0}#lobby-players strong,#lobby-players small{display:block;overflow-wrap:anywhere}#lobby-players small{margin-top:5px;color:#bacddb;font-size:11px}#lobby-events{border:1px solid #526878;background:#0c1824;padding:7px 12px;text-align:left;max-height:100px;overflow-y:auto}#lobby-events p{margin:5px 0;font-size:12px;color:#d6edc6;line-height:1.35;overflow-wrap:anywhere}#lobby{max-height:90dvh;overflow-y:auto}@media(max-height:600px){#lobby{padding:18px}#lobby h2{font-size:25px}#lobby>p{margin:8px 0}#copy-code{padding:8px;margin:5px 0}#lobby-events{max-height:65px}#player-name{height:34px;padding:6px}}
@media(max-height:450px) and (min-width:761px){.home-panel-title,.mode-description span,.online-heading span{display:none}}

/* Durability changes only on tool contact, without a tween between hits. */
#mining-fill{transition:none!important}
