@font-face{font-family:Fredoka;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/fredoka-0.ttf)format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/fredoka-1.ttf)format("truetype")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/fredoka-2.ttf)format("truetype")}
:root{--bg:#bfe6ff;--dot:#fff8;--card:#fffdf5;--ink:#1d1b3a;--mut:#6b6890;--pk:#ff7eb6;--yl:#ffd93d;--mn:#6ee7b7;--bl:#6aa8ff;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#25214a;--dot:#ffffff14;--card:#33305f;--ink:#fdf8ff;--mut:#b9b5e0}}html{scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:var(--bg);background-image:radial-gradient(var(--dot) 3px, transparent 3.5px);background-size:30px 30px;margin:0;font-family:Fredoka,Trebuchet MS,system-ui,sans-serif;overflow-x:hidden}.screen{max-width:1080px;margin:0 auto;padding:22px;display:none;position:relative}.screen.on{display:block}.pop{border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:var(--card);border-radius:22px}button{font:inherit;cursor:pointer;color:var(--ink);background:var(--card);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:14px;padding:10px 16px;font-weight:600;transition:transform 80ms,box-shadow 80ms}button:hover:not(:disabled){box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}button:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}button:disabled{opacity:.45;cursor:not-allowed}.pri{background:var(--pk)}.yl{background:var(--yl)}.red{background:#ff6b6b}input,select{font:inherit;border:3px solid var(--ink);color:#1d1b3a;background:#fff;border-radius:14px;width:100%;padding:11px 14px;font-weight:500}.lab{margin:16px 0 8px;font-weight:700;display:block}.note{color:var(--mut);font-size:.85rem}.home #name,.home #rid{letter-spacing:.02em;font-family:Fredoka,Trebuchet MS,system-ui,sans-serif;font-weight:600}.home #name::placeholder,.home #rid::placeholder{letter-spacing:normal;font-family:inherit;font-weight:400}.room-error{box-shadow:3px 3px 0 var(--ink);color:#1d1b3a;background:#ffe2ee;border:3px solid #1d1b3a;border-radius:16px;align-items:center;gap:12px;margin-bottom:20px;padding:14px;display:flex}.room-error-icon{flex-shrink:0;font-size:2rem}.room-error strong{font-size:1.05rem;display:block}.room-error p{overflow-wrap:anywhere;margin:4px 0 0;line-height:1.4}.room-error-close{color:#1d1b3a;background:#fffdf5;border:2px solid #1d1b3a;flex-shrink:0;align-self:flex-start;place-items:center;width:40px;height:40px;margin-left:auto;padding:0;font-size:1.7rem;line-height:1;display:grid;box-shadow:2px 2px #1d1b3a}.room-error-close:focus-visible{outline-offset:4px;outline:3px solid #1d1b3a}.join-room:disabled{opacity:1;color:#514566;box-shadow:none;cursor:not-allowed;background:repeating-linear-gradient(-45deg,#eee9f4,#eee9f4 10px,#e2daec 10px 20px);border-color:#786988}.join-room span{display:inline-block;transform:rotate(-12deg)}.room-code-hint{color:var(--mut);margin:9px 0 0;font-size:.85rem}.hero{text-align:center;margin:10px 0 18px}.logo{letter-spacing:-1px;margin:0;font-size:clamp(3rem,10vw,5.2rem);font-weight:700;line-height:1}.logo span{text-shadow:3px 3px 0 var(--ink);-webkit-text-stroke:2px var(--ink);animation:2.2s ease-in-out infinite bob;display:inline-block}.logo span:nth-child(3n+1){color:var(--pk)}.logo span:nth-child(3n+2){color:var(--yl)}.logo span:nth-child(3n){color:var(--mn)}@keyframes bob{50%{transform:translateY(-8px)rotate(-4deg)}}.tag{background:var(--yl);color:#1d1b3a;border:3px solid var(--ink);border-radius:99px;margin-top:10px;padding:3px 14px;font-weight:600;display:inline-block;transform:rotate(-3deg)}.home{max-width:560px;margin:0 auto;padding:20px}.modes{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mode{text-align:center;padding:14px 6px;line-height:1.2}.mode .e{font-size:2.2rem;display:block}.mode.sel{background:var(--mn);color:#1d1b3a;transform:rotate(-2deg)scale(1.04)}.mode-couple.sel{background:var(--pk);transform:rotate(2deg)scale(1.04)}.mode-group.sel{background:var(--yl);transform:rotate(-1deg)scale(1.04)}.home-alone .go{background:var(--mn);color:#1d1b3a}.home-couple .go{background:var(--pk);color:#1d1b3a}.home-group .go{background:var(--yl);color:#1d1b3a}.mode small{font-size:.75rem;font-weight:400;display:block}.go{width:100%;margin-top:18px;padding:14px;font-size:1.25rem}.or{color:var(--mut);align-items:center;gap:10px;margin:20px 0 12px;font-weight:600;display:flex}.or:before,.or:after{content:"";border-top:3px dotted var(--mut);flex:1}.row{gap:10px;display:flex}.row input{flex:3;min-width:0}.row button{flex:1}.password-option{cursor:pointer;align-items:flex-start;gap:10px;margin-top:18px;font-weight:700;display:flex}.password-option input{width:20px;height:20px;accent-color:var(--pk);flex-shrink:0;margin:2px 0 0;padding:0}.password-option small{color:var(--mut);margin-top:4px;font-size:.85rem;font-weight:400;display:block}.password-dialog{width:min(440px,100% - 40px);max-height:calc(100dvh - 40px);color:var(--ink);padding:24px}.password-dialog::backdrop{background:#1d1b3a99}.password-dialog h2{margin:0 0 12px;font-size:1.5rem}.password-dialog p{line-height:1.5}.password-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:22px;display:flex}.stk{pointer-events:none;z-index:0;font-size:2.6rem;animation:5s ease-in-out infinite fl;position:fixed}@keyframes fl{50%{transform:translateY(-18px)rotate(10deg)}}.home,.hero{z-index:1;position:relative}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.room{font-size:1.3rem;font-weight:700}.room b{background:var(--yl);color:#1d1b3a;border:3px solid var(--ink);letter-spacing:2px;border-radius:10px;padding:2px 10px}.booth{grid-template-columns:1fr 190px;align-items:start;gap:18px;display:grid}@media (max-width:760px){.booth{grid-template-columns:1fr}.modes{gap:8px}.mode .e{font-size:1.7rem}}.room-people{margin-block:18px}.room-member-list{padding:0;list-style:none}.room-member-list li{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-block:12px;display:flex}.room-member-name{overflow-wrap:anywhere;min-width:0}.room-member-actions{flex-wrap:wrap;gap:10px;display:flex}.room-member-actions button{min-height:44px;font-size:.9rem}.room-people button.yl,.room-people button.red{color:#1d1b3a}.room-request{border:3px solid var(--ink);border-radius:12px;padding:12px}.room-people button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.stage{border:4px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:22px;transition:all .2s;position:relative;overflow:hidden}.grid{gap:8px;margin:0 auto;display:grid}.cell{aspect-ratio:var(--ar);background:#000;border:3px solid #1d1b3a;border-radius:10px;position:relative;overflow:hidden}.cell video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.cell span{background:var(--yl);color:#1d1b3a;border:2px solid #1d1b3a;border-radius:99px;padding:1px 9px;font-size:.75rem;font-weight:600;position:absolute;bottom:6px;left:6px}@property --p{syntax:"<number>";inherits:false;initial-value:0}.capture-countdown{border:3px solid var(--ink);min-height:88px;box-shadow:3px 3px 0 var(--ink);background:var(--card);border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;display:flex}.countdown-dial{--p:0;background:var(--yl);color:#1d1b3a;border:3px solid #1d1b3a;border-radius:50%;flex:0 0 56px;place-items:center;width:56px;height:56px;display:grid;position:relative;box-shadow:2px 2px #1d1b3a}.countdown-dial.is-counting{background:conic-gradient(var(--pk) calc(var(--p) * 360deg), var(--yl) 0);animation:1s linear forwards sweep}.countdown-dial:before{content:"";background:var(--yl);border:2px solid #1d1b3a;border-radius:50%;position:absolute;inset:5px}.countdown-dial b{font-size:1.65rem;line-height:1;position:relative}.countdown-copy{min-width:0}.countdown-label{font-size:.95rem;font-weight:700}.rdy{color:#fff;-webkit-text-stroke:3px #1d1b3a;paint-order:stroke fill;text-shadow:0 2px #1d1b3a;font-size:.95rem;font-weight:700}.countdown-prompt{color:var(--mut);margin-top:4px;font-size:.85rem}@keyframes sweep{0%{--p:0}to{--p:1}}@keyframes pop{0%{opacity:0;transform:scale(2)}60%{opacity:1;transform:scale(.9)}to{transform:scale(1)}}.decor{pointer-events:none;z-index:2;position:absolute;inset:0}.decor i{filter:drop-shadow(0 0 3px #fff);font-size:2.2rem;font-style:normal;position:absolute}.frames{max-height:460px;padding:2px 4px 6px;overflow:auto}.flash{opacity:0;pointer-events:none;z-index:5;background:#fff;position:absolute;inset:0}.flash.go{animation:.22s ease-out fs}@keyframes fs{0%{opacity:1}to{opacity:0}}.bar{flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0 10px;display:flex}.bar label{align-items:center;gap:6px;font-weight:600;display:flex}.bar select{width:auto;padding:7px 10px}.side h3{margin:0 0 10px}.frames{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (max-width:760px){.frames{grid-template-columns:repeat(3,1fr)}}.fr{flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:.8rem;display:flex}.fr i{border:3px solid var(--ink);text-align:center;border-radius:10px;width:44px;height:44px;font-style:normal;line-height:38px;display:block}.fr.sel{background:var(--yl);color:#1d1b3a;transform:rotate(2deg)}.thumbs{gap:12px;min-height:110px;padding:10px 6px 14px;display:flex;overflow-x:auto}.thumbs img{border:3px solid var(--ink);height:92px;box-shadow:3px 3px 0 var(--ink);border-radius:10px;flex:none;animation:.4s pop}.thumbs img:nth-child(odd){transform:rotate(-2deg)}.thumbs img:nth-child(2n){transform:rotate(2deg)}.err{color:#ff4d4d;font-weight:600}.res{grid-template-columns:270px 1fr;gap:22px;display:grid}@media (max-width:760px){.res{grid-template-columns:1fr}}.photo-strip{border:3px solid var(--ink);border-radius:12px;width:100%;transform:rotate(-1.5deg)}.gal{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;display:grid}.gal img{border:3px solid var(--ink);border-radius:12px;width:100%}.gal button{width:100%;margin-top:8px;padding:6px}.select-trigger{text-align:left;background:var(--card);justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:46px;padding:11px 14px;font-weight:500;display:inline-flex}.select-trigger.is-open{background:var(--pk);color:#1d1b3a}.select-trigger:focus-visible{outline:3px solid var(--bl);outline-offset:5px}.select-chevron{flex:none;transition:transform .15s}.select-trigger.is-open .select-chevron{transform:rotate(180deg)}.bar .select-trigger{gap:10px;width:auto;min-height:44px;padding:7px 10px}.select-menu{z-index:100;overscroll-behavior:contain;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:var(--card);color:var(--ink);scrollbar-width:thin;scrollbar-color:var(--pk) var(--card);border-radius:16px;padding:6px;position:fixed;overflow-y:auto}.select-option{cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:9px;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:8px 10px;font-weight:600;display:flex}.select-option.is-selected{background:var(--mn);color:#1d1b3a}.select-option.is-active{background:var(--yl);color:#1d1b3a;border-color:#1d1b3a}.camera-error{margin:12px 0}.camera-error p{margin:0 0 10px}.capture-flight{z-index:110;object-fit:fill;pointer-events:none;transform-origin:0 0;will-change:transform;border:3px solid #1d1b3a;border-radius:16px;display:block;position:fixed;box-shadow:6px 8px #1d1b3a55}.thumbs img.is-arriving{visibility:hidden;animation:none}@media (prefers-reduced-motion:reduce){.flash.go{animation-duration:1ms}.thumbs img{animation:none}}.call-controls{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.call-controls .call-toggle{color:#fff;width:48px;height:48px;box-shadow:none;background:#3c4043;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.call-controls .call-toggle:hover{background:#505457;transform:none}.call-controls .call-toggle.is-off{background:#b3261e}.call-controls .call-toggle.is-off:hover{background:#8c1d18}.call-controls .call-toggle:active{transform:scale(.95)}.call-controls .call-toggle:focus-visible{outline:3px solid var(--ink);outline-offset:3px}@media (max-width:480px){.capture-countdown{flex-wrap:wrap}.capture-countdown .countdown-copy{flex:150px}}.capture-progress{gap:12px;margin-top:14px;display:grid}.capture-progress-item{gap:6px;display:grid}.capture-progress-item progress{width:100%;accent-color:var(--pk)}.result-placeholder{aspect-ratio:4/3;border:3px dashed var(--ink);background:var(--card);min-height:180px;color:var(--ink);text-align:center;overflow-wrap:anywhere;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px 16px;display:flex}.result-placeholder.is-strip{aspect-ratio:2/3;background:var(--bg);min-height:300px;transform:rotate(-1.5deg)}.result-placeholder-icon{background:var(--yl);border:3px solid #1d1b3a;border-radius:16px;place-items:center;width:64px;height:64px;font-size:2rem;display:grid;transform:rotate(-6deg);box-shadow:3px 3px #1d1b3a}.result-placeholder.is-failed .result-placeholder-icon{background:var(--pk)}.result-placeholder strong{font-size:1.05rem;line-height:1.4}.result-placeholder p{max-width:28ch;color:var(--mut);margin:0;font-size:.85rem;line-height:1.5}.result-loading-note{margin-bottom:18px}.capture-progress-item{border:2px solid var(--ink);background:var(--card);color:var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:12px;padding:12px 14px}body{-webkit-text-stroke:.6px #1d1b3a;paint-order:stroke fill}.result-placeholder strong,.result-placeholder p,.result-loading-note,.capture-progress-item label{color:#fffdf5;-webkit-text-stroke:2px #1d1b3a;paint-order:stroke fill;font-weight:700}.result-placeholder-icon{-webkit-text-stroke:0}.result-email{margin-top:24px;padding:clamp(16px,4vw,24px)}.result-email-note,.result-email .lab,.result-email-status{color:#fffdf5;-webkit-text-stroke:1.5px #1d1b3a;paint-order:stroke fill;font-weight:700;line-height:1.65}.result-email-note{margin:0}.result-email input{-webkit-text-stroke:.4px #1d1b3a;paint-order:stroke fill;min-width:0;margin-bottom:12px;font-family:inherit;display:block}.result-email-status{overflow-wrap:anywhere;margin:12px 0 0}.result-email-status:empty{margin:0}.result-email input:focus-visible{outline:3px solid var(--pk);outline-offset:3px}@media (max-width:600px){.result-email button{width:100%}}
