.camera-view{position:relative;width:100%;max-width:640px;aspect-ratio:4/3;background:var(--color-bg-dark, #1c1c1e);border-radius:var(--ios-radius, 20px);overflow:hidden;box-shadow:0 8px 24px var(--color-shadow, rgba(0, 0, 0, .08)),0 2px 8px #0000000d;border:.5px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.camera-video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transform:scaleX(-1);transition:filter .3s ease-in-out}.camera-video.active{opacity:1}.camera-video.blurred{filter:blur(20px);-webkit-filter:blur(20px)}.camera-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#2a2a2a;color:#ccc;font-size:16px;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;padding:0 16px;text-align:center;-webkit-hyphens:auto;hyphens:auto}.countdown-timer{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;text-align:center;pointer-events:none;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);max-width:100vw;padding:0 20px}.countdown-number{font-size:120px;font-weight:700;color:var(--color-text-primary, #000);text-shadow:0 4px 12px rgba(0,0,0,.15),0 2px 6px rgba(0,0,0,.1);animation:pulse .5s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;line-height:1;letter-spacing:-.03em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.countdown-label{font-size:20px;color:var(--color-text-secondary, #3c3c43);margin-top:20px;font-weight:600;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.countdown-instruction{margin-top:24px;font-size:18px;color:var(--color-text-primary, #000);font-weight:600;text-align:center;max-width:400px;line-height:1.5;padding:0 20px;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;width:100%;-webkit-hyphens:auto;hyphens:auto}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (max-width: 768px){.countdown-number{font-size:72px}.countdown-label{font-size:16px;margin-top:16px}.countdown-instruction{font-size:16px;padding:0 16px;margin-top:20px}}.score-board{display:flex;align-items:center;gap:28px;padding:20px 36px;background:#ffffffe6;border-radius:var(--ios-radius, 20px);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 8px 24px var(--color-shadow, rgba(0, 0, 0, .08)),0 2px 8px #0000000d;border:.5px solid var(--color-border, rgba(0, 0, 0, .1));word-wrap:break-word;overflow-wrap:break-word;max-width:100%;overflow:visible;min-height:auto;height:auto;flex-wrap:wrap}.score-item{display:flex;flex-direction:column;align-items:center;gap:8px}.score-label{font-size:13px;color:var(--color-text-tertiary, #8e8e93);font-weight:600;text-transform:uppercase;letter-spacing:.5px;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.score-value{font-size:48px;font-weight:700;color:var(--color-text-primary, #000);line-height:1;letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.score-separator{font-size:32px;color:#666;font-weight:300}@media (max-width: 768px){.score-board{padding:10px 18px;gap:12px}.score-label{font-size:11px}.score-value{font-size:32px}.score-separator{font-size:20px}}.round-status{text-align:center;padding:20px;background:#ffffffe6;border-radius:var(--ios-radius, 20px);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 4px 16px var(--color-shadow, rgba(0, 0, 0, .08)),0 1px 4px #0000000d;border:.5px solid var(--color-border, rgba(0, 0, 0, .1));word-wrap:break-word;overflow-wrap:break-word;max-width:100%;overflow:visible;min-height:auto;height:auto}.status-text{font-size:17px;color:var(--color-text-primary, #000);font-weight:600;margin-bottom:16px;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.choices{display:flex;justify-content:center;gap:24px;margin-top:12px}.choice-badge{font-size:48px;width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary, rgba(242, 242, 247, .5));border-radius:50%;border:2px solid var(--color-border, rgba(0, 0, 0, .1));animation:fadeIn .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px var(--color-shadow, rgba(0, 0, 0, .08)),0 1px 4px #0000000d}.choice-badge.player1{border-color:var(--color-accent-blue, #007aff);box-shadow:0 4px 16px #007aff33,0 2px 8px #0000001a}.choice-badge.player2{border-color:var(--color-accent-green, #34c759);box-shadow:0 4px 16px #34c75933,0 2px 8px #0000001a}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.round-status{padding:16px}.status-text{font-size:14px;margin-bottom:12px}.choices{gap:16px}.choice-badge{font-size:32px;width:52px;height:52px}}.winner-announcement-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease-in}.winner-announcement{text-align:center;padding:48px 40px;background:#ffffffe6;border-radius:var(--ios-radius-large, 28px);border:.5px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:0 20px 60px var(--color-shadow-strong, rgba(0, 0, 0, .3)),0 8px 24px #00000026;max-width:500px;width:90%;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);word-wrap:break-word;overflow-wrap:break-word;overflow:visible;-webkit-hyphens:auto;hyphens:auto;min-height:auto;height:auto}.winner-title{font-size:48px;font-weight:700;margin-bottom:16px;animation:scaleIn .5s cubic-bezier(.4,0,.2,1);letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.winner-title.win{color:var(--color-accent-green, #34c759)}.winner-title.lose{color:var(--color-accent-red, #ff3b30)}.winner-subtitle{font-size:20px;color:var(--color-text-secondary, #3c3c43);margin-bottom:32px;font-weight:500;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.restart-button{padding:18px 36px;font-size:17px;font-weight:600;color:#fff;background:var(--color-accent-blue, #007aff);border:none;border-radius:var(--ios-radius, 20px);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #007aff33,0 1px 3px #0000001a;letter-spacing:-.01em;min-height:50px}.restart-button:hover{background:var(--color-accent-blue, #007aff);transform:scale(1.02);box-shadow:0 4px 16px #007aff4d,0 2px 6px #00000026}.restart-button:active{transform:scale(.98)}.auto-close-countdown{margin-top:16px;font-size:14px;color:var(--color-text-secondary);font-weight:500}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.winner-announcement{padding:32px 24px}.winner-title{font-size:36px}.winner-subtitle{font-size:20px}}.motion-warning{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1500;text-align:center;padding:36px 48px;background:#ffffffe6;border-radius:var(--ios-radius-large, 28px);box-shadow:0 20px 60px var(--color-shadow-strong, rgba(0, 0, 0, .3)),0 8px 24px #fc03;animation:shake .5s cubic-bezier(.4,0,.2,1),fadeIn .3s cubic-bezier(.4,0,.2,1);pointer-events:none;border:.5px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);word-wrap:break-word;overflow-wrap:break-word;max-width:90vw;overflow:visible;-webkit-hyphens:auto;hyphens:auto;min-height:auto;height:auto}.warning-icon{font-size:64px;margin-bottom:16px;animation:bounce 1s ease-in-out infinite}.warning-text{font-size:28px;font-weight:700;color:var(--color-text-primary, #000);margin-bottom:12px;letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.warning-subtext{font-size:17px;color:var(--color-text-secondary, #3c3c43);font-weight:500;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}@keyframes shake{0%,to{transform:translate(-50%,-50%) rotate(0)}25%{transform:translate(-50%,-50%) rotate(-5deg)}75%{transform:translate(-50%,-50%) rotate(5deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (max-width: 768px){.motion-warning{padding:18px 24px}.warning-icon{font-size:40px}.warning-text{font-size:20px}}.connection-status{position:fixed;top:111px;right:20px;padding:8px 14px;background:#ffffffe6;border-radius:var(--ios-radius-small, 12px);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);z-index:50;font-size:11px;box-shadow:0 4px 12px var(--color-shadow, rgba(0, 0, 0, .08)),0 1px 4px #0000000d;border:.5px solid var(--color-border, rgba(0, 0, 0, .1));max-width:320px;width:auto;min-width:220px;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;overflow:visible;-webkit-hyphens:auto;hyphens:auto;min-height:auto;height:auto}.status-indicator{display:flex;align-items:center;gap:6px;margin-bottom:4px;width:100%;flex-wrap:nowrap;padding-left:25px;margin-left:0}.status-dot{width:6px;height:6px;border-radius:50%;animation:pulse 2s ease-in-out infinite;flex-shrink:0}.status-dot.connected{background:#64ffaa;box-shadow:0 0 8px #64ffaa99}.status-dot.disconnected{background:#ff6b6b;box-shadow:0 0 8px #ff6b6b99}.status-text{color:var(--color-text-primary, #000);font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:visible;flex-shrink:0;min-width:-moz-fit-content;min-width:fit-content}.room-info{display:flex;align-items:flex-start;gap:4px;font-size:10px;color:var(--color-text-tertiary, #8e8e93);margin-top:2px;flex-wrap:wrap;word-break:break-word;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.room-label{font-weight:500}.room-id{font-family:SF Mono,Monaco,Courier New,monospace;color:var(--color-accent-blue, #007aff);font-weight:600;letter-spacing:-.01em;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;max-width:100%;display:inline-block;-webkit-hyphens:auto;hyphens:auto}.latency-info{border-top:1px solid var(--color-border, rgba(0, 0, 0, .1));padding-top:4px;margin-top:4px}.latency-info>div{display:flex;align-items:center;gap:4px;flex-wrap:wrap;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.connection-status{top:60px;right:8px;padding:6px 10px;font-size:10px;max-width:240px;min-width:180px}.status-indicator{gap:4px;padding-left:20px}.status-dot{width:5px;height:5px}.status-text{font-size:10px}.room-info{font-size:9px}.room-id{font-size:8px}.latency-info{font-size:8px;margin-top:3px;padding-top:3px}}.preparation-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-in;pointer-events:all}.preparation-content{text-align:center;padding:48px 40px;background:#ffffffe6;border-radius:var(--ios-radius-large, 28px);box-shadow:0 20px 60px var(--color-shadow-strong, rgba(0, 0, 0, .3)),0 8px 24px #00000026;max-width:500px;width:90%;animation:scaleIn .3s cubic-bezier(.4,0,.2,1);border:.5px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto}.preparation-title{font-size:32px;font-weight:700;margin-bottom:24px;color:var(--color-text-primary, #000);letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.preparation-timer{margin-bottom:32px}.timer-number{font-size:96px;font-weight:700;color:var(--color-accent-blue, #007aff);line-height:1;margin-bottom:8px;letter-spacing:-.03em;animation:pulse 1s cubic-bezier(.4,0,.2,1) infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.timer-label{font-size:18px;color:var(--color-text-secondary);font-weight:500}.preparation-progress{width:100%;height:8px;background:#0000001a;border-radius:4px;margin-bottom:32px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--color-accent-blue),var(--color-accent-green));border-radius:4px;transition:width 1s linear;box-shadow:0 0 10px #64c8ff80}.preparation-status{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.status-item{display:flex;align-items:center;justify-content:center;gap:12px}.status-indicator{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;transition:all .3s ease}.status-indicator.ready{background:var(--color-accent-green);color:#fff;box-shadow:0 0 12px #64ffaa80}.status-indicator.not-ready{background:#0003;color:var(--color-text-secondary);border:2px solid var(--color-text-secondary)}.status-text{font-size:16px;font-weight:500;color:var(--color-text-primary);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.ready-button{padding:18px 48px;font-size:17px;font-weight:600;color:#fff;background:var(--color-accent-green, #34c759);border:none;border-radius:var(--ios-radius, 20px);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #34c75933,0 1px 3px #0000001a;margin:24px auto 16px;width:100%;max-width:400px;position:relative;overflow:hidden;display:block;z-index:1;min-height:50px;letter-spacing:-.01em}.ready-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.ready-button:hover:before{left:100%}.ready-button:hover:not(:disabled){background:var(--color-accent-green, #34c759);transform:scale(1.02);box-shadow:0 4px 16px #34c7594d,0 2px 6px #00000026}.ready-button:active:not(:disabled){transform:scale(.98)}.ready-button:disabled{cursor:not-allowed;opacity:.7}.ready-button.ready-state{background:var(--color-accent-blue, #007aff);box-shadow:0 2px 8px #007aff33,0 1px 3px #0000001a}.ready-button.ready-state:hover:not(:disabled){background:var(--color-accent-blue, #007aff);transform:scale(1.02);box-shadow:0 4px 16px #007aff4d,0 2px 6px #00000026}.ready-message{padding:16px;background:var(--color-bg-primary, rgba(242, 242, 247, .5));border-radius:var(--ios-radius-small, 12px);color:var(--color-accent-green, #34c759);font-weight:500;margin-bottom:16px;border:.5px solid var(--color-border, rgba(0, 0, 0, .1))}.preparation-info{margin-top:16px}.info-text{font-size:14px;color:var(--color-text-secondary);line-height:1.5}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.preparation-content{padding:32px 24px}.preparation-title{font-size:24px}.timer-number{font-size:72px}.ready-button{padding:14px 32px;font-size:18px}}.ready-check-compact{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:100;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ready-compact-content{background:#ffffffe6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:var(--ios-radius, 20px);padding:10px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 24px var(--color-shadow, rgba(0, 0, 0, .08)),0 2px 8px #0000000d;word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto;flex-wrap:wrap}.compact-timer{font-size:17px;font-weight:700;color:var(--color-accent-blue, #007aff);min-width:36px;text-align:center;letter-spacing:-.01em}.compact-status{display:flex;gap:6px;align-items:center;padding:0 8px;border-left:1px solid rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.1)}.status-dot{font-size:20px;color:#ffffff4d;transition:all .3s ease;cursor:help}.status-dot.ready{color:var(--color-accent-green);text-shadow:0 0 8px rgba(100,255,170,.8);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.compact-ready-btn{padding:10px 22px;font-size:15px;font-weight:600;color:#fff;background:var(--color-accent-green, #34c759);border:none;border-radius:var(--ios-radius-small, 12px);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #34c75933,0 1px 3px #0000001a;white-space:nowrap;letter-spacing:-.01em}.compact-ready-btn:hover:not(:disabled){background:var(--color-accent-green, #34c759);transform:scale(1.02);box-shadow:0 4px 16px #34c7594d,0 2px 6px #00000026}.compact-ready-btn:active:not(:disabled){transform:scale(.98)}.compact-ready-btn:disabled{cursor:not-allowed;opacity:.8}.compact-ready-btn.ready-state{background:var(--color-accent-blue);box-shadow:0 2px 12px #64c8ff66}.compact-ready-btn.ready-state:hover{background:var(--color-accent-blue);transform:none}@media (max-width: 768px){.ready-check-compact{top:8px}.ready-compact-content{padding:6px 12px;gap:10px}.compact-timer{font-size:16px;min-width:32px}.status-dot{font-size:16px}.compact-ready-btn{padding:6px 16px;font-size:13px}}.page-title{font-size:48px;font-weight:700;margin-bottom:32px;text-align:center;color:var(--color-text-primary, #000);letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.page-section h2{font-size:28px;font-weight:600;margin-bottom:16px;color:var(--color-text-primary, #000);letter-spacing:-.01em}.page-section p{font-size:17px;line-height:1.6;color:var(--color-text-secondary, #3c3c43);margin-bottom:16px;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.feature-list{list-style:none;padding:0}.feature-list li{font-size:16px;line-height:1.8;padding:8px 0 8px 24px;position:relative;color:var(--color-text-secondary, #666)}.feature-list li:before{content:"✓";position:absolute;left:0;color:#64ffaa;font-weight:700}.page-content{max-width:800px;margin:0 auto;padding:24px;background:#ffffffe6;border-radius:var(--ios-radius, 20px);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:.5px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:0 4px 16px var(--color-shadow, rgba(0, 0, 0, .08)),0 1px 4px #0000000d;word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto}.page-title{font-size:48px;font-weight:700;margin-bottom:16px;text-align:center;color:var(--color-text-primary, #000);letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.page-updated{text-align:center;color:var(--color-text-secondary, #999);font-size:14px;margin-bottom:32px}.page-section p{font-size:16px;line-height:1.6;color:var(--color-text-secondary, #666);margin-bottom:16px;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.policy-list{list-style:none;padding:0;margin-top:16px}.policy-list li{font-size:16px;line-height:1.8;padding:8px 0 8px 24px;position:relative;color:var(--color-text-secondary, #666)}.policy-list li:before{content:"•";position:absolute;left:0;color:#64c8ff;font-weight:700;font-size:20px}.page-container{min-height:100vh;padding:80px 20px 40px;background:var(--color-bg-primary, #ffffff);color:var(--color-text-primary, #1a1a1a);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);word-wrap:break-word;overflow-wrap:break-word;max-width:100vw;overflow-x:hidden}.page-content{max-width:800px;margin:0 auto}.page-title{font-size:48px;font-weight:700;margin-bottom:32px;text-align:center;color:var(--color-text-primary, #000);letter-spacing:-.02em}.page-section{margin-bottom:40px}.page-section h2{font-size:28px;font-weight:600;margin-bottom:16px;color:var(--color-text-primary, #1a1a1a)}.page-section p{font-size:16px;line-height:1.6;color:var(--color-text-secondary, #666);margin-bottom:16px}.contact-intro{font-size:18px;text-align:center;margin-bottom:32px}.contact-links{display:flex;flex-direction:column;gap:16px;margin-top:24px}.contact-link{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#ffffffe6;border-radius:var(--ios-radius-small, 12px);text-decoration:none;color:var(--color-text-primary, #000);transition:all .25s cubic-bezier(.4,0,.2,1);border:.5px solid var(--color-border, rgba(0, 0, 0, .1));box-shadow:0 2px 8px var(--color-shadow, rgba(0, 0, 0, .08)),0 1px 3px #0000000d;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto;flex-wrap:wrap}.contact-link:hover{background:var(--color-bg-tertiary, rgba(249, 249, 249, .95));border-color:var(--color-accent-blue, #007aff);transform:scale(1.02);box-shadow:0 4px 12px var(--color-shadow-strong, rgba(0, 0, 0, .15)),0 2px 6px #0000001a}.contact-icon{font-size:24px}.page-footer{margin-top:48px;text-align:center}.back-link{display:inline-block;padding:14px 28px;background:var(--color-accent-blue, #007aff);color:#fff;text-decoration:none;border-radius:var(--ios-radius, 20px);font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #007aff33,0 1px 3px #0000001a;letter-spacing:-.01em;min-height:48px}.back-link:hover{background:var(--color-accent-blue, #007aff);transform:scale(1.02);box-shadow:0 4px 16px #007aff4d,0 2px 6px #00000026}.article-container{width:100%;min-height:100vh;padding:40px 20px;background-color:var(--color-background);color:var(--color-text-primary);display:flex;justify-content:center}.article-content{max-width:800px;width:100%;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;box-shadow:0 8px 32px #0003;border:1px solid rgba(255,255,255,.1)}.article-header{text-align:center;margin-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:20px}.article-header h1{font-size:2.5rem;margin-bottom:16px;background:linear-gradient(135deg,#64c8ff,#64ffaa);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.article-meta{color:var(--color-text-secondary);font-size:.9rem;display:flex;justify-content:center;gap:10px}.article-body section{margin-bottom:40px}.article-body h2{font-size:1.8rem;color:#64c8ff;margin-bottom:20px;border-left:4px solid #64ffaa;padding-left:16px}.article-body h3{font-size:1.4rem;color:var(--color-text-primary);margin-top:24px;margin-bottom:16px}.article-body p{font-size:1.1rem;line-height:1.8;color:var(--color-text-secondary);margin-bottom:16px}.article-body ul{list-style-type:none;padding-left:0;margin-bottom:20px}.article-body ul li{position:relative;padding-left:24px;margin-bottom:12px;line-height:1.6;color:var(--color-text-secondary)}.article-body ul li:before{content:"•";color:#64ffaa;font-weight:700;position:absolute;left:0;font-size:1.2em}.article-body strong{color:var(--color-text-primary);font-weight:600}.cta-section{background:linear-gradient(135deg,#64c8ff1a,#64ffaa1a);padding:30px;border-radius:16px;text-align:center;margin-top:60px;border:1px solid rgba(100,200,255,.2)}.play-button{display:inline-block;margin-top:20px;padding:12px 32px;background:linear-gradient(135deg,#64c8ff,#64ffaa);color:#1a1a1a;text-decoration:none;font-weight:700;font-size:1.1rem;border-radius:30px;transition:transform .2s ease,box-shadow .2s ease}.play-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #64c8ff66}@media (max-width: 768px){.article-content{padding:24px}.article-header h1{font-size:2rem}.article-body h2{font-size:1.5rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg-primary: #f2f2f7;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f9f9f9;--color-bg-dark: #1c1c1e;--color-text-primary: #000000;--color-text-secondary: #3c3c43;--color-text-tertiary: #8e8e93;--color-text-light: #c7c7cc;--color-accent-blue: #007aff;--color-accent-green: #34c759;--color-accent-red: #ff3b30;--color-accent-yellow: #ffcc00;--color-border: #c6c6c8;--color-shadow: rgba(0, 0, 0, .08);--color-shadow-strong: rgba(0, 0, 0, .15);--ios-blur: blur(20px) saturate(180%);--ios-radius: 20px;--ios-radius-small: 12px;--ios-radius-large: 28px}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;overflow-x:hidden;font-feature-settings:"kern" 1;text-rendering:optimizeLegibility;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}*{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}p,span,div,h1,h2,h3,h4,h5,h6,a,button,label,input,textarea{word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}body,html,#root,.app-container{max-width:100vw;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}.app-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;min-height:100vh;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);max-width:100vw;overflow-x:hidden}.home-screen{width:100%;max-width:600px;text-align:center;padding:40px 20px}.home-title{font-size:48px;font-weight:700;margin-bottom:16px;color:var(--color-text-primary);text-shadow:2px 2px 4px var(--color-shadow);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.home-subtitle{font-size:18px;color:var(--color-text-secondary);margin-bottom:48px;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;-webkit-hyphens:auto;hyphens:auto}.home-actions{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.home-button{padding:18px 36px;font-size:17px;font-weight:600;color:#fff;background:var(--color-accent-blue);border:none;border-radius:var(--ios-radius);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #007aff33,0 1px 3px #0000001a;position:relative;overflow:hidden;min-height:50px;letter-spacing:-.01em}.home-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffff1a;opacity:0;transition:opacity .2s ease}.home-button:hover:before{opacity:1}.home-button:hover{background:var(--color-accent-blue);transform:scale(1.02);box-shadow:0 4px 16px #007aff4d,0 2px 6px #00000026}.home-button:active{transform:scale(.98);box-shadow:0 1px 4px #007aff33,0 0 2px #0000001a}.home-button.secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:0 2px 8px var(--color-shadow),0 1px 3px #0000000d;border:.5px solid var(--color-border)}.home-button.secondary:hover{background:var(--color-bg-tertiary);box-shadow:0 4px 16px var(--color-shadow-strong),0 2px 6px #0000001a}.join-form{display:flex;flex-direction:column;gap:16px;margin-top:32px;padding:28px;background:#ffffffe6;border-radius:var(--ios-radius);border:.5px solid var(--color-border);box-shadow:0 4px 16px var(--color-shadow),0 1px 4px #0000000d;backdrop-filter:var(--ios-blur);-webkit-backdrop-filter:var(--ios-blur);max-width:100%;word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto}.join-input{padding:14px 18px;font-size:17px;border:.5px solid var(--color-border);border-radius:var(--ios-radius-small);background:var(--color-bg-primary);color:var(--color-text-primary);transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:-.01em}.join-input:focus{outline:none;border-color:var(--color-accent-blue);background:var(--color-bg-secondary);box-shadow:0 0 0 3px #007aff1a}.join-button{padding:14px 28px;font-size:17px;font-weight:600;color:#fff;background:var(--color-accent-green);border:none;border-radius:var(--ios-radius-small);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #34c75933,0 1px 3px #0000001a;min-height:48px;letter-spacing:-.01em}.join-button:hover{background:var(--color-accent-green);transform:scale(1.02);box-shadow:0 4px 16px #34c7594d,0 2px 6px #00000026}.join-button:active{transform:scale(.98)}.game-screen{width:100%;max-width:1200px;padding:20px;display:flex;flex-direction:column;gap:24px}.game-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;position:relative;z-index:100}.game-header .home-button.secondary{margin-top:-50px}.game-content{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.game-player{display:flex;flex-direction:column;gap:16px}.player-label{font-size:20px;font-weight:600;color:var(--color-text-primary);text-align:center}.waiting-screen{text-align:center;padding:60px 20px}.waiting-title{font-size:32px;font-weight:700;margin-bottom:16px;color:var(--color-text-primary)}.waiting-text{font-size:18px;color:var(--color-text-secondary);margin-bottom:32px}.waiting-spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-accent-blue);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.error-message{padding:16px;background:#ff6b6b1a;border:2px solid var(--color-accent-red);border-radius:8px;color:var(--color-accent-red);font-weight:500;text-align:center;margin:16px 0}.result-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in}.result-content{text-align:center;padding:48px 40px;background:#ffffffe6;border-radius:var(--ios-radius-large);box-shadow:0 20px 60px var(--color-shadow-strong),0 8px 24px #00000026;max-width:500px;width:90%;backdrop-filter:var(--ios-blur);-webkit-backdrop-filter:var(--ios-blur);border:.5px solid var(--color-border);word-wrap:break-word;overflow-wrap:break-word;overflow:visible;min-height:auto;height:auto}.result-title{font-size:36px;font-weight:700;margin-bottom:16px}.result-title.win{color:var(--color-accent-green)}.result-title.lose{color:var(--color-accent-red)}.result-title.tie{color:var(--color-text-secondary)}.logo-main{max-width:300px;width:100%;height:auto;border-radius:var(--ios-radius);box-shadow:0 8px 24px var(--color-shadow),0 2px 8px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1)}.logo-main:hover{transform:scale(1.03);box-shadow:0 12px 32px var(--color-shadow-strong),0 4px 12px #00000026}.logo-header{height:40px;width:auto;border-radius:8px;cursor:pointer;transition:opacity .3s ease;display:block;margin-bottom:8px}.logo-header:hover{opacity:.8}.exit-button-header{padding:8px 16px;font-size:13px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-secondary);border:.5px solid var(--color-border);border-radius:var(--ios-radius-small);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px var(--color-shadow),0 1px 3px #0000000d;white-space:nowrap;width:100%;max-width:120px}.exit-button-header:hover{background:var(--color-bg-tertiary);box-shadow:0 4px 16px var(--color-shadow-strong),0 2px 6px #0000001a}.exit-button-header:active{transform:scale(.98)}@media (max-width: 768px){.home-title{font-size:28px}.home-subtitle{font-size:14px}.game-content{grid-template-columns:1fr}.game-header{flex-direction:column;align-items:stretch}.logo-main{max-width:180px}.logo-header{height:28px;margin-bottom:6px}.exit-button-header{padding:6px 12px;font-size:11px;max-width:100px}.home-button{padding:14px 28px;font-size:15px;min-height:44px}.result-content{padding:32px 24px;font-size:14px}.result-title{font-size:28px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.test-screen{width:100%;max-width:1200px;margin:0 auto;padding:24px}.test-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.test-title{font-size:32px;font-weight:700;color:var(--color-text-primary)}.test-content{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:24px}.test-camera-view{display:flex;flex-direction:column;gap:16px}.test-results{display:flex;flex-direction:column;gap:24px}.test-results-title{font-size:24px;font-weight:700;color:var(--color-text-primary);margin-bottom:16px}.test-result-card{background:var(--color-bg-secondary);border-radius:var(--ios-radius);padding:36px;box-shadow:0 4px 16px var(--color-shadow),0 1px 4px #0000000d;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:.5px solid var(--color-border);-webkit-backdrop-filter:var(--ios-blur);backdrop-filter:var(--ios-blur)}.test-result-success{text-align:center}.test-choice-icon{font-size:80px;margin-bottom:16px}.test-choice-name{font-size:28px;font-weight:700;color:var(--color-text-primary);margin-bottom:12px}.test-confidence{font-size:18px;color:var(--color-accent-green);font-weight:600}.test-result-waiting{text-align:center}.test-waiting-icon{font-size:64px;margin-bottom:16px;opacity:.6}.test-waiting-text{font-size:18px;color:var(--color-text-secondary)}.test-instructions{background:var(--color-bg-secondary);border-radius:var(--ios-radius);padding:28px;margin-top:32px;border:.5px solid var(--color-border);box-shadow:0 2px 8px var(--color-shadow),0 1px 3px #0000000d;-webkit-backdrop-filter:var(--ios-blur);backdrop-filter:var(--ios-blur)}.test-instructions h4{font-size:18px;font-weight:700;color:var(--color-text-primary);margin-bottom:12px}.test-instructions ul{list-style:none;padding:0}.test-instructions li{padding:8px 0;color:var(--color-text-secondary);font-size:14px}.test-instructions li:before{content:"• ";color:var(--color-accent-blue);font-weight:700;margin-right:8px}.test-camera-setup{text-align:center;padding:48px}.test-text{font-size:18px;color:var(--color-text-secondary);margin-bottom:24px}@media (max-width: 768px){.test-content{grid-template-columns:1fr}.test-header{flex-direction:column;gap:16px}.test-title{font-size:24px}}*{transition:background-color .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.footer-links{position:fixed;bottom:16px;left:16px;z-index:1000;display:flex;align-items:center;gap:8px;flex-wrap:wrap;pointer-events:auto}.footer-link{color:var(--color-text-secondary);text-decoration:none;font-size:11px;font-weight:500;transition:all .3s ease;padding:4px 0}.footer-link:hover{color:var(--color-accent-blue);transform:translateY(-1px)}.footer-separator{color:var(--color-text-secondary);font-size:10px;opacity:.5}.developer-link{position:fixed;bottom:16px;right:16px;z-index:1000;pointer-events:auto}.developer-link-content{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--color-bg-secondary);-webkit-backdrop-filter:var(--ios-blur);backdrop-filter:var(--ios-blur);border-radius:var(--ios-radius);text-decoration:none;color:var(--color-text-secondary);font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);border:.5px solid var(--color-border);box-shadow:0 2px 8px var(--color-shadow),0 1px 3px #0000000d;letter-spacing:-.01em}.developer-link-content:hover{background:var(--color-bg-tertiary);color:var(--color-accent-blue);transform:scale(1.02);box-shadow:0 4px 12px var(--color-shadow-strong),0 2px 6px #0000001a}.developer-text{color:inherit}.twitter-icon{width:16px;height:16px;fill:currentColor;transition:transform .25s cubic-bezier(.4,0,.2,1)}.developer-link-content:hover .twitter-icon{transform:scale(1.1)}@media (max-width: 768px){.footer-links{bottom:12px;left:12px;gap:6px}.footer-link{font-size:10px}.footer-separator{font-size:9px}.developer-link{bottom:12px;right:12px}.developer-link-content{padding:6px 10px;font-size:11px}.twitter-icon{width:14px;height:14px}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.flex{display:flex}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}@layer base{:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--input:0 0% 89.8%;--ring:0 0% 3.9%;--radius:.5rem}.dark{--background:0 0% 3.9%;--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:0 0% 9%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:0 0% 14.9%;--input:0 0% 14.9%;--ring:0 0% 83.1%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
