:root{color:#f5f5f5;font-synthesis:none;-webkit-font-smoothing:antialiased;background:#090a0b;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline-offset:4px;outline:3px solid #ffc36a}a:focus-visible{outline-offset:4px;outline:3px solid #ffc36a}input:focus-visible{outline-offset:4px;outline:3px solid #ffc36a}.boot-loading{text-align:center;padding:40px}.camera-app{color:#f5f5f5;background:#08090a;justify-content:center;width:100%;height:100dvh;min-height:0;display:flex}.camera-shell{background:#16181a;width:100%;max-width:580px;height:100%;position:relative;overflow:hidden}.camera-screen{isolation:isolate;background:#1c1e20;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.live-video{object-fit:cover;object-position:center;opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.live-video.is-active{opacity:1}.head-overlay{transform-origin:0 0;opacity:0;pointer-events:none;z-index:2;will-change:transform;width:360px;height:360px;position:absolute;top:0;left:0}.camera-app .avatar-svg{width:100%;height:100%;display:block;overflow:visible}.camera-app .three-avatar{width:100%;height:100%;position:relative}.camera-app .three-avatar canvas{pointer-events:none;width:100%;height:100%;display:block}.camera-app .three-thumbnail{object-fit:contain;width:100%;height:100%;display:block}.camera-app .three-placeholder{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.camera-app .three-placeholder>img{object-fit:contain;width:100%;height:100%}.camera-app .three-placeholder>span{display:none}.camera-app .custom-avatar{transform-origin:50%;justify-content:center;align-items:center;width:100%;height:100%;padding:15%;display:flex;position:relative}.camera-app .custom-avatar img{object-fit:contain;width:100%;height:100%;display:block}.camera-onboarding{background:radial-gradient(at 50% 28%,#34302c 0,#202021 45%,#141617 85%);flex-direction:column;justify-content:center;align-items:center;padding:0 24px 190px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.onboarding-head{width:172px;height:172px;margin:0 0 17px;position:relative}.onboarding-head:before{content:"";z-index:0;background:#ffffff04;border:1px solid #ffffff13;border-radius:50%;position:absolute;top:8px;bottom:8px;left:8px;right:8px}.onboarding-head>*{position:relative}.camera-onboarding h1{letter-spacing:2px;margin:0 0 13px;font-size:26px;font-weight:650}.camera-onboarding p{color:#c3c0bb;text-align:center;margin:0;font-size:13px;line-height:1.8}.camera-onboarding>span{color:#8f8e8a;margin-top:18px;font-size:11px}.cam-header{z-index:5;padding:calc(env(safe-area-inset-top,0px) + 15px) 20px 30px;pointer-events:none;background:linear-gradient(#0009,#0000);align-items:center;gap:15px;display:flex;position:absolute;top:0;left:0;right:0}.cam-header>*{pointer-events:auto}.camera-brand{letter-spacing:2px;text-shadow:0 1px 8px #0005;flex:1;align-items:center;gap:9px;font-size:20px;font-weight:750;display:flex}.camera-brand img{border-radius:9px}.brand-caption{letter-spacing:1px;color:#ffffffb3;margin-left:7px;font-size:12px;font-weight:450}.local-badge{white-space:nowrap;background:#0004;border:1px solid #ffffff18;border-radius:20px;align-items:center;gap:5px;padding:7px 9px;font-size:10px;display:inline-flex}.cam-icon-button{color:#f7f7f7;background:#0005;border:0;border-radius:50%;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;transition:background .15s;display:inline-flex}.cam-icon-button:hover{background:#ffffff20}.cam-bottom{z-index:6;padding:28px 0 calc(env(safe-area-inset-bottom,0px) + 14px);background:linear-gradient(#0000,#0a0b0de6 26%,#0a0b0df7 100%);position:absolute;bottom:0;left:0;right:0}.camera-status{text-align:center;color:#f0eae1;letter-spacing:.2px;justify-content:center;align-items:center;height:40px;padding:0 21px 8px;font-size:11px;line-height:1.6;display:flex}.camera-status>span{text-shadow:0 1px 6px #0008;justify-content:center;align-items:center;gap:7px;display:flex}.camera-status i{background:#d5b998;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:block}.camera-status i.is-tracking{background:#a7d2a9;box-shadow:0 0 0 3px #9ec4a11a}.camera-error-hint{color:#f0d0b3;background:#2a211ce0;border:0;border-radius:9px;max-width:100%;min-height:40px;max-height:58px;padding:7px 12px;font-size:11px;line-height:1.6;overflow:auto}.character-strip{scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:10px;padding:7px 24px;display:flex;overflow:auto hidden}.character-strip::-webkit-scrollbar{display:none}.camera-character{color:#cfcecc;scroll-snap-align:center;background:0 0;border:0;flex-direction:column;flex:0 0 70px;align-items:center;gap:8px;min-width:0;padding:3px;display:flex}.character-disc{background:#ffffff0e;border:1px solid #ffffff12;border-radius:50%;justify-content:center;align-items:center;width:61px;height:61px;transition:background .15s,box-shadow .15s;display:flex;position:relative}.camera-character.selected .character-disc{background:#e7d2b41f;box-shadow:0 0 0 2px #151515,0 0 0 4px #f2d3a3}.camera-character.selected{color:#f7dfbb}.camera-character:hover .character-disc{background:#ffffff20}.character-disc .avatar-svg,.character-disc .three-thumbnail{width:110%;height:110%}.character-disc .custom-avatar{padding:8px}.camera-character-name{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px;width:76px;font-size:10px;line-height:1.5;display:block;overflow:hidden}.upload-character{color:#c3b8a8}.upload-character .character-disc{background:0 0;border:1px dashed #938575}.upload-character:disabled{opacity:.4}.shutter-row{grid-template-columns:1fr 1fr 1fr;place-items:center;max-width:380px;margin:12px auto 0;padding:0 18px;display:grid}.shutter{color:#24211b;background:0 0;border:3px solid #f3f3f2;border-radius:50%;justify-content:center;align-items:center;width:77px;height:77px;padding:4px;transition:opacity .15s,transform .15s;display:flex}.shutter>span{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.shutter.start-camera{border-color:#ecd1a9}.shutter.start-camera>span{background:#ecd1a9}.shutter:disabled{opacity:.35}.shutter:active:not(:disabled){transform:scale(.94)}.settings-button{background:#ffffff0c;border:1px solid #ffffff10;width:45px;height:45px}.camera-mode{color:#b8b9b7;flex-direction:column;align-items:center;gap:6px;font-size:9px;display:flex}.shutter-caption{text-align:center;color:#e7cc9f;letter-spacing:2px;margin-top:10px;font-size:11px}.capture-dot{background:#9a8160;border-radius:50%;width:15px;height:15px}.face-guide{pointer-events:none;opacity:.65;width:170px;height:220px;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.face-guide i{border:2px solid #fffe;border-radius:12px;width:26px;height:26px;position:absolute}.face-guide i:first-child{border-bottom:0;border-right:0;top:0;left:0}.face-guide i:nth-child(2){border-bottom:0;border-left:0;top:0;right:0}.face-guide i:nth-child(3){border-top:0;border-right:0;bottom:0;left:0}.face-guide i:nth-child(4){border-top:0;border-left:0;bottom:0;right:0}.camera-toast{z-index:12;left:20px;right:20px;top:calc(env(safe-area-inset-top,0px) + 80px);color:#f4dfbf;text-align:center;background:#282724f2;border:1px solid #e9d2b53b;border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.8;position:absolute}.camera-file-input{clip:rect(0,0,0,0);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.camera-dialog{color:#f6f3ed;width:min(100%,580px);max-width:580px;max-height:88dvh;padding:22px 24px calc(env(safe-area-inset-bottom,0px) + 24px);background:#202123;border:1px solid #ffffff1b;border-radius:24px 24px 0 0;margin:auto auto 0;overflow-y:auto}.camera-dialog::backdrop{background:#0008}.sheet-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.sheet-heading h2{margin:0;font-size:18px;font-weight:650}.camera-dialog .cam-icon-button{background:#ffffff0b}.range-label{justify-content:space-between;align-items:center;margin-bottom:18px;font-size:14px;display:flex}.range-label output{color:#e1c294;font-size:12px}#head-size{accent-color:#e4c596;width:100%;min-height:32px}.setting-caption{color:#aeaaa2;margin:8px 0 22px;font-size:11px;line-height:1.8}.quality-option{border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:18px;padding:19px 0;font-size:14px;display:flex}.quality-option small{color:#a5a39e;margin-top:5px;font-size:11px;line-height:1.7;display:block}.quality-option input{accent-color:#e4c596;flex-shrink:0;width:23px;height:23px}.camera-privacy{color:#bcbea9;align-items:flex-start;gap:10px;margin-top:21px;display:flex}.camera-privacy svg{flex-shrink:0;margin-top:2px}.camera-privacy p{margin:0;font-size:11px;line-height:1.9}.camera-limit{color:#a3a19a;margin:15px 0;font-size:11px;line-height:1.9}.camera-version{text-align:center;color:#848681;letter-spacing:1px;margin-top:21px;font-size:10px;display:block}.cam-render-error{background:#392921;border:1px solid #795744;border-radius:12px;margin-top:16px;padding:13px;font-size:12px;line-height:1.8}.cam-render-error>button,.custom-image-setting button{color:#f6e2bf;background:#5c4434;border:0;border-radius:8px;min-height:44px;padding:9px 12px;font-size:12px}.cam-render-error summary{cursor:pointer;min-height:44px;padding-top:13px}.cam-render-error code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.cam-render-error a{color:#e5c49b;margin-top:12px;font-size:11px;display:block}.custom-image-setting{margin-top:15px;font-size:12px;line-height:1.8}.custom-image-setting button{color:#ecc9bd}.photo-dialog{width:min(100%,580px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 24px)}.photo-preview{object-fit:contain;background:#111;border-radius:12px;width:100%;max-height:59dvh;display:block}.photo-actions{gap:12px;margin-top:18px;display:flex}.photo-actions button{color:#f5f1e9;background:#ffffff13;border:0;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:8px;min-height:48px;font-size:13px;display:flex}.photo-actions button.save-photo{color:#33291c;background:#e6c79a;font-weight:650}.photo-dialog>p{text-align:center;color:#aaa69d;font-size:11px;line-height:1.8}.spin{animation:1s linear infinite camera-spin}@keyframes camera-spin{to{transform:rotate(360deg)}}@media (min-width:800px){.camera-shell{border-left:1px solid #ffffff10;border-right:1px solid #ffffff10;max-width:520px}.camera-dialog{max-width:520px}.cam-bottom{padding-bottom:22px}.camera-onboarding{padding-bottom:210px}}@media (max-height:650px){.cam-header{padding-top:10px;padding-bottom:15px}.cam-bottom{padding-top:15px;padding-bottom:8px}.camera-status{height:30px;font-size:10px}.character-disc{width:48px;height:48px}.camera-character{flex-basis:62px;gap:6px}.character-strip{gap:5px;padding:5px 16px}.camera-character-name{width:68px;font-size:9px}.shutter-row{margin-top:6px}.shutter{width:61px;height:61px}.shutter-caption{margin-top:6px;font-size:10px}.camera-onboarding{padding-bottom:155px}.onboarding-head{width:120px;height:120px;margin-bottom:8px}.camera-onboarding h1{font-size:23px}.camera-onboarding>span{margin-top:9px}.face-guide{width:130px;height:160px;top:35%}.camera-mode{font-size:8px}}@media (prefers-reduced-motion:reduce){.camera-app *,.camera-dialog *{transition:none!important;animation:none!important}}.live-video.is-mirrored{transform:scaleX(-1)}.camera-preview{opacity:0;pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.camera-preview.is-active{opacity:1}.camera-preview.is-composited{z-index:3}.camera-screen .face-guide{z-index:4}.camera-shell[data-tracking=paused] .camera-status>span{color:#f5cd93}@media (max-width:380px){.cam-header{gap:8px;padding-left:16px;padding-right:16px}.brand-caption{display:none}.local-badge{padding:6px 8px}}
