:root{color:#0f0e09;background:radial-gradient(circle at top,#f1d78d,#e1c26e 22%,#ae8e49 54%,#5b4623);font-family:Trebuchet MS,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{width:100vw;height:100vh}#root{width:100%;height:100%}.app-root{width:100%;height:100%;display:flex;align-items:stretch;justify-content:stretch;position:relative}.game-canvas{width:100%;height:100%;max-width:none;max-height:none;display:block;image-rendering:pixelated;background:#fff;touch-action:none}.error-view{width:min(100%,760px);padding:20px 24px;white-space:pre-wrap;color:#fff6dc;background:#1f1007e0;border:2px solid rgba(255,235,183,.65);box-shadow:0 18px 48px #00000047}.pack-select-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(circle at top,#f1d78d,#e1c26e 22%,#ae8e49 54%,#5b4623);z-index:100;padding:24px}.pack-select-logo{font-size:clamp(28px,6vw,52px);font-weight:900;letter-spacing:2px;color:#1a0a00;text-shadow:0 2px 8px rgba(0,0,0,.35);margin-bottom:4px}.pack-select-title{font-size:clamp(13px,2.5vw,20px);font-weight:600;color:#3b1e00;letter-spacing:1px;margin-bottom:8px}.pack-select-btn{display:flex;flex-direction:column;align-items:center;gap:4px;width:min(320px,90vw);padding:16px 24px;border:2px solid rgba(90,50,10,.5);border-radius:10px;background:#ffe6a073;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.pack-select-btn:hover,.pack-select-btn:focus-visible{background:#ffdc78b3;border-color:#5a320ad9;outline:none}.pack-select-btn:active{transform:scale(.97)}.pack-select-btn--active{border-color:#5b2e00;background:#ffd25aa6;box-shadow:0 0 0 3px #5b2e0059}.pack-btn-name{font-size:clamp(15px,3vw,22px);font-weight:700;color:#1a0a00}.pack-btn-desc{font-size:clamp(11px,2vw,14px);color:#4a2800;opacity:.8}.smobile-controls{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:10;pointer-events:none;display:none;align-items:flex-end;gap:10px}@media(pointer:coarse){.mobile-controls{display:flex}}.mobile-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.mobile-btn{width:clamp(52px,14vw,72px);height:clamp(52px,14vw,72px);display:flex;align-items:center;justify-content:center;font-size:clamp(18px,5vw,28px);font-weight:700;font-family:Trebuchet MS,Segoe UI,sans-serif;color:#ffffffe6;background:#00000061;border:2px solid rgba(255,255,255,.35);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none;transition:background .08s,border-color .08s;padding:0}.mobile-btn:active{background:#ffffff47;border-color:#ffffffb3}.mobile-btn--back{width:clamp(52px,14vw,72px);height:clamp(52px,14vw,72px);font-size:clamp(20px,5.5vw,30px);align-self:center}
.mobile-controls {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    pointer-events: none;
    display: none;
}
@media (pointer: coarse) {
    .mobile-controls {
        display: flex;
                flex-direction: column;
    }
}
.mobile-pad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0px;
    pointer-events: auto;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}
.mobile-btn {
    width: 100%;
    height: clamp(52px, 14vw, 72px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(18px, 5vw, 28px);
    font-weight: 700;
    font-family: Trebuchet MS, Segoe UI, sans-serif;
    color: #ffffffe6;
    background: #00000061;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    transition: background .08s, border-color .08s;
    padding: 0;
}