@font-face{font-family:TL;src:url(../fonts/tl-400.woff2)format("woff2");font-weight:400}@font-face{font-family:TL;src:url(../fonts/tl-600.woff2)format("woff2");font-weight:600}:root{--bg:#f6ecd9;--bg2:#ead8b8;--ink:#2b2420;--muted:#7a6a5c;--red:#a61e1a;--gold:#e8b23a;--card:#fffaf0;color:var(--ink);font-family:Noto Sans TC,PingFang TC,Heiti TC,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:radial-gradient(120% 80% at 50% 60%, var(--bg) 0%, var(--bg2) 100%);overscroll-behavior:none;height:100%;margin:0}#app{max-width:560px;height:100dvh;padding:max(10px, env(safe-area-inset-top)) 16px max(8px, env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.term{text-align:center;line-height:1.15}.term .hanji{letter-spacing:.05em;font-weight:700}.tl,.foot .fun{font-family:TL,Noto Sans,sans-serif}.term .tl{color:var(--ink);align-items:center;gap:.35em;font-size:1.05rem;display:inline-flex}.term .mean{color:var(--muted);margin-top:2px;font-size:.85rem}.say{color:var(--red);cursor:pointer;background:0 0;border:0;border-radius:50%;padding:4px;font-size:1.15em;line-height:0}.say.playing{background:#a61e1a1f}.top{justify-content:center;display:flex}.logo{width:96px;height:84px}.ask{align-items:center;gap:8px;margin-top:10px;display:flex}.who{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:0;flex-direction:column;align-items:center;min-width:44px;padding:0;font-size:.75rem;display:flex}.avatar{background:var(--card);border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.4rem;display:grid;overflow:hidden;box-shadow:0 1px 3px #00000026}.avatar img,.hands-face img{object-fit:cover;width:100%;height:100%;display:block}.who-name{text-overflow:ellipsis;white-space:nowrap;max-width:56px;overflow:hidden}.question{background:var(--card);border:1px solid #d9c6a6;border-radius:14px;flex:1;min-width:0;padding:12px 14px;font-size:1rem}.stage{flex:1;min-height:240px;margin-top:6px;position:relative;overflow:hidden}.scene{width:100%;height:100%;position:absolute;inset:0}.result{text-align:center;pointer-events:none;animation:.35s ease-out pop;position:absolute;top:8px;left:0;right:0}.result .name{letter-spacing:.08em;color:var(--red);text-shadow:0 2px #fff;font-size:3.2rem;font-weight:700;line-height:1.15}.result .dots{justify-content:center;gap:8px;margin:4px 0 2px;display:flex}.result .dots[hidden]{display:none}.result .dots i{border:2px solid var(--red);background:0 0;border-radius:50%;width:14px;height:14px}.result .dots i.on{background:var(--red)}.result.done .dots i.on{background:var(--gold);border-color:#b8860b}.result.done .name{color:#b8860b;animation:1.2s ease-in-out infinite alternate glow}.result .mean{color:var(--muted);font-size:1.05rem}.result.r-lip .name{color:#b8860b;animation:1.2s ease-in-out infinite alternate glow}body[data-result=lip] .stage{background:radial-gradient(closest-side,#ffd75a8c,#0000)}@keyframes pop{0%{opacity:0;transform:scale(.7)}}@keyframes glow{to{text-shadow:0 0 18px #ffd65a,0 0 4px #fff}}.hands{aspect-ratio:1;pointer-events:none;width:min(78%,340px);position:absolute;bottom:0;left:50%;transform:translate(-50%,100%)}.hands svg{overflow:visible}.hands.go{animation:hands-move var(--dur) ease-in-out forwards}.hands.go .cups{animation:cups-fly var(--dur) ease-in forwards;transform-box:fill-box;transform-origin:50%}.hands.go .hand-l{animation:let-go-l var(--dur) ease-in forwards}.hands.go .hand-r{animation:let-go-r var(--dur) ease-in forwards}@keyframes hands-move{0%{transform:translate(-50%,100%)}18%{transform:translate(-50%,8%)}27%{transform:translate(-50%,-2%)}36%{transform:translate(-50%,10%)}45%{transform:translate(-50%,-2%)}54%{transform:translate(-50%,10%)}63%{transform:translate(-50%,-2%)}70%{transform:translate(-50%,12%)}80%{transform:translate(-50%,-8%)}to{transform:translate(-50%,100%)}}@keyframes cups-fly{0%,76%{opacity:1;transform:none}90%{opacity:1;transform:translateY(-140%)scale(.55)rotate(25deg)}to{opacity:0;transform:translateY(-190%)scale(.4)rotate(40deg)}}@keyframes let-go-l{0%,78%{transform:none}to{transform:translate(-24px)rotate(-10deg)}}@keyframes let-go-r{0%,78%{transform:translate(200px)scaleX(-1)}to{transform:translate(224px)scaleX(-1)rotate(-10deg)}}.actions{justify-content:center;align-items:center;gap:10px;padding:10px 0 4px;display:flex}.throw{background:linear-gradient(#c22a24, var(--red));color:#fff;letter-spacing:.1em;cursor:pointer;border:0;border-radius:999px;flex:1;max-width:320px;padding:14px 0;font-size:1.6rem;font-weight:700;box-shadow:0 4px #6e1210}.throw:active{transform:translateY(3px);box-shadow:0 1px #6e1210}body[data-state=throwing] .throw{opacity:.6}.shake{background:var(--card);border:1px solid #d9c6a6;border-radius:999px;padding:12px 14px;font-size:.95rem}.shake.on{border-color:var(--gold);background:#fde7c0}.foot{color:var(--muted);justify-content:space-between;padding-top:4px;font-size:.72rem;display:flex}.hands-face{aspect-ratio:1;background:var(--card);border:3px solid #fff;border-radius:50%;place-items:center;width:22%;font-size:2rem;display:grid;position:absolute;bottom:4%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 6px #00000040}.picker{background:var(--card);width:min(92vw,420px);color:var(--ink);border:0;border-radius:20px;padding:0;box-shadow:0 10px 40px #0000004d}.picker::backdrop{background:#28190f73}.sheet{flex-direction:column;gap:8px;padding:18px 16px 16px;display:flex}.sheet h2{text-align:center;margin:0 0 4px;font-size:1.15rem}.sheet .row{background:#fff;border:2px solid #0000;border-radius:14px;align-items:center;display:flex}.sheet .row.sel{border-color:var(--red)}.sheet .pick{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:8px 10px;font-size:1.05rem;display:flex}.sheet .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet .edit{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:10px 14px;font-size:1.2rem}.sheet .add{font:inherit;color:var(--red);cursor:pointer;background:0 0;border:2px dashed #d9c6a6;border-radius:14px;padding:12px;font-size:1.05rem}.edit-form{align-items:center}.edit-form .face{cursor:pointer;flex-direction:column;align-items:center;gap:6px;display:flex}.avatar.big{width:104px;height:104px;font-size:3.4rem}.edit-form .tip{color:var(--red);font-size:.9rem}.name-input{text-align:center;border:1px solid #d9c6a6;border-radius:12px;width:100%;padding:10px 12px;font-size:1.1rem}.edit-form .note{color:var(--muted);text-align:center;margin:0;font-size:.78rem}.edit-form .btns{gap:8px;width:100%;display:flex}.edit-form .btns button{font:inherit;cursor:pointer;background:#fff;border:1px solid #d9c6a6;border-radius:12px;flex:1;padding:12px;font-size:1rem}.edit-form .btns .ok{background:var(--red);border-color:var(--red);color:#fff}.edit-form .btns .del{color:var(--red)}.toast{color:#fff;white-space:nowrap;background:#28190fd9;border-radius:999px;padding:10px 16px;font-size:.95rem;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}.avatar.empty{color:var(--red);box-shadow:none;border:2px dashed #d9c6a6;font-size:1.5rem}.sheet .none{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:8px}.edit-form .del-photo{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:.85rem;text-decoration:underline}.edit-form .del-photo[hidden]{display:none}
