*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden;overscroll-behavior:none;background:#0a0a12;color:#f2f1fa;font-family:-apple-system,BlinkMacSystemFont,SF Pro Rounded,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.stage,body{position:fixed;inset:0}.stage{touch-action:none;background:radial-gradient(130% 100% at 50% 0,#141225 0,#0a0a12 60%,#050508 100%);overflow:hidden}.topbar{position:absolute;top:max(14px,env(safe-area-inset-top));left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:10}.logo{font-size:18px;font-weight:900;font-style:italic;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:#ffd54a;text-shadow:0 0 14px rgba(255,213,74,.8),0 0 42px rgba(255,213,74,.35)}.chip{padding:6px 12px;border-radius:999px;border:1px solid rgba(125,249,255,.55);background:rgba(125,249,255,.07);color:#7df9ff;font-size:14px;font-weight:800;box-shadow:0 0 14px rgba(125,249,255,.25),inset 0 0 10px rgba(125,249,255,.12)}.chip,.topbar-right{gap:6px}.chip,.iconbtn,.topbar-right{display:inline-flex;align-items:center}.iconbtn{pointer-events:auto;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(242,241,250,.2);background:rgba(242,241,250,.05);color:rgba(242,241,250,.75);cursor:pointer}.iconbtn:active{transform:scale(.92)}.iconbtn.lang{width:auto;padding:0 11px;font-size:11px;font-weight:800;letter-spacing:.06em}.iconbtn.on{color:#ffd54a;border-color:rgba(255,213,74,.55);box-shadow:0 0 12px rgba(255,213,74,.25)}.camfeed{width:1px;height:1px;opacity:0}.camfeed,.snap{position:absolute;pointer-events:none}.snap{inset:0;width:100%;height:100%;object-fit:cover;z-index:2;filter:brightness(.45) saturate(1.15);animation:snapin .35s ease-out}@keyframes snapin{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.hint{position:absolute;inset:0;gap:28px;pointer-events:none;padding:32px;text-align:center}.hint,.hint-circle{display:flex;flex-direction:column;align-items:center;justify-content:center}.hint-circle{width:210px;height:210px;border-radius:50%;border:2px dashed rgba(255,213,74,.65);gap:10px;color:#ffd54a;background:rgba(255,213,74,.05);box-shadow:0 0 34px rgba(255,213,74,.18),inset 0 0 30px rgba(255,213,74,.06);animation:breathe 2.6s ease-in-out infinite}.hint-label{font-size:15px;font-weight:900;font-style:italic;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 12px rgba(255,213,74,.6)}.hint-sub{max-width:300px;color:rgba(242,241,250,.55);font-size:15px;line-height:1.5}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.invite{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;border:1px solid rgba(125,249,255,.55);background:transparent;color:#7df9ff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 0 14px rgba(125,249,255,.2)}.countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:min(64vw,420px);font-weight:900;font-style:italic;color:rgba(255,213,74,.22);text-shadow:0 0 80px rgba(255,213,74,.3);pointer-events:none;animation:pop .9s ease-out}@keyframes pop{0%{transform:scale(1.35);opacity:0}30%{opacity:1}to{transform:scale(1)}}.finger{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:5}.finger .core{display:flex;align-items:center;justify-content:center;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle at 32% 28%,var(--c1),var(--c2));border:2px solid rgba(255,255,255,.35);color:#fff;font-size:26px;font-weight:900;box-shadow:0 0 38px color-mix(in srgb,var(--c1) 65%,transparent);transition:transform .12s ease,box-shadow .12s ease,opacity .3s ease}.finger .ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid var(--c1);opacity:.55}.finger .r1{width:122px;height:122px;animation:spinring 3.5s linear infinite;border-style:dashed}.finger .r2{width:152px;height:152px;opacity:.25}@keyframes spinring{to{transform:translate(-50%,-50%) rotate(1turn)}}.finger.hl .core{transform:scale(1.25);box-shadow:0 0 60px var(--c1);border-color:rgba(255,255,255,.7)}.finger.win .core{transform:scale(1.45);border:3px solid rgba(255,255,255,.9);box-shadow:0 0 80px var(--c1),0 0 170px color-mix(in srgb,var(--c1) 55%,transparent);animation:winpulse 1.1s ease-in-out infinite}.finger.dim{opacity:.13}@keyframes winpulse{0%,to{transform:scale(1.45)}50%{transform:scale(1.6)}}.spark{position:absolute;top:50%;left:50%;width:9px;height:9px;border-radius:50%;background:var(--c1);box-shadow:0 0 10px var(--c1);animation:fly .8s ease-out forwards}@keyframes fly{0%{transform:translate(-50%,-50%);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)));opacity:0}}.emoji-p{position:absolute;top:50%;left:50%;pointer-events:none;opacity:0;animation:emojirise var(--dur) ease-in infinite;animation-delay:var(--del);will-change:transform,opacity}@keyframes emojirise{0%{transform:translate(-50%,-50%) scale(.5) rotate(0deg);opacity:0}12%{opacity:1}to{transform:translate(calc(-50% + var(--ex)),calc(-50% + var(--ey))) scale(1.15) rotate(var(--rot));opacity:0}}.flash{position:absolute;inset:0;z-index:4;pointer-events:none;animation:flashout .7s ease-out forwards}@keyframes flashout{0%{opacity:.55}to{opacity:0}}.result{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:16px;z-index:20;padding:48px 20px calc(max(36px, env(safe-area-inset-bottom)));background:linear-gradient(0deg,rgba(5,5,8,.92) 55%,rgba(5,5,8,0));animation:rise .5s ease-out}@keyframes rise{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.result-punch{font-size:24px;font-weight:900;font-style:italic;letter-spacing:.01em;text-transform:uppercase;text-align:center;line-height:1.15;max-width:340px;color:#ffd54a;text-shadow:0 0 16px rgba(255,213,74,.85),0 0 52px rgba(255,213,74,.4)}.result-line{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;color:rgba(242,241,250,.8)}.result-dot{width:14px;height:14px;border-radius:50%}.result-actions{display:flex;align-items:center;gap:12px}.replay{padding:14px 44px;border:none;border-radius:999px;font-size:17px;font-weight:900;color:#1a1200;background:linear-gradient(100deg,#ffd54a,#ff9f1a);box-shadow:0 0 28px rgba(255,190,40,.45);cursor:pointer}.replay:active{transform:scale(.96)}.share{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;border:1px solid rgba(125,249,255,.6);background:transparent;color:#7df9ff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 0 14px rgba(125,249,255,.22)}.share:active{transform:scale(.96)}.name-row{display:flex;gap:8px}.name-input{width:200px;padding:11px 16px;border-radius:999px;border:1px solid rgba(242,241,250,.22);background:rgba(242,241,250,.06);color:#f2f1fa;font-size:15px;outline:none;-webkit-user-select:text;-moz-user-select:text;user-select:text}.name-input::placeholder{color:rgba(242,241,250,.4)}.name-save{padding:11px 18px;border-radius:999px;border:1px solid rgba(242,241,250,.25);background:rgba(242,241,250,.09);color:#f2f1fa;font-size:14px;font-weight:700;cursor:pointer}.name-saved{font-size:14px;color:rgba(242,241,250,.6)}.haptic-switch{position:absolute;bottom:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;z-index:-1}.onboard{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,5,8,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ob-card{width:100%;max-width:330px;display:flex;flex-direction:column;gap:18px;padding:26px 22px;border-radius:26px;border:1px solid rgba(255,213,74,.35);background:radial-gradient(120% 120% at 50% 0,#141225 0,#0a0a12 100%);box-shadow:0 0 60px rgba(255,213,74,.12)}.ob-logo{font-size:24px;text-align:center}.ob-hook{text-align:center;font-size:16px;font-weight:700;line-height:1.4;color:rgba(242,241,250,.9);margin-top:-6px}.ob-rows{display:flex;flex-direction:column;gap:10px}.ob-row{display:flex;gap:12px;font-size:15px;font-weight:600;color:rgba(242,241,250,.85)}.ob-num,.ob-row{align-items:center}.ob-num{flex:none;display:inline-flex;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,213,74,.6);color:#ffd54a;font-size:13px;font-weight:900}.ob-photo{padding:14px;border-radius:16px;border:1px solid rgba(125,249,255,.35);background:rgba(125,249,255,.05)}.ob-photo-head{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:#7df9ff;margin-bottom:6px}.ob-photo-text{font-size:13.5px;line-height:1.5;color:rgba(242,241,250,.7)}.ob-btn{width:100%;justify-content:center;text-align:center}.lang-search{width:100%;margin-bottom:16px}.lang-list{list-style:none;display:flex;flex-direction:column;gap:8px}.lang-row{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-radius:16px;border:1px solid rgba(242,241,250,.15);background:rgba(242,241,250,.05);color:#f2f1fa;font-size:16px;font-weight:700;cursor:pointer}.lang-row.current{border-color:rgba(255,213,74,.6);color:#ffd54a;box-shadow:0 0 14px rgba(255,213,74,.2)}.lang-code{font-size:12px;font-weight:800;letter-spacing:.06em;opacity:.6}.panel{position:absolute;inset:0;z-index:30;background:rgba(5,5,8,.97);padding:calc(max(14px, env(safe-area-inset-top)) + 58px) 24px 24px;overflow-y:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-title{font-size:22px;font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:.03em;color:#ffd54a;text-shadow:0 0 14px rgba(255,213,74,.7)}.panel-close{padding:8px 18px;border-radius:999px;border:1px solid rgba(242,241,250,.25);background:rgba(242,241,250,.08);color:#f2f1fa;font-size:14px;font-weight:700;cursor:pointer}.tally{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;padding:16px;border-radius:18px;border:1px solid rgba(255,213,74,.35);background:rgba(255,213,74,.05);box-shadow:inset 0 0 24px rgba(255,213,74,.05)}.tally-row{display:flex;justify-content:space-between;font-size:16px;font-weight:700}.tally-count{color:#ffd54a}.panel-empty{color:rgba(242,241,250,.5);font-size:15px}.games{list-style:none;display:flex;flex-direction:column;gap:4px}.game-row{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid rgba(242,241,250,.08);font-size:14px}.game-photo{flex:none;width:52px;height:40px;object-fit:cover;border-radius:10px;border:1px solid rgba(255,213,74,.35)}.game-date{color:rgba(242,241,250,.45);min-width:92px}.game-players{color:rgba(125,249,255,.75);min-width:70px}.game-loser{font-weight:700}