.modal-root.svelte-1y8kfjr{z-index:200;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.backdrop.svelte-1y8kfjr{-webkit-backdrop-filter:blur(4px);background:#0f172a8c;position:absolute;inset:0}.modal.svelte-1y8kfjr{width:min(440px,100%);max-height:calc(100dvh - 32px);color:var(--fp-heading);background:#fffcf4f5;border:1px solid #ffffffb3;border-radius:22px;flex-direction:column;padding:22px 22px 18px;font-family:Nunito Sans,system-ui,sans-serif;display:flex;position:relative;overflow:auto;box-shadow:0 30px 80px -20px #1b234073}.modal-head.svelte-1y8kfjr{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.head-left.svelte-1y8kfjr{align-items:flex-start;gap:12px;display:flex}.head-icon.svelte-1y8kfjr{width:36px;height:36px;color:var(--color-brand-950);background:#2454e01f;border-radius:11px;flex-shrink:0;place-items:center;display:grid}.head-icon.svelte-1y8kfjr svg:where(.svelte-1y8kfjr){width:20px;height:20px}.modal-eyebrow.svelte-1y8kfjr{color:var(--color-ink-500);text-transform:uppercase;letter-spacing:.06em;margin:0 0 2px;font-size:11px;font-weight:700}.modal-title.svelte-1y8kfjr{letter-spacing:-.01em;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:18px;font-weight:700}.close-btn.svelte-1y8kfjr{width:32px;height:32px;color:var(--color-ink-500);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;display:grid}.close-btn.svelte-1y8kfjr:hover{color:var(--fp-heading);background:#1b23400f}.close-btn.svelte-1y8kfjr svg:where(.svelte-1y8kfjr){width:16px;height:16px}.modal-body.svelte-1y8kfjr{flex-direction:column;flex:1;min-height:0;margin-top:16px;display:flex}.muted.svelte-1y8kfjr{color:var(--color-ink-700);margin:0 0 10px;font-size:13px;line-height:1.55}.required-msg.svelte-1y8kfjr{color:var(--color-brand-950);background:#2454e014;border:1px solid #2454e02e;border-radius:12px;margin:0 0 10px;padding:12px 14px;font-size:13.5px;line-height:1.55}.tips.svelte-1y8kfjr{color:var(--color-ink-500);margin:0 0 14px;padding-left:18px;font-size:12.5px;line-height:1.7}.stage-slot.svelte-1y8kfjr{place-items:center;width:100%;height:clamp(240px,44vh,400px);display:grid}.slot-idle.svelte-1y8kfjr{height:180px}.stage.svelte-1y8kfjr{background:var(--color-ink-900);border-radius:14px;place-items:center;max-width:100%;max-height:100%;display:grid;position:relative;overflow:hidden}.video.svelte-1y8kfjr{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.video-off.svelte-1y8kfjr{visibility:hidden}.video-placeholder.svelte-1y8kfjr{color:var(--color-ink-400);text-align:center;place-items:center;gap:6px;display:grid;position:absolute;inset:0}.video-placeholder.svelte-1y8kfjr svg:where(.svelte-1y8kfjr){width:36px;height:36px}.video-placeholder.svelte-1y8kfjr p:where(.svelte-1y8kfjr){margin:0;font-size:12px}.face-guide.svelte-1y8kfjr{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.face-ellipse.svelte-1y8kfjr{fill:none;stroke:#ffffffe6;stroke-width:2.5px;stroke-dasharray:6 5;transition:stroke .25s;animation:2.4s ease-in-out infinite svelte-1y8kfjr-oval-breathe}.face-ellipse-locked.svelte-1y8kfjr{stroke:var(--color-success-400);stroke-width:3px;stroke-dasharray:none;animation:none}@keyframes svelte-1y8kfjr-oval-breathe{0%,to{opacity:.9}50%{opacity:.55}}.guidance.svelte-1y8kfjr,.challenge.svelte-1y8kfjr{-webkit-backdrop-filter:blur(8px);color:#fff;text-align:center;background:#0f172abd;border-radius:12px;padding:10px 14px;position:absolute;bottom:12px;left:12px;right:12px}.guidance.svelte-1y8kfjr{color:var(--color-accent-400);font-size:13.5px;font-weight:700}.challenge-label.svelte-1y8kfjr{color:var(--color-accent-400);text-transform:uppercase;letter-spacing:.06em;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;font-weight:700}.challenge-instruction.svelte-1y8kfjr{color:var(--color-ink-50);margin:2px 0 0;font-size:14px;font-weight:600}.challenge-hint.svelte-1y8kfjr{color:var(--color-ink-300);margin:2px 0 0;font-size:11.5px}.done-overlay.svelte-1y8kfjr{background:#22c55e33;place-items:center;display:grid;position:absolute;inset:0}.done-overlay.svelte-1y8kfjr svg:where(.svelte-1y8kfjr){width:64px;height:64px;color:var(--color-success-400);background:#fffffff2;border-radius:50%;padding:12px}.dots.svelte-1y8kfjr{justify-content:center;gap:6px;margin-top:12px;display:flex}.dot.svelte-1y8kfjr{background:#1b234029;border-radius:999px;width:8px;height:8px;transition:background .2s,transform .2s}.dot-done.svelte-1y8kfjr{background:var(--color-success-400)}.dot-active.svelte-1y8kfjr{background:var(--fp-primary);transform:scale(1.35)}.progress.svelte-1y8kfjr{background:#1b234014;border-radius:999px;flex-shrink:0;width:100%;height:6px;margin-top:12px;overflow:hidden}.progress-bar.svelte-1y8kfjr{background:linear-gradient(90deg, var(--fp-primary), var(--color-brand-500));height:100%;transition:width .25s}.status.svelte-1y8kfjr{color:var(--color-ink-700);min-height:1.5em;margin:8px 2px 0;font-size:12.5px}.status-error.svelte-1y8kfjr{color:var(--color-danger-700)}.debug-panel.svelte-1y8kfjr{color:var(--color-ink-200);z-index:2;background:#0f172acc;border:1px solid #ffffff26;border-radius:8px;padding:8px 10px;font-family:ui-monospace,SF Mono,monospace;font-size:10.5px;line-height:1.5;position:absolute;top:8px;left:8px}.debug-row.svelte-1y8kfjr{justify-content:space-between;gap:14px;display:flex}.debug-row.svelte-1y8kfjr span:where(.svelte-1y8kfjr):first-child{color:var(--color-ink-400)}.debug-skip.svelte-1y8kfjr{color:#fff;cursor:pointer;background:#f59e0be6;border:none;border-radius:6px;width:100%;margin-top:6px;padding:3px 8px;font-size:10.5px;font-weight:700}.modal-foot.svelte-1y8kfjr{flex-shrink:0;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.btn.svelte-1y8kfjr{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-family:Nunito Sans,system-ui,sans-serif;font-size:13px;font-weight:700;transition:background .18s,transform .18s;display:inline-flex}.btn-primary.svelte-1y8kfjr{background:var(--fp-primary);color:#fff}.btn-primary.svelte-1y8kfjr:hover{background:var(--color-brand-950)}.btn-ghost.svelte-1y8kfjr{color:var(--color-ink-700);background:0 0;border:1px solid #1b23401f}.btn-ghost.svelte-1y8kfjr:hover{color:var(--fp-heading);background:#1b23400a}.danger-link.svelte-1y8kfjr{color:var(--color-danger-700);cursor:pointer;background:0 0;border:none;margin:12px auto 0;font-size:11.5px;font-weight:600;text-decoration:underline;display:block}.danger-link.svelte-1y8kfjr:hover{color:var(--color-danger-900)}@media (width<=640px){.modal-root.sheet.svelte-1y8kfjr{place-items:stretch stretch;padding:0}.modal-sheet.svelte-1y8kfjr{width:100%;max-width:none;height:100dvh;max-height:none;padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));border:none;border-radius:0;overflow:hidden}.modal-sheet.svelte-1y8kfjr .stage-slot:where(.svelte-1y8kfjr){flex:1;height:auto;min-height:0;margin-top:4px}.modal-sheet.svelte-1y8kfjr .slot-idle:where(.svelte-1y8kfjr){flex:none;height:28vh}.modal-sheet.svelte-1y8kfjr .modal-title:where(.svelte-1y8kfjr),.modal-sheet.svelte-1y8kfjr .challenge-instruction:where(.svelte-1y8kfjr){font-size:16px}.modal-sheet.svelte-1y8kfjr .guidance:where(.svelte-1y8kfjr){font-size:15px}.modal-sheet.svelte-1y8kfjr .btn:where(.svelte-1y8kfjr){flex:1;padding:13px 18px;font-size:14px}}@media (prefers-reduced-motion:reduce){.face-ellipse.svelte-1y8kfjr,.progress-bar.svelte-1y8kfjr,.dot.svelte-1y8kfjr,.btn.svelte-1y8kfjr{transition:none;animation:none}}
