:root{--n-webcam-ink: #102622;--n-webcam-deep: #f3f7f6;--n-webcam-panel: #fff;--n-webcam-panel-soft: #eaf3f0;--n-webcam-paper: #102622;--n-webcam-muted: #4d6862;--n-webcam-cyan: #35d399;--n-webcam-cyan-strong: #087b5d;--n-webcam-cyan-soft: #d9f7ec;--n-webcam-button-text: #071b14;--n-webcam-coral: #b42318;--n-webcam-amber: #805700;--n-webcam-line: #b9d0ca;--n-webcam-shadow: #1026221f;--n-webcam-stage: #e5efec;--n-webcam-clear: #0000;--n-webcam-white-soft: #fffc;--n-webcam-black-soft: #102622e8;--n-webcam-focus: #d9fff4cc;--n-webcam-on-dark: #fff}.theme-dark{--n-webcam-ink: #071311;--n-webcam-deep: #0b1b18;--n-webcam-panel: #102622;--n-webcam-panel-soft: #17352f;--n-webcam-paper: #effbf7;--n-webcam-muted: #aec7c0;--n-webcam-cyan: #4de3ad;--n-webcam-cyan-strong: #71f0c2;--n-webcam-cyan-soft: #173d32;--n-webcam-button-text: #071b14;--n-webcam-coral: #ff8a7e;--n-webcam-amber: #ffd274;--n-webcam-line: #34554d;--n-webcam-shadow: #0008;--n-webcam-stage: #06110f;--n-webcam-clear: #0000;--n-webcam-white-soft: #fff5;--n-webcam-black-soft: #06110feb;--n-webcam-focus: #b9ffebcc;--n-webcam-on-dark: #fff}.webcam-tester{--webcam-frame-energy: 0;background:var(--n-webcam-deep);border:1px solid var(--n-webcam-line);border-radius:22px;box-shadow:0 18px 50px var(--n-webcam-shadow);color:var(--n-webcam-paper);overflow:hidden;padding:clamp(16px,3vw,28px)}.webcam-tester button{font:inherit}.webcam-tester [hidden]{display:none}.webcam-tester-privacy{align-items:center;color:var(--n-webcam-paper);display:flex;font-size:.76rem;font-weight:800;gap:9px;letter-spacing:.08em;margin:0 0 13px 2px;text-transform:uppercase}.webcam-tester-privacy-light,.webcam-tester-live-dot{background:var(--n-webcam-cyan-strong);border-radius:50%;display:block;height:8px;width:8px}.webcam-tester-stage{background:var(--n-webcam-panel);border:1px solid var(--n-webcam-line);border-radius:16px;min-height:300px;overflow:hidden;position:relative}.webcam-tester[data-state=active] .webcam-tester-stage,.webcam-tester[data-state=starting] .webcam-tester-stage{aspect-ratio:16 / 9;background:var(--n-webcam-stage)}.webcam-tester-video{height:100%;inset:0;object-fit:cover;opacity:0;position:absolute;transition:opacity .18s ease,transform .18s ease;width:100%}.webcam-tester[data-mirror=true] .webcam-tester-video{transform:scaleX(-1)}.webcam-tester[data-state=active] .webcam-tester-video{opacity:1}.webcam-tester-permission{align-items:center;display:grid;gap:clamp(24px,6vw,76px);grid-template-columns:minmax(0,1fr) 150px;inset:0;padding:clamp(28px,5vw,56px);position:absolute}.webcam-tester[data-state=active] .webcam-tester-permission,.webcam-tester[data-state=starting] .webcam-tester-permission{display:none}.webcam-tester-permission-copy{max-width:620px}.webcam-tester-permission-kicker{color:var(--n-webcam-cyan-strong);font-size:.72rem;font-weight:850;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.webcam-tester-permission h2{color:var(--n-webcam-paper);font-size:clamp(1.6rem,4vw,2.35rem);letter-spacing:-.03em;line-height:1.08;margin:0}.webcam-tester-permission p:not(.webcam-tester-permission-kicker){color:var(--n-webcam-muted);line-height:1.55;margin:12px 0 22px;max-width:560px}.webcam-tester-iris{background:var(--n-webcam-panel-soft);border:2px solid var(--n-webcam-line);border-radius:50%;height:138px;position:relative;width:138px}.webcam-tester-iris-ring{border:2px solid var(--n-webcam-cyan-strong);border-radius:50%;inset:24px;position:absolute}.webcam-tester-iris-core{background:var(--n-webcam-cyan);border:9px solid var(--n-webcam-paper);border-radius:50%;height:36px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:36px}.webcam-tester-start{background:var(--n-webcam-cyan);border:2px solid var(--n-webcam-ink);border-radius:10px;color:var(--n-webcam-button-text);cursor:pointer;font-weight:850;min-height:48px;padding:0 24px;transition:box-shadow .15s ease,transform .15s ease}.webcam-tester-start:hover{box-shadow:0 5px 0 var(--n-webcam-ink);transform:translateY(-2px)}.webcam-tester-start:focus-visible,.webcam-tester-stop:focus-visible,.webcam-tester-live-toggle:focus-visible,.webcam-tester-device-trigger:focus-visible,.webcam-tester-device-option:focus-visible{outline:3px solid var(--n-webcam-amber);outline-offset:3px}.webcam-tester-guide{inset:0;opacity:0;pointer-events:none;position:absolute}.webcam-tester[data-state=active][data-guide=true] .webcam-tester-guide{opacity:1}.webcam-tester-third{background:var(--n-webcam-white-soft);position:absolute}.webcam-tester-third-vertical-one,.webcam-tester-third-vertical-two{bottom:0;top:0;width:1px}.webcam-tester-third-vertical-one{left:33.333%}.webcam-tester-third-vertical-two{left:66.666%}.webcam-tester-third-horizontal-one,.webcam-tester-third-horizontal-two{height:1px;left:0;right:0}.webcam-tester-third-horizontal-one{top:33.333%}.webcam-tester-third-horizontal-two{top:66.666%}.webcam-tester-focus-ring{border:1px solid var(--n-webcam-focus);border-radius:50%;height:clamp(90px,14vw,170px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:clamp(90px,14vw,170px)}.webcam-tester-focus-ring:before,.webcam-tester-focus-ring:after{background:var(--n-webcam-focus);content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.webcam-tester-focus-ring:before{height:1px;width:22px}.webcam-tester-focus-ring:after{height:22px;width:1px}.webcam-tester-corner{border-color:var(--n-webcam-cyan);height:26px;opacity:0;pointer-events:none;position:absolute;width:26px}.webcam-tester[data-state=active] .webcam-tester-corner{opacity:1}.webcam-tester-corner-top-left{border-left:2px solid;border-top:2px solid;left:16px;top:16px}.webcam-tester-corner-top-right{border-right:2px solid;border-top:2px solid;right:16px;top:16px}.webcam-tester-corner-bottom-left{border-bottom:2px solid;border-left:2px solid;bottom:56px;left:16px}.webcam-tester-corner-bottom-right{border-bottom:2px solid;border-right:2px solid;bottom:56px;right:16px}.webcam-tester-live-bar{align-items:center;display:flex;justify-content:space-between;left:16px;opacity:0;pointer-events:none;position:absolute;right:16px;top:14px}.webcam-tester[data-state=active] .webcam-tester-live-bar{opacity:1;pointer-events:auto}.webcam-tester-live-mark,.webcam-tester-stop,.webcam-tester-live-toggle{align-items:center;background:var(--n-webcam-black-soft);border:1px solid var(--n-webcam-white-soft);border-radius:999px;color:var(--n-webcam-on-dark);display:flex;font-size:.72rem;font-weight:800;gap:8px;min-height:36px;padding:0 12px}.webcam-tester-live-mark{letter-spacing:.08em;text-transform:uppercase}.webcam-tester-stop,.webcam-tester-live-toggle{cursor:pointer}.webcam-tester-live-toggle[data-active=true]{border-color:var(--n-webcam-cyan);color:var(--n-webcam-cyan)}.webcam-tester-live-actions{align-items:center;display:flex;gap:7px}.webcam-tester-stop-icon{background:var(--n-webcam-coral);border-radius:2px;height:9px;width:9px}.webcam-tester-status{align-items:center;background:var(--n-webcam-black-soft);border-top:1px solid var(--n-webcam-white-soft);bottom:0;color:var(--n-webcam-on-dark);display:flex;font-size:.78rem;gap:10px;left:0;min-height:42px;padding:8px 18px;position:absolute;right:0}.webcam-tester[data-state=idle] .webcam-tester-status,.webcam-tester[data-state=stopped] .webcam-tester-status{display:none}.webcam-tester-status-wave{background:var(--n-webcam-cyan);box-shadow:5px 0 0 var(--n-webcam-cyan),10px 0 0 var(--n-webcam-cyan);height:calc(4px + (8px * var(--webcam-frame-energy)));width:2px}.webcam-tester[data-state=error] .webcam-tester-status-wave{background:var(--n-webcam-coral);box-shadow:5px 0 0 var(--n-webcam-coral),10px 0 0 var(--n-webcam-coral)}.webcam-tester[data-state=error] .webcam-tester-permission{padding-bottom:76px}.webcam-tester-film{background:var(--n-webcam-panel);border:1px solid var(--n-webcam-line);border-radius:0 0 14px 14px;display:none;grid-template-columns:repeat(3,minmax(0,1fr));margin:-1px 14px 0;overflow:hidden}.webcam-tester[data-state=active] .webcam-tester-film{display:grid}.webcam-tester-metric{border-right:1px solid var(--n-webcam-line);min-width:0;padding:13px 16px 14px}.webcam-tester-metric:last-child{border-right:0}.webcam-tester-metric>span{color:var(--n-webcam-muted);display:block;font-size:.66rem;font-weight:800;letter-spacing:.07em;margin-bottom:5px;text-transform:uppercase}.webcam-tester-metric strong{color:var(--n-webcam-paper);display:block;font-size:.95rem;line-height:1.3}.webcam-tester-metric small{color:var(--n-webcam-muted);display:block;font-size:.72rem;line-height:1.4;margin-top:3px}.webcam-tester[data-frame-delivery=reduced] .webcam-tester-metric-delivery strong{color:var(--n-webcam-amber)}.webcam-tester[data-frame-delivery=constrained] .webcam-tester-metric-delivery strong{color:var(--n-webcam-coral)}.webcam-tester-controls{margin-top:18px}.webcam-tester-device{position:relative}.webcam-tester-control-label{color:var(--n-webcam-paper);display:block;font-size:.68rem;font-weight:800;letter-spacing:.08em;margin:0 0 7px 2px;text-transform:uppercase}.webcam-tester-device-trigger{align-items:center;background:var(--n-webcam-panel);border:1px solid var(--n-webcam-line);border-radius:10px;color:var(--n-webcam-paper);cursor:pointer;display:flex;font-weight:750;justify-content:space-between;min-height:48px;padding:0 16px;text-align:left;width:100%}.webcam-tester-chevron{border-bottom:2px solid var(--n-webcam-cyan-strong);border-right:2px solid var(--n-webcam-cyan-strong);height:8px;margin-left:16px;transform:rotate(45deg) translateY(-2px);width:8px}.webcam-tester-device-trigger[aria-expanded=true] .webcam-tester-chevron{transform:rotate(225deg) translate(-2px,-2px)}.webcam-tester-device-options{background:var(--n-webcam-panel);border:1px solid var(--n-webcam-line);border-radius:10px;bottom:calc(100% + 7px);box-shadow:0 16px 36px var(--n-webcam-shadow);left:0;max-height:210px;overflow-y:auto;padding:6px;position:absolute;right:0;z-index:12}.webcam-tester-device-option{background:var(--n-webcam-clear);border:0;border-radius:7px;color:var(--n-webcam-paper);cursor:pointer;display:block;padding:11px 12px;text-align:left;width:100%}.webcam-tester-device-option:hover,.webcam-tester-device-option[aria-selected=true]{background:var(--n-webcam-cyan-soft);color:var(--n-webcam-cyan-strong)}.webcam-tester-mirror-icon,.webcam-tester-guide-icon{display:block;height:14px;position:relative;width:18px}.webcam-tester-mirror-icon{border-left:2px solid currentcolor;border-right:2px solid currentcolor}.webcam-tester-mirror-icon:before,.webcam-tester-mirror-icon:after{border-bottom:4px solid var(--n-webcam-clear);border-top:4px solid var(--n-webcam-clear);content:"";position:absolute;top:3px}.webcam-tester-mirror-icon:before{border-right:5px solid currentcolor;left:2px}.webcam-tester-mirror-icon:after{border-left:5px solid currentcolor;right:2px}.webcam-tester-guide-icon{border:1px solid currentcolor}.webcam-tester-guide-icon:before,.webcam-tester-guide-icon:after{background:currentcolor;content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.webcam-tester-guide-icon:before{height:100%;width:1px}.webcam-tester-guide-icon:after{height:1px;width:100%}.webcam-tester-limit{align-items:flex-start;border-top:1px solid var(--n-webcam-line);color:var(--n-webcam-muted);display:none;gap:12px;margin-top:18px;padding:16px 2px 0}.webcam-tester[data-state=active] .webcam-tester-limit{display:flex}.webcam-tester-limit-mark{align-items:center;border:1px solid var(--n-webcam-amber);border-radius:50%;color:var(--n-webcam-amber);display:flex;flex:0 0 auto;font-style:italic;height:22px;justify-content:center;width:22px}.webcam-tester-limit strong{color:var(--n-webcam-paper);display:block;font-size:.82rem;margin-bottom:3px}.webcam-tester-limit p{font-size:.77rem;line-height:1.5;margin:0}@media(max-width:700px){.webcam-tester[data-state=error] .webcam-tester-stage{min-height:390px}.webcam-tester-permission{gap:24px;grid-template-columns:minmax(0,1fr) 100px;padding:28px}.webcam-tester[data-state=error] .webcam-tester-permission{padding-bottom:104px}.webcam-tester-iris{height:92px;width:92px}.webcam-tester-iris-ring{inset:16px}.webcam-tester-film{grid-template-columns:1fr}.webcam-tester-metric{border-bottom:1px solid var(--n-webcam-line);border-right:0}.webcam-tester-metric:last-child{border-bottom:0}}@media(max-width:520px){.webcam-tester{border-radius:16px;padding:12px}.webcam-tester-stage{min-height:330px}.webcam-tester[data-state=active] .webcam-tester-stage,.webcam-tester[data-state=starting] .webcam-tester-stage{aspect-ratio:4 / 5}.webcam-tester-permission{display:block;padding:28px 22px}.webcam-tester[data-state=error] .webcam-tester-permission{padding-bottom:92px}.webcam-tester-iris{display:none}.webcam-tester-live-mark span:last-child,.webcam-tester-live-toggle span:last-child{display:none}}@media(prefers-reduced-motion:reduce){.webcam-tester *,.webcam-tester *:before,.webcam-tester *:after{scroll-behavior:auto;transition-duration:.01ms}}
