*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;background:#0d0006;font-family:Raleway,sans-serif}.camera-video{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.camera-video.mirrored{transform:scaleX(-1)}.camera-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;pointer-events:none;opacity:0;transition:opacity .05s}.flash.on{opacity:1}.ui{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top,14px);padding-bottom:env(safe-area-inset-bottom,18px)}.top-bar{width:100%;display:flex;align-items:center;justify-content:flex-end;padding:10px 18px 0}.btn-back{background:#ffffff1f;border:1px solid rgba(255,255,255,.34);color:#fff;font-family:Raleway,sans-serif;font-size:.66rem;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:50px;cursor:pointer;text-decoration:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s}.btn-back:hover{background:#fff3}.bottom-area{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(8px,2vh,18px);padding-bottom:6px}.party-label{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;text-align:center;max-width:90vw}.party-label-name{font-family:Great Vibes,cursive;font-size:clamp(1.9rem,7.5vw,3.4rem);color:#fffffff5;text-shadow:0 2px 20px rgba(0,0,0,.78),0 0 36px rgba(0,0,0,.44);line-height:1.05}.party-label-sub{font-family:Raleway,sans-serif;font-weight:300;font-size:clamp(.56rem,1.65vw,.8rem);letter-spacing:4px;text-transform:uppercase;color:#c9a84cf5;text-shadow:0 1px 10px rgba(0,0,0,.72)}.bottom-controls{display:flex;align-items:center;justify-content:center;gap:clamp(24px,8vw,44px)}.btn-capture{width:74px;height:74px;border-radius:50%;background:#ffffff29;border:2.5px solid rgba(255,255,255,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;position:relative;transition:transform .1s;flex-shrink:0}.btn-capture:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:50%;background:#fff}.btn-capture:active{transform:scale(.91)}.btn-round{width:46px;height:46px;border-radius:50%;background:#ffffff1f;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;transition:transform .15s;flex-shrink:0}.btn-round:active{transform:scale(.9)}.btn-spacer{width:46px;flex-shrink:0}.result-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0006;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:24px}.result-img{max-width:100%;max-height:72vh;border-radius:12px;box-shadow:0 24px 64px #000000a6}.result-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.result-btn{font-family:Raleway,sans-serif;font-size:.7rem;letter-spacing:3px;text-transform:uppercase;padding:14px 28px;border-radius:50px;cursor:pointer;border:none;transition:opacity .2s;white-space:nowrap}.result-btn:active{opacity:.7}.result-btn.primary{background:#89405e;color:#fff}.result-btn.secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.28);color:#fff}.perm-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0006;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px;text-align:center;color:#fff}.perm-icon{font-size:3rem}.perm-screen h2{font-family:Cormorant Garamond,serif;font-size:1.6rem;font-weight:400;font-style:italic}.perm-screen p{font-size:.85rem;color:#fff9;line-height:1.75;max-width:300px}@media (max-height: 600px){.party-label-name{font-size:clamp(1.4rem,5.5vw,2.4rem)}.party-label-sub{font-size:.56rem;letter-spacing:3px}.btn-capture{width:62px;height:62px}.btn-round{width:40px;height:40px;font-size:1rem}.btn-spacer{width:40px}.bottom-area{gap:6px}}@media (max-width: 360px){.party-label-name{font-size:1.7rem}.bottom-controls{gap:20px}}
