html,body{height:100%;font-family:Jost,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}body{overflow:hidden;background:#a52b4d;opacity:1;transition:opacity .25s ease;touch-action:manipulation}body.leaving{opacity:0}.hidden{opacity:0!important;pointer-events:none!important}.screen{position:relative;width:100%;height:100vh;height:100svh;height:var(--app-h, 100svh);overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom) + 12px) max(20px,env(safe-area-inset-left));background:linear-gradient(165deg,#d91e49,#a52b4d)}.fade-in-up{opacity:0;transform:translateY(24px);animation:fadeInUp .7s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--delay, 0s)}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.fade-in-up{animation:none;opacity:1;transform:none}}.eyebrow{font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.spinner{flex:none;width:22px;height:22px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite}.btn-pill{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-height:56px;border:none;border-radius:999px;padding:0 2rem;font-family:Jost,sans-serif;font-weight:600;font-size:1.25rem;line-height:1;background:#fff;color:#d91e49;box-shadow:0 6px 18px #0000002e;transition:transform .2s ease,opacity .2s ease;cursor:pointer}.btn-pill:active{transform:scale(.96)}.btn-pill:disabled{opacity:.5;pointer-events:none}.btn-pill.btn-pill-accent,.btn-pill.btn-ghost{background:#ffffff1f;color:#fff;box-shadow:inset 0 0 0 2px #ffffffb3}#start-page{justify-content:space-between}#start-page>.logo{width:min(36vw,150px);height:auto;margin-top:clamp(8px,4vh,40px)}#start-page .content{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:clamp(.75rem,2.5vh,1.25rem)}#start-page .content h1{font-family:Jost,sans-serif;font-size:clamp(2rem,9vw,3rem);font-weight:700;line-height:1.08}#start-page .content p{max-width:30ch;font-size:clamp(1rem,4.2vw,1.25rem);line-height:1.45;font-weight:400;opacity:.9}#start-page .form{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}#start-page .form form{width:100%;display:flex;justify-content:center}#start-page .form .btn-pill{width:100%;max-width:340px}#camera-page{gap:12px}#camera-page .bar{flex:0 0 auto;width:100%;display:grid;grid-template-columns:44px 1fr 44px;align-items:center}#camera-page .bar .logo{justify-self:center;height:26px;width:auto}#camera-page .btn-back{width:44px;height:44px;border:none;border-radius:999px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease}#camera-page .btn-back:active{transform:scale(.92)}#camera-page .btn-back img{width:18px;filter:brightness(0) invert(1)}#camera-page #photo{flex:1 1 auto;min-height:0;width:100%;container-type:size;display:flex;align-items:center;justify-content:center}#camera-page #camera{position:relative;overflow:hidden;width:min(100cqw,56.25cqh);aspect-ratio:9/16;background:#7d1d3a;border-radius:6px;box-shadow:0 10px 30px #00000040}#camera-page #camera video,#camera-page #camera canvas,#camera-page #camera #camera-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#camera-page #camera video{-o-object-fit:cover;object-fit:cover}#camera-page #camera video.mirror{transform:scaleX(-1)}#camera-page #camera canvas{display:none}#camera-page #camera #camera-frame{z-index:2;-o-object-fit:fill;object-fit:fill;pointer-events:none}#camera-page[data-state=review] #camera canvas,#camera-page[data-state=sending] #camera canvas{display:block}#camera-page #countdown,#camera-page #camera-msg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:none;align-items:center;justify-content:center;text-align:center;padding:1.5rem;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.35)}#camera-page #countdown{font-family:Jost,sans-serif;font-size:min(40cqw,12rem);font-weight:700}#camera-page #camera-msg{z-index:4;font-size:1.125rem;line-height:1.4;background:#0000008c}#camera-page[data-state=counting] #countdown,#camera-page[data-state=error] #camera-msg{display:flex}#camera-page #flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#fff;opacity:0;pointer-events:none;transition:opacity .3s ease}#camera-page #flash.on{opacity:1;transition:none}#camera-page #controls{flex:0 0 auto;width:100%;height:116px;display:flex;align-items:center;justify-content:center}#camera-page #controls .ctl{display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%}#camera-page #controls .ctl-loading,#camera-page #controls .ctl-sending{flex-direction:row}#camera-page #controls .label{font-size:.9375rem;line-height:1.3;opacity:.9}#camera-page #controls .row{display:flex;gap:12px;width:100%;justify-content:center}#camera-page #controls .btn-pill{flex:1 1 0;max-width:200px;padding:0 1rem}#camera-page[data-state=loading] #controls .ctl-loading,#camera-page[data-state=ready] #controls .ctl-shoot,#camera-page[data-state=counting] #controls .ctl-counting,#camera-page[data-state=review] #controls .ctl-review,#camera-page[data-state=sending] #controls .ctl-sending{display:flex}#camera-page .btn-shutter{flex:none;width:76px;height:76px;border-radius:50%;border:5px solid rgba(255,255,255,.55);background:#fff;background-clip:padding-box;cursor:pointer;transition:transform .15s ease}#camera-page .btn-shutter:active{transform:scale(.92)}#qrcode-page{justify-content:space-between}#qrcode-page .logo{flex:none;height:26px;width:auto;margin-top:9px}#qrcode-page .box{flex:1 1 auto;min-height:0;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.5rem,2vh,1rem);padding:1rem 0}#qrcode-page .box h1{font-family:Jost,sans-serif;font-size:clamp(2rem,9vw,3rem);font-weight:700;line-height:1.1}#qrcode-page .box .instruction-text{font-size:clamp(1rem,4.2vw,1.25rem);line-height:1.4;opacity:.9}#qrcode-page .box .image{margin-top:.5rem;background:#fff;padding:.875rem;border-radius:1.25rem;box-shadow:0 10px 30px #0003}#qrcode-page .box .image img{display:block;width:min(60vw,260px,var(--app-h, 100svh) * .34);height:auto}#qrcode-page .box .image .error-text{color:#d91e49;padding:2rem 1rem}#qrcode-page .box .hint-text{max-width:28ch;font-size:.9375rem;line-height:1.4;opacity:.8}#qrcode-page .btn-pill{flex:none;width:100%;max-width:340px}#construct-page{padding:clamp(2rem,4vw + 3vh,100px)}#construct-page .content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1.5rem,2vw + 2vh,40px);max-width:46rem;margin:auto 0;flex:1}#construct-page .content .logo{width:-moz-max-content;width:max-content}#construct-page .content h1{font-family:Jost,sans-serif;font-size:clamp(2rem,9vw,3rem);font-weight:600;line-height:1.15}*{margin:0;padding:0;box-sizing:border-box;position:relative}
