:root{color:#e7e9ed;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--surface:#101b29;--raised:#192636;--ink:#e7e9ed;--muted:#a0adbd;--gold:#dfc391;--ease:cubic-bezier(.22, 1, .36, 1);--app-height:100dvh;--app-top:0px;background:#080f18;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}#root{top:var(--app-top);width:100%;height:var(--app-height);place-items:center;min-height:0;display:grid;position:fixed;left:0;overflow:hidden}button,input,textarea,select{font:inherit;-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;touch-action:manipulation;min-height:44px;transition:background-color .16s, color .16s, opacity .16s, transform .16s var(--ease);background:0 0;border:0}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.chat:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}button,select,input,textarea{border-radius:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-shell{background:var(--surface);width:100%;max-width:540px;height:100%;max-height:960px;position:relative;overflow:hidden}.game-view{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}header{flex-shrink:0;align-items:center;gap:8px;height:56px;padding:0 14px;display:flex}.brand{object-fit:contain;width:108px;height:36px;display:block}.demo-label{color:var(--muted);padding:0 4px;font-size:11px}.alive-count{color:#c0cbd8;font-variant-numeric:tabular-nums;align-items:center;gap:5px;margin-left:auto;font-size:13px;display:inline-flex}.icon{color:#bdc9d7;border-radius:50%;place-items:center;width:44px;min-width:44px;height:44px;display:inline-grid}.icon:hover{background:#ffffff08}.scene{isolation:isolate;height:clamp(190px,35svh,320px);transition:height .28s var(--ease);flex-shrink:0;position:relative;overflow:hidden}.scene-art{z-index:-1;background:url(/assets/room.png) 50% 49%/cover no-repeat;transition:filter .9s;position:absolute;inset:0}.night .scene-art{filter:brightness(.45)saturate(.65)}.character{aspect-ratio:1;z-index:2;width:min(26%,112px);min-height:0;transition:filter .5s, opacity .5s, left .28s var(--ease), top .28s var(--ease), width .28s var(--ease);padding:0;position:absolute;transform:translate(-50%)}.character:active:not(:disabled){transform:translate(-50%)}.character.human{top:20%;left:19%}.character.seoyun{top:17%;left:50%}.character.doyun{top:20%;left:81%}.character.yuna{z-index:4;top:55%;left:17%}.character.jiho{z-index:4;bottom:10px;left:59%}.character.harin{z-index:4;top:55%;left:83%}.sprite{filter:drop-shadow(0 5px 3px #050b1580);background-position:0 0;background-repeat:no-repeat;background-size:200% 200%;width:100%;height:100%;animation:7s step-end infinite blink,4s ease-in-out infinite breathe;display:block}.character:nth-of-type(3n) .sprite{animation-delay:2s}.character:nth-of-type(2n) .sprite{animation-delay:4s}.sprite.talking{animation:.42s step-end infinite speak}.sprite.surprised{background-position:var(--right) var(--bottom);animation:none}.nameplate{white-space:nowrap;color:#e0e5ec;background:#0c1624de;border-radius:5px;padding:4px 9px;font-size:12px;transition:color .18s,background-color .18s;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.speaking .nameplate,.selected .nameplate{color:#f6ddb1;background:#312c24ed}.speaking .sprite{filter:drop-shadow(0 0 4px #b79c6660)}.eliminated{filter:grayscale();opacity:.38}.eliminated .nameplate{text-decoration:line-through}.has-dialog .game-view .sprite{animation-play-state:paused}.phase-bar{flex-shrink:0;align-items:center;gap:12px;min-height:48px;padding:4px 20px;display:flex}.phase-title{animation:phase-in .22s var(--ease);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.phase-title svg{color:var(--gold)}.spectating{color:var(--muted);font-size:12px}.timer{font-variant-numeric:tabular-nums;color:#bdc9d7;margin-left:auto;font-size:14px}.timer.urgent{color:#edba8d}.conversation{flex:1;min-height:0;position:relative;overflow:hidden}.chat{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#fff2 transparent;height:100%;padding:12px 20px 8px;scroll-padding-block:12px;overflow:hidden auto}.has-dialog .chat{overflow-y:hidden}.system-message{text-align:center;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;animation:phase-in .22s var(--ease);margin:6px 10px 22px;font-size:12px;line-height:1.7}.vote-message{font-variant-numeric:tabular-nums;line-height:1.9}.day-marker{text-align:center;color:var(--gold);padding:12px 0;font-size:12px}.message{animation:message-in .24s var(--ease);align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.avatar{flex-shrink:0;width:36px;height:40px;overflow:hidden}.avatar .sprite{width:56px;height:56px;margin-top:-2px;margin-left:-10px;animation:none}.message-content{flex:1;min-width:0;padding-top:1px}.message-author{color:#becbda;margin-bottom:5px;font-size:12px;font-weight:600}.message-author span{color:var(--muted);font-weight:400}.message p{color:#e5e9ef;overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:15px;line-height:1.75}.mine .message-author{color:#e4c594}.thinking{min-height:28px;color:var(--muted);animation:phase-in .22s var(--ease);align-items:center;gap:10px;padding:0 0 14px 48px;font-size:12px;display:flex}.typing-dots{gap:3px;display:flex}.typing-dots i{background:currentColor;border-radius:50%;width:3px;height:3px;animation:1.2s infinite pulse}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}.latest{min-height:40px;animation:phase-in .18s var(--ease);background:#2a3a4c;border-radius:24px;align-items:center;gap:6px;padding:0 16px;font-size:12px;display:flex;position:absolute;bottom:10px;left:50%;translate:-50%;box-shadow:0 4px 16px #0003}footer{padding:0 16px max(12px, env(safe-area-inset-bottom));background:var(--surface);flex-shrink:0}.conversation-tools{align-items:center;gap:12px;min-height:38px;display:flex}.target-select{color:var(--muted);align-items:center;display:inline-flex;position:relative}.target-select select{appearance:none;color:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;padding:0 20px 0 0;font-size:12px}.target-select svg{pointer-events:none;position:absolute;right:2px}.role-button{color:#c3ad89;margin-left:auto;padding:0 2px 0 12px;font-size:12px}.composer{background:#ffffff08;border-radius:16px;align-items:flex-end;gap:10px;padding:8px 8px 8px 14px;transition:background-color .16s;display:flex}.composer:focus-within{background:#ffffff0e}.composer textarea{resize:none;scrollbar-width:none;overscroll-behavior:contain;min-width:0;min-height:24px;max-height:96px;color:var(--ink);box-sizing:content-box;background:0 0;border:0;outline:none;flex:1;padding:10px 0;font-size:16px;line-height:24px;display:block;overflow-y:auto}.composer textarea::placeholder{color:#8b9bae;font-size:14px}.composer button{background:var(--gold);color:#30291f;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.composer button:disabled{color:#97a1b0;opacity:1;background:#ffffff0d}.phase-action{animation:phase-in .2s var(--ease)}.phase-cta{margin-top:0!important}.waiting-state{min-height:56px;color:var(--muted);justify-content:center;align-items:center;gap:9px;font-size:13px;display:flex}.save-error{color:#f0b7a4;margin:4px 0;font-size:12px}.modal{width:calc(100% - 32px);max-width:430px;max-height:calc(var(--app-height) - 32px);background:var(--raised);color:var(--ink);border:0;border-radius:24px;margin:auto;padding:24px;overflow:hidden;box-shadow:0 24px 80px #0006}.modal[open]{animation:sheet-in .24s var(--ease);flex-direction:column;display:flex}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050b13a8;animation:.22s backdrop-in}.modal[data-closing=true]{pointer-events:none;animation:.18s forwards sheet-out}.modal[data-closing=true]::backdrop{animation:.18s forwards backdrop-out}.modal-heading{flex-shrink:0;align-items:center;gap:12px;margin-bottom:16px;display:flex}.modal h2{letter-spacing:-.5px;outline:none;flex:1;margin:0;font-size:20px;font-weight:650;line-height:1.45}.modal-heading .icon{margin:-8px -10px -8px 0}.modal-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#fff2 transparent;min-height:0;padding:2px;overflow:hidden auto}.modal-content{animation:phase-in .18s var(--ease)}.modal p{overflow-wrap:anywhere;white-space:pre-line;margin:0 0 20px;font-size:14px;line-height:1.75}.modal .muted{color:var(--muted);font-size:12px}.primary,.secondary{border-radius:14px;width:100%;min-height:50px;margin-top:12px;padding:14px 16px;font-size:14px;display:block}.primary{background:var(--gold);color:#30291f;font-weight:650}.primary:hover{background:#ebd3ab}.secondary{color:#b9c6d6}.secondary:hover{background:#ffffff06}.text-actions{justify-content:center;gap:24px;margin-top:8px;display:flex}.text-actions button{color:var(--muted);padding:0;font-size:12px}.intro-avatar{width:120px;height:110px;margin:-8px auto 16px;overflow:hidden}.intro-avatar .sprite{width:120px;height:120px}.field input{background:#ffffff08;border:0;border-radius:12px;width:100%;height:52px;margin:4px 0 16px;padding:14px;font-size:16px;display:block}.error{color:#f0b7a4!important}.gate-clock{color:var(--gold);font-variant-numeric:tabular-nums;margin:4px 0 24px!important;font-size:42px!important}.gate-clock span{color:var(--muted);margin-left:8px;font-size:14px}.choice-list{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 20px;padding:0;display:grid}.choice-list label{cursor:pointer;background:#ffffff04;border-radius:12px;align-items:center;gap:8px;min-height:64px;padding:10px;font-size:14px;transition:background-color .18s,color .18s;display:flex;position:relative}.choice-list label:has(:checked){color:#f2d6a7;background:#dfc39118}.choice-list label:has(:focus-visible){outline:2px solid var(--gold);outline-offset:2px}.choice-list input{opacity:0;width:1px;height:1px;position:absolute}.selection-check{opacity:0;transition:opacity .18s, scale .18s var(--ease);flex-shrink:0;margin-left:auto;scale:.8}.choice-list :checked~.selection-check{opacity:1;scale:1}.choice-list label:last-child{grid-column:1/-1;min-height:48px}.choice-time{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;margin:14px 0 0!important;font-size:12px!important}.private-result{padding:8px 0}.private-result small{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.role-grid{grid-template-columns:repeat(3,1fr);gap:16px 12px;margin:8px 0 24px;display:grid}.role-grid>div{text-align:center}.portrait{width:72px;height:62px;margin:auto;overflow:hidden}.portrait .sprite{width:78px;height:78px;animation:none}.role-grid strong,.role-grid span:not(.sprite){margin-top:4px;font-size:13px;display:block}.role-grid span:not(.sprite){color:var(--gold);font-size:12px}details{padding:4px 0}summary{cursor:pointer;color:#d0dae7;align-items:center;min-height:48px;font-size:14px;display:flex}summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:18px}details[open]>summary:after{content:"−"}summary span{color:var(--muted);margin-left:12px;font-size:12px}.record-vote{padding:12px 0}.record-vote strong{color:var(--gold);margin-bottom:8px;font-size:13px;display:block}.record-vote p{margin:4px 0;font-size:13px}.record-vote p span{color:var(--muted);padding:0 8px}.record-message{padding:8px 0;font-size:13px!important}.record-message strong{color:#b1bfd1;margin-bottom:4px;font-size:12px;display:block}.history-row{text-align:left;flex-direction:column;gap:6px;width:100%;padding:16px 0;display:flex}.history-row span{font-size:14px}.history-row small{color:var(--muted);font-size:12px}.score{color:var(--gold);margin-bottom:8px!important;font-size:28px!important}.rules-copy h3{color:#e8d5b5;margin:26px 0 12px;font-size:14px}.rules-copy p{color:#c3cedc}.keyboard-open .scene{height:72px}.keyboard-open .scene-art{filter:brightness(.35)}.keyboard-open .character{width:50px;height:50px;top:0;bottom:auto}.keyboard-open .character:first-of-type{left:9%}.keyboard-open .character:nth-of-type(2){left:25%}.keyboard-open .character:nth-of-type(3){left:42%}.keyboard-open .character:nth-of-type(4){left:58%}.keyboard-open .character:nth-of-type(5){left:75%}.keyboard-open .character:nth-of-type(6){left:91%}.keyboard-open .nameplate{padding:3px 5px;font-size:10px;bottom:-10px}.keyboard-open header{height:48px}.keyboard-open .phase-bar{min-height:40px}.compact-height .scene{visibility:hidden;pointer-events:none;height:0}.compact-height header{height:44px}.compact-height .phase-bar{min-height:36px}.compact-height footer{padding-bottom:max(8px, env(safe-area-inset-bottom))}.compact-height .composer{padding-block:4px}.compact-height .composer textarea{max-height:48px}.compact-height .chat{padding-block:8px}@keyframes blink{0%,92%,96%,to{background-position:0 0}94%{background-position:var(--right) 0}}@keyframes breathe{50%{transform:translateY(-1px)}}@keyframes speak{0%,to{background-position:0 var(--bottom)}50%{background-position:0 0}}@keyframes pulse{50%{opacity:.25}}@keyframes message-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes phase-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-out{to{opacity:0;transform:translateY(12px)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{to{opacity:0}}@media (width>=600px){#root{padding:20px}.game-shell{border-radius:24px}.scene{height:320px}}@media (width<=360px){header{padding-inline:10px}.brand{width:96px;height:32px}.scene{height:192px}.phase-bar,.chat{padding-inline:16px}footer{padding-inline:12px}.message{gap:10px}.message p{font-size:14px}.modal{width:calc(100% - 24px);padding:20px}.choice-list{gap:6px}.choice-list label{gap:5px;padding:8px}.choice-list .avatar{width:30px}}@media (height<=520px) and (width>=600px){#root{padding:0}.game-shell{border-radius:0}.scene{height:100px}.character{width:64px;top:6px!important}.character.human{left:9%}.character.seoyun{left:25%}.character.doyun{left:42%}.character.harin{left:58%}.character.jiho{left:75%}.character.yuna{left:91%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.sprite.talking{background-position:0 var(--bottom)}}
