.cam-app{box-sizing:border-box;width:min(1280px,96vw);height:94dvh;max-width:100vw;max-height:100dvh;margin:auto;padding:0;border:1px solid #68e4e977;border-radius:18px;background:#07121ff5;color:#e0f4fa;overflow:hidden;box-shadow:0 20px 90px #0008}.cam-app[open]{display:flex;flex-direction:column;animation:vc-enter .4s cubic-bezier(.16,1,.3,1)}.cam-app::backdrop{background:#04081555}.cam-app>header{position:static;height:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#101e30;flex:none;letter-spacing:normal}.cam-app h2{font:30px Street,system-ui;color:#91fff0;margin:0}.cam-quality{display:flex;align-items:center;gap:12px}.cam-quality label{font:11px system-ui;display:grid;gap:3px}.cam-app select,.cam-app button{font:13px system-ui;padding:8px 12px;border:1px solid #53baca66;background:#122537;color:#dff8ff;border-radius:8px;min-height:40px;box-shadow:none;letter-spacing:0}.cam-app button:disabled{opacity:.42}.cam-app input{accent-color:#64f4db}.cam-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:0;flex:1}.cam-viewer{padding:18px;display:grid;place-items:center;min-height:0;min-width:0;background:radial-gradient(ellipse,#182737,#050910);overflow:hidden}.cam-viewer canvas{display:none;max-width:100%;max-height:100%;object-fit:contain;touch-action:none;background:#060911;border:1px solid #3e5d6a}.cam-viewer[data-orientation=landscape] canvas:first-child{display:block;aspect-ratio:16/9}.cam-viewer[data-orientation=portrait] canvas:last-child{display:block;height:100%;aspect-ratio:9/16}.cam-controls{padding:14px;overflow:auto;min-height:0;border-left:1px solid #4c8b9e44}.cam-controls label{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font:12px/1.5 system-ui;margin-bottom:16px;color:#c5dbe9}.cam-controls select{width:100%}.cam-controls input[type=range]{width:100%;height:24px;margin:0;padding:0;touch-action:pan-y;cursor:ew-resize;background:transparent;border:0;accent-color:#62f6d9}.cam-controls output{font:11px monospace;color:#f89de1}.cam-bar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-top:1px solid #4c8b9e44;flex:none}.cam-status{font:12px/1.5 system-ui;color:#98c6cc;margin:0;padding:0 16px 10px;flex:none}.cam-exports{max-height:100px;overflow:auto;padding:0 16px;flex:none}.cam-file{display:flex;gap:10px;padding:7px;align-items:center}.cam-file a{color:#8beee8;font:12px monospace;overflow-wrap:anywhere}.cam-file button{margin-left:auto}.vv-settings-body{padding:16px 22px;overflow:auto;min-height:0}.vv-settings-body h3{font:18px Street,system-ui;color:#87e8db}.vv-settings-body label{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:16px 0;font:14px system-ui}.vv-settings-body input[type=range]{width:100%;accent-color:#68eddf}.vv-settings-body input[type=checkbox]{flex:none}.vv-settings-body p{font:12px/1.6 system-ui;color:#9ab8c3}.vv-settings-body select{font-size:16px;background:#122537;color:#dff8ff;border:1px solid #53baca66;padding:8px;border-radius:8px}
@media(max-width:700px){.cam-app{width:100%;height:100dvh;border-radius:16px 16px 0 0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.cam-app>header{padding:8px 12px}.cam-quality{gap:5px}.cam-quality button{font-size:11px;padding:6px}.cam-quality select{padding:5px;font-size:16px}.cam-layout{grid-template-columns:1fr;grid-template-rows:minmax(130px,1fr) minmax(100px,.8fr)}.cam-viewer{padding:10px}.cam-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;border-left:0;border-top:1px solid #4c8b9e44}.cam-controls label{min-width:0;margin:0}.cam-bar{gap:5px;padding:8px}.cam-bar button{flex:1;font-size:11px;padding:7px;min-height:38px}.cam-status{font-size:10px;padding-bottom:5px}.cam-exports{max-height:72px}.vv-settings{width:100%;height:100dvh;border-radius:16px 16px 0 0}}
@media(prefers-reduced-motion:reduce){.cam-app[open]{animation:none}}
/* Anchored wallpaper changes color and pattern without shifting home/app geometry. */
@media(max-width:700px){.vv-mobile-backdrop:before,.vv-mobile-backdrop:after{animation:vv-spectrum 26s linear infinite;transform:none;opacity:var(--vv-wallpaper-strength,.7);background:repeating-conic-gradient(from 0deg at 50% 45%,#52dce829 0deg 12deg,#a742df20 12deg 25deg,transparent 25deg 40deg);filter:blur(25px);inset:-20%;width:140%;height:140%;border-radius:0}.vv-mobile-backdrop:after{animation-direction:reverse;background:radial-gradient(ellipse at 22% 68%,#fb3eca66,transparent 55%),radial-gradient(ellipse at 76% 22%,#18dbce55,transparent 55%);filter:blur(40px)}.vv-mobile-tile strong,.vv-mobile-dock button{font-size:calc(11px * var(--vv-text-scale,1))}}
@keyframes vv-spectrum{0%{filter:blur(28px) hue-rotate(0deg);opacity:calc(var(--vv-wallpaper-strength,.7)*.7)}50%{filter:blur(28px) hue-rotate(90deg);opacity:var(--vv-wallpaper-strength,.7)}100%{filter:blur(28px) hue-rotate(360deg);opacity:calc(var(--vv-wallpaper-strength,.7)*.7)}}
html[data-vv-motion=false] .vv-mobile-backdrop:before,html[data-vv-motion=false] .vv-mobile-backdrop:after{animation:none}html[data-vv-motion=false] .vc-app,html[data-vv-motion=false] .cam-app,html[data-vv-motion=false] .vv-mobile-sheet{animation:none!important}html[data-vv-blur=false] .vv-mobile-sheet,html[data-vv-blur=false] #vv-mobile-music{backdrop-filter:none}
@media(prefers-reduced-motion:reduce){.vv-mobile-backdrop:before,.vv-mobile-backdrop:after{animation:none!important}}

@media(max-width:700px){input:not([type=range]):not([type=checkbox]),select,textarea{font-size:16px}.avatar-canvas{touch-action:none;user-select:none}.avatar-orbit{flex-wrap:wrap}}

.cam-viewer{position:relative}.cam-app:has(.cam-bar>button:first-child:not(:disabled)) .cam-viewer:after{content:'◉  CAMERA OFF · PRESS START CAMERA';position:absolute;left:50%;top:50%;translate:-50% -50%;padding:10px 16px;border:1px solid #5ff5f640;border-radius:3px;background:#050a14cc;font:11px/1.2 Consolas,'Cascadia Mono',ui-monospace,Menlo,monospace;letter-spacing:.18em;color:#9fe9e2;text-shadow:0 0 10px #5ff5f677;pointer-events:none;white-space:nowrap}
