:root{--bg: #0a0a0e;--fg: #ffffff;--muted: #8a8a9a;--card: #141418;--accent: #ffffff;--danger: #ff4d4d;--ok: #22cc66;--glow: rgba(34, 204, 102, .4)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none}html,body{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;background:var(--bg);color:var(--fg);overflow:hidden}#app{height:100%;width:100%;display:flex}.screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:100%;height:100%;overflow:hidden}.attract-screen{background:#fbf3e6;padding:40px;text-align:center;gap:20px}.attract-image{width:clamp(280px,60vw,480px);height:auto;margin-bottom:24px}.attract-title{font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,7vw,58px);font-weight:400;font-style:italic;letter-spacing:.01em;margin:0 0 8px;color:#2a2a2a}.attract-subtitle{font-family:Georgia,Times New Roman,serif;font-size:clamp(14px,2.5vw,18px);color:#888;margin:0 0 40px;font-weight:400;letter-spacing:.2em;text-transform:uppercase}.attract-start-btn{background:#2a2a2a;color:#fbf3e6;border:none;border-radius:100px;padding:22px 56px;font-size:clamp(18px,3vw,24px);font-weight:600;cursor:pointer;animation:pulse-dark 2.5s ease-in-out infinite;touch-action:manipulation}.attract-start-btn:active{transform:scale(.96)}@keyframes pulse-dark{0%,to{box-shadow:0 4px 20px #00000026,0 0 #2a2a2a4d}50%{box-shadow:0 4px 20px #00000026,0 0 0 12px #2a2a2a00}}.camera-screen{padding:0;background:#000}.video-fullscreen{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-overlay{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:24px}.camera-top-bar{display:flex;justify-content:space-between;align-items:flex-start;pointer-events:auto}.camera-badge{background:#0009;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:100px;padding:14px 24px;font-size:16px;font-weight:600;letter-spacing:.02em}.camera-bottom-bar{display:flex;justify-content:center;align-items:center;gap:40px;padding-bottom:40px;pointer-events:auto}.btn-capture{width:88px;height:88px;border-radius:50%;background:var(--fg);border:6px solid rgba(255,255,255,.3);cursor:pointer;position:relative;touch-action:manipulation;transition:transform .1s}.btn-capture:active{transform:scale(.92)}.btn-capture:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--fg)}.btn-capture.recording{background:var(--danger)}.btn-capture.recording:after{background:var(--danger);border-radius:4px;inset:24px}.btn-icon{width:56px;height:56px;border-radius:50%;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);color:var(--fg);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;transition:transform .1s,background .2s}.btn-icon:active{transform:scale(.92);background:#fff3}.countdown-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000004d;z-index:10}.countdown-text{font-size:clamp(80px,25vw,180px);font-weight:800;text-shadow:0 20px 60px rgba(0,0,0,.5)}.countdown-label{font-size:clamp(24px,5vw,36px);font-weight:600;color:#ffffffe6}.flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:100}.flash.on{animation:flash .25s ease-out}@keyframes flash{0%{opacity:.95}to{opacity:0}}.preview-screen{padding:20px 20px 30px;background:var(--bg);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px}.preview-image{max-width:100%;max-height:55vh;border-radius:16px;box-shadow:0 20px 60px #00000080;object-fit:contain;flex-shrink:1}.preview-actions{display:flex;justify-content:center;align-items:center;gap:24px;padding:20px;flex-shrink:0}.btn-pill{border:none;border-radius:100px;padding:20px 48px;font-size:20px;font-weight:700;cursor:pointer;touch-action:manipulation;transition:transform .1s}.btn-pill:active{transform:scale(.96)}.btn-pill.primary{background:var(--ok);color:#0a0a0e}.btn-pill.secondary{background:#ffffff1a;color:var(--fg);border:1px solid rgba(255,255,255,.2)}.qr-screen{padding:40px;text-align:center;background:var(--bg)}.qr-title{font-size:clamp(28px,5vw,40px);font-weight:700;margin:0 0 12px}.qr-subtitle{font-size:18px;color:var(--muted);margin:0 0 40px}.qr-code{width:280px;height:280px;padding:20px;background:#fff;border-radius:24px;margin:0 auto 32px}.qr-thumbnail{width:120px;height:auto;border-radius:12px;margin-bottom:40px;box-shadow:0 8px 24px #0000004d}.qr-next-btn{background:var(--fg);color:var(--bg);border:none;border-radius:100px;padding:24px 64px;font-size:22px;font-weight:700;cursor:pointer;touch-action:manipulation}.qr-next-btn:active{transform:scale(.96)}.error-screen{padding:40px;text-align:center}.error-title{font-size:32px;font-weight:700;margin:0 0 16px}.error-message{font-size:18px;color:var(--muted);margin:0 0 40px}.overlay{position:fixed;inset:0;background:#0a0a0ef2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;z-index:150}.spinner{width:64px;height:64px;border:5px solid rgba(255,255,255,.1);border-top-color:var(--ok);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.overlay-text{font-size:22px;font-weight:600}.settings-btn{position:fixed;top:20px;right:20px;background:#ffffff14;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 18px;color:var(--fg);font-size:14px;font-weight:500;cursor:pointer;z-index:50;opacity:.6;transition:opacity .2s}.settings-btn:hover,.settings-btn:active{opacity:1}.modal-backdrop{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--card);border-radius:24px;padding:32px;width:min(480px,90vw);max-height:85vh;overflow-y:auto}.modal h2{margin:0 0 24px;font-size:24px;font-weight:700}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;font-size:15px;color:var(--muted)}.form-group input,.form-group select{width:100%;padding:16px;border:2px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0d;color:var(--fg);font-size:17px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--ok)}.form-group input[type=checkbox]{width:auto;margin-right:12px}.row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.btn{border:none;border-radius:100px;padding:20px 40px;font-size:18px;font-weight:700;cursor:pointer;touch-action:manipulation}.btn.ok{background:var(--ok);color:#0a0a0e}.btn.secondary{background:#ffffff1a;color:var(--fg);border:1px solid rgba(255,255,255,.2)}.small{font-size:14px;color:var(--muted)}.confetti-canvas{position:fixed;inset:0;pointer-events:none;z-index:200}.pose-prompt{display:block;font-size:clamp(24px,5vw,36px);font-weight:600;color:#feca57;text-shadow:0 4px 20px rgba(0,0,0,.5);margin-top:16px;animation:bounce .6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.filter-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:12px 16px;flex-shrink:0}.filter-btn{background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid transparent;border-radius:20px;padding:10px 18px;color:var(--fg);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;touch-action:manipulation}.filter-btn:active{transform:scale(.95)}.filter-btn.active{background:var(--ok);color:#0a0a0e;border-color:var(--ok)}.capture-preview{max-width:70vw;max-height:50vh;border-radius:16px;box-shadow:0 8px 40px #00000080;animation:popIn .3s ease-out}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
