:root{--panel-bg: rgba(10, 16, 28, .72);--text-primary: #eaf2ff;--text-secondary: #b7c6dd;--accent: #5ec8ff}*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;font-family:Pretendard,Noto Sans KR,sans-serif;color:var(--text-primary);background:radial-gradient(circle at 30% 20%,#040911,#010206 60%)}.app-shell{position:relative;width:100%;height:100%;isolation:isolate}.camera-preview,.hand-overlay,.scene-host{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.camera-preview{object-fit:cover;z-index:4;opacity:.12;transform:scaleX(-1);filter:saturate(.9) brightness(.86) contrast(1.04);mix-blend-mode:normal;pointer-events:none}.hand-overlay{z-index:6;pointer-events:none;transform:scaleX(-1)}.scene-host{z-index:2}.scene-host canvas{width:100%;height:100%;display:block}.camera-toggle-btn,.replay-tutorial-btn{position:absolute;width:44px;height:44px;border-radius:50%;background:#0a101c99;border:1px solid rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.camera-toggle-btn{top:24px;right:24px}.replay-tutorial-btn{bottom:24px;right:24px}.camera-toggle-btn:hover,.replay-tutorial-btn:hover{background:#5ec8ff33;border-color:#5ec8ff66;transform:scale(1.05)}.camera-toggle-btn svg{width:20px;height:20px}.gesture-panel{position:absolute;bottom:40px;left:50%;transform:translate(-50%);background:var(--panel-bg);border:1px solid rgba(255,255,255,.14);border-radius:40px;padding:16px 36px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;text-align:center;transition:all .3s cubic-bezier(.25,.8,.25,1);min-width:340px;box-shadow:0 4px 20px #0003}.gesture-status{margin:0;font-size:1.25rem;font-weight:600;background:linear-gradient(135deg,#fff,var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em}.gesture-desc{margin:6px 0 0;color:var(--text-secondary);font-size:.95rem}.gesture-panel.is-active{border-color:#5ec8ff94;box-shadow:0 0 24px #5ec8ff59}.gesture-panel.is-stopped{border-color:#ff646494;box-shadow:0 0 24px #ff646459}.panel-actions{display:grid;grid-template-columns:1fr;gap:8px}.panel-btn{border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--text-primary);border-radius:10px;padding:8px 11px;font-size:.9rem;cursor:pointer}.panel-btn:hover{border-color:var(--accent)}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center;z-index:40;background:#01040a73}.overlay.is-visible{display:grid}.overlay-card{width:min(720px,calc(100vw - 34px));background:#0a101cd9;border:1px solid rgba(94,200,255,.4);border-radius:20px;padding:24px 32px;box-shadow:0 8px 32px #0006,inset 0 0 20px #5ec8ff1a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:absolute;bottom:40px;left:50%;transform:translate(-50%) translateY(20px);opacity:0;transition:all .4s cubic-bezier(.2,.8,.2,1)}.overlay.is-visible .overlay-card{transform:translate(-50%) translateY(0);opacity:1}.overlay-card.is-centered{text-align:center}.overlay-card.is-centered .overlay-actions{justify-content:center}.overlay-title{margin:0 0 6px;font-size:1.4rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.overlay-description{margin:0 0 20px;color:var(--text-primary);line-height:1.6;font-size:1.1rem;white-space:pre-line}.overlay-description .highlight{color:#a8d8ff;font-weight:600}.overlay-actions{display:flex;gap:10px}@media(max-width:767px){.gesture-panel{bottom:30px;width:90%;min-width:auto;padding:16px 20px}}
