*{box-sizing:border-box}html,body{margin:0;width:100%;min-width:320px;min-height:100%;overflow:hidden;background:#132514;color:#fffbea;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-height:100vh;min-height:100dvh}html,body,.game-shell,canvas{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.game-shell{position:relative;display:grid;width:100vw;height:100vh;height:100dvh;place-items:center;background:radial-gradient(circle at 50% 50%,rgba(250,204,21,.2),transparent 58%),#132514;overscroll-behavior:none;touch-action:manipulation}canvas{display:block;width:min(100vw,calc(100vh * 16 / 9));width:min(100vw,calc(100dvh * 16 / 9));height:min(100vh,56.25vw);height:min(100dvh,56.25vw);aspect-ratio:16 / 9;background:#16351d;image-rendering:auto;touch-action:manipulation}.ending-video{position:absolute;inset:0;z-index:2;display:block;width:min(100vw,calc(100vh * 16 / 9));width:min(100vw,calc(100dvh * 16 / 9));height:min(100vh,56.25vw);height:min(100dvh,56.25vw);margin:auto;background:#000;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .16s ease}.ending-video.is-visible{opacity:1}.ranking-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;width:min(100vw,calc(100vh * 16 / 9));width:min(100vw,calc(100dvh * 16 / 9));height:min(100vh,56.25vw);height:min(100dvh,56.25vw);margin:auto;padding:18px;pointer-events:auto}.ranking-overlay[hidden]{display:none}.ranking-panel{display:grid;width:min(520px,92vw);gap:12px;padding:18px;border:1px solid rgba(253,224,71,.48);border-radius:8px;background:#29180ce0;box-shadow:0 20px 60px #00000057;color:#fff7ed;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.ranking-panel h2{margin:0;color:#fef3c7;font-size:28px;line-height:1.1;text-align:center}.ranking-result,.ranking-message{margin:0;color:#fde68a;font-size:15px;font-weight:900;text-align:center}.ranking-form{display:grid;grid-template-columns:.7fr 1fr auto;gap:8px}.ranking-form input,.ranking-form button{min-height:38px;border:1px solid rgba(253,224,71,.42);border-radius:7px;font:inherit;font-weight:800}.ranking-form input{min-width:0;padding:0 10px;background:#fffbebf0;color:#3f2d14}.ranking-form button{padding:0 12px;background:#facc15;color:#3f2d14;cursor:pointer}.ranking-form button:disabled{opacity:.58;cursor:default}.ranking-done-button{min-height:42px;border:1px solid rgba(253,224,71,.48);border-radius:7px;background:#facc15;color:#3f2d14;font:inherit;font-weight:900;cursor:pointer}.ranking-list{display:grid;max-height:250px;gap:6px;margin:0;padding:0;overflow:auto;list-style:none}.ranking-list li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:baseline;padding:8px 10px;border-radius:7px;background:#fff7ed1a}.ranking-list b{color:#fef08a}.ranking-list small{grid-column:1 / -1;color:#fff7edb8;font-weight:800}.editor-mode{overflow:hidden}.editor-mode .game-shell{width:calc(100vw - 250px);place-items:center}.editor-mode canvas{width:min(calc(100vw - 270px),calc(100dvh * 16 / 9));cursor:grab}.editor-mode canvas:active{cursor:grabbing}.parts-panel{position:fixed;top:0;right:0;bottom:0;z-index:10;display:flex;width:250px;flex-direction:column;gap:12px;padding:14px;border-left:1px solid rgba(148,163,184,.3);background:#080d1cf5;color:#e5edf8;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.parts-panel h1{margin:0;font-size:18px;line-height:1.25}.editor-status{margin:0;color:#93c5fd;font-size:13px;font-weight:800}.part-list{display:grid;gap:8px;overflow-y:auto}.part-item,.editor-actions button,.editor-actions a{min-height:38px;border:1px solid rgba(147,197,253,.38);border-radius:7px;background:#142039;color:#e0f2fe;font:inherit;font-size:13px;font-weight:800;text-align:left;text-decoration:none}.part-item{padding:8px 10px;cursor:grab}.editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.editor-actions button,.editor-actions a{display:grid;place-items:center;cursor:pointer;text-align:center}.editor-actions a{grid-column:1 / -1}
