:root{--color-bg: #E4E2E0;--color-bg-secondary: #E4E2E0;--color-bg-tertiary: #D6D4D2;--color-text: #1D1D1F;--color-text-secondary: #6B7280;--color-text-tertiary: #9CA3AF;--color-accent: #E50914;--color-green: #34C759;--color-red: #E50914;--nm-shadow-dark: rgba(175, 172, 168, .5);--nm-shadow-light: rgba(255, 255, 254, .6);--nm-raised: 6px 6px 12px var(--nm-shadow-dark), -6px -6px 12px var(--nm-shadow-light);--nm-raised-sm: 3px 3px 6px var(--nm-shadow-dark), -3px -3px 6px var(--nm-shadow-light);--nm-raised-lg: 10px 10px 20px var(--nm-shadow-dark), -10px -10px 20px var(--nm-shadow-light);--nm-pressed: inset 3px 3px 6px var(--nm-shadow-dark), inset -3px -3px 6px var(--nm-shadow-light);--nm-pressed-sm: inset 2px 2px 4px var(--nm-shadow-dark), inset -2px -2px 4px var(--nm-shadow-light);--nm-glow: 0 4px 14px 3px rgba(160, 178, 253, .3), 0 10px 32px rgba(160, 178, 253, .15);--nm-glow-sm: 0 3px 10px 2px rgba(160, 178, 253, .25), 0 8px 24px rgba(160, 178, 253, .12);--font-sans: "Google Sans Flex", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--max-w-app: 448px;--radius-full: 9999px;--radius-2xl: 16px;--radius-3xl: 24px;--radius-xl: 12px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hidden{display:none!important}.glass{background:var(--color-bg);border:none;box-shadow:var(--nm-raised)}#kemix-app{position:relative;width:100%;max-width:var(--max-w-app);height:100vh;height:100dvh;margin:0 auto;overflow:hidden;background:var(--color-bg)}.view{position:absolute;inset:0;z-index:1;display:none;flex-direction:column}.view.active{display:flex}#view-video{position:absolute;inset:0}.video-canvas-container{position:absolute;inset:0;z-index:0}.video-canvas-container canvas{width:100%;height:100%;display:block}.video-gradient{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.35) 0%,transparent 25%,transparent 65%,rgba(0,0,0,.5) 100%);pointer-events:none;z-index:1}.video-loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#e4e2e0d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:backdrop-filter .6s ease,-webkit-backdrop-filter .6s ease,background .6s ease,opacity .6s ease}.video-loading .spinner{display:flex;align-items:center;gap:12px}.video-loading .spinner .dot{width:14px;height:14px;border-radius:50%;background:var(--color-bg);box-shadow:var(--nm-raised-sm);animation:dot-pulse 1.4s ease-in-out infinite}.video-loading .spinner .dot:nth-child(2){animation-delay:.2s}.video-loading .spinner .dot:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,80%,to{transform:scale(1);box-shadow:var(--nm-raised-sm)}40%{transform:scale(1.4);box-shadow:var(--nm-pressed-sm)}}@keyframes spin{to{transform:rotate(360deg)}}.video-loading .loading-label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-tertiary)}.video-loading.fade-out{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);background:#e4e2e000;opacity:0;pointer-events:none}.video-loading.idle .spinner,.video-loading.idle .loading-label{display:none}.video-loading.calling .spinner{animation:spin 1s linear infinite}.video-top-info{position:absolute;top:48px;left:0;right:0;display:flex;flex-direction:column;align-items:center;z-index:10;pointer-events:none}.video-name{font-family:var(--font-sans);font-weight:600;font-size:1.125rem;color:var(--color-text)}.video-timer{font-family:monospace;font-size:10px;letter-spacing:.3em;color:var(--color-text-secondary);margin-top:4px}.video-bottom{position:absolute;bottom:48px;left:24px;right:24px;display:flex;align-items:flex-end;justify-content:center;z-index:10}.video-controls{display:flex;align-items:center;gap:28px;transition:transform .35s cubic-bezier(.32,.72,0,1);will-change:transform}.video-bottom.pip-active .video-controls{transform:translate(-56px)}.video-ctrl-btn{position:relative;width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow .2s,transform .15s;color:var(--color-text-secondary);border:none;background:var(--color-bg);box-shadow:var(--nm-raised),var(--nm-glow)}.video-ctrl-btn:hover{color:var(--color-text);transform:scale(1.08);box-shadow:8px 8px 16px var(--nm-shadow-dark),-8px -8px 16px var(--nm-shadow-light),0 5px 16px 4px #a0b2fd59,0 12px 36px #a0b2fd33}.video-ctrl-btn:active{transform:scale(.98);box-shadow:var(--nm-pressed)}.video-ctrl-btn.muted{box-shadow:var(--nm-pressed)}.video-ctrl-btn.muted:hover{transform:scale(1.08);box-shadow:var(--nm-pressed)}.video-ctrl-btn.muted svg{color:var(--color-red)}.video-ctrl-btn.muted:after{content:"";position:absolute;top:50%;left:50%;width:55%;height:2px;background:var(--color-red);border-radius:1px;transform:translate(-50%,-50%) rotate(-45deg);pointer-events:none}.video-ctrl-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:opacity .25s ease,transform .25s cubic-bezier(.32,.72,0,1),color .25s ease}.video-ctrl-btn.transitioning{pointer-events:none}.video-ctrl-btn.transitioning svg{opacity:.3;transform:scale(.8)}.video-ctrl-btn.transitioning:before{content:"";position:absolute;inset:2px;border-radius:var(--radius-full);border:2px solid transparent;border-top-color:var(--color-text);animation:btn-spin .6s linear infinite;z-index:2}@keyframes btn-spin{to{transform:rotate(360deg)}}.end-call-btn{position:relative;width:64px;height:64px;border-radius:var(--radius-full);background:var(--color-bg);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow .2s,transform .15s;box-shadow:var(--nm-raised),var(--nm-glow);color:var(--color-red)}.end-call-btn:hover{transform:scale(1.05);box-shadow:8px 8px 16px var(--nm-shadow-dark),-8px -8px 16px var(--nm-shadow-light),0 5px 16px 4px #a0b2fd59,0 12px 36px #a0b2fd33}.end-call-btn:active{transform:scale(.98);box-shadow:var(--nm-pressed)}.end-call-btn svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.end-call-btn.transitioning{pointer-events:none}.end-call-btn.transitioning svg{opacity:.3;transform:scale(.8)}.end-call-btn.transitioning:before{content:"";position:absolute;inset:2px;border-radius:var(--radius-full);border:2px solid transparent;border-top-color:var(--color-red);animation:btn-spin .6s linear infinite;z-index:2}.end-call-btn.small{width:64px;height:64px}.end-call-btn.small svg{width:28px;height:28px}.end-call-btn.idle-mode{color:#fff;background:var(--color-green);box-shadow:var(--nm-raised),0 4px 14px 3px #34c7594d,0 10px 32px #34c75926}.end-call-btn.idle-mode:hover{transform:scale(1.08);box-shadow:8px 8px 16px var(--nm-shadow-dark),-8px -8px 16px var(--nm-shadow-light),0 5px 16px 4px #34c75966,0 12px 36px #34c75933}.video-ctrl-btn.idle-hidden{opacity:0;pointer-events:none;transform:scale(.8)}.user-camera-pip{width:96px;height:128px;border-radius:var(--radius-xl);overflow:hidden;border:none;opacity:0;transform:scale(0) translate(40px);transform-origin:right center;will-change:transform,opacity;transition:transform .35s cubic-bezier(.32,.72,0,1),opacity .3s cubic-bezier(.32,.72,0,1);pointer-events:none;box-shadow:var(--nm-raised);position:absolute;right:0;bottom:0}.video-bottom.pip-active .user-camera-pip{opacity:1;transform:scale(1) translate(0);pointer-events:auto}.user-camera-pip video{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .3s ease .15s}.video-bottom.pip-active .user-camera-pip video{opacity:1}.user-camera-pip .pip-placeholder{display:none}.pip-flip-btn{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:var(--radius-full);background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:transform .2s,background .2s}.pip-flip-btn svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pip-flip-btn:active{transform:scale(.9);background:#000000a6}.pip-flip-btn.transitioning{pointer-events:none;opacity:.5}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000040;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-card{width:360px;max-width:calc(100% - 40px);padding:32px;border-radius:var(--radius-2xl);animation:modal-pop .25s ease;background:var(--color-bg);border:none;box-shadow:var(--nm-raised-lg)}@keyframes modal-pop{0%{opacity:0;transform:translateY(-16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-title{font-family:var(--font-sans);font-weight:700;font-size:1.5rem;text-align:center;margin-bottom:24px;color:var(--color-text)}.modal-label{display:block;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:8px}.modal-input{width:100%;padding:12px 16px;background:var(--color-bg);border:none;border-radius:var(--radius-xl);color:var(--color-text);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:box-shadow .2s;margin-bottom:16px;box-shadow:var(--nm-pressed)}.modal-input::placeholder{color:var(--color-text-tertiary)}.modal-input:focus{box-shadow:inset 4px 4px 8px var(--nm-shadow-dark),inset -4px -4px 8px var(--nm-shadow-light)}.modal-actions{display:flex;gap:12px;margin-top:8px}.modal-btn{flex:1;padding:12px;border-radius:var(--radius-xl);border:none;background:var(--color-bg);box-shadow:var(--nm-raised-sm);color:var(--color-text);font-family:var(--font-sans);font-size:.875rem;font-weight:500;cursor:pointer;transition:box-shadow .2s}.modal-btn:hover{box-shadow:var(--nm-raised)}.modal-btn:active{box-shadow:var(--nm-pressed-sm)}.modal-btn.primary{background:var(--color-accent);color:#fff;box-shadow:4px 4px 8px #a3b1c680,-2px -2px 4px var(--nm-shadow-light)}.modal-btn.primary:hover{background:#e0342b;box-shadow:6px 6px 12px #a3b1c680,-3px -3px 6px var(--nm-shadow-light)}.modal-btn.primary:active{box-shadow:inset 3px 3px 6px #c81e144d,inset -3px -3px 6px #ff645a33}.end-call-btn.waiting,.video-ctrl-btn.waiting{pointer-events:none;box-shadow:var(--nm-pressed);opacity:.4}@media(min-width:449px){#kemix-app{box-shadow:var(--nm-raised-lg)}}
