:root{--ink:#fff;--lime:#c8ff2e;--violet:#7557ff;--glass:rgba(11,13,24,.72);--line:rgba(255,255,255,.16)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#080a12;color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif}
#camera{position:fixed;width:1px;height:1px;opacity:.001;pointer-events:none}
#stage{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;background:radial-gradient(circle at 50% 30%,#25294b,#080a12 70%)}
.topbar{position:fixed;z-index:3;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:max(18px,env(safe-area-inset-top)) 18px 10px;text-shadow:0 2px 10px #000}
.logo{font-weight:1000;letter-spacing:-1px}.logo span{color:var(--lime)}#progress{font-weight:800;background:#0008;border:1px solid var(--line);padding:7px 11px;border-radius:999px}
.hidden{display:none!important}
.modal-card,.result-card,.gallery-card{position:fixed;z-index:10;inset:auto 14px max(18px,env(safe-area-inset-bottom));max-height:92vh;overflow:auto;padding:24px;border-radius:26px;background:linear-gradient(150deg,rgba(24,28,52,.97),rgba(8,10,18,.97));border:1px solid var(--line);box-shadow:0 28px 90px #000a;text-align:center}
.flag{font-size:44px}.modal-card h1{font-size:30px;line-height:1.02;margin:10px 0}.modal-card p,.result-card p{color:#bec4d7}.privacy{font-size:13px;line-height:1.45;text-align:left;padding:13px;background:#fff08;border:1px solid var(--line);border-radius:14px;margin:15px 0}.modal-card small{display:block;color:#858ca2;margin-top:10px}
.terms-check{display:flex;gap:9px;text-align:left;align-items:flex-start;font-size:13px;line-height:1.4;margin:13px 0}.terms-check input{width:20px;height:20px;flex:0 0 auto}.terms-check a{color:var(--lime)}
button{font:inherit;border:0;cursor:pointer}.primary,.spin{width:100%;padding:15px 18px;border-radius:16px;background:linear-gradient(135deg,var(--lime),#6dff92);color:#101507;font-weight:1000;box-shadow:0 12px 35px #aaff3230}.primary:disabled{opacity:.55}.secondary{width:100%;padding:14px;border-radius:16px;background:#fff1;color:white;border:1px solid var(--line);font-weight:800}.link-btn{background:transparent;color:#b8bece;padding:12px}
.controls{position:fixed;z-index:4;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:12px;background:var(--glass);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:22px;text-align:center}.dish-name{font-size:18px;font-weight:1000;color:var(--lime);min-height:27px}.spin{margin-top:7px;background:linear-gradient(135deg,#ff416c,#ffb02e);color:white}.controls p{font-size:12px;margin:8px 0;color:#c3c8d7}.rank-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.rank-btn{height:44px;border-radius:13px;background:#fff1;color:white;border:1px solid var(--line);font-weight:1000}.rank-btn:disabled{opacity:.24}.rank-btn.available{background:linear-gradient(145deg,#7257ff,#4a35c9)}
.result-card{top:50%;bottom:auto;transform:translateY(-50%)}.result-card h2{margin:0 0 12px}.result-card img{display:block;width:min(100%,420px);max-height:56vh;object-fit:contain;margin:auto;border-radius:18px;border:1px solid var(--line);background:#000}.result-actions{display:grid;gap:9px}.toast{position:fixed;z-index:20;left:50%;top:18%;transform:translateX(-50%);padding:11px 16px;background:#111d;border:1px solid var(--line);border-radius:999px;white-space:nowrap}
#sendStatus{min-height:24px;color:var(--lime);font-size:13px;margin-top:8px}
.gallery-card{inset:12px;max-height:none;text-align:left}.gallery-head{display:flex;align-items:center;justify-content:space-between}.gallery-head h2{margin:0}.close-btn{background:#fff1;color:#fff;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;font-size:25px}.gallery-note{color:#aeb5c8;font-size:12px;line-height:1.4}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-card{background:#fff08;border:1px solid var(--line);border-radius:15px;padding:8px}.photo-card img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:10px;background:#000}.photo-info{font-size:11px;color:#c5cada;padding:7px 1px}.danger{width:100%;padding:10px;border-radius:10px;background:#ff416c;color:#fff;font-weight:800}.empty{grid-column:1/-1;text-align:center}.gallery-card #galleryStatus{color:var(--lime);font-size:13px;margin-bottom:8px}
.recovery-box,.restore-box{padding:12px;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#fff08;text-align:left;font-size:12px;line-height:1.45}.recovery-box code{display:block;margin:8px 0;padding:9px;border-radius:9px;background:#05060b;color:var(--lime);font-size:12px;overflow-wrap:anywhere;user-select:all}.compact{padding:10px 12px;font-size:12px}.restore-box label{display:block;color:#cbd1df;margin-bottom:7px}.restore-box input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#05060b;color:#fff;font:inherit;text-transform:uppercase;margin-bottom:8px}
@media(min-width:720px){.modal-card,.result-card{width:440px;left:50%;right:auto;transform:translate(-50%,0)}.result-card{transform:translate(-50%,-50%)}.controls{width:480px;left:50%;right:auto;transform:translateX(-50%)}.gallery-card{width:720px;left:50%;right:auto;transform:translateX(-50%)}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
