*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;background:#5a5a6e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root{width:100%;height:100%;position:relative}p{margin:0}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app-container{background:#5a5a6e;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}canvas{pointer-events:auto;display:block}.info-panel{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#000000b3;border:1px solid #ffffff1a;border-radius:8px;max-width:400px;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;position:absolute;top:20px;left:20px}.info-panel h1{margin:0 0 12px;font-size:24px;font-weight:600}.info-panel p{color:#aaa;margin:6px 0;font-size:14px}.controls-panel{bottom:max(24px, env(safe-area-inset-bottom));left:max(24px, env(safe-area-inset-left));right:max(24px, env(safe-area-inset-right));z-index:20;flex-direction:row;justify-content:space-between;align-items:center;display:flex;position:absolute}.throw-button{appearance:none;color:#f6f6f8;letter-spacing:.02em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #fff3;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;transition:transform .12s,background .2s,border-color .2s}.throw-button:hover{background:#ffffff24;border-color:#ffffff59}.throw-button:active{transform:translateY(1px)}.permission-banner{color:#fff;text-align:center;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000e6;border:1px solid #ffffff1a;border-radius:12px;max-width:300px;padding:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.permission-banner p{margin:0 0 16px;font-size:16px;font-weight:500}.permission-button{appearance:none;color:#f6f6f8;letter-spacing:.02em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#6496ff26;border:1px solid #6496ff66;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;transition:transform .12s,background .2s,border-color .2s}.permission-button:hover{background:#6496ff40;border-color:#6496ff99}.permission-button:active{transform:translateY(1px)}.shake-status{color:#8fdb8f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#0009;border:1px solid #8fdb8f4d;border-radius:6px;padding:8px 12px;font-size:12px;font-weight:500;position:absolute;top:20px;right:20px}.debug-panel{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:15;background:#000000d9;border:1px solid #ffffff1a;border-radius:8px;max-width:250px;padding:16px;font-family:monospace;font-size:12px;line-height:1.6;position:absolute;bottom:120px;left:24px}.debug-title{color:#6fa3ff;margin-bottom:12px;font-size:14px;font-weight:600}.debug-info{background:#0006;border-left:3px solid #6fa3ff;border-radius:6px;margin-bottom:12px;padding:12px}.debug-info strong{color:#8fdb8f}.debug-copy-button{appearance:none;color:#6fa3ff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#6fa3ff26;border:1px solid #6fa3ff66;border-radius:6px;width:100%;padding:8px 12px;font-size:11px;font-weight:600;transition:all .2s}.debug-copy-button:hover{background:#6fa3ff40;border-color:#6fa3ff99}@media (width<=768px){.controls-panel{bottom:max(12px, calc(env(safe-area-inset-bottom) + 12px));left:max(12px, calc(env(safe-area-inset-left) + 12px));right:max(12px, calc(env(safe-area-inset-right) + 12px));background:#00000080;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;justify-content:center;gap:12px;padding:12px}.throw-button{width:100%;padding:12px 16px;font-size:16px}.controls-panel>div{text-align:center;width:100%}.controls-panel p{margin:4px 0;font-size:14px}.info-panel{max-width:none;padding:16px;font-size:12px;top:60px;left:12px;right:12px}.info-panel h1{margin:0 0 8px;font-size:18px}.info-panel p{margin:4px 0;font-size:12px}.debug-panel{max-width:none;font-size:10px;bottom:200px;left:12px;right:12px}.shake-status{padding:6px 10px;font-size:11px;top:12px;right:12px}}
