:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;justify-content:center;justify-self:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#0e0e0e}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media (prefers-color-scheme: dark){:root{color:#213547;background-color:#0e0e0e}a:hover{color:#747bff}button{background-color:#f9f9f9}}.App{text-align:center}.App-header{padding:20px;color:#000;display:flex;flex-direction:column;align-items:center}.api-section{margin:20px 0;padding:20px;border:1px solid #444;border-radius:8px;max-width:600px;width:100%}.api-section h2{margin-top:0}.api-section button{background-color:#00c8ff;color:#282c34;border:none;cursor:pointer;font-size:16px;margin:10px;transition:background-color .3s}.api-section button:hover:not(:disabled){background-color:#0089af}.api-section button:disabled{background-color:#666;cursor:not-allowed}.test-results{margin-top:20px;text-align:left}.test-results pre{padding:10px;border-radius:4px;overflow:auto;max-height:200px;font-size:12px}.webcam-section{max-width:1200px;width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column}.status-info{margin:15px 0;padding:15px;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;text-align:center}.status-info p{margin:5px 0;padding:8px 12px}.video-container{position:relative;display:inline-block;width:90vw;height:50.025vw;margin:0;border-radius:20px;overflow:hidden}.game-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.input_video{position:absolute;top:0;left:0;width:100%;height:100%;transform:scaleX(-1);opacity:.2;background-color:#000;z-index:1;pointer-events:none;object-fit:fill}.output_canvas{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.2;z-index:1;pointer-events:none}.video-container:before{content:"Loading Camera...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:18px;background-color:#000c;padding:20px;border-radius:8px}.video-container.ready:before{display:none}.video-container.error:before{content:"Please Turn On Camera Permission!"}.mobile-page{position:relative;display:inline-block;width:90vw;margin:0;color:#fff;font-size:1rem;background-color:#000c;padding:20px;border-radius:8px}.hand-data{margin-top:30px;text-align:left;border-radius:8px;padding:20px}.hand-data h3{margin-bottom:20px;text-align:center;font-size:1.2em}.landmarks-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.hand-info{padding:20px;border-radius:8px;border:1px solid #444;box-shadow:0 4px 16px #0003;transition:transform .2s,box-shadow .2s}.hand-info:hover{transform:translateY(-2px)}.hand-info h4{margin-top:0;margin-bottom:15px;font-size:1.1em;border-bottom:2px solid;padding-bottom:8px}.hand-info p{margin:8px 0;padding:6px 10px;border-radius:4px;font-family:Courier New,monospace;font-size:13px}.hand-info details{margin-top:15px}.hand-info summary{cursor:pointer;padding:8px 0;font-weight:700;transition:color .2s}.hand-info summary:hover{color:#ff2e2e}.hand-info pre{background-color:#000;color:#0f0;padding:12px;border-radius:4px;overflow:auto;max-height:200px;font-size:11px;margin-top:8px;border:1px solid #333}.status-info p:nth-child(1){border-left-color:#4caf50}.status-info p:nth-child(2){border-left-color:#2196f3}.status-info p:nth-child(3){border-left-color:#ff9800}.status-info p:nth-child(4){border-left-color:#9c27b0}@media (max-width: 768px){.api-section,.webcam-section{margin:10px;padding:15px}.status-info{grid-template-columns:1fr;text-align:center}.landmarks-info{grid-template-columns:1fr}.hand-info{min-width:100%}.input_video{max-width:100%}}@media (max-width: 480px){.video-container{margin:10px 0}.hand-data,.hand-info{padding:15px}}
