.party-selfie-dialog{border:1px solid #66528a;border-radius:25px;padding:0;width:min(94vw,480px);max-height:95dvh;background:#130f24;color:#fff;box-shadow:0 24px 100px #000b;overflow:auto}
.party-selfie-dialog::backdrop{background:#05030ddf;backdrop-filter:blur(9px)}
.party-selfie-editor{padding:22px;display:flex;flex-direction:column;gap:13px;margin:0}
.party-selfie-eyebrow{font-size:10px;letter-spacing:1.4px;color:#dfff00;font-weight:900}
.party-selfie-editor h2{font-size:27px;line-height:1.08;margin:7px 0 8px}
.party-selfie-help,.party-selfie-status{font-size:13px;line-height:1.4;color:#d5cfe4;margin:0}
.party-selfie-stage{position:relative;width:100%;aspect-ratio:1;background:radial-gradient(ellipse,#37295c,#08060e);overflow:hidden;border-radius:22px;border:1px solid #766590;touch-action:none;cursor:grab;isolation:isolate}
.party-selfie-stage:active{cursor:grabbing}
.party-selfie-stage:focus-visible{outline:3px solid #dfff00;outline-offset:3px}
.party-selfie-image{position:absolute;max-width:none;user-select:none;pointer-events:none;image-orientation:from-image}
.party-selfie-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.party-selfie-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#988ba9;font-size:12px;gap:5px;text-align:center;padding:25px}
.party-selfie-empty>span{font-size:90px;line-height:1}
.party-selfie-guide{position:absolute;inset:0;pointer-events:none;z-index:2}
.party-selfie-oval{position:absolute;left:25%;top:12%;width:50%;height:62%;border:2px dashed #e3ff84;border-radius:48% 48% 45% 45%;box-shadow:0 0 0 200px #07051065}
.party-selfie-shoulders{position:absolute;width:73%;height:39%;left:13.5%;top:72%;border:1px dashed #e3ff84aa;border-radius:50% 50% 0 0}
.party-selfie-center{position:absolute;left:38%;right:38%;top:39%;border-top:1px dotted #e3ff8499}
.party-selfie-position{position:absolute;left:0;right:0;bottom:8%;text-align:center;font-size:9px;letter-spacing:1px;font-weight:900;color:#ecffb8;pointer-events:none;text-shadow:0 1px 5px #000;z-index:3}
.party-selfie-zoom{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:800}
.party-selfie-zoom input{flex:1;min-width:0;accent-color:#dfff00;height:30px}
.party-selfie-editor button,.party-selfie-file{border:1px solid #73658d;border-radius:13px;background:#2c2242;color:#fff;font:inherit;font-size:13px;font-weight:800;padding:12px 15px;cursor:pointer;line-height:1.25;text-align:center;min-height:42px}
.party-selfie-zoom button{font-size:11px;padding:8px;min-height:35px}
.party-selfie-actions{display:grid;gap:9px}
.party-selfie-file{display:block;margin:0;position:relative;overflow:hidden}
.party-selfie-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px}
.party-selfie-editor [data-selfie=save]{background:#dfff00;color:#171024;border-color:#dfff00;font-size:15px}
.party-selfie-editor [data-selfie=shutter]{background:#8d4fff;border-color:#ae7fff}
.party-selfie-editor button:disabled{opacity:.4;cursor:default}
.party-selfie-editor .party-selfie-cancel{border:0;background:transparent;color:#b6accb;padding:3px;min-height:32px}
.party-selfie-privacy{font-size:10px;line-height:1.4;color:#a398b5;margin:0;text-align:center}
.party-selfie-dialog [hidden]{display:none!important}
@media(max-width:380px){.party-selfie-editor{padding:16px;gap:10px}.party-selfie-editor h2{font-size:24px}.party-selfie-position{font-size:8px}.party-selfie-zoom{gap:8px}}
@media(prefers-reduced-motion:reduce){.party-selfie-dialog *{scroll-behavior:auto}}
.party-selfie-dialog{width:min(96vw,460px);max-height:calc(100dvh - 12px);border-radius:18px}
.party-selfie-editor{padding:14px;gap:9px}
.party-selfie-editor h2{font-size:23px;margin:4px 0 6px}
.party-selfie-help,.party-selfie-status{font-size:12px;line-height:1.3}
.party-selfie-stage{width:min(100%,max(150px,calc(100dvh - 355px)));align-self:center;flex:none;border-radius:16px}
.party-selfie-empty{padding:12px}.party-selfie-empty>span{font-size:60px}
.party-selfie-empty p{margin:0}
.party-selfie-sources{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.party-selfie-sources .party-selfie-file{font-size:12px;padding:10px 7px;min-height:40px}
.party-selfie-sources>button{font-size:12px;padding:10px 7px;min-height:40px}
.party-selfie-actions{grid-template-columns:minmax(74px,.7fr) minmax(0,1.7fr);gap:8px;position:sticky;bottom:-14px;background:#130f24;padding:5px 0;z-index:4}
.party-selfie-actions .party-selfie-cancel{border:1px solid #73658d;padding:10px 6px;color:#ddd3ed}
.party-selfie-editor .party-selfie-live{padding:3px;min-height:26px;border:0;background:transparent;font-size:11px;color:#c7b5ec}
.party-selfie-zoom input{height:24px}.party-selfie-zoom button{min-height:30px}
.selfie-upload-progress{display:grid;gap:9px;margin-top:12px;font-size:13px;color:#dbd2ec}
.selfie-upload-progress progress{width:100%;height:14px;accent-color:#dfff00}
.selfie-upload-progress .button{justify-self:start}
.selfie-retry-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
@media(max-height:650px){.party-selfie-editor{padding:11px;gap:7px}.party-selfie-editor h2{font-size:21px}.party-selfie-eyebrow{font-size:8px}.party-selfie-help{font-size:11px}.party-selfie-stage{width:min(100%,max(138px,calc(100dvh - 380px)))}.party-selfie-privacy{font-size:9px}.party-selfie-actions{bottom:-11px}.party-selfie-editor .party-selfie-live{min-height:20px;font-size:10px}}
