:root{--ui-font: "Minecraftia", "Lucida Console", "Courier New", ui-monospace, monospace;--slot: min(9.5vw, 56px);--stone: #6f6f6f;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#111;color:#fff;font-family:var(--ui-font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none}#app,.game{position:fixed;inset:0}.game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated;cursor:crosshair}.title-screen,.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px}.title-screen{background:linear-gradient(#00000059,#0009),repeating-conic-gradient(#6b4a30 0 25%,#79553a 0 50%) 0 0 / 32px 32px}.screen{background:#0000008c;z-index:20}.screen[hidden]{display:none}.title-screen h1{margin:0;font-size:clamp(32px,7vw,64px);letter-spacing:2px;color:#e8e8e8;text-shadow:4px 4px 0 #3f3f3f}.tagline{margin:0;color:#ff5;text-shadow:2px 2px 0 #3f3f00}.footer{position:absolute;bottom:8px;font-size:11px;color:#bbb;text-align:center}.logo{display:flex;gap:6px}.logo img{width:clamp(40px,9vw,72px);image-rendering:pixelated}.panel{background:#c6c6c6;color:#3f3f3f;border:3px solid #000;box-shadow:inset 3px 3px #fff,inset -3px -3px #555;padding:18px;max-width:min(94vw,640px);max-height:92vh;overflow:auto}.menu-panel{display:flex;flex-direction:column;gap:10px;min-width:min(90vw,360px)}.panel h2{margin:0 0 6px;font-size:20px;text-align:center;color:#3f3f3f}.menu-buttons{display:flex;flex-direction:column;gap:10px;width:min(90vw,400px)}.mc-button{font:inherit;font-size:16px;color:#fff;text-shadow:2px 2px 0 #3f3f3f;padding:12px 16px;background:linear-gradient(#8b8b8b,#6f6f6f);border:2px solid #000;box-shadow:inset 2px 2px #aaa,inset -2px -2px #555;cursor:pointer;min-height:44px}.mc-button:hover,.mc-button:focus-visible{background:linear-gradient(#8e9bd8,#6b78b8);outline:none}.mc-button.primary{background:linear-gradient(#5aa53a,#3c7d27);box-shadow:inset 2px 2px #82c95f,inset -2px -2px #2a5a1b}.mc-button.primary:hover{background:linear-gradient(#69b947,#458d2d)}.field{display:flex;flex-direction:column;gap:4px;font-size:14px}.mc-input{font:inherit;padding:10px;background:#000;color:#fff;border:2px solid #a0a0a0;min-height:44px}.mc-range{width:100%}.help{font-size:13px;line-height:1.5;color:#222}.help h3{margin:10px 0 2px;font-size:15px}.help p{margin:2px 0}.hud{position:absolute;inset:0;pointer-events:none}.hud button{pointer-events:auto}.crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);mix-blend-mode:difference;background:linear-gradient(#fff,#fff) center / 2px 100% no-repeat,linear-gradient(#fff,#fff) center / 100% 2px no-repeat}.hud-bottom{position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.hotbar{display:flex;background:#00000073;border:2px solid #000;box-shadow:inset 0 0 0 2px #8b8b8b;padding:2px}.slot{position:relative;width:var(--slot);height:var(--slot);padding:4px;margin:0;border:2px solid transparent;background:#8b8b8b59;box-shadow:inset 1px 1px #0009,inset -1px -1px #ffffff40;cursor:pointer}.slot.selected{border-color:#fff;box-shadow:0 0 0 2px #000,inset 0 0 0 2px #fff;z-index:1}.slot,.item-cell{position:relative}.durability{position:absolute;left:12%;right:12%;bottom:8%;height:3px;background:#000;pointer-events:none}.durability-fill{display:block;height:100%}.slot img,.item-cell img{width:100%;height:100%;image-rendering:pixelated;pointer-events:none}.slot-more{color:#fff;font-size:14px}.count{position:absolute;right:3px;bottom:1px;font-size:13px;color:#fff;text-shadow:2px 2px 0 #3f3f3f}.item-name{min-height:20px;color:#fff;text-shadow:2px 2px 0 #3f3f3f;opacity:0}.stats{display:flex;justify-content:space-between;width:calc(var(--slot) * 9);max-width:100%}.hearts{display:flex;gap:1px;align-self:flex-start}.hunger{display:flex;gap:1px}.hunger[hidden]{display:none}.food{width:16px;height:16px;font-size:13px;line-height:16px;text-align:center}.food:before{content:"🍗"}.food.half{opacity:.55}.food.empty{filter:grayscale(1) brightness(.35)}.hearts[hidden]{display:none}.heart{width:16px;height:16px;font-size:14px;line-height:16px;text-align:center;text-shadow:1px 1px 0 #000}.heart:before{content:"❤"}.heart.full{color:#e01b1b}.heart.half{background:linear-gradient(90deg,#e01b1b 50%,#333 50%);-webkit-background-clip:text;background-clip:text;color:transparent}.heart.empty{color:#333}.debug{position:absolute;left:6px;top:6px;margin:0;padding:4px 6px;font:12px/1.4 var(--ui-font);background:#00000073;color:#fff;white-space:pre}.debug[hidden]{display:none}.chat-log{position:absolute;left:6px;bottom:calc(var(--slot) + 70px);display:flex;flex-direction:column;gap:2px;max-width:min(70vw,520px)}.chat-line{background:#00000073;padding:3px 6px;font-size:13px;transition:opacity 1s}.chat-line.fade{opacity:0}.chat-input{position:absolute;left:6px;right:6px;bottom:6px;z-index:30}.chat-input[hidden]{display:none}.chat-input input{width:100%;font:15px var(--ui-font);color:#fff;background:#000000b3;border:0;padding:10px;outline:none}.damage-flash{position:absolute;inset:0;background:#ff000059;opacity:0}.damage-flash.on{animation:flash .4s ease-out}@keyframes flash{0%{opacity:1}to{opacity:0}}.underwater{position:absolute;inset:0;background:#143ca059;opacity:0;transition:opacity .2s}.underwater.on{opacity:1}.inventory-panel{display:flex;flex-direction:column;gap:8px}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-header h2{margin:0;text-align:left}.close-button{font:inherit;background:none;border:0;font-size:20px;cursor:pointer;color:#3f3f3f;min-width:44px;min-height:44px}.item-grid{display:grid;grid-template-columns:repeat(9,var(--slot));gap:2px;justify-content:center}.item-cell{position:relative;width:var(--slot);height:var(--slot);padding:4px;background:#8b8b8b;border:0;box-shadow:inset 2px 2px #373737,inset -2px -2px #fff;cursor:pointer}.item-cell:hover{background:#a5a5c5}.item-cell.selected{box-shadow:inset 0 0 0 3px #fff}.item-cell.held{background:#c6d86b}.divider{height:6px}.hint{margin:0;font-size:12px;text-align:center}.touch-controls{position:absolute;inset:0;pointer-events:none}.touch-stick-zone{position:absolute;left:0;bottom:0;width:42%;height:60%;pointer-events:auto;touch-action:none}.touch-stick-base{position:absolute;left:max(90px,18%);top:62%;width:128px;height:128px;transform:translate(-50%,-50%);border-radius:50%;background:#ffffff1f;border:3px solid rgba(255,255,255,.45);opacity:.75}.touch-stick-base.active{opacity:1}.touch-stick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;border-radius:50%;background:#fff9;border:2px solid rgba(0,0,0,.35);transform:translate(-50%,-50%)}.touch-buttons{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:calc(var(--slot) + 40px);display:grid;grid-template-columns:repeat(2,64px);grid-template-rows:repeat(2,64px);gap:10px;pointer-events:none}.touch-button{pointer-events:auto;font-size:26px;color:#fff;background:#00000059;border:2px solid rgba(255,255,255,.5);border-radius:10px;touch-action:none}.touch-button.pressed{background:#ffffff59}.touch-fly{grid-column:2;grid-row:1}.touch-down{grid-column:1;grid-row:2}.touch-jump{grid-column:2;grid-row:2}.touch-top{position:absolute;top:max(8px,env(safe-area-inset-top));right:8px;display:flex;gap:8px}.touch-top-button{width:48px;height:48px;font-size:18px;color:#fff;background:#0006;border:2px solid rgba(255,255,255,.5);border-radius:8px}body.touch .game-canvas{cursor:default}@media(max-height:500px){.touch-buttons{grid-template-columns:repeat(2,56px);grid-template-rows:repeat(2,56px);bottom:20px}.menu-panel{gap:6px}.mc-button{padding:8px 12px}}body.touch .chat-log{top:max(8px,env(safe-area-inset-top));bottom:auto;max-width:min(60vw,520px)}.crafting{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.craft-grid.craft-2{grid-template-columns:repeat(2,var(--slot))}.craft-grid.craft-3{grid-template-columns:repeat(3,var(--slot))}.craft-arrow{font-size:28px;color:#555}.craft-result{width:calc(var(--slot) * 1.25);height:calc(var(--slot) * 1.25)}.cursor-stack{display:flex;align-items:center;gap:6px;min-height:28px;font-size:13px}.cursor-stack img{width:24px;height:24px;image-rendering:pixelated}.portfolio-panel{width:min(94vw,760px)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.photo-card{margin:0;background:#8b8b8b;padding:6px;display:flex;flex-direction:column;gap:4px}.photo-card img{width:100%;image-rendering:auto;border:2px solid #373737}.photo-caption{min-height:36px;padding:6px;font-size:13px}.photo-actions{display:flex;gap:6px}.mc-button.small{padding:6px 10px;font-size:13px;min-height:32px;text-decoration:none;text-align:center;flex:1}.npc-panel{display:flex;flex-direction:column;gap:10px;width:min(92vw,480px)}.npc-text{margin:0;padding:10px;background:#fff;border:2px solid #555;color:#222;white-space:pre-wrap;min-height:60px}.npc-edit{min-height:90px;resize:vertical;font:inherit}.camera-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.camera-flash.on{animation:flash .35s ease-out}.furnace{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.furnace-column{display:flex;flex-direction:column;align-items:center;gap:6px}.furnace-flame{width:20px;height:20px;background:#555;position:relative;border-radius:3px 3px 8px 8px;overflow:hidden}.furnace-flame-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(#ffd23f,#e8590c)}.furnace-progress{width:56px;height:14px;background:#8b8b8b;position:relative;clip-path:polygon(0 30%,70% 30%,70% 0,100% 50%,70% 100%,70% 70%,0 70%)}.furnace-progress-fill{height:100%;width:0;background:#fff}.chalk-edit{min-height:140px;font-family:monospace;background:#24382c;color:#f2f2ea}.field.checkbox{flex-direction:row;align-items:center;gap:8px}.book-panel{max-width:520px;background:#f3e9cf;color:#3a2a18}.book-page{min-height:220px;background:#fbf5e4;color:#3a2a18;font-family:Georgia,serif}.book-text{min-height:220px;white-space:pre-wrap;font-family:Georgia,serif;text-align:left}.book-title{margin-bottom:0}.book-author{margin-top:0;font-style:italic}.book-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0}.code-panel{box-sizing:border-box;width:min(94vw,900px);max-height:92vh;overflow:auto;text-align:left}.code-panel *{box-sizing:border-box;min-width:0}.cb-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.cb-meta .mc-input{flex:1 1 180px;width:100%;max-width:100%}.cb-palette{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.cb-palette-block,.cb-block{border-radius:6px;color:#fff;font:inherit;border:0}.cb-palette-block{padding:8px 10px;cursor:grab;min-height:40px}.cb-command{background:#2f8c86}.cb-loop{background:#3b7d2e}.cb-logic{background:#6a3fa0}.cb-workspace{background:#2b2b2b;padding:8px;border-radius:6px;min-height:120px}.cb-zone{min-height:36px;padding:6px;max-width:100%;border:2px dashed rgba(255,255,255,.25);border-radius:6px;display:flex;flex-direction:column;gap:6px}.cb-zone.cb-target{border-color:#f2c94c}.cb-empty,.cb-label{color:#bbb;font-size:12px}.cb-block{padding:6px;display:flex;flex-direction:column;gap:6px}.cb-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:100%}@media(max-width:480px){.code-panel{padding:10px}.cb-zone,.cb-block{padding:4px}.cb-actions .mc-button{flex:1 1 140px}}.cb-select,.cb-number{font:inherit;min-height:32px}.cb-number{width:56px}.cb-mini{background:#00000040;color:#fff;border:0;min-width:32px;min-height:32px;border-radius:4px}.cb-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cb-status{color:#c0392b;min-height:1em}
