.cam .play-panel{color:#f2f5f7;width:min(720px,100vw - 32px,133.333dvh - 280px);min-width:min(280px,100vw - 32px);font-family:var(--font-sans);background:#15181c;border-radius:22px;padding:12px;box-shadow:0 0 0 2px #2a2f36,0 24px 60px -20px #000}.cam-screen{aspect-ratio:4/3;isolation:isolate;background:#050607;border-radius:14px;position:relative;overflow:hidden}.cam-screen video,.cam-screen canvas{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.cam-screen video{transform:scaleX(-1)}.cam-screen canvas[hidden],.cam-screen video[hidden]{display:none}.cam-screen:after{content:"";pointer-events:none;z-index:2;background:repeating-linear-gradient(#ffffff09 0 1px,#0000 1px 3px),radial-gradient(#0000 55%,#0000008c 100%);position:absolute;inset:0}.cam-hud{z-index:3;pointer-events:none;letter-spacing:.08em;text-shadow:0 1px 2px #000c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(11px,2.4vw,15px);position:absolute;inset:0}.cam-hud[hidden]{display:none}.cam-corner{aspect-ratio:1;border:0 solid #ffffffe6;width:9%;position:absolute}.cam-corner.tl{border-top-width:3px;border-left-width:3px;top:6%;left:5%}.cam-corner.tr{border-top-width:3px;border-right-width:3px;top:6%;right:5%}.cam-corner.bl{border-bottom-width:3px;border-left-width:3px;bottom:6%;left:5%}.cam-corner.br{border-bottom-width:3px;border-right-width:3px;bottom:6%;right:5%}.cam-rec{align-items:center;gap:.5em;font-weight:700;display:flex;position:absolute;top:9%;left:9%}.cam-dot{background:#ff3b30;border-radius:50%;width:.85em;height:.85em;animation:1s step-end infinite cam-blink;box-shadow:0 0 8px #ff3b30}@keyframes cam-blink{50%{opacity:0}}.cam-time{font-variant-numeric:tabular-nums;margin-left:.4em;font-weight:400}.cam-battery{border:2px solid;border-radius:3px;gap:2px;width:2.2em;height:1.05em;padding:2px;display:flex;position:absolute;top:9%;right:9%}.cam-battery:after{content:"";background:currentColor;border-radius:0 2px 2px 0;width:3px;height:50%;position:absolute;top:25%;right:-5px}.cam-battery i{background:#7ee081;border-radius:1px;flex:1}.cam-caption{align-items:center;gap:.5em;display:flex;position:absolute;bottom:9%;left:9%}.cam-caption b{background:var(--brand);color:#002a30;border-radius:4px;padding:.1em .45em;font-weight:700}.cam-mode{position:absolute;bottom:9%;right:9%}.cam-flash{z-index:4;opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.cam-flash.go{animation:.45s ease-out cam-flash}@keyframes cam-flash{0%{opacity:.95}to{opacity:0}}.cam-message{z-index:5;text-align:center;color:#e9eef2;place-content:center;justify-items:center;gap:14px;padding:24px;font-size:clamp(14px,2.6vw,17px);line-height:1.45;display:grid;position:absolute;inset:0}.cam-message[hidden]{display:none}.cam-message p{max-width:34ch;margin:0}.cam-message .cam-icon{opacity:.85;width:44px;height:44px}.cam-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 4px 2px;display:flex}.cam-note{color:#b9c3cc;flex:240px;align-items:center;gap:8px;margin:0;font-size:14px;line-height:1.35;display:flex}.cam-note svg{color:#7ee081;flex:none}.cam-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.cam-btn{appearance:none;min-height:44px;font:600 15px / 1 var(--font-sans);color:#f2f5f7;cursor:pointer;background:#2a2f36;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.cam-btn:hover{background:#353b44}.cam-btn.primary{background:var(--brand);color:#002a30}.cam-btn.primary:hover{background:color-mix(in oklab, var(--brand) 85%, #fff)}.cam-btn:disabled{opacity:.5;cursor:default}.cam-btn:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.cam-btn[hidden]{display:none}.cam-shutter-ring{width:16px;height:16px;box-shadow:inset 0 0 0 2px var(--brand);background:currentColor;border:3px solid;border-radius:50%}@media (width<=480px){.cam .play-panel{border-radius:18px;padding:8px}.cam-actions{width:100%}.cam-actions .cam-btn{flex:auto}}@media (prefers-reduced-motion:reduce){.cam-dot,.cam-flash.go{animation:none}}
