:root{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Helvetica Neue,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"ss01","ss02";color-scheme:light;--b-sig: #5b8c7a;--b-sig-deep: #3e6856;--b-sig-soft: #dce8e2;--b-sig-bg: #eef4f1;--b-warn: #e08866;--b-warn-deep: #c2613f;--b-warn-soft: #fbeae3;--b-amber: #d4a26a;--b-amber-deep: #b07335;--b-amber-soft: #f7ecd9;--b-bg: #fafaf7;--b-surface: #ffffff;--b-surface-2: #f1efe9;--b-elev: #ffffff;--b-fg-1: #1a1d1f;--b-fg-2: #5e574e;--b-fg-3: rgba(26, 29, 31, .55);--b-fg-4: rgba(26, 29, 31, .36);--b-fg-5: rgba(26, 29, 31, .18);--b-line: rgba(0, 0, 0, .06);--b-line-2: rgba(0, 0, 0, .1);--b-line-3: rgba(0, 0, 0, .16);--b-shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--b-shadow-elev: 0 1px 3px rgba(0, 0, 0, .06), 0 10px 40px rgba(0, 0, 0, .08);--b-shadow-modal: 0 30px 80px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .06);--bo-ink: #1a1d1f;--bo-paper: #f5f4ee;--bo-sage: #5b8c7a;--bo-sage-50: #eef4f1;--bo-sage-100: #dce8e2;--bo-sage-200: #b8d0c5;--bo-sage-400: #88b09e;--bo-sage-500: #5b8c7a;--bo-sage-700: #3e6856;--bo-sage-900: #1f3b2f;--bo-n-50: #fafaf7;--bo-n-100: #f1efe9;--bo-n-200: #e2ded5;--bo-n-400: #a39c90;--bo-n-600: #5e574e;--bo-n-800: #2e2b26;--bo-n-900: #1a1d1f;--bo-amber: #d4a26a;--bo-coral: #e08866;--bo-slate: #7a8689;--bo-font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Helvetica Neue", system-ui, sans-serif;--bo-font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){color-scheme:dark;--b-sig: #7eb09c;--b-sig-deep: #a3cdbb;--b-sig-soft: rgba(126, 176, 156, .15);--b-sig-bg: rgba(126, 176, 156, .06);--b-warn: #e08866;--b-warn-deep: #f0a78a;--b-warn-soft: rgba(224, 136, 102, .16);--b-amber: #d4a26a;--b-amber-deep: #e6bd8a;--b-amber-soft: rgba(212, 162, 106, .16);--b-bg: #15181a;--b-surface: #1c1f21;--b-surface-2: #232629;--b-elev: #25282b;--b-fg-1: #f0eee8;--b-fg-2: rgba(240, 238, 232, .78);--b-fg-3: rgba(240, 238, 232, .55);--b-fg-4: rgba(240, 238, 232, .36);--b-fg-5: rgba(240, 238, 232, .18);--b-line: rgba(255, 255, 255, .07);--b-line-2: rgba(255, 255, 255, .1);--b-line-3: rgba(255, 255, 255, .16);--b-shadow-card: 0 1px 2px rgba(0, 0, 0, .2), 0 4px 16px rgba(0, 0, 0, .18);--b-shadow-elev: 0 4px 12px rgba(0, 0, 0, .25), 0 14px 40px rgba(0, 0, 0, .3);--b-shadow-modal: 0 30px 80px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06)}}:root[data-theme=dark]{color-scheme:dark;--b-sig: #7eb09c;--b-sig-deep: #a3cdbb;--b-sig-soft: rgba(126, 176, 156, .15);--b-sig-bg: rgba(126, 176, 156, .06);--b-warn: #e08866;--b-warn-deep: #f0a78a;--b-warn-soft: rgba(224, 136, 102, .16);--b-amber: #d4a26a;--b-amber-deep: #e6bd8a;--b-amber-soft: rgba(212, 162, 106, .16);--b-bg: #15181a;--b-surface: #1c1f21;--b-surface-2: #232629;--b-elev: #25282b;--b-fg-1: #f0eee8;--b-fg-2: rgba(240, 238, 232, .78);--b-fg-3: rgba(240, 238, 232, .55);--b-fg-4: rgba(240, 238, 232, .36);--b-fg-5: rgba(240, 238, 232, .18);--b-line: rgba(255, 255, 255, .07);--b-line-2: rgba(255, 255, 255, .1);--b-line-3: rgba(255, 255, 255, .16);--b-shadow-card: 0 1px 2px rgba(0, 0, 0, .2), 0 4px 16px rgba(0, 0, 0, .18);--b-shadow-elev: 0 4px 12px rgba(0, 0, 0, .25), 0 14px 40px rgba(0, 0, 0, .3);--b-shadow-modal: 0 30px 80px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06)}.b-mono{font-family:var(--bo-font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--b-bg);color:var(--b-fg-1)}a{color:var(--b-sig);text-decoration:none}a:hover{text-decoration:underline}.b-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}button{font-family:inherit}.b-btn{cursor:pointer;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;letter-spacing:-.003em;border:1px solid transparent;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .06s;background:transparent;color:var(--b-fg-1)}.b-btn:active{transform:scale(.985)}.b-btn:disabled{opacity:.5;cursor:not-allowed}.b-btn-primary{background:var(--b-sig);color:#fff}.b-btn-primary:hover:not(:disabled){background:var(--b-sig-deep)}.b-btn-ghost{background:transparent;color:var(--b-fg-2);border-color:var(--b-line-2)}.b-btn-ghost:hover:not(:disabled){background:#7f7f7f0f;border-color:var(--b-line-3)}.b-btn-quiet{background:transparent;color:var(--b-fg-2)}.b-btn-quiet:hover:not(:disabled){background:#7f7f7f0f;color:var(--b-fg-1)}.b-icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--b-line);background:var(--b-surface);color:var(--b-fg-2);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.b-icon-btn:hover{background:var(--b-surface-2);color:var(--b-fg-1);border-color:var(--b-line-2)}.b-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--b-surface-2);color:var(--b-fg-2);font-size:12px;font-weight:600;letter-spacing:-.003em;border:1px solid var(--b-line);cursor:pointer}.b-slider{-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--b-line-2);outline:none}.b-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--b-sig);cursor:pointer;box-shadow:0 0 0 4px #5b8c7a26}.b-toggle{width:36px;height:22px;border-radius:999px;background:var(--b-line-2);position:relative;cursor:pointer;transition:background .15s;flex-shrink:0;border:none;padding:0}.b-toggle.on{background:var(--b-sig)}.b-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.b-toggle.on:after{transform:translate(14px)}input[type=text],input[type=password],input[type=number],input[type=email]{background:var(--b-surface);color:var(--b-fg-1);border:1px solid var(--b-line-2);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;outline:none;width:100%}input:focus{border-color:var(--b-sig)}.b-scroll{scrollbar-width:thin;scrollbar-color:var(--b-line-3) transparent}.b-scroll::-webkit-scrollbar{width:8px;height:8px}.b-scroll::-webkit-scrollbar-thumb{background:var(--b-line-2);border-radius:4px}.b-scroll::-webkit-scrollbar-track{background:transparent}@keyframes b-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.b-pulse-dot{animation:b-pulse 2s ease-in-out infinite}@keyframes b-rise{0%{transform:translateY(2px);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes b-score-glow{0%{box-shadow:0 0 #5b8c7a00}35%{box-shadow:0 0 0 14px #5b8c7a38,0 0 24px 6px #5b8c7a47}to{box-shadow:0 0 #5b8c7a00}}.b-score-glow{animation:b-score-glow 1.1s cubic-bezier(.2,.7,.3,1) both}@keyframes b-score-rise{0%{transform:translateY(8px) scale(.92);opacity:.4}60%{transform:translateY(0) scale(1.06);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.b-score-rise{animation:b-score-rise .9s cubic-bezier(.2,.7,.3,1) both;display:inline-block}@keyframes b-pill-glow{0%{box-shadow:0 1px 3px #0000002e,0 8px 24px #00000047,0 0 0 1px #0000000f,0 0 #5b8c7a00}35%{box-shadow:0 1px 3px #0000002e,0 8px 24px #00000047,0 0 0 1px #0000000f,0 0 0 7px #5b8c7a47,0 0 16px 4px #5b8c7a52}to{box-shadow:0 1px 3px #0000002e,0 8px 24px #00000047,0 0 0 1px #0000000f,0 0 #5b8c7a00}}.b-pill-glow{animation:b-pill-glow 1.1s cubic-bezier(.2,.7,.3,1) both}.b-tip{position:relative}.b-tip[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(-2px);padding:5px 9px;background:var(--b-fg-1);color:var(--b-bg);font-size:11px;font-weight:500;letter-spacing:-.003em;white-space:nowrap;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:100;box-shadow:0 4px 12px #0000002e}.b-tip[data-tip]:hover:after,.b-tip[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0);transition-delay:.25s}@keyframes b-breath{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.06);opacity:1}}@keyframes b-slide-in{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.b-toast-in{animation:b-slide-in .25s cubic-bezier(.2,.7,.3,1) both}@keyframes b-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes b-fade-in{0%{opacity:0}to{opacity:1}}.b-force-light{color-scheme:light;--b-sig: #5b8c7a;--b-sig-deep: #3e6856;--b-sig-soft: #dce8e2;--b-sig-bg: #eef4f1;--b-warn: #e08866;--b-warn-deep: #c2613f;--b-warn-soft: #fbeae3;--b-amber: #d4a26a;--b-amber-deep: #b07335;--b-amber-soft: #f7ecd9;--b-bg: #fafaf7;--b-surface: #ffffff;--b-surface-2: #f1efe9;--b-elev: #ffffff;--b-fg-1: #1a1d1f;--b-fg-2: #5e574e;--b-fg-3: rgba(26, 29, 31, .55);--b-fg-4: rgba(26, 29, 31, .36);--b-fg-5: rgba(26, 29, 31, .18);--b-line: rgba(0, 0, 0, .08);--b-line-2: rgba(0, 0, 0, .14);--b-line-3: rgba(0, 0, 0, .2);--b-shadow-card: 0 1px 2px rgba(0, 0, 0, .06), 0 4px 16px rgba(0, 0, 0, .08);--b-shadow-elev: 0 1px 3px rgba(0, 0, 0, .12), 0 10px 40px rgba(0, 0, 0, .18);--b-shadow-modal: 0 30px 80px rgba(0, 0, 0, .25), 0 0 0 1px rgba(0, 0, 0, .08)}.app{display:grid;grid-template-rows:1fr;height:100%;background:var(--b-bg);color:var(--b-fg-1)}.content{overflow:auto;height:100%}.b-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:50;display:flex;align-items:center;justify-content:center;padding:28px;animation:b-fade-in .15s ease}.b-modal{background:var(--b-bg);border-radius:20px;border:1px solid var(--b-line);box-shadow:var(--b-shadow-modal);width:100%;max-width:560px;max-height:92vh;overflow:auto}.b-drawer-overlay{position:fixed;inset:0;background:#00000040;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:60;animation:b-fade-in .15s ease}.b-drawer{position:fixed;right:0;top:0;bottom:0;width:420px;max-width:100vw;background:var(--b-bg);box-shadow:-20px 0 60px #0000002e;border-left:1px solid var(--b-line);overflow-y:auto;z-index:61;animation:b-drawer-in .2s cubic-bezier(.2,.7,.3,1)}.camera-card{position:relative;background:#0a0a0a;border-radius:14px;overflow:hidden;aspect-ratio:4 / 3}.camera-card video,.camera-card canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-card video{z-index:1}.camera-card canvas{z-index:2;pointer-events:none}.stretch-toast{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;display:flex;align-items:center;gap:.55rem;padding:.7rem 1.1rem;background:var(--b-sig);color:#fff;border-radius:999px;font-size:16px;font-weight:700;box-shadow:0 10px 30px #0006;pointer-events:none;animation:stretchToastIn .35s ease-out,stretchToastOut .5s ease-in 2.5s forwards}.stretch-toast__icon{font-size:20px}.stretch-toast__bonus{font-variant-numeric:tabular-nums;background:#ffffff38;padding:.15rem .55rem;border-radius:999px;font-size:14px}@keyframes stretchToastIn{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes stretchToastOut{to{opacity:0;transform:translate(-50%,-60%)}}.b-update-notice{position:fixed;right:20px;bottom:20px;z-index:100;width:320px;padding:14px 16px;background:var(--b-surface);border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px #0000002e;display:flex;flex-direction:column;gap:8px;font-size:13px;animation:updateNoticeIn .25s ease-out}.b-update-notice.b-update-error{border-color:#c44}.b-update-notice.b-update-info{border-color:var(--b-sig)}.b-update-title{font-weight:700;font-size:14px}.b-update-body{color:var(--b-fg-3);font-size:12px;line-height:1.5;max-height:120px;overflow:hidden;text-overflow:ellipsis}.b-update-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.b-update-progress{width:100%;height:6px;background:var(--b-line-2);border-radius:3px;overflow:hidden}.b-update-progress-fill{height:100%;background:var(--b-sig);transition:width .2s ease}.b-update-progress-label{font-size:11px;color:var(--b-fg-3);text-align:right}@keyframes updateNoticeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.b-legal-modal{max-width:780px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.b-legal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--b-line);flex-shrink:0}.b-legal-title{margin:0;font-size:18px;font-weight:700;letter-spacing:-.012em}.b-legal-close{width:32px;height:32px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--b-fg-3);display:flex;align-items:center;justify-content:center}.b-legal-close:hover{background:var(--b-surface-2);color:var(--b-fg)}.b-legal-body{flex:1;overflow-y:auto;padding:24px 32px 32px;font-size:13px;line-height:1.7;color:var(--b-fg-2)}.b-legal-body h1{font-size:20px;font-weight:700;margin:24px 0 16px}.b-legal-body h1:first-child{margin-top:0}.b-legal-body h2{font-size:16px;font-weight:700;margin:22px 0 10px;color:var(--b-fg)}.b-legal-body h3{font-size:14px;font-weight:700;margin:18px 0 8px;color:var(--b-fg)}.b-legal-body p{margin:8px 0 12px}.b-legal-body ul,.b-legal-body ol{padding-left:22px;margin:8px 0 12px}.b-legal-body li{margin:4px 0}.b-legal-body a{color:var(--b-sig-deep);text-decoration:underline}.b-legal-body code{background:var(--b-surface-2);padding:1px 6px;border-radius:4px;font-size:12px;font-family:ui-monospace,monospace}.b-legal-body table{border-collapse:collapse;margin:12px 0;font-size:12px;width:100%}.b-legal-body th,.b-legal-body td{border:1px solid var(--b-line);padding:6px 10px;text-align:left}.b-legal-body th{background:var(--b-surface-2);font-weight:600}.b-legal-body blockquote{border-left:3px solid var(--b-sig);padding:6px 12px;margin:10px 0;background:var(--b-sig-bg);color:var(--b-fg-2);border-radius:0 6px 6px 0}.b-legal-body hr{border:none;border-top:1px solid var(--b-line);margin:20px 0}.b-legal-body strong{color:var(--b-fg)}.profile-view{position:fixed;inset:0;background:var(--b-bg);z-index:30;display:flex;flex-direction:column;overflow:hidden}.profile-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--b-line);flex-shrink:0;background:var(--b-bg)}.profile-title{margin:0;font-size:16px;font-weight:700;letter-spacing:-.012em}.profile-body{flex:1;overflow-y:auto;padding:24px;max-width:720px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:14px}.profile-card{background:var(--b-surface);border:1px solid var(--b-line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}.profile-card-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--b-fg)}.profile-card-sub{margin:0;font-size:12px;color:var(--b-fg-3);line-height:1.55}.profile-card-actions{display:flex;gap:8px;margin-top:6px}.profile-auth-soon{background:var(--b-sig-bg);border-color:var(--b-sig-soft)}.profile-pill{background:var(--b-sig-soft);color:var(--b-sig-deep);font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;margin-left:4px}.profile-input{width:100%;height:38px;padding:0 12px;border:1px solid var(--b-line);border-radius:10px;background:var(--b-bg);color:var(--b-fg);font-size:14px;font-family:inherit}.profile-input:focus{outline:none;border-color:var(--b-sig)}.profile-avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px;margin-top:4px}.profile-avatar-cell{aspect-ratio:1;border:1px solid var(--b-line);border-radius:12px;background:var(--b-bg);font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer}.profile-avatar-cell:hover{background:var(--b-surface-2)}.profile-avatar-cell.is-selected{border-color:var(--b-sig);background:var(--b-sig-bg)}.profile-radio-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.profile-radio{flex:1;min-width:100px;height:38px;border:1px solid var(--b-line);border-radius:10px;background:var(--b-bg);font-size:13px;font-family:inherit;cursor:pointer;color:var(--b-fg-2)}.profile-radio:hover{background:var(--b-surface-2)}.profile-radio.is-selected{border-color:var(--b-sig);background:var(--b-sig-bg);color:var(--b-sig-deep);font-weight:600}.profile-saved-hint{text-align:center;font-size:11px;color:var(--b-fg-4);margin-top:6px}@keyframes b-pulse{0%{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}to{opacity:.4;transform:scale(.95)}}
