@property --gradient-angle{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--bg:#0b0b14;--bg-raised:#15151f;--bg-sunken:#08080f;--text:#f2f2f7;--text-dim:#a0a0b0;--accent:#ff4d6d;--accent-dim:#7a2739;--good:#4ade80;--warn:#fbbf24;--line:#26263a;--radius:18px;--shadow:0 8px 30px #00000073;--tile-ratio:4 / 3;--grad-1:#6d28d9;--grad-2:#db2777;--grad-3:#f59e0b;--grad-4:#0ea5e9;--glass:#0e0e188c;--glass-line:#ffffff1f;--glass-blur:blur(20px) saturate(140%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;font:16px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.room__bg,.landing:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(45% 45% at 20% 25%, color-mix(in oklab, var(--grad-2) 55%, transparent), transparent 70%), radial-gradient(40% 40% at 80% 30%, color-mix(in oklab, var(--grad-4) 45%, transparent), transparent 70%), radial-gradient(50% 50% at 55% 85%, color-mix(in oklab, var(--grad-3) 35%, transparent), transparent 70%), conic-gradient(from var(--gradient-angle) at 50% 50%, var(--grad-1), var(--grad-2), var(--grad-3), var(--grad-4), var(--grad-1));filter:blur(60px);opacity:.55;position:fixed;inset:-20%}#root>*{z-index:1;position:relative}#root{flex-direction:column;height:100dvh;display:flex}.button{appearance:none;border:1px solid var(--glass-line);background:var(--glass);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:.7rem 1.1rem;font-weight:650;transition:transform .22s cubic-bezier(.2,1.6,.4,1),background .16s,border-color .16s,box-shadow .16s}.button:hover:not(:disabled){background:#1e1e30b3;border-color:#ffffff3d;transform:translateY(-2px)}.button:active:not(:disabled){transform:translateY(1px)scale(.97)}.button:disabled{opacity:.45;cursor:not-allowed}.button--primary{background:var(--accent);color:#250009;border-color:#0000;box-shadow:0 8px 24px #db277759}.button--primary:hover:not(:disabled){border-color:#0000;box-shadow:0 12px 32px #db277773}.button--ghost{background:0 0}.button--big{letter-spacing:.02em;padding:1.05rem 2.6rem;font-size:1.15rem}.input{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-sunken);width:100%;color:var(--text);font:inherit;padding:.7rem .9rem}.input:focus-visible,.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.landing{flex:1;place-items:center;padding:1.5rem;display:grid;position:relative}.landing__card{background:var(--glass);width:min(32rem,100%);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);text-align:center;border-radius:28px;flex-direction:column;align-items:center;gap:.35rem;padding:clamp(1.75rem,6vw,3rem);display:flex;box-shadow:0 24px 70px #00000073}.landing__title{letter-spacing:-.03em;color:var(--text);margin:0 0 .75rem;font-size:clamp(2.6rem,12vw,4.5rem);font-weight:900;line-height:1}.landing__pitch{margin:0;font-size:clamp(1.1rem,4vw,1.35rem);font-weight:650}.landing__sub{color:var(--text-dim);margin:0 0 1.75rem;font-size:clamp(1rem,3.5vw,1.2rem)}.landing__error{color:var(--accent);margin:1rem 0 0}.room{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1.25rem clamp(.75rem,3vw,1.5rem);display:flex;position:relative;overflow:hidden}.tile__action{color:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;margin-left:auto;padding:0;font-size:clamp(1.1rem,5cqw,1.8rem);line-height:1;transition:transform .16s,opacity .16s}.tile__action:hover{transform:scale(1.1)}.banner{border-radius:var(--radius);background:var(--bg-raised);border:1px solid var(--line);color:var(--text-dim);align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.banner--warn{border-color:var(--warn);color:var(--warn)}.banner--error{border-color:var(--accent);color:var(--accent)}.banner__action{color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid;border-radius:8px;margin-left:auto;padding:.2rem .6rem}.stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.tile{border:1px solid var(--glass-line);background:#08080f99;border-radius:18px;transition:filter .2s,transform .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:0 18px 50px #0006}.tile--them{position:absolute;inset:0}.tile--self{aspect-ratio:4/3;z-index:3;width:clamp(13rem,30%,22rem);position:absolute;bottom:.75rem;right:.75rem}.tile__video{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.tile__video--mirrored{transform:scaleX(-1)}.tile__placeholder{color:var(--text-dim);text-align:center;place-items:center;padding:1rem;font-size:.9rem;display:grid;position:absolute;inset:0}.tile__overlay{pointer-events:none;text-shadow:0 1px 4px #000000e6,0 0 12px #0009;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex;position:absolute;top:0;left:0;right:0}.tile__badge{text-align:center;color:var(--warn);background:#000000b3;padding:.4rem;font-size:.85rem;position:absolute;inset:auto 0 0}.tile--danger{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.hearts{gap:.3rem;font-size:clamp(1.1rem,6cqw,2.2rem);line-height:1;display:flex}.heart--alive{color:var(--accent);text-shadow:0 1px 4px #000000b3}.heart--gone{color:#4a4a5e}.heart--dim{opacity:.5}.heart--last{animation:1.1s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.28)}24%{transform:scale(1)}36%{transform:scale(1.18)}}.words{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);text-align:center;border-radius:24px;flex-shrink:0;padding:.9rem 1.25rem 1rem;box-shadow:0 18px 50px #00000059}.words__lead,.words__warn{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:.78rem}.words__warn{color:color-mix(in oklab, var(--accent) 75%, white);margin-top:.5rem}.words__row{flex-wrap:wrap;justify-content:center;gap:clamp(.9rem,4vw,2.75rem);margin:.45rem 0;display:flex}.wordcard__word{letter-spacing:.01em;color:#fff;text-shadow:0 2px 12px #0000008c;font-size:clamp(1.6rem,6.5vw,2.75rem);font-weight:900;line-height:1.1}.wordcard__word--burned{color:var(--text-dim);text-decoration:line-through;text-decoration-thickness:.1em;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);opacity:.5;background:0 0;animation:none}.wordcard__word--pulse{animation:2.4s ease-in-out infinite nag;display:inline-block}@keyframes nag{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(1.04)}}.countdown{color:var(--text);pointer-events:none;text-shadow:0 10px 60px #000c;place-items:center;font-size:clamp(5rem,30vw,14rem);font-weight:800;animation:.9s ease-out countpop;display:grid;position:fixed;inset:0}.countdown--go{color:var(--good)}@keyframes countpop{0%{opacity:0;transform:scale(1.7)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.85)}}.fx{z-index:40;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}:is(.room:has(.fx--freeze) .stage,.room:has(.fx--slam) .stage){filter:grayscale()contrast(1.1);transform:scale(.97)}.room:has(.fx--slam){animation:.42s cubic-bezier(.36,.07,.19,.97) shake}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.fx__vignette{opacity:0;background:radial-gradient(#0000 35%,#780019a6 100%);animation:2.6s ease-out forwards vignette;position:absolute;inset:0}@keyframes vignette{0%{opacity:0}8%{opacity:1}60%{opacity:1}to{opacity:0}}.fx__word{letter-spacing:.02em;color:#fff;text-shadow:0 0 40px #ff2850e6, 0 8px 0 var(--accent-dim);text-align:center;overflow-wrap:anywhere;padding:0 1rem;font-size:clamp(2.5rem,14vw,9rem);font-weight:900;animation:2.6s cubic-bezier(.2,1.4,.4,1) forwards slam}@keyframes slam{0%{opacity:0;transform:scale(3.2)rotate(-6deg)}9%{opacity:1;transform:scale(1)rotate(-2deg)}92%{opacity:1;transform:scale(1)rotate(-2deg)}to{opacity:0;transform:scale(1.06)rotate(-2deg)}}.fx__verdict{letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);margin-top:.4rem;font-size:clamp(.85rem,3vw,1.35rem);font-weight:700;animation:2.6s ease-out forwards slam}.fx--theirs .fx__word{text-shadow:0 0 40px #3cffa0b3,0 8px #007846e6}.fx--theirs .fx__verdict{color:#7be69a;color:lab(83.352% -44.5811 26.8785)}.fx__shards{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.fx__shard{color:var(--accent);opacity:0;font-size:2rem;animation:1.1s ease-out forwards shard;position:absolute}@keyframes shard{0%{opacity:1;transform:translate(0)rotate(0)scale(1)}to{opacity:0;transform:translate(var(--dx,0), 60vh) rotate(var(--spin,360deg)) scale(.4)}}.fx__shard--0{--dx:-26vw;--spin:-300deg;animation-delay:0s}.fx__shard--1{--dx:-16vw;--spin:220deg;animation-delay:40ms}.fx__shard--2{--dx:-7vw;--spin:-180deg;animation-delay:80ms}.fx__shard--3{--dx:4vw;--spin:300deg;animation-delay:20ms}.fx__shard--4{--dx:13vw;--spin:-260deg;animation-delay:60ms}.fx__shard--5{--dx:22vw;--spin:200deg;animation-delay:.1s}.fx__shard--6{--dx:-32vw;--spin:340deg;animation-delay:.12s}.fx__shard--7{--dx:31vw;--spin:-340deg;animation-delay:.14s}.fx__notme{pointer-events:auto;border:1px solid var(--line);color:var(--text-dim);font:inherit;cursor:pointer;background:#0009;border-radius:999px;padding:.45rem .9rem;font-size:.85rem;animation:.4s .7s both fadein;position:absolute;bottom:12vh}@keyframes fadein{0%{opacity:0}to{opacity:1}}.waiting{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.75rem;min-height:0;padding:1rem;display:flex}.waiting__link{flex-wrap:wrap;justify-content:center;gap:.6rem;width:min(46rem,100%);display:flex}.waiting__link .input{text-align:center;flex:20rem;padding:.85rem 1rem;font-size:1.05rem}.waiting__qr{shape-rendering:crispedges;background:#fff;border-radius:12px;width:min(26rem,70vw,42vh);height:auto;padding:10px}.prompt{flex-direction:column;flex-shrink:0;align-items:center;gap:.75rem;display:flex}.prompt__error{color:var(--accent);text-align:center;max-width:32rem}.gameover{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.gameover__title{letter-spacing:.02em;margin:0;font-size:clamp(2.2rem,11vw,5rem);font-weight:900;line-height:1;animation:.62s cubic-bezier(.16,1.5,.35,1) both slam-in}.gameover--win .gameover__title{color:var(--good);text-shadow:0 0 40px #4ade8073,0 6px #165a32e6}.gameover--lose .gameover__title{color:var(--accent);text-shadow:0 0 40px #ff4d6d73}.gameover__culprit{letter-spacing:.04em;color:var(--accent);text-shadow:0 0 45px #ff2850b3;overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,10vw,4.5rem);font-weight:900;line-height:1;animation:.62s cubic-bezier(.16,1.5,.35,1) .14s both slam-in}.gameover__detail{color:var(--text-dim);margin:0 0 .25rem}.gameover__damage{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.gameover__damage-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:999px;align-items:baseline;gap:.4rem;padding:.25rem .8rem;display:flex}.gameover__damage-word{letter-spacing:.04em;color:var(--accent);font-weight:700}.gameover__damage-count{color:var(--text-dim);font-size:.8rem}@keyframes slam-in{0%{opacity:0;transform:scale(2.4)rotate(-6deg)}60%{opacity:1}to{opacity:1;transform:scale(1)rotate(0)}}.tile--winner{border-color:var(--good);box-shadow:inset 0 0 0 2px var(--good), 0 0 40px #4ade804d;animation:.9s cubic-bezier(.18,1.5,.4,1) 2 winner-bounce}.tile--winner:after,.tile--loser:after{content:"🙂";opacity:.42;pointer-events:none;z-index:2;filter:drop-shadow(0 6px 24px #000000a6);place-items:center;font-size:min(46cqw,46cqh);animation:.7s cubic-bezier(.16,1.5,.35,1) both verdict-pop;display:grid;position:absolute;inset:0}.tile--loser:after{content:"🙁"}.tile{container-type:size}@keyframes verdict-pop{0%{opacity:0;transform:scale(.4)rotate(-12deg)}to{opacity:.42;transform:scale(1)rotate(0)}}.tile--loser{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent), 0 0 40px #ff4d6d4d;animation:1.1s cubic-bezier(.3,.9,.4,1) forwards loser-flop}.tile--loser .tile__video,.tile--loser .tile__placeholder{filter:grayscale()brightness(.55);transition:filter .9s}@keyframes winner-bounce{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-12px)scale(1.03)}}@keyframes loser-flop{0%{transform:rotate(0)translateY(0)}35%{transform:rotate(4deg)translateY(4px)}to{transform:rotate(-7deg)translateY(22px)scale(.94)}}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti__bit{font-size:var(--size,1rem);opacity:0;animation:confetti-fly 1.5s cubic-bezier(.15, .75, .35, 1) var(--delay,0s) forwards;line-height:1;position:absolute;top:50%;left:50%}@keyframes confetti-fly{0%{opacity:0;transform:rotate(var(--angle)) translate(0) rotate(calc(-1 * var(--angle)))}12%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translate(var(--distance)) rotate(calc(-1 * var(--angle) + var(--spin)))}}.fatal{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex;position:relative}.fatal__hint{color:var(--text-dim);max-width:34rem}@media (max-width:46rem) and (orientation:portrait){.tile--self{width:clamp(6.5rem,32%,11rem);bottom:.5rem;right:.5rem}.words{padding:.6rem 1rem .7rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fx__word{opacity:1;animation:.2s both fadein}.fx__vignette{opacity:1;animation:none}.fx__shards{display:none}.room:has(.fx--slam){animation:none}.confetti{display:none}.gameover__title,.gameover__culprit{opacity:1;animation:none;transform:none}.room__bg,.landing:before{animation:none;transform:none}.landing__title{background-position:0%;animation:none}.wordcard__word--pulse{animation:none}.tile--winner,.tile--loser{animation:none;transform:none}}
