:root{color-scheme:light;font-family:Trebuchet MS,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(245,94,40,.25),transparent 30%),radial-gradient(circle at bottom right,rgba(24,140,124,.25),transparent 35%),linear-gradient(160deg,#f8f3e8,#efe1c3);color:#14281d}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden}.background-orb{position:absolute;border-radius:999px;filter:blur(10px);opacity:.75}.orb-one{width:18rem;height:18rem;top:-4rem;left:-4rem;background:#e8843759}.orb-two{width:22rem;height:22rem;right:-7rem;bottom:-7rem;background:#358c7847}.panel{position:relative;z-index:1;width:min(100%,34rem);background:#fff9f0d6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(20,40,29,.08);border-radius:32px;padding:28px;box-shadow:0 24px 60px #4d351226}.eyebrow,.card-label,.player-badge span,.summary-box span{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem}h1,h2,.word{font-family:Georgia,Times New Roman,serif}h1,h2,p{margin-top:0}h1{font-size:clamp(2.6rem,8vw,4.2rem);line-height:.95;margin-bottom:16px}.hero-logo{display:block;width:clamp(42px,9vw,68px);height:auto;margin:0 auto 14px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(20,40,29,.16))}h2{font-size:clamp(2rem,7vw,3rem);line-height:1;margin-bottom:12px}.intro,.role-copy,.swipe-copy{color:#14281db8;line-height:1.5}.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0 20px}.mode-switch{display:flex;gap:10px;margin-bottom:20px}.field{display:grid;gap:10px}.field span{font-weight:700}.stepper{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:20px;background:#ffffffb8}.stepper button,.category-pill,.primary-button,.ghost-button{border:0;border-radius:18px}.stepper button{width:44px;height:44px;background:#1f5c4f;color:#fff;font-size:1.4rem}.stepper strong{font-size:1.4rem}.category-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.name-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}.name-input{width:100%;padding:12px 14px;border:1px solid rgba(20,40,29,.12);border-radius:16px;background:#ffffffc2;color:#14281d}.name-input:focus{outline:2px solid rgba(217,95,39,.35);border-color:#d95f2773}.category-pill{background:#ffffffbf;color:#20473c;padding:12px 14px;font-weight:700}.category-pill.active{background:#d95f27;color:#fffdf8}.primary-button,.ghost-button{width:100%;padding:16px 18px;font-weight:700;transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}.inline-button{width:auto;margin-top:0}.primary-button{background:linear-gradient(135deg,#df6f2f,#b44b1d);color:#fff;box-shadow:0 16px 30px #b44b1d40}.ghost-button{margin-top:12px;background:#20473c1a;color:#20473c}.primary-button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.primary-button:not(:disabled):hover,.ghost-button:hover,.category-pill:hover,.stepper button:hover{transform:translateY(-1px)}.player-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:18px;border-radius:999px;background:#ffffffb8;font-weight:700}.reveal-card{position:relative;min-height:27rem;border-radius:28px;overflow:hidden;background:linear-gradient(180deg,#14281de6,#12352ef5),#10211b;color:#fffef6;margin-bottom:18px;-webkit-user-select:none;user-select:none;touch-action:none}.reveal-content,.reveal-cover{position:absolute;top:0;right:0;bottom:0;left:0;padding:24px}.reveal-content{background:linear-gradient(160deg,#e48436f5,#1b534af5),#25342c}.reveal-cover{z-index:1;background:linear-gradient(180deg,#14281df5,#12352efa),#10211b;transition:transform .56s cubic-bezier(.34,1.56,.64,1);will-change:transform}.reveal-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.36),transparent 50%);transition:transform .56s cubic-bezier(.34,1.56,.64,1)}.reveal-cover.dragging,.reveal-cover.dragging .reveal-shine{transition:none}.swipe-meter{position:absolute;right:18px;top:18px;width:10px;height:calc(100% - 36px);border-radius:999px;background:#ffffff2e;overflow:hidden}.swipe-meter-fill{position:absolute;bottom:0;width:100%;border-radius:inherit;background:linear-gradient(180deg,#f8ca78,#fff5dc)}.swipe-hint{position:absolute;left:24px;right:24px;bottom:24px;display:flex;align-items:end;justify-content:space-between}.word{margin-bottom:0;font-size:clamp(2.8rem,11vw,4.8rem);line-height:.95}.reveal-player-name{margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,9vw,3.8rem);line-height:.95;text-wrap:balance}.summary-panel{text-align:center}.summary-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;margin-bottom:12px;border-radius:18px;background:#ffffffb3;text-align:left}.summary-box strong{font-size:1.1rem}.room-code-box strong{letter-spacing:.1em}.timer-ring{position:relative;display:grid;place-items:center;width:min(100%,16rem);aspect-ratio:1;margin:0 auto 18px;border-radius:999px;overflow:hidden;background:#14281d1a;border:10px solid rgba(255,255,255,.6)}.timer-ring-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#df6f2fd9,#1f5c4fd9);transform-origin:bottom;transition:transform 1s linear}.timer-ring strong{position:relative;z-index:1;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,9vw,3.8rem);color:#fffef6;text-shadow:0 8px 20px rgba(20,40,29,.28)}.vote-list{display:grid;gap:10px;margin-bottom:14px}.vote-card,.result-box{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 18px;border:0;border-radius:18px;background:#ffffffb8;color:#14281d;text-align:left}.vote-card span,.result-box span{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}.vote-card strong,.result-box strong{font-size:1rem}.vote-card.selected{background:#1f5c4f;color:#fffef6}.vote-card:disabled{opacity:.55;cursor:not-allowed}.result-box{margin-bottom:12px;background:linear-gradient(135deg,#df6f2f2e,#1f5c4f2e)}.notice-box{padding:14px 16px;margin-top:12px;margin-bottom:12px;border-radius:18px;background:#20473c1a;color:#20473c;line-height:1.45}.warning-box{background:#df6f2f24;color:#7a3d19}.error-box{background:#992b2b1f;color:#7b1e1e}.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:12px}.compact-list{margin-bottom:0}.online-room{display:grid;gap:6px}.online-player-list{display:grid;gap:10px}.online-player-card{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:18px;background:#ffffffb8}.online-player-card span{color:#14281db3;font-size:.9rem}.online-role-card{min-height:auto;margin-bottom:18px;box-shadow:0 18px 34px #14281d2e}.online-role-content{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:20rem}.turn-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.turn-pill{padding:10px 14px;border-radius:999px;background:#ffffffb8;font-weight:700}.turn-pill.active{background:#1f5c4f;color:#fffef6}@keyframes panel-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translate(60px) rotate(4deg) scale(.94)}to{opacity:1;transform:none}}@keyframes item-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes pop-in-centered{0%{opacity:0;transform:translate(-50%) scale(.5)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes bounce-up{0%,to{transform:translate(-50%);opacity:.55}50%{transform:translate(-50%,-14px);opacity:1}}@keyframes ready-pulse{0%,to{box-shadow:0 16px 30px #b44b1d40,0 0 #df6f2f73}50%{box-shadow:0 16px 30px #b44b1d40,0 0 0 10px #df6f2f00}}@keyframes urgent-pulse{0%,to{transform:scale(1);border-color:#fff9}50%{transform:scale(1.04);border-color:#c832288c}}@keyframes orb-drift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(2.5rem,1.5rem) scale(1.08)}}@keyframes dice-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.panel{animation:panel-in .48s cubic-bezier(.2,.8,.2,1) both}.stage-enter{display:grid;gap:6px;animation:item-in .42s cubic-bezier(.2,.8,.2,1) both}.card-enter{animation:card-in .52s cubic-bezier(.2,.8,.2,1) both}.orb-one{animation:orb-drift 14s ease-in-out infinite}.orb-two{animation:orb-drift 18s ease-in-out infinite reverse}.reveal-content>*{opacity:calc(.25 + var(--reveal, 0) * .75);transform:translateY(calc((1 - var(--reveal, 0)) * 28px)) scale(calc(.94 + var(--reveal, 0) * .06));transition:opacity .2s ease,transform .2s ease}.swipe-arrow{position:absolute;left:50%;bottom:84px;display:grid;place-items:center;width:52px;height:52px;border-radius:999px;background:#ffffff24;font-size:1.6rem;font-weight:700;animation:bounce-up 1.4s ease-in-out infinite}.swipe-arrow.seen{background:#f8ca78;color:#14281d;animation:pop-in-centered .42s cubic-bezier(.34,1.56,.64,1) both}.swipe-hint.seen span{color:#f8ca78;font-weight:700}.primary-button.ready{animation:ready-pulse 1.8s ease-in-out infinite}.primary-button:not(:disabled):active,.ghost-button:active,.category-pill:not(:disabled):active,.stepper button:active,.vote-card:not(:disabled):active{transform:scale(.96)}.category-pill{transition:background-color .2s ease,color .2s ease,transform .18s ease,box-shadow .2s ease}.category-pill.active{box-shadow:0 8px 18px #d95f274d}.category-pill:disabled{cursor:default}.random-pill{background:linear-gradient(135deg,#f8ca7899,#ffffffbf)}.random-pill.active{background:linear-gradient(135deg,#df6f2f,#1f5c4f);animation:dice-wiggle .5s ease}.vote-card,.online-player-card{animation:item-in .38s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i, 0) * 50ms);transition:background-color .22s ease,color .22s ease,transform .18s ease}.vote-card.selected{transform:scale(1.02);box-shadow:0 10px 22px #1f5c4f40}.result-box{animation:pop-in .52s cubic-bezier(.34,1.56,.64,1) both}.turn-pill{transition:background-color .26s ease,color .26s ease,transform .26s ease}.turn-pill.active{transform:scale(1.08)}.timer-ring.urgent{animation:urgent-pulse 1s ease-in-out infinite}.timer-ring.urgent .timer-ring-fill{background:linear-gradient(180deg,#dc4632e6,#a0281ee6)}@keyframes result-win{0%{opacity:0;transform:scale(.6)}55%{opacity:1;transform:scale(1.08)}75%{transform:scale(.97)}to{transform:scale(1)}}@keyframes result-lose{0%{opacity:0;transform:translateY(-16px)}30%{opacity:1;transform:translateY(0)}40%,60%,80%{transform:translate(-10px)}50%,70%,90%{transform:translate(10px)}to{transform:none}}@keyframes icon-in{0%{transform:scale(0) rotate(-120deg)}70%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}@keyframes win-glow{0%,to{box-shadow:0 18px 40px #1f5c4f4d,0 0 #3fb68b80}50%{box-shadow:0 18px 40px #1f5c4f4d,0 0 0 14px #3fb68b00}}@keyframes confetti-burst{0%{opacity:1;transform:translate(0) rotate(0) scale(.4)}60%{opacity:1}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 160px)) rotate(calc(var(--r) + 360deg)) scale(1)}}@keyframes impostor-flash{0%,to{background:#8f2a20}50%{background:#c2412f}}.vote-result{position:relative;display:grid;justify-items:center;gap:6px;padding:24px 20px;margin-bottom:12px;border-radius:24px;color:#fffef6;text-align:center}.vote-result h3{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,6vw,2rem);line-height:1.1}.vote-result p{margin:0;opacity:.9}.vote-result.caught{background:linear-gradient(135deg,#3fb68b,#1f5c4f);animation:result-win .7s cubic-bezier(.34,1.56,.64,1) both,win-glow 1.8s ease-in-out .7s 3}.vote-result.escaped{background:linear-gradient(135deg,#c2412f,#6e1f17);animation:result-lose .76s ease-out both}.vote-result-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:999px;background:#ffffff38;font-size:2rem;font-weight:700;animation:icon-in .6s cubic-bezier(.34,1.56,.64,1) .2s both}.confetti{position:absolute;left:50%;top:40%;width:0;height:0;pointer-events:none}.confetti span{position:absolute;width:9px;height:14px;border-radius:3px;opacity:0;animation:confetti-burst 1.4s cubic-bezier(.15,.7,.4,1) var(--d) both}.vote-card.impostor{color:#fffef6;animation:impostor-flash .9s ease-in-out 2;background:#8f2a20}.vote-card.impostor:disabled,.vote-card.selected:disabled{opacity:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}@media (max-width: 640px){.app-shell{padding:14px}.panel{padding:20px;border-radius:24px}.hero-logo{width:clamp(40px,12vw,60px);margin-bottom:12px}.config-grid,.name-list,.join-row{grid-template-columns:1fr}.reveal-card{min-height:24rem}.reveal-content,.reveal-cover{padding:20px}}
