*{margin:0;padding:0;box-sizing:border-box}body{font-family:Arial,sans-serif;background:linear-gradient(135deg,#1e3c72,#2a5298);overflow:hidden;height:100vh}#game-container{position:relative;width:100vw;height:100vh}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#040914eb;backdrop-filter:blur(6px);z-index:200;transition:opacity .4s ease}.loading-overlay__content{width:min(460px,80%);text-align:center;color:#f8fbff;display:flex;flex-direction:column;gap:14px}.loading-overlay__title{font-size:1.1rem;letter-spacing:.04em;text-transform:uppercase}.loading-overlay__progress{position:relative;width:min(280px,80vw);margin:0 auto}.loading-overlay__progress--images{display:inline-block}.loading-overlay__progress-image{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.loading-overlay__progress-image--foreground{position:absolute;inset:0;clip-path:inset(0 100% 0 0);transition:clip-path .4s ease;will-change:clip-path}.loading-overlay__label{font-variant-numeric:tabular-nums;font-size:.95rem;opacity:.85}.loading-overlay--hidden{opacity:0;pointer-events:none}#output-canvas{position:absolute;top:10px;right:10px;left:auto;width:160px;height:120px;border:2px solid #fff;border-radius:8px;z-index:10}.camera-preview--hidden{opacity:0;pointer-events:none}#game-canvas{position:absolute;top:0;left:0;width:100%;height:100%}#ui{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:100;text-align:center;pointer-events:none}.ui--hidden{opacity:0;pointer-events:none;visibility:hidden}#score{font-size:2rem;font-weight:700;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.5);margin-bottom:10px;pointer-events:none}#status{font-size:1.2rem;color:#fff;background:#0009;padding:10px 20px;border-radius:25px;backdrop-filter:blur(10px)}.score--hidden{opacity:0;pointer-events:none;visibility:hidden}.aiming{background:#ffd700cc!important;color:#000!important}.validated{background:#00ff00e6!important;color:#000!important;animation:validatedPulse .5s ease-in-out}.throwing{background:#f00c!important;color:#fff!important}@keyframes validatedPulse{0%{transform:scale(1);box-shadow:0 0 20px #0f09}50%{transform:scale(1.05);box-shadow:0 0 30px #0f0c}to{transform:scale(1);box-shadow:0 0 20px #0f09}}.message-info{background:#4682ffcc!important;color:#fff!important;border:1px solid rgba(70,130,255,.5)}.message-success{background:#22c55ee6!important;color:#fff!important;border:1px solid rgba(34,197,94,.5);box-shadow:0 0 20px #22c55e4d}.message-warning{background:#fbbf24e6!important;color:#000!important;border:1px solid rgba(251,191,36,.5);box-shadow:0 0 20px #fbbf244d}.message-error{background:#ef4444e6!important;color:#fff!important;border:1px solid rgba(239,68,68,.5);box-shadow:0 0 25px #ef444466}.message-immediate{transform:scale(1.02)!important;border-width:2px!important;font-weight:600!important}.message-pulse{animation:messagePulse .6s ease-in-out}@keyframes messagePulse{0%,to{transform:scale(1)}25%{transform:scale(1.03)}50%{transform:scale(1.05)}75%{transform:scale(1.03)}}#debug{margin-top:10px;font-size:.9rem;color:#ccc}#debug-panel{position:fixed;top:10px;right:10px;background:#000000e6;color:#fff;padding:15px;font-family:Courier New,monospace;font-size:12px;border-radius:8px;border:1px solid #444;backdrop-filter:blur(5px);z-index:1000;min-width:200px}#debug-panel>div{margin-bottom:5px;display:flex;justify-content:space-between;align-items:center}#debug-panel label{display:flex;align-items:center;cursor:pointer;user-select:none}#debug-panel input[type=checkbox]{margin-right:8px;transform:scale(1.2)}#debug-panel input[type=checkbox]:checked{accent-color:#4CAF50}#debug-panel span{color:#4caf50;font-weight:700}#debug-panel .separator{height:1px;background:#444;margin:8px 0}.debug-pane-container{position:fixed;top:16px;right:16px;z-index:1100;pointer-events:all;max-width:320px}.calibration-buttons{display:flex;flex-direction:column;gap:5px}.calibration-buttons button{padding:8px 10px;background:#2a2a2a;border:1px solid #555;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;transition:background-color .2s}.calibration-buttons button:hover{background:#3a3a3a}.calibration-buttons button:active{background:#1a1a1a}.graph-indicators{font-family:Courier New,monospace}.graph-indicators canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}@media (max-width: 768px){.graph-indicators{bottom:60px!important;left:5px!important;transform:scale(.8);transform-origin:left bottom}.graph-indicators>div{padding:6px;margin-bottom:4px}.graph-indicators canvas{width:160px!important;height:50px!important}}@media (max-width: 480px){.graph-indicators{transform:scale(.7);bottom:40px!important}.graph-indicators>div>div:first-child{font-size:9px!important}.graph-indicators>div>div:last-child{font-size:8px!important}}.aiming-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0f1cb8;backdrop-filter:blur(8px);z-index:200;transition:opacity .25s ease}.aiming-overlay--hidden{opacity:0;pointer-events:none}.aiming-overlay__content{background:#121e38f2;border-radius:20px;padding:32px 36px;max-width:740px;text-align:center;color:#fff;box-shadow:0 30px 60px #00000073;border:1px solid rgba(255,255,255,.1)}.aiming-overlay__content h2{font-size:1.8rem;margin-bottom:10px}.aiming-overlay__content p{font-size:1rem;opacity:.8;margin-bottom:24px}.aiming-overlay__options{display:flex;gap:16px;justify-content:center}.aiming-overlay__button{background:linear-gradient(135deg,#1fddff,#1a65ff);color:#fff;border:none;padding:14px 22px;font-size:1rem;border-radius:12px;cursor:pointer;min-width:150px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.aiming-overlay__button:hover{transform:translateY(-2px);box-shadow:0 12px 25px #1a65ff66}.aiming-overlay__button:active{transform:translateY(1px);box-shadow:0 6px 12px #1a65ff59}.aiming-overlay__button--secondary{background:linear-gradient(135deg,#ffb347,#ff6f61)}.back-button{position:absolute;top:20px;left:20px;padding:10px 18px;border-radius:999px;border:none;background:#0009;color:#fff;font-size:.95rem;letter-spacing:.03em;cursor:pointer;z-index:210;transition:background-color .2s ease,transform .15s ease,box-shadow .2s ease;backdrop-filter:blur(6px)}.back-button:hover{background:#000000bf;transform:translateY(-1px);box-shadow:0 12px 24px #00000040}.back-button:active{transform:translateY(1px)}.back-button--hidden{opacity:0;pointer-events:none}body.has-custom-cursor{cursor:none}body.has-custom-cursor *,body.has-custom-cursor *:before,body.has-custom-cursor *:after{cursor:inherit!important}#cursor-overlay{position:fixed;inset:0;pointer-events:none;z-index:9999;mix-blend-mode:normal;--cursor-ring-size: 32px;--cursor-icon-size: 0px;--cursor-point-size: 6px}.cursor-overlay__point-wrapper,.cursor-overlay__ring-wrapper,.cursor-overlay__icon{position:absolute;top:0;left:0;will-change:transform}.cursor-overlay__point{width:var(--cursor-point-size, 6px);height:var(--cursor-point-size, 6px);border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 8px #fff9;transition:opacity .18s ease,width .2s cubic-bezier(.25,1,.5,1),height .2s cubic-bezier(.25,1,.5,1)}.cursor-overlay__ring{width:var(--cursor-ring-size, 32px);height:var(--cursor-ring-size, 32px);border-radius:50%;border:2px solid rgba(255,255,255,.45);transform:translate(-50%,-50%);transition:width .24s cubic-bezier(.25,1,.5,1),height .24s cubic-bezier(.25,1,.5,1),border-color .2s ease,box-shadow .2s ease;box-shadow:0 0 16px #ffffff40}.cursor-overlay--three-hover .cursor-overlay__ring{border-color:#ffc649e6;box-shadow:0 0 20px #ffc64973}.cursor-overlay--secondary .cursor-overlay__ring{border-color:#76cfffd1;box-shadow:0 0 20px #76cfff66}.cursor-overlay__icon{width:var(--cursor-icon-size, 0px);height:var(--cursor-icon-size, 0px);opacity:0;transition:opacity .18s ease,width .24s cubic-bezier(.25,1,.5,1),height .24s cubic-bezier(.25,1,.5,1);color:#fff;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}.cursor-overlay__icon-inner{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.cursor-overlay__icon-inner svg{display:block;width:100%;height:100%}.cursor-overlay__icon--visible{opacity:1}.cursor-overlay--icon-active .cursor-overlay__point{opacity:0;transform:translate(-50%,-50%);--cursor-point-size: 0px}.cursor-overlay--icon-active .cursor-overlay__ring{border-color:#ffc649f2;box-shadow:0 0 24px #ffc64980}.cursor-overlay--secondary.cursor-overlay--icon-active .cursor-overlay__ring{border-color:#76cffff2;box-shadow:0 0 26px #76cfff80}.cursor-overlay--secondary .cursor-overlay__icon{color:#d8f0ff}@media (pointer: coarse){body.has-custom-cursor{cursor:auto}body.has-custom-cursor *,body.has-custom-cursor *:before,body.has-custom-cursor *:after{cursor:auto!important}#cursor-overlay{display:none}}
