body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff4ed;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.home-container{background-color:#fff4ed;justify-content:center;min-height:80vh;padding:2vw}.canvas-area,.home-container{align-items:center;display:flex}.canvas-area{flex-direction:column;gap:16px;width:75%}.video-wrapper{height:0;padding-bottom:56.25%;position:relative;width:100%}.video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.toolbar{align-items:center;background:#f7f7f7;border:1px solid #d6d6d6;border-radius:12px;box-shadow:0 4px 12px #00000026;display:flex;gap:16px;padding:12px 16px}.brush-section,.palette-section{align-items:center;display:flex;gap:10px}.divider{background:#d0d0d0;height:36px;width:1px}.color-btn{border:2px solid #ccc;border-radius:50%;cursor:pointer;height:34px;transition:.2s ease;width:34px}.color-btn:hover{transform:scale(1.08)}.color-btn.selected{border:2px solid #666;outline:2px solid #666;outline-offset:1px}.color-btn.red{background-color:red}.color-btn.green{background-color:green}.color-btn.blue{background-color:blue}.color-btn.yellow{background-color:#ff0}.color-btn.magenta{background-color:#f0f}.color-btn.cyan{background-color:cyan}.color-btn.black{background-color:#000}.color-btn.orange{background-color:orange}.color-btn.lime{background-color:lime}.brush-btn{align-items:center;background:#fff;border:1px solid #ccc;border-radius:10px;cursor:pointer;display:flex;height:46px;justify-content:center;transition:.2s ease;width:46px}.brush-btn:hover{background:#eee}.brush-btn.selected{background:#e6e6e6;border:2px solid #999}.brush-dot{background:#000;border-radius:50%;display:block}.small-dot{height:8px;width:8px}.medium-dot{height:14px;width:14px}.large-dot{height:20px;width:20px}.iot-status-mini{align-items:center;border-radius:8px;display:flex;font-size:.75rem;font-weight:600;gap:6px;padding:6px 12px;white-space:nowrap}.iot-status-mini .status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.iot-status-mini.connected{background-color:#d4edda;color:#155724}.iot-status-mini.connected .status-dot{background-color:#28a745}.iot-status-mini.disconnected{background-color:#f8d7da;color:#721c24}.iot-status-mini.disconnected .status-dot{background-color:#dc3545}.iot-status-mini.connecting{background-color:#fff3cd;color:#856404}.iot-status-mini.connecting .status-dot{animation:pulse 1.2s infinite;background-color:#ffc107}@media (max-width:768px){.canvas-area{width:95%}.toolbar{flex-wrap:wrap;gap:12px;justify-content:center;max-width:95%;padding:10px}.divider{display:none}.color-btn{height:30px;width:30px}.brush-btn{height:40px;width:40px}.small-dot{height:6px;width:6px}.medium-dot{height:10px;width:10px}.large-dot{height:16px;width:16px}}.about-container{background-color:#fff4ed;display:flex;flex-wrap:wrap;padding:2vw}.left,.right{width:50%}@media (max-width:600px){.about-container{flex-direction:column;padding:4vw}.left,.right{width:100%}}.data-container{background-color:#fff4ed;min-height:100vh;padding:1.5vw 2.5vw}.data-container h1{color:#b57757;font-size:1.5rem;margin-bottom:.5rem}.iot-status{align-items:center;border-radius:6px;display:flex;font-size:.75rem;font-weight:600;gap:8px;margin-bottom:.5rem;padding:6px 12px;width:-webkit-fit-content;width:fit-content}.iot-status.connected{background-color:#d4edda;color:#155724}.iot-status.disconnected{background-color:#f8d7da;color:#721c24}.iot-status.connecting{background-color:#fff3cd;color:#856404}.status-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.iot-status.connected .status-dot{background-color:#28a745}.iot-status.disconnected .status-dot{background-color:#dc3545}.iot-status.connecting .status-dot{animation:pulse 1.2s infinite;background-color:#ffc107}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.iot-error{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;font-size:.9rem;margin-bottom:1.5rem;padding:12px 16px}.request-log-title{margin-top:.5rem}.request-log-list{display:flex;flex-direction:row;gap:.75rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:.25rem}.request-card{background:#fff;border:2px solid #e8c5af;border-radius:8px;box-shadow:0 2px 8px #0000000f;flex-shrink:0;min-width:180px;padding:.75rem}.request-card-time{color:#b57757;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.request-card-body{display:flex;flex-direction:column;gap:.35rem}.request-card-field{align-items:center;background:#fdf6f0;border-radius:6px;display:flex;justify-content:space-between;padding:.35rem .5rem}.request-card-label{color:#b57757;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.request-card-value{align-items:center;color:#333;display:flex;font-size:.85rem;font-weight:700;gap:4px}.request-card-pre{background:#fdf6f0;border-radius:6px;color:#333;font-size:.78rem;margin:0;padding:.5rem;white-space:pre-wrap;word-break:break-word}.color-swatch{border:1px solid #ccc;border-radius:50%;display:inline-block;height:10px;width:10px}.data-grid{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.device-section{background:#fff;border:2px solid #e8c5af;border-radius:8px;box-shadow:0 2px 8px #0000000f;padding:.75rem}.section-title{color:#b57757;font-size:1.2rem;font-weight:700;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.data-content{grid-gap:.5rem;display:grid;gap:.5rem}.data-display{align-items:center;background:#fdf6f0;border-radius:6px;display:flex;flex-direction:column;gap:.2rem;padding:.5rem}.data-label{color:#b57757;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.data-value{color:#333;font-family:Courier New,monospace;font-size:2rem;font-weight:700;line-height:1}.data-unit{color:#666;font-size:1rem;margin-left:.3rem}.vector-display{background:#fff9f5;border:1px solid #e8c5af;border-radius:6px;padding:.5rem}.vector-label{color:#b57757;font-size:.9rem;font-weight:600;margin:0 0 .25rem;text-align:center}.vector-description{color:#666;font-size:.65rem;font-style:italic;line-height:1.2;margin:0 0 .35rem;text-align:center}.vector-grid{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:repeat(3,1fr)}.quaternion-display{background:#fff9f5;border:1px solid #e8c5af;border-radius:6px;padding:.5rem}.quaternion-label{color:#b57757;font-size:.9rem;font-weight:600;margin:0 0 .25rem;text-align:center}.quaternion-description{color:#666;font-size:.65rem;font-style:italic;line-height:1.2;margin:0 0 .35rem;text-align:center}.quaternion-grid{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:repeat(2,1fr)}.button-display,.confidence-display,.gesture-display{margin-top:1rem}.button-display .data-value{color:#28a745}.gesture-display .data-value{font-size:3rem;text-transform:capitalize}.landmarks-grid{grid-gap:1.5rem;display:grid;gap:1.5rem}.more-landmarks{background:#fdf6f0;border-radius:8px;color:#b57757;font-size:1.2rem;font-weight:600;padding:1.5rem;text-align:center}.no-specific-data{color:#666;padding:3rem;text-align:center}.no-specific-data p{font-size:1.5rem;margin-bottom:2rem}.raw-topics{background:#fdf6f0;border-radius:8px;display:inline-block;padding:1.5rem;text-align:left}.raw-topics h3{color:#b57757;margin-bottom:1rem}.raw-topics ul{list-style:none;padding:0}.raw-topics li{background:#fff;border-radius:4px;font-family:monospace;margin-bottom:.5rem;padding:.5rem}.no-data{color:#aaa;font-size:1.2rem;font-style:italic;padding:3rem;text-align:center}.config-note{background:#fdf6f0;border-left:4px solid #b57757;border-radius:4px;color:#555;font-size:.88rem;line-height:1.6;margin-top:2rem;padding:14px 18px}.config-note code{background:#ffe0cc;border-radius:3px;font-family:monospace;padding:1px 5px}@media (max-width:900px){.data-value{font-size:2.75rem}.section-title{font-size:1.4rem}.quaternion-label,.vector-label{font-size:1.1rem}.quaternion-description,.vector-description{font-size:.8rem}.data-label{font-size:.9rem}}@media (max-width:600px){.data-container{padding:3vw}.data-container h1{font-size:1.5rem}.data-value{font-size:2.25rem}.section-title{font-size:1.2rem}.quaternion-label,.vector-label{font-size:1rem}.quaternion-description,.vector-description{font-size:.75rem}.quaternion-grid,.vector-grid{grid-template-columns:1fr}.device-section{padding:1rem}.data-display{padding:.75rem}}.project-container{background-color:#fff4ed;margin:0 auto;max-width:700px;min-height:100vh;padding:3vw 4vw}.project-title{color:#b57757;font-size:3rem;margin:0 0 .5rem}.project-subtitle{color:#555;font-size:1.4rem;line-height:1.6;margin:0 0 2.5rem}.project-section{margin-bottom:2.5rem}.project-section h2{color:#b57757;font-size:2rem;letter-spacing:.05em;margin:0 0 1rem;text-transform:uppercase}.section-desc{color:#555;font-size:1.25rem;line-height:1.6;margin:0}.section-desc code{background:#ffe0cc;border-radius:4px;font-family:monospace;font-size:1.1rem;padding:2px 6px}.gesture-cards{display:flex;flex-direction:column;gap:1rem}.gesture-card{align-items:center;background:#fff;border:2px solid #e8c5af;border-radius:10px;box-shadow:0 2px 8px #0000000f;display:flex;gap:1.25rem;padding:1.25rem 1.5rem}.gesture-icon{flex-shrink:0;font-size:3rem;text-align:center;width:60px}.gesture-card h3{color:#b57757;font-size:1.4rem;margin:0 0 .3rem}.gesture-card p{color:#555;font-size:1.15rem;line-height:1.5;margin:0}.draw-card{border-left:5px solid #28a745}.clear-card{border-left:5px solid #dc3545}.stop-card{border-left:5px solid #666}.arch-flow{align-items:center;display:flex;flex-direction:column;gap:0}.arch-card{background:#fff;border:2px solid #e8c5af;border-radius:10px;box-shadow:0 2px 8px #0000000f;padding:1.25rem 1.5rem;width:100%}.arch-card h3{color:#b57757;font-size:1.3rem;letter-spacing:.04em;margin:0 0 .4rem;text-transform:uppercase}.arch-card p{color:#555;font-size:1.15rem;line-height:1.5;margin:0}.highlight-card{background:#fff9f5;border-color:#b57757}.arch-arrow{color:#b57757;font-size:2rem;line-height:1;padding:.3rem 0}.data-flow-cards{display:flex;flex-direction:column;gap:1rem}.data-flow-card{background:#fff;border:2px solid #e8c5af;border-radius:10px;box-shadow:0 2px 8px #0000000f;padding:1.25rem 1.5rem}.data-flow-card h3{color:#b57757;font-size:1.2rem;letter-spacing:.04em;margin:0 0 .4rem;text-transform:uppercase}.data-flow-card p{color:#555;font-size:1.15rem;line-height:1.5;margin:0}.project-footer{border-top:1px solid #e8c5af;color:#b57757;font-size:1.1rem;margin-top:2rem;padding:2rem 0 1rem;text-align:center}.header{align-items:center;background-color:#e8c5af;background-image:url(https://www.transparenttextures.com/patterns/asfalt-light.png);padding:10px}.container{flex-wrap:wrap;gap:10px;justify-content:space-between}.container,.img-container{align-items:center;display:flex}.right-container{display:flex}.title{color:#b57757;padding-left:20px}.header-button{border-radius:10px;color:#fff;font-weight:800;margin:0;padding:10px 18px}.built-img{height:5.5vw;min-height:100px;width:auto}a{outline:none;text-decoration:none}.hamburger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:6px}.hamburger span{background-color:#b57757;border-radius:2px;display:block;height:3px;width:26px}@media (max-width:600px){.hamburger{display:flex}.right-container{align-items:flex-start;display:none;flex-direction:column;width:100%}.right-container.open{display:flex}.header-button{font-size:1rem;padding:10px 8px}.title{font-size:1.2rem}}.footer{background-color:#e8c5af;color:#fff;padding:1vw;text-align:center}.footer-icons{display:flex;gap:16px;justify-content:center;padding-bottom:8px}.footer-icons img{height:28px;width:28px}@media (max-width:600px){.footer{padding:4vw}.footer h1{font-size:1rem}}
/*# sourceMappingURL=main.6458bfea.css.map*/