:root{--accent:#c8a96a;--bg:#0c0c0e;--surface:#17171b;--surface-2:#202027;--ink:#f5f4f2;--ink-soft:#9b98a2;--line:#2a2a31;--danger:#ff6b57;--ok:#5ad19a;--radius:22px}*{box-sizing:border-box}html,body{height:100%}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.4}.display{letter-spacing:-.01em;text-transform:uppercase;margin:0;font-weight:800;line-height:.98}.screen{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;max-width:480px;min-height:100dvh;margin:0 auto;padding:2rem 1.5rem;display:flex}.center>svg{width:3rem;height:3rem;color:var(--accent)}h1{font-size:2.1rem}.lead{color:var(--ink-soft);margin:0;font-size:1.05rem}.muted{color:var(--ink-soft)}.btn{width:100%;min-height:58px;font:inherit;border-radius:var(--radius);background:var(--accent);color:#000;cursor:pointer;border:0;justify-content:center;align-items:center;gap:.6rem;padding:1rem 1.25rem;font-size:1.1rem;font-weight:600;transition:transform 80ms,opacity .15s;display:flex}.btn:active{transform:scale(.98)}.btn:disabled,.btn[data-disabled]{opacity:.4;cursor:default;pointer-events:none}.btn--ghost{background:var(--surface-2);color:var(--ink)}.btn--sm{width:auto;min-height:44px;padding:.5rem 1rem;font-size:1rem}.btn svg{flex:none;width:1.5em;height:1.5em}.field{text-align:left;width:100%}.field label{color:var(--ink-soft);margin-bottom:.4rem;font-size:.9rem;font-weight:600;display:block}.input{width:100%;min-height:56px;font:inherit;color:var(--ink);background:var(--surface);border:2px solid var(--line);border-radius:14px;outline:none;padding:0 1rem;font-size:1.15rem}.input::placeholder{color:var(--ink-soft)}.input:focus{border-color:var(--accent)}.hero{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);width:100%}.cam{flex-direction:column;flex:1;display:flex}.cam__top{text-align:center;flex-direction:column;align-items:center;gap:.15rem;padding:1.75rem 1rem .5rem;display:flex}.cam__couple{font-size:1.4rem}.cam__guest{color:var(--ink-soft);font-size:.9rem}.cam__stage{border:1px solid var(--line);background:radial-gradient(120% 90% at 50% 0%, #ffffff0a, transparent 60%), var(--surface);color:var(--ink-soft);border-radius:28px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;margin:1rem;display:flex;position:relative;overflow:hidden}.cam__stage svg{opacity:.5;width:3rem;height:3rem}.cam__stage:before,.cam__stage:after{content:"";border:2px solid var(--line);width:34px;height:34px;position:absolute}.cam__stage:before{border-bottom:0;border-right:0;border-top-left-radius:12px;top:18px;left:18px}.cam__stage:after{border-top:0;border-left:0;border-bottom-right-radius:12px;bottom:18px;right:18px}.cam__controls{grid-template-columns:1fr auto 1fr;align-items:center;padding:1rem 1.5rem 1.75rem;display:grid}.cam__side{justify-self:center}.shutter{background:var(--ink);border:5px solid var(--bg);width:84px;height:84px;box-shadow:0 0 0 3px var(--accent);cursor:pointer;border-radius:50%;justify-self:center;transition:transform 80ms}.shutter:active{transform:scale(.92)}.shutter[data-disabled]{opacity:.4;pointer-events:none}.iconbtn{background:var(--surface-2);width:56px;height:56px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.iconbtn svg{width:1.6rem;height:1.6rem}.iconbtn[data-disabled]{opacity:.4;pointer-events:none}.status{padding:.85rem 1.5rem calc(.85rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;display:flex}.status__items{flex-wrap:wrap;align-items:center;gap:1rem;font-size:.9rem;display:flex}.status__item{align-items:center;gap:.35rem;display:inline-flex}.status__item svg{width:1.1em;height:1.1em}.status__item--ok{color:var(--ok)}.status__item--fail{color:var(--danger)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
