:root{--ui-bg: rgba(20, 24, 33, .82);--ui-fg: #f4f7fb;--accent: #62b6ff}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#87ceeb;color:var(--ui-fg);user-select:none;-webkit-user-select:none}#game{display:block;width:100%;height:100%}#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:22px;line-height:1;color:#ffffffe6;text-shadow:0 0 3px rgba(0,0,0,.6);pointer-events:none;opacity:0;transition:opacity .2s}#app.playing #crosshair{opacity:1}#hotbar{position:fixed;left:50%;bottom:86px;transform:translate(-50%);display:flex;gap:8px;padding:8px;background:var(--ui-bg);border-radius:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px #00000040;z-index:5}.hotbar-slot{position:relative;width:56px;height:56px;border:2px solid transparent;border-radius:10px;background:#ffffff0f;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:border-color .12s,transform .1s,background .12s}.hotbar-slot:hover{background:#ffffff24}.hotbar-slot.selected{border-color:var(--accent);background:#62b6ff2e}.hotbar-slot .swatch{width:34px;height:34px;border-radius:7px;background-size:cover;image-rendering:pixelated;box-shadow:inset 0 -6px #0000002e,0 1px 2px #0000004d}.hotbar-slot .slot-num{position:absolute;top:2px;left:5px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9)}.hotbar-slot .slot-name{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:10px;white-space:nowrap;opacity:0;transition:opacity .12s;pointer-events:none}.hotbar-slot:hover .slot-name,.hotbar-slot.selected .slot-name{opacity:.85}#hint-bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;gap:16px;flex-wrap:wrap;justify-content:center;max-width:92vw;padding:10px 16px;background:var(--ui-bg);border-radius:12px;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px #00000040;transition:opacity .2s,transform .2s}#hint-bar.hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(20px)}#hint-bar b{color:var(--accent)}#toolbar{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:6px;background:var(--ui-bg);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 20px #00000040;z-index:10;flex-wrap:wrap;justify-content:center;max-width:96vw}#toolbar button{font:inherit;font-size:13px;color:var(--ui-fg);background:#ffffff12;border:none;padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .12s,transform .1s}#toolbar button:hover{background:#ffffff29}#toolbar button:active{transform:scale(.96)}#toolbar button.round{width:36px;padding:8px 0;font-weight:700}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0e1480;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;transition:opacity .18s}.modal.hidden{opacity:0;pointer-events:none}.modal-card{background:var(--ui-bg);padding:24px 28px;border-radius:18px;box-shadow:0 12px 40px #0006;max-width:90vw}.modal-card h2{margin-bottom:16px;font-size:22px}.modal-close{margin-top:18px;font-size:15px;font-weight:600;color:#06121f;background:var(--accent);border:none;padding:10px 22px;border-radius:999px;cursor:pointer}.modal-close:hover{filter:brightness(1.08)}#palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.palette-cell{display:flex;flex-direction:column;align-items:center;gap:6px;width:96px;padding:12px 8px;font:inherit;font-size:13px;color:var(--ui-fg);background:#ffffff0f;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}.palette-cell:hover{background:#ffffff24;border-color:var(--accent);transform:translateY(-2px)}.palette-cell .swatch{width:46px;height:46px;border-radius:9px;background-size:cover;image-rendering:pixelated;box-shadow:inset 0 -7px #0000002e,0 1px 3px #0000004d}#newworld-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:380px}.map-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;font:inherit;color:var(--ui-fg);background:#ffffff0f;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}.map-card:hover{background:#ffffff24;border-color:var(--accent);transform:translateY(-2px)}.map-card .map-emoji{font-size:26px}.map-card b{font-size:14px}.map-card .map-desc{font-size:10px;opacity:.7;text-align:center;line-height:1.2}.seed-row{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:13px}.seed-row input{width:100px;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#00000040;color:var(--ui-fg);font:inherit}.seed-row .seed-hint{opacity:.6;font-size:11px}.help-lines{list-style:none;display:flex;flex-direction:column;gap:12px;max-width:380px;font-size:15px;line-height:1.35}.help-lines b{color:var(--accent)}#toast{position:fixed;top:64px;left:50%;transform:translate(-50%) translateY(-8px);padding:9px 18px;background:#141821eb;border-radius:999px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:30}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#touch-look,#touch-controls{display:none}body.touch #app.playing #touch-look{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;touch-action:none}body.touch #app.playing #touch-controls{display:block}#touch-controls button{touch-action:none;-webkit-user-select:none;user-select:none}#joy-base{position:fixed;left:26px;bottom:96px;width:116px;height:116px;border-radius:50%;background:#14182180;border:2px solid rgba(255,255,255,.18);z-index:8;touch-action:none}#joy-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:#62b6ffd9;box-shadow:0 2px 8px #0006}#touch-vert{position:fixed;left:150px;bottom:96px;display:flex;flex-direction:column;gap:8px;z-index:8}#touch-actions{position:fixed;right:26px;bottom:100px;display:flex;gap:12px;z-index:8}#touch-brush{position:fixed;right:26px;bottom:110px;width:48px;height:48px;font-size:16px;font-weight:700;border:none;border-radius:50%;background:#14182199;color:var(--ui-fg);z-index:8}#touch-vert button,#touch-actions button{width:56px;height:56px;font-size:20px;border:none;border-radius:50%;background:#14182199;color:var(--ui-fg);cursor:pointer}#touch-actions button{width:66px;height:66px;font-size:26px;background:#141821b3}body.touch #hint-bar{display:none}body.touch #hotbar{bottom:168px;gap:4px;padding:5px}body.touch .hotbar-slot{width:36px;height:36px}body.touch .hotbar-slot .swatch{width:24px;height:24px}body.touch .hotbar-slot .slot-name{display:none}body.touch #joy-base,body.touch #touch-vert{bottom:26px}body.touch #touch-actions{bottom:30px}#menu-toggle{display:none}body.touch #menu-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;width:44px;height:44px;font-size:20px;border:none;border-radius:12px;background:var(--ui-bg);color:var(--ui-fg);box-shadow:0 6px 20px #00000040;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:11;cursor:pointer}body.touch #toolbar{display:none}body.touch.menu-open #toolbar{display:flex;top:64px;max-width:92vw}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0e1473;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:opacity .25s}#overlay.hidden{opacity:0;pointer-events:none}.overlay-card{text-align:center;background:var(--ui-bg);padding:32px 40px;border-radius:18px;box-shadow:0 12px 40px #00000059}.overlay-card h1{font-size:40px;letter-spacing:.5px;margin-bottom:8px}.overlay-card p{opacity:.85;margin-bottom:20px}#play-btn{font-size:16px;font-weight:600;color:#06121f;background:var(--accent);border:none;padding:12px 28px;border-radius:999px;cursor:pointer;transition:transform .1s,filter .15s}#play-btn:hover{filter:brightness(1.08)}#play-btn:active{transform:scale(.97)}
