@font-face{font-family:Unbounded;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/Unbounded-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/Unbounded-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/Unbounded-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}:root{--paper:#f2f0ea;--ink:#111;--acid:#e6ff00;--red:#ff2a1a;--grey:#8a8780;--shadow:6px 6px 0 var(--ink);--shadow-small:3px 3px 0 var(--ink);--display:"Unbounded", "Arial Black", Impact, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Courier New", monospace;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none;font-size:14px;line-height:1.35;overflow:hidden}body:before{content:"";z-index:0;pointer-events:none;opacity:.55;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.2 0 0 0 0 0.2 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}.zine-title{font-family:var(--display);letter-spacing:-.05em;text-transform:uppercase;text-shadow:6px 6px 0 var(--acid), 9px 9px 0 var(--ink);margin:0;font-size:clamp(44px,18vw,96px);font-weight:900;line-height:.86}.zine-title--code{letter-spacing:.04em;font-size:clamp(40px,16vw,84px)}.zine-title--result{text-shadow:4px 4px 0 var(--acid), 6px 6px 0 var(--ink);font-size:clamp(30px,10vw,56px)}.tape{background:var(--ink);color:var(--paper);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;margin:14px 0 0;padding:6px 10px;font-size:12px;font-weight:700;display:inline-block;transform:rotate(-1.5deg)}.tape--small{margin:0;font-size:10px;transform:rotate(2deg)}.muted{color:var(--grey);margin:8px 0 0}.btn{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--acid);border:3px solid var(--ink);box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;border-radius:0;padding:12px 18px;font-size:14px;font-weight:800;transition:transform 60ms steps(2,end),box-shadow 60ms steps(2,end)}.btn:active{box-shadow:2px 2px 0 var(--ink);transform:translate(4px,4px)}.btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:var(--shadow-small)}.btn--big{padding:16px 26px;font-size:18px}.btn--paper{background:#fff}.btn--ink{background:var(--ink);color:var(--acid)}.btn--danger{background:var(--red);color:#fff}.field{flex-direction:column;gap:6px;display:flex}.field__label{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.field__hint{color:var(--grey);font-size:11px}.input{font-family:var(--mono);border:3px solid var(--ink);box-shadow:var(--shadow-small);background:#fff;border-radius:0;outline:none;width:100%;padding:12px 14px;font-size:18px}.input:focus{background:#fffde0}.input--code{font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;font-size:24px;font-weight:800}.screen{height:100%;padding:calc(20px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));flex-direction:column;gap:22px;max-width:480px;margin:0 auto;display:flex;overflow-y:auto}.lobby__head{padding-top:6vh}.lobby__join{flex-direction:column;gap:12px;display:flex}.lobby__hello{margin:0}.lobby__link{text-align:center;align-self:flex-start;text-decoration:none;display:inline-block}.sticker-text{border:3px solid var(--ink);box-shadow:var(--shadow-small);font-family:var(--display);background:#fff;padding:6px 12px;font-weight:700;display:inline-block;transform:rotate(1.5deg)}.row{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.row--center{justify-content:center}.players__title{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:13px}.players__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.players__item{border:3px solid var(--ink);box-shadow:var(--shadow-small);background:#fff;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.players__item--ready{background:var(--acid)}.players__name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.players__name small{color:var(--grey);font-weight:400}.players__state{font-family:var(--display);letter-spacing:.08em;font-size:10px}.waiting__actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;display:flex}.sticker{--tilt:-3deg;color:var(--ink);border:2px solid var(--ink);box-shadow:0 0 0 6px #fff, 4px 4px 0 6px var(--ink);transform:rotate(var(--tilt));background:#fff;outline:4px solid #fff;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:visible}.sticker img{object-fit:cover;filter:grayscale()contrast(1.35)brightness(1.05);width:100%;height:100%}.sticker__initials{font-family:var(--display);font-size:16px;font-weight:900}.sticker--muted{opacity:.45}.sticker__badge{background:var(--acid);border:2px solid var(--ink);padding:2px 4px;font-size:11px;line-height:1;position:absolute;bottom:-10px;right:-10px;transform:rotate(8deg)}.game{height:100%;position:relative;overflow:hidden}.pixi-host{position:absolute;inset:0}.pixi-host canvas{touch-action:none;display:block}.hud-top{padding:calc(8px + var(--safe-top)) 10px 0;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:0;left:0;right:0}.hud-top__row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.hud-top__row>*{pointer-events:auto}.chip{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);color:var(--ink);cursor:default;background:#fff;padding:4px 7px;font-size:10px;font-weight:700}.chip--ink{background:var(--ink);color:var(--paper)}.chip--acid{background:var(--acid)}.chip--ghost{box-shadow:none;background:0 0;border-style:dashed}.chip--link{cursor:pointer;font-family:var(--display);margin-left:auto}.opponents{pointer-events:none;gap:14px;margin:-30px 0 0;padding:36px 0 0 4px;list-style:none;display:flex;overflow-x:auto}.opponent{pointer-events:auto;flex:none;align-items:center;gap:14px;padding:6px 8px 6px 6px;display:flex;position:relative}.opponent__info{flex-direction:column;gap:3px;display:flex}.opponent__name{text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-size:12px;font-weight:700;overflow:hidden}.opponent__cards{font-family:var(--display);font-size:14px;font-weight:800}.opponent__cards small{color:var(--grey);font-size:10px}.opponent--out{opacity:.5}.roletag{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);border:2px solid var(--grey);background:#fff;width:max-content;padding:2px 6px;font-size:10px;font-weight:800}.roletag--hot{color:var(--ink);background:var(--acid);border-color:var(--ink)}.roletag--me{box-shadow:3px 3px 0 var(--ink);border-color:var(--ink);color:var(--ink);padding:5px 10px;font-size:13px;transform:rotate(-2deg)}.chip--toggle{cursor:pointer;font-family:var(--display)}.status{pointer-events:none;font-family:var(--display);letter-spacing:.04em;border:2px solid var(--ink);width:max-content;max-width:100%;box-shadow:3px 3px 0 var(--ink);background:#fff;margin:2px 0 0;padding:5px 8px;font-size:12px;font-weight:800;transform:rotate(-.8deg)}.status--hot{background:var(--acid)}.status--warn{background:var(--red);color:#fff}.hud-bottom{padding:0 12px calc(8px + var(--safe-bottom));pointer-events:none;position:absolute;bottom:0;left:0;right:0}.actionband{z-index:3;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:10px;height:90px;display:flex;position:absolute;left:10px;right:10px}.actionband__text{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.actionband__buttons{pointer-events:auto;flex:none;gap:10px;display:flex}.me{pointer-events:none;color:var(--grey);align-items:center;gap:14px;padding-left:6px;font-size:11px;display:flex;position:relative}.avatar-btn{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;line-height:0}.reaction{z-index:4;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);pointer-events:none;background:#fff;padding:3px 7px;font-size:26px;line-height:1;animation:.22s steps(3,end) both reaction-pop,.5s 2.6s both reaction-fade;position:absolute;top:-38px;left:20px;transform:rotate(-6deg)}.reaction--me{font-size:30px;top:-48px;left:0}@keyframes reaction-pop{0%{opacity:0;transform:rotate(-6deg)scale(.3)}to{opacity:1;transform:rotate(-6deg)scale(1)}}@keyframes reaction-fade{to{opacity:0;transform:rotate(-6deg)translateY(-10px)}}.emoji-backdrop{z-index:30;position:fixed;inset:0}.emoji-panel{left:12px;bottom:calc(78px + var(--safe-bottom));border:3px solid var(--ink);box-shadow:var(--shadow);background:#fff;grid-template-columns:repeat(6,46px);gap:6px;padding:8px;animation:.15s steps(3,end) both panel-slam;display:grid;position:absolute;transform:rotate(-1deg)}@keyframes panel-slam{0%{opacity:0;transform:rotate(-1deg)scale(1.4)}to{opacity:1;transform:rotate(-1deg)scale(1)}}.emoji-panel__btn{background:var(--paper);border:2px solid var(--ink);cursor:pointer;border-radius:0;width:46px;height:46px;padding:0;font-size:26px;line-height:1}.emoji-panel__btn:active{background:var(--acid);transform:translate(2px,2px)}.chip--trump{align-items:center;gap:6px;display:inline-flex}.chip__suit{font-size:20px;font-weight:900;line-height:1}.chip__suit--red{color:var(--red)}.me__meta{border:2px solid var(--ink);color:var(--ink);background:#fff;padding:2px 6px}.stamp{z-index:6;pointer-events:none;font-family:var(--display);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);background:var(--acid);border:4px solid var(--ink);box-shadow:10px 10px 0 var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:94vw;padding:10px 20px 12px;font-size:clamp(34px,12vw,72px);font-weight:900;line-height:1;animation:.16s steps(3,end) both stamp-slam;position:absolute;top:64%;left:50%;overflow:hidden;transform:translate(-50%,-50%)rotate(-7deg)}.stamp--took{background:var(--ink);color:var(--acid);border-color:var(--acid);box-shadow:10px 10px 0 var(--red);font-size:clamp(22px,7.5vw,44px)}@keyframes stamp-slam{0%{opacity:0;transform:translate(-50%,-50%)rotate(-7deg)scale(1.6)}to{opacity:1;transform:translate(-50%,-50%)rotate(-7deg)scale(1)}}.lastmove{pointer-events:none;font-family:var(--mono);border:2px solid var(--ink);width:max-content;max-width:100%;box-shadow:2px 2px 0 var(--ink);background:#fff;margin:0;padding:4px 8px;font-size:12px;transform:rotate(.6deg)}.toast{left:50%;top:calc(12px + var(--safe-top));z-index:20;background:var(--ink);color:var(--acid);font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;border:3px solid var(--acid);box-shadow:6px 6px 0 var(--red);text-align:center;max-width:88vw;padding:12px 16px;font-size:13px;font-weight:800;animation:.18s steps(3,end) both slam;position:fixed;transform:translate(-50%)rotate(-2deg)}@keyframes slam{0%{opacity:0;transform:translate(-50%)rotate(-2deg)scale(1.3)}to{opacity:1;transform:translate(-50%)rotate(-2deg)scale(1)}}.overlay{z-index:10;background:#f2f0eab8;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.overlay__card{border:4px solid var(--ink);box-shadow:10px 10px 0 var(--ink);text-align:center;background:#fff;width:100%;max-width:420px;padding:28px 22px;transform:rotate(-1deg)}@media (min-width:720px){.actionband{left:16px;right:16px}}
