@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:ital,wght@0,400;0,600;0,700;0,800;1,700&display=swap";:root{--felt-900: #0f3d2e;--felt-800: #14543e;--felt-700: #1c6b4f;--felt-glow: #2f8f6a;--rail: #5b3a1e;--rail-light: #7a5230;--paper: #fffdf7;--paper-edge: #efe6d2;--ink: #20303a;--ink-soft: #5a6a72;--gold: #ffcf4d;--gold-deep: #e0a516;--danger: #e23b3b;--cream: #fff6e2;--cream-soft: #d9e6dc;--shadow-card: 0 10px 22px -8px rgba(0, 0, 0, .55);--shadow-pop: 0 18px 34px -10px rgba(0, 0, 0, .6);--shadow-inset-felt: inset 0 0 140px rgba(0, 0, 0, .45);--radius-card: 14px;--radius-lg: 22px;--radius-pill: 999px;--font-display: "Fredoka", system-ui, sans-serif;--font-body: "Nunito", system-ui, sans-serif;font-family:var(--font-body);line-height:1.5;color:var(--cream);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(ellipse 120% 90% at 50% 8%,var(--felt-700) 0%,var(--felt-800) 42%,var(--felt-900) 100%);background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;box-shadow:var(--shadow-inset-felt);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.05;letter-spacing:-.01em}button{font-family:var(--font-display);font-weight:600;cursor:pointer;border:none;transition:transform .12s ease,box-shadow .18s ease,filter .18s ease}button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button:disabled{cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;font-size:1.05rem;border-radius:var(--radius-pill);color:var(--ink);background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);box-shadow:0 5px 0 var(--gold-deep),0 10px 18px -6px #00000080}.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--gold-deep),0 4px 10px -4px #00000080}.btn:disabled{background:linear-gradient(180deg,#9aa6a0,#7e8a84);box-shadow:0 5px #6d7873;color:#ffffffb3}.btn-ghost{background:#ffffff1f;color:var(--cream);box-shadow:inset 0 0 0 2px #ffffff38}.btn-ghost:hover:not(:disabled){background:#fff3;transform:translateY(-2px)}.btn-ghost:active:not(:disabled){transform:translateY(1px)}@keyframes pop-in{0%{transform:scale(.6) translateY(20px);opacity:0}70%{transform:scale(1.05);opacity:1}to{transform:scale(1)}}@keyframes float-up{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.lang-toggle{display:inline-flex;gap:2px;border:1px solid rgba(255,255,255,.4);border-radius:999px;overflow:hidden}.lang-option{border:none;background:transparent;color:inherit;padding:4px 12px;font:inherit;cursor:pointer}.lang-option.active{background:#ffffffe6;color:#1a1a1a}.card{--card-accent: #f59e0b;--card-wash: #fff0d2;--card-ink: #92600a;position:relative;display:flex;flex-direction:column;align-items:center;background:var(--paper);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;-webkit-user-select:none;user-select:none;flex:0 0 auto;transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .16s ease;outline:2px solid var(--paper-edge);outline-offset:-2px}.card-small{width:56px}.card-medium{width:88px}.card-large{width:120px}@media (max-width: 380px){.card-medium{width:76px}.card-medium .card-name{font-size:11.5px;min-height:30px}}.card-band{width:100%;height:18%;min-height:12px;background:var(--card-accent);border-bottom:2px solid var(--card-ink);flex:0 0 auto}.card-face{flex:1 1 auto;width:100%;display:flex;align-items:center;justify-content:center;padding:8%}.card-art{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.card-name{flex:0 0 auto;width:100%;box-sizing:border-box;text-align:center;font-family:var(--font-display);font-weight:800;color:var(--card-ink);line-height:1.1;padding:5px 4px 6px;background:var(--card-wash);border-top:1px solid rgba(0,0,0,.12);letter-spacing:.01em;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.card-small .card-name{font-size:10px;min-height:24px;padding:3px 2px 4px}.card-medium .card-name{font-size:12.5px;line-height:1.12;min-height:34px}.card-large .card-name{font-size:14px;min-height:36px}.card[role=button]{cursor:pointer}.card-hovered,.card[role=button]:hover{transform:translateY(-10px) rotate(-1deg) scale(1.04);box-shadow:var(--shadow-pop);z-index:5}.card-selected{transform:translateY(-18px) scale(1.06);box-shadow:0 0 0 3px var(--gold),var(--shadow-pop);z-index:6}.card-selected:after{content:"✓";position:absolute;top:6px;inset-inline-end:6px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--ink);font-size:13px;font-weight:800;box-shadow:0 2px 6px #00000059}.card-disabled{filter:saturate(.6) brightness(.96);cursor:default}.card-disabled.card-hovered,.card-disabled:hover{transform:none;box-shadow:var(--shadow-card)}.card-back{background:#1f1147;outline:none;padding:0}.card-back .card-back-art{width:100%;height:100%;display:block}.card-back.card-small,.card-back.card-medium,.card-back.card-large{aspect-ratio:100 / 140}.card:not(.card-back){min-height:calc(var(--card-width, 92px) * 1.45)}.card-small:not(.card-back){--card-width: 56px}.card-medium:not(.card-back){--card-width: 92px}.card-large:not(.card-back){--card-width: 120px}.card.deal{animation:pop-in .4s cubic-bezier(.34,1.56,.64,1) both}.card-new{animation:card-new-arrive .5s cubic-bezier(.34,1.56,.64,1) both;z-index:7}.card-new-ring{position:absolute;inset:-3px;border-radius:calc(var(--radius-card) + 3px);pointer-events:none;box-shadow:0 0 0 3px var(--gold, #ffcf4d),0 0 18px 4px #ffcf4d8c;animation:card-new-ring-pulse 1.1s ease-in-out infinite}.card-new-badge{position:absolute;top:6px;inset-inline-end:6px;z-index:9;font-family:var(--font-display);font-weight:800;font-size:9px;letter-spacing:.08em;padding:2px 6px;border-radius:999px;background:var(--gold, #ffcf4d);color:var(--ink, #20303a);box-shadow:0 2px 5px #00000059;animation:card-new-badge-bob 1.1s ease-in-out infinite}@keyframes card-new-arrive{0%{transform:translateY(-26px) rotate(-6deg) scale(.85);opacity:0}60%{transform:translateY(-6px) rotate(1deg) scale(1.05);opacity:1}to{transform:translateY(0) rotate(0) scale(1);opacity:1}}@keyframes card-new-ring-pulse{0%,to{opacity:.85}50%{opacity:.45}}@keyframes card-new-badge-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.card-info{position:absolute;top:4px;inset-inline-start:4px;z-index:8}.card-info-trigger{width:22px;height:22px;min-width:22px;border:none;border-radius:50%;background:#ffffffd9;color:var(--ink, #20303a);font-size:.8rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 1px 4px #00000040}.card-info-popover{position:fixed;z-index:1000;width:max-content;max-width:min(260px,calc(100vw - 16px));padding:.6rem .7rem;background:var(--paper, #fffdf7);color:var(--ink, #20303a);border-radius:10px;box-shadow:0 8px 24px #00000059;text-align:start;cursor:default}.card-info-name{display:block;font-family:var(--font-display);margin-bottom:.25rem}.card-info-effect{margin:0;font-size:.8rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}@media (max-width: 480px){.card-info-trigger{width:28px;height:28px;min-width:28px;font-size:.95rem}}.player-hand{display:flex;align-items:flex-end;justify-content:center;min-height:132px;padding:0 .5rem}.player-hand .hand-card{flex:0 0 auto;transition:margin .18s ease}.player-hand.normal .hand-card{margin-inline-start:-14px}.player-hand.compact .hand-card{margin-inline-start:-30px}.player-hand.tight .hand-card{margin-inline-start:-42px}.player-hand .hand-card:first-child{margin-inline-start:0}.player-hand.current-player .hand-card:hover{z-index:20!important}.hidden-cards-indicator{align-self:center;margin-inline-start:.5rem;padding:.3rem .7rem;background:#ffffff29;color:var(--cream);border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:600;font-size:.8rem;white-space:nowrap}.player-hand:not(.current-player){min-height:70px;transform:scale(.62);transform-origin:top center}@media (max-width: 600px){.player-hand.current-player{min-height:0;width:100%;min-width:0;max-width:100%;padding:10px .5rem 4px;box-sizing:border-box;overflow-x:auto;overflow-y:visible;justify-content:flex-start;align-items:flex-end;gap:6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.player-hand.current-player::-webkit-scrollbar{display:none}.player-hand.current-player .hand-card,.player-hand.current-player.normal .hand-card,.player-hand.current-player.compact .hand-card,.player-hand.current-player.tight .hand-card{margin-inline-start:0;scroll-snap-align:center;flex:0 0 auto}.player-hand:not(.current-player){min-height:54px;transform:scale(.5)}.player-hand.current-player .card.card-selected{transform:translateY(-8px) scale(1.04)}}.player-info{display:flex;align-items:center;gap:.6rem;padding:.5rem .85rem;background:#fffdf7f2;color:var(--ink);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);border:2px solid transparent;transition:border-color .2s,box-shadow .2s,transform .2s}.player-info.current-turn{border-color:var(--gold);box-shadow:0 0 0 3px #ffcf4d59,var(--shadow-card);transform:translateY(-2px)}.player-info.player-eliminated{filter:grayscale(.9);opacity:.65}.player-avatar{position:relative}.avatar-placeholder{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:#fff;background:linear-gradient(145deg,var(--felt-glow),var(--felt-800));box-shadow:inset 0 -2px 4px #0000004d}.player-info.current-player .avatar-placeholder{background:linear-gradient(145deg,var(--gold),var(--gold-deep));color:var(--ink)}.turn-indicator{position:absolute;inset:-4px;border-radius:50%;pointer-events:none}.turn-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);animation:turn-ping 1.4s ease-out infinite}@keyframes turn-ping{0%{transform:scale(1);opacity:.8}to{transform:scale(1.5);opacity:0}}.player-details{display:flex;flex-direction:column;gap:.1rem}.player-name{display:flex;align-items:center;gap:.4rem}.name-text{font-family:var(--font-display);font-weight:600;font-size:.95rem}.host-badge{font-size:.6rem;font-weight:800;letter-spacing:.06em;padding:.1rem .4rem;border-radius:var(--radius-pill);background:var(--gold);color:var(--ink)}.player-stats{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-soft)}.hand-size{font-weight:700}.turn-timer{display:none}.seat-badge{font-family:var(--font-display);font-size:.6rem;font-weight:700;letter-spacing:.05em;padding:.1rem .45rem;border-radius:999px;margin-inline-start:.35rem}.seat-badge-turn{background:#f5b942;color:#5a3d00}.seat-badge-next{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1.5px #ffffff80}.player-info.seat-active{box-shadow:0 0 0 2px #f5b942,0 0 18px #f5b94280}.player-info.seat-idle{opacity:.72}@media (max-width: 600px){.other-players .player-info{padding:.35rem .55rem;gap:.4rem;border-radius:var(--radius-pill)}.other-players .avatar-placeholder{width:30px;height:30px;font-size:.9rem}.other-players .name-text{font-size:.78rem}.other-players .player-stats{font-size:.68rem;gap:.3rem}.other-players .host-badge{font-size:.55rem;padding:.05rem .3rem}.other-players .seat-badge{font-size:.55rem;padding:.05rem .35rem}.my-player-area .player-info{padding:.4rem .7rem}.my-player-area .avatar-placeholder{width:34px;height:34px;font-size:1rem}}.explosion-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;display:grid;place-items:center;overflow:hidden;animation:explosion-shake .55s cubic-bezier(.36,.07,.19,.97) both}.explosion-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#fffffff2,#ffdc5ad9 18%,#ff5a1ea6 38%,#780a0066 60%,#0000008c);animation:explosion-flash 2.4s ease-out both}.explosion-overlay.is-me .explosion-flash{animation-duration:2.5s}.explosion-shockwave{position:absolute;width:40vmin;height:40vmin;border-radius:50%;border:6px solid rgba(255,220,80,.9);box-shadow:0 0 50px 18px #ffaa288c,inset 0 0 40px 14px #ffdc5059;animation:explosion-shockwave 1.6s cubic-bezier(.16,.84,.44,1) both}.explosion-burst{position:relative;display:grid;place-items:center;animation:explosion-burst 2.4s cubic-bezier(.34,1.56,.64,1) both}.explosion-emoji{font-size:clamp(7rem,28vmin,16rem);filter:drop-shadow(0 6px 18px rgba(0,0,0,.5));animation:explosion-spin 2.4s ease-out both}.explosion-kitten{position:absolute;top:56%;font-size:clamp(2.5rem,10vmin,5rem);animation:explosion-kitten 2.4s cubic-bezier(.34,1.56,.64,1) both}.explosion-text{position:absolute;bottom:22%;display:flex;flex-direction:column;align-items:center;gap:.35rem;color:#fff;text-align:center;text-shadow:0 3px 10px rgba(0,0,0,.7),0 0 24px rgba(255,130,0,.6);animation:explosion-text 2.4s ease-out both}.explosion-boom{font-family:var(--font-display);font-weight:900;font-size:clamp(2.5rem,12vmin,6rem);letter-spacing:.06em;background:linear-gradient(180deg,#fff5d6,#ffb547 55%,#ff5a1f);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(120,30,0,.4)}.explosion-victim{font-family:var(--font-display);font-weight:700;font-size:clamp(.95rem,3.4vmin,1.4rem);color:#fff;background:#0006;padding:.35rem .9rem;border-radius:999px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.explosion-debris{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.debris{position:absolute;width:14px;height:14px;border-radius:3px;background:linear-gradient(135deg,#ffd76a,#ff5a1f);box-shadow:0 0 8px #ff8c28b3;--angle: 0deg;--distance: 40vmin;--delay: 0s;--duration: 1.1s;transform:rotate(var(--angle)) translate(0);opacity:0;animation:debris-fly var(--duration) cubic-bezier(.22,.61,.36,1) var(--delay) both}.debris-0{--angle: 0deg;--distance: 38vmin;--delay: .05s}.debris-1{--angle: 26deg;--distance: 44vmin;--delay: .1s}.debris-2{--angle: 52deg;--distance: 36vmin;--delay: .02s}.debris-3{--angle: 77deg;--distance: 48vmin;--delay: .12s}.debris-4{--angle: 103deg;--distance: 32vmin;--delay: .06s}.debris-5{--angle: 128deg;--distance: 42vmin;--delay: .08s}.debris-6{--angle: 154deg;--distance: 38vmin;--delay: .04s}.debris-7{--angle: 180deg;--distance: 46vmin;--delay: .11s}.debris-8{--angle: 206deg;--distance: 34vmin;--delay: .07s}.debris-9{--angle: 231deg;--distance: 40vmin;--delay: .09s}.debris-10{--angle: 257deg;--distance: 44vmin;--delay: .03s}.debris-11{--angle: 283deg;--distance: 36vmin;--delay: .06s}.debris-12{--angle: 308deg;--distance: 42vmin;--delay: .1s}.debris-13{--angle: 334deg;--distance: 38vmin;--delay: .05s}@keyframes explosion-flash{0%{opacity:0}10%{opacity:1}35%{opacity:1}to{opacity:0}}@keyframes explosion-shockwave{0%{transform:scale(.05);opacity:1;border-width:14px}60%{opacity:.6;border-width:6px}to{transform:scale(4.2);opacity:0;border-width:1px}}@keyframes explosion-burst{0%{transform:scale(.2);opacity:0}35%{transform:scale(1.25);opacity:1}60%{transform:scale(1)}85%{transform:scale(1.05);opacity:1}to{transform:scale(1.2);opacity:0}}@keyframes explosion-spin{0%{transform:rotate(-12deg)}40%{transform:rotate(8deg)}to{transform:rotate(-3deg)}}@keyframes explosion-kitten{0%{transform:translateY(40px) rotate(0) scale(.3);opacity:0}30%{opacity:1}to{transform:translateY(-90vh) rotate(540deg) scale(.8);opacity:0}}@keyframes explosion-text{0%{transform:translateY(40px) scale(.6);opacity:0}30%{transform:translateY(0) scale(1.05);opacity:1}75%{opacity:1}to{transform:translateY(-12px) scale(1);opacity:0}}@keyframes explosion-shake{0%,to{transform:translate(0)}10%{transform:translate(-6px,4px) rotate(-.6deg)}20%{transform:translate(7px,-3px) rotate(.7deg)}30%{transform:translate(-5px,-5px) rotate(-.4deg)}40%{transform:translate(6px,6px) rotate(.5deg)}50%{transform:translate(-4px,3px) rotate(-.3deg)}60%{transform:translate(3px,-4px) rotate(.2deg)}70%{transform:translate(-2px,2px)}80%{transform:translate(2px,-2px)}90%{transform:translate(-1px,1px)}}@keyframes debris-fly{0%{transform:rotate(var(--angle)) translate(0) rotate(0);opacity:1}to{transform:rotate(var(--angle)) translate(var(--distance)) rotate(720deg);opacity:0}}@media (prefers-reduced-motion: reduce){.explosion-overlay,.explosion-flash,.explosion-burst,.explosion-shockwave,.explosion-emoji,.explosion-kitten,.explosion-text,.debris,.card-new,.card-new-ring,.card-new-badge{animation:none!important}.explosion-overlay{background:#00000080}.explosion-text{opacity:1}}.game-board{width:100%;max-width:100vw;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:.75rem;padding:1rem 1.25rem 1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));position:relative;overflow-x:hidden}.game-board>*{min-width:0}.game-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#0f3d2e8c;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:.75rem 1.25rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-room h2{font-size:1.15rem;color:var(--cream);letter-spacing:.06em}.game-room span{color:var(--cream-soft);font-size:.85rem}.board-help-link{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--cream);background:#ffffff24;box-shadow:inset 0 0 0 2px #ffffff38;transition:background .15s,transform .15s}.board-help-link:hover{background:#ffffff3d;transform:scale(1.08)}.turn-controls .waiting-turn{color:var(--cream-soft);font-family:var(--font-display);font-style:italic}.turn-controls button{padding:.7rem 1.5rem;font-size:1.1rem;border-radius:var(--radius-pill);color:var(--ink);background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);box-shadow:0 5px 0 var(--gold-deep),0 10px 18px -6px #00000080;min-width:132px;white-space:nowrap;animation:draw-button-glow 1.8s ease-in-out infinite}.turn-controls button:hover:not(:disabled){transform:translateY(-2px)}.turn-controls button:disabled{animation:none;background:#8d958f;box-shadow:0 5px #6d7873}@keyframes draw-button-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.08)}}.other-players{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;align-items:flex-start;padding-top:.5rem}.player-area{display:flex;flex-direction:column;align-items:center;gap:.4rem}.center-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:.5rem 0;min-width:0;width:100%}.center-area>*{min-width:0;max-width:100%}.game-piles{display:flex;gap:2.5rem;align-items:flex-end}.draw-pile,.discard-pile{display:flex;flex-direction:column;align-items:center;gap:.4rem}.pile-label{font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--cream-soft)}.pile-cards{position:relative}.draw-pile .pile-cards:before,.draw-pile .pile-cards:after{content:"";position:absolute;inset:0;border-radius:var(--radius-card);background:#2a1860;box-shadow:var(--shadow-card)}.draw-pile .pile-cards:before{transform:translate(5px,5px) rotate(2deg)}.draw-pile .pile-cards:after{transform:translate(2px,2px) rotate(-1.5deg)}.draw-pile .pile-cards>*{position:relative;z-index:2}.draw-pile.can-draw .pile-cards .card{cursor:pointer;animation:draw-pile-pulse 1.8s ease-in-out infinite}.draw-pile.can-draw .pile-cards .card:hover{transform:translateY(-6px) scale(1.04)}.draw-hint{font-family:var(--font-display);font-weight:700;font-size:.75rem;letter-spacing:.04em;color:var(--ink);background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);padding:.2rem .7rem;border-radius:var(--radius-pill);box-shadow:0 3px 10px -3px #00000080;animation:draw-hint-bob 1.4s ease-in-out infinite}@keyframes draw-pile-pulse{0%,to{box-shadow:var(--shadow-card),0 0 #f5b94200}50%{box-shadow:var(--shadow-card),0 0 0 5px #f5b94273}}@keyframes draw-hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.draw-pile.can-draw .pile-cards .card,.draw-hint{animation:none}}.empty-pile{width:116px;aspect-ratio:100 / 140;display:grid;place-items:center;border:2px dashed rgba(255,255,255,.25);border-radius:var(--radius-card);color:var(--cream-soft);font-family:var(--font-display)}.pile-count{font-size:.85rem;color:var(--cream-soft);font-weight:700}.game-status{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:#0f3d2e80;border-radius:var(--radius-lg);padding:.7rem 1.4rem;border:1px solid rgba(255,255,255,.08)}.current-turn{font-family:var(--font-display);font-size:1.3rem}.my-turn{color:var(--gold);text-shadow:0 0 18px rgba(255,207,77,.6)}.other-turn{color:var(--cream)}.turn-count,.players-alive{font-size:.85rem;color:var(--cream-soft)}.future-peek,.action-log,.target-picker,.pending-panel{background:#fffdf7f5;color:var(--ink);border-radius:var(--radius-lg);padding:.7rem 1rem;box-shadow:var(--shadow-card);min-width:0;width:min(560px,100%);box-sizing:border-box}.log-title{font-family:var(--font-display);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:.4rem}.future-cards{display:flex;gap:.5rem;flex-wrap:wrap}.future-cards span{background:var(--felt-700);color:var(--cream);padding:.25rem .6rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:700}.target-list{display:flex;gap:.5rem;flex-wrap:wrap}.target-list button{padding:.45rem .9rem;border-radius:var(--radius-pill);background:var(--cream);color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 2px var(--paper-edge)}.target-list button:hover{background:#fff;transform:translateY(-1px)}.target-list button.selected{background:var(--gold);box-shadow:inset 0 0 0 2px var(--gold-deep)}.target-picker-needed{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--radius-md, .6rem);animation:target-needed-pulse 1.2s ease-in-out infinite}.target-picker-needed .target-list button{box-shadow:inset 0 0 0 2px var(--gold-deep)}@keyframes target-needed-pulse{0%,to{outline-color:var(--gold)}50%{outline-color:var(--gold-deep)}}@media (prefers-reduced-motion: reduce){.target-picker-needed{animation:none}}.pending-panel{display:flex;flex-direction:column;gap:.65rem;max-width:min(680px,calc(100vw - 2rem))}.pending-hand,.pending-discard,.pending-place,.name-card-list{display:flex;flex-wrap:wrap;gap:.45rem}.pending-panel button,.name-card-list button{min-height:38px;padding:.45rem .75rem;border-radius:var(--radius-pill);background:var(--cream);color:var(--ink);box-shadow:inset 0 0 0 2px var(--paper-edge);font-size:.82rem;line-height:1.1;white-space:normal}.pending-panel button:hover:not(:disabled),.name-card-list button:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.pending-panel button:disabled{opacity:.55;cursor:not-allowed}.pending-hint,.pending-waiting{color:var(--ink-soft);font-size:.85rem;font-weight:700}.nope-countdown{position:relative;height:1.4rem;margin:.4rem 0;background:#00000026;border-radius:.3rem;overflow:hidden}.nope-countdown-bar{position:absolute;inset-block:0;inset-inline-start:0;background:#e23b3b;transition:width .25s linear}.nope-countdown-label{position:relative;display:block;text-align:center;line-height:1.4rem;font-size:.8rem;font-weight:600}.defuse-place-panel{gap:.75rem}.defuse-place-modes{display:flex;flex-wrap:wrap;gap:.45rem}.defuse-place-modes button.selected{background:var(--gold);box-shadow:inset 0 0 0 2px var(--gold-deep)}.defuse-place-slider{display:flex;align-items:center;gap:.6rem;padding:.25rem .1rem}.defuse-place-slider input[type=range]{flex:1 1 auto;width:100%;accent-color:var(--gold-deep, #b07a13)}.defuse-place-preview{font-size:.85rem;font-weight:700;color:var(--ink-soft);background:#0000000a;border-radius:var(--radius-md, 8px);padding:.45rem .6rem;text-align:center}.defuse-place-confirm{align-self:flex-start;padding:.55rem 1.1rem;border-radius:var(--radius-pill);font-weight:700}.log-entries{display:flex;flex-direction:column;gap:.25rem}.log-entry{display:flex;gap:.5rem;font-size:.82rem;align-items:baseline}.log-time{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.72rem}.log-description{color:var(--ink);font-weight:600}.log-entry.empty{color:var(--ink-soft);font-style:italic}.my-player-area{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:#0f3d2e73;border-radius:var(--radius-lg);padding:.75rem 1rem 1rem;border:1px solid rgba(255,255,255,.08);transform:translateY(-12px);min-width:0;width:100%;box-sizing:border-box}.my-player-area>*{min-width:0;max-width:100%}.hand-actions{display:flex;gap:.75rem;margin-top:.25rem}.hand-actions .primary{padding:.7rem 1.6rem;border-radius:var(--radius-pill);color:var(--ink);background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);box-shadow:0 5px 0 var(--gold-deep),0 9px 16px -6px #00000080;font-size:1.05rem}.hand-actions .primary:hover:not(:disabled){transform:translateY(-2px)}.hand-actions .primary:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--gold-deep)}.hand-actions .secondary{padding:.7rem 1.3rem;border-radius:var(--radius-pill);background:#ffffff24;color:var(--cream);box-shadow:inset 0 0 0 2px #ffffff40}.hand-actions .secondary:hover:not(:disabled){background:#ffffff38}.hand-actions button:disabled{opacity:.5;background:#7e8a84;box-shadow:none;color:#ffffffb3}.game-over-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#0f3d2ed9,#000000e6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:float-up .35s ease both}.game-over-content{text-align:center;background:var(--paper);color:var(--ink);border-radius:var(--radius-lg);padding:2.5rem 3rem;box-shadow:var(--shadow-pop);border:3px solid var(--gold);animation:pop-in .5s cubic-bezier(.34,1.56,.64,1) both}.game-over-content h1{font-size:2rem;color:var(--ink-soft);letter-spacing:.05em}.game-over-content h2{margin-top:.4rem;font-size:2.8rem;color:var(--gold-deep)}.game-over-actions{margin-top:1.6rem;display:flex;gap:.75rem;justify-content:center}.game-over-actions button{min-height:44px;padding:.6rem 1.6rem;font-family:var(--font-display);font-weight:700;font-size:1rem;border:none;border-radius:var(--radius-md, .6rem);cursor:pointer;background:var(--gold);color:var(--ink);box-shadow:var(--shadow-pop)}.game-over-actions button:active{transform:translateY(1px)}@media (max-width: 768px){.game-piles{gap:1.2rem}.other-players{gap:1rem;flex-wrap:wrap;justify-content:center}.game-header{flex-wrap:wrap;gap:.5rem}.action-log,.game-status .turn-count{display:none}}@media (max-width: 600px){.game-board{padding:.5rem .5rem 0;padding-bottom:0;gap:.5rem;height:100dvh;min-height:100dvh;max-height:100dvh;grid-template-rows:auto auto minmax(56px,max-content) minmax(0,1fr) auto;overflow:hidden}.game-board>.center-area{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;align-self:stretch;justify-content:flex-start}.game-header{flex-wrap:nowrap;padding:.5rem .6rem;gap:.4rem;position:sticky;top:0;z-index:40}.game-room h2{font-size:.95rem;letter-spacing:.04em}.game-room span{display:none}.turn-controls button{padding:.55rem 1rem;font-size:.95rem;min-width:auto;min-height:44px}.turn-controls .waiting-turn{font-size:.85rem}.other-players{flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:.5rem;padding:.25rem .25rem .4rem;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;width:100%;min-width:0;max-width:100%;height:auto;min-height:56px;box-sizing:border-box;align-items:center}.other-players .player-area{flex:0 0 auto;flex-direction:row;align-items:center;min-width:0;gap:0;height:100%}.other-players .player-hand:not(.current-player){display:none}.other-players::-webkit-scrollbar{display:none}.other-players .player-area{flex:0 0 auto;scroll-snap-align:start;gap:.25rem}.center-area{gap:.6rem;padding:.25rem 0}.game-piles{gap:1rem}.game-piles .empty-pile{width:92px}.game-status{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem .8rem;padding:.5rem .8rem}.current-turn{font-size:1rem}.turn-count,.players-alive{font-size:.78rem}.future-peek,.action-log,.target-picker,.pending-panel{width:100%;min-width:0;padding:.7rem .85rem;box-sizing:border-box}.target-list button,.pending-panel button,.name-card-list button{min-height:44px;padding:.55rem .9rem;font-size:.9rem}.name-card-list{gap:.4rem}.name-card-list button{flex:1 1 calc(33% - .4rem)}.defuse-place-modes button{flex:1 1 30%;min-height:48px}.defuse-place-confirm{align-self:stretch;min-height:50px;font-size:1rem}.defuse-place-preview{font-size:.9rem;padding:.6rem}.my-player-area{position:relative;z-index:30;transform:none;margin:0 -.5rem;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom,0px));gap:.4rem;background:linear-gradient(180deg,#0f3d2e99,#08281eeb 40%,#08281efa);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 -10px 24px -8px #00000073;width:auto}.hand-actions{width:100%;margin-top:0;gap:.4rem}.hand-actions .primary,.hand-actions .secondary{flex:1 1 0;min-height:44px;padding:.55rem .6rem;font-size:.9rem;white-space:normal;line-height:1.15}.my-player-area .player-info{padding:.25rem .55rem;gap:.35rem}.my-player-area .player-info .avatar-placeholder{width:28px;height:28px;font-size:.85rem}.my-player-area .player-info .name-text{font-size:.85rem}.my-player-area .player-info .player-stats{font-size:.7rem}.turn-banner{font-size:.9rem;padding:.45rem .8rem}.turn-banner-clock{padding:.05rem .5rem}.game-over-content{padding:1.6rem 1.4rem;margin:1rem}.game-over-content h1{font-size:1.4rem}.game-over-content h2{font-size:1.9rem}}@media (max-width: 380px){.game-header{padding:.4rem .5rem}.game-room h2{font-size:.85rem}.turn-controls button{padding:.45rem .7rem;font-size:.85rem}.game-piles{gap:.6rem}}.turn-banner{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.55rem 1rem;background:linear-gradient(180deg,#ffd76a,#f5b942);color:#5a3d00;font-family:var(--font-display);font-weight:700;letter-spacing:.04em;box-shadow:0 3px 14px #f5b94280;animation:turn-banner-in .25s ease}.turn-banner-warning{background:linear-gradient(180deg,#ff8a8a,#e0533f);color:#4a0d00;box-shadow:0 3px 14px #e0533f8c;animation:turn-banner-pulse 1s ease-in-out infinite}@keyframes turn-banner-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}.turn-banner-star{font-size:1.1rem}.turn-banner-clock{font-variant-numeric:tabular-nums;background:#5a3d0024;border-radius:999px;padding:.1rem .6rem}@keyframes turn-banner-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.game-board.my-turn-active{box-shadow:inset 0 0 0 3px #f5b9428c,inset 0 0 40px #f5b94240}.lobby-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.lobby{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:3.5rem 1.25rem 4rem}.lobby-container{width:100%;max-width:940px;animation:float-up .5s ease both}.lobby-header{text-align:center;margin-bottom:2.5rem;position:relative}.help-link{color:var(--cream);text-decoration:none;font-family:var(--font-display);font-weight:600;padding:.45rem .95rem;border-radius:var(--radius-pill);background:#ffffff1f;box-shadow:inset 0 0 0 2px #fff3;transition:background .15s,transform .15s}.help-link:hover{background:#ffffff38;transform:translateY(-2px)}.lobby-header h1{font-size:clamp(2.4rem,6vw,3.6rem);color:var(--cream);text-shadow:0 3px 0 rgba(0,0,0,.35),0 0 28px rgba(47,143,106,.55)}.lobby-header p{margin-top:.6rem;color:var(--cream-soft);font-size:1.05rem}.lobby-header strong{font-family:var(--font-display);letter-spacing:.18em;color:var(--gold)}.lobby-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 720px){.lobby-content{grid-template-columns:1fr}}.player-setup,.game-info,.players-section{background:#fffdf7f7;color:var(--ink);border-radius:var(--radius-lg);padding:1.6rem;box-shadow:var(--shadow-card);border:2px solid var(--paper-edge)}.player-setup h2,.game-info h2,.players-section h3,.host-controls h3{color:var(--ink);margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:700;font-size:.85rem;color:var(--ink-soft);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em}.form-group input{width:100%;padding:.7rem .9rem;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--ink);background:#fff;border:2px solid var(--paper-edge);border-radius:12px;transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--felt-glow);box-shadow:0 0 0 3px #2f8f6a33}.primary-action,.secondary-action,.start-game-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;font-family:var(--font-display);font-weight:600;font-size:1.05rem;border-radius:var(--radius-pill);width:100%;margin-top:.4rem}.primary-action,.start-game-button.enabled{color:var(--ink);background:linear-gradient(180deg,var(--gold) 0%,var(--gold-deep) 100%);box-shadow:0 5px 0 var(--gold-deep),0 10px 18px -6px #0006}.primary-action:hover:not(:disabled),.start-game-button.enabled:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.primary-action:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--gold-deep)}.secondary-action{background:var(--felt-700);color:var(--cream);box-shadow:0 4px 0 var(--felt-900)}.secondary-action:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.08)}.primary-action:disabled,.start-game-button.disabled,.start-game-button:disabled{background:linear-gradient(180deg,#c4ccc8,#a7b0ab);box-shadow:0 5px #8d958f;color:#ffffffd9;cursor:not-allowed}.join-form{animation:float-up .3s ease both}.join-actions{display:flex;gap:.75rem}.join-actions .primary-action,.join-actions .secondary-action{margin-top:0}.room-details{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.detail-item{display:flex;justify-content:space-between;padding:.6rem .9rem;background:var(--cream);border-radius:12px}.detail-item .label{color:var(--ink-soft);font-weight:700}.detail-item .value{font-family:var(--font-display);font-weight:600}.value.status.waiting{color:var(--gold-deep)}.value.status.ready{color:var(--felt-700)}.host-controls{margin-top:1.2rem}.invite-section{margin-top:1rem}.invite-text{color:var(--ink-soft);font-size:.9rem;margin-bottom:.4rem}.room-code{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .9rem;background:var(--felt-800);color:var(--gold);border-radius:12px;font-family:var(--font-display);font-size:1.5rem;letter-spacing:.22em;font-weight:700}.copy-code{background:#ffffff26;color:var(--cream);padding:.4rem .7rem;border-radius:var(--radius-pill);font-size:.8rem;letter-spacing:normal}.copy-code:hover{background:#ffffff47}.waiting-host{color:var(--ink-soft);font-style:italic;text-align:center;padding:1rem}.players-section{margin-top:1.5rem;grid-column:1 / -1}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;margin-top:.6rem}.lobby-player-card{background:var(--cream);border-radius:14px;padding:.5rem}.empty-player-slot{border:2px dashed var(--paper-edge);border-radius:14px;min-height:86px;display:grid;place-items:center;color:var(--ink-soft)}.empty-slot-content{text-align:center}.slot-icon{font-size:1.5rem;display:block}.slot-text{font-size:.8rem}.lobby-error{grid-column:1 / -1;margin-top:1rem;padding:.9rem 1.1rem;background:#e23b3bf2;color:#fff;border-radius:14px;font-weight:700;text-align:center;box-shadow:var(--shadow-card)}.lobby-content.single{display:flex;justify-content:center}.lobby-choose{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:340px;animation:float-up .3s ease both}.lobby-choose .primary-action,.lobby-choose .secondary-action{font-size:1.15rem;padding:1rem}.lobby-content.single .player-setup{width:100%;max-width:340px;animation:float-up .3s ease both}.lobby-back{align-self:flex-start;background:none;border:none;color:var(--ink-soft);font-family:var(--font-display);font-weight:600;cursor:pointer;padding:.2rem 0;margin-bottom:.6rem}.lobby-back:hover{color:var(--ink)}.help-page{min-height:100vh;padding:2.5rem 1.25rem 4rem;display:flex;justify-content:center}.help-container{width:100%;max-width:980px;animation:float-up .45s ease both}.help-header{text-align:center;margin-bottom:2.5rem;position:relative}.help-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:.8rem}.help-back{color:var(--cream);text-decoration:none;font-family:var(--font-display);font-weight:600;padding:.45rem .9rem;border-radius:var(--radius-pill);background:#ffffff1f;box-shadow:inset 0 0 0 2px #fff3;transition:background .15s,transform .15s}.help-back:hover{background:#ffffff38;transform:translate(-2px)}.help-header h1{font-size:clamp(2.2rem,6vw,3.2rem);color:var(--cream);text-shadow:0 3px 0 rgba(0,0,0,.35),0 0 28px rgba(47,143,106,.5)}.help-header p{color:var(--cream-soft);margin-top:.5rem}.help-page h2{font-size:1.7rem;color:var(--cream);margin-bottom:1.1rem;display:flex;align-items:center;gap:.6rem}.help-page h2:after{content:"";flex:1;height:2px;background:linear-gradient(90deg,rgba(255,207,77,.6),transparent);border-radius:2px}.help-rules{margin-bottom:3rem}.rule-list{list-style:none;display:grid;gap:.9rem}.rule-step{display:flex;gap:1rem;align-items:flex-start;background:#fffdf7f7;color:var(--ink);border-radius:var(--radius-lg);padding:1.1rem 1.3rem;box-shadow:var(--shadow-card);border:2px solid var(--paper-edge)}.rule-num{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-family:var(--font-display);font-weight:700;color:var(--ink);background:linear-gradient(180deg,var(--gold),var(--gold-deep));box-shadow:0 3px 0 var(--gold-deep)}.rule-step h3{color:var(--ink);font-size:1.1rem;margin-bottom:.2rem}.rule-step p{color:var(--ink-soft);font-weight:600;line-height:1.45}.catalog-group{margin-bottom:2rem;background:#0f3d2e66;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:1.3rem}.catalog-group-head{margin-bottom:1rem}.catalog-group-head h3{font-size:1.25rem;color:var(--cream);display:inline-flex;align-items:center;gap:.5rem}.catalog-group-head h3:before{content:"";width:12px;height:12px;border-radius:3px;background:var(--group-accent, var(--gold))}.catalog-group-head p{color:var(--cream-soft);font-size:.92rem;margin-top:.25rem}.catalog-group.fam-catastrophe{--group-accent: #e23b3b}.catalog-group.fam-defense{--group-accent: #14b8a6}.catalog-group.fam-deny{--group-accent: #64748b}.catalog-group.fam-aggression{--group-accent: #f97316}.catalog-group.fam-tempo{--group-accent: #6366f1}.catalog-group.fam-foresight{--group-accent: #3b82f6}.catalog-group.fam-chaos{--group-accent: #a855f7}.catalog-group.fam-favor{--group-accent: #ec4899}.catalog-group.fam-cat{--group-accent: #f59e0b}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.catalog-card{--card-accent: #f59e0b;--card-wash: #fff0d2;--card-ink: #92600a;display:flex;gap:.9rem;align-items:center;background:var(--paper);border-radius:var(--radius-card);padding:.8rem;box-shadow:var(--shadow-card);border:2px solid var(--paper-edge);transition:transform .15s ease,box-shadow .15s ease}.catalog-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-pop)}.catalog-card-face{flex:0 0 auto;position:relative;width:64px;aspect-ratio:100 / 140;border-radius:10px;overflow:hidden;background:#fff;outline:2px solid var(--paper-edge);outline-offset:-2px;display:flex;flex-direction:column}.catalog-card-band{height:16%;background:var(--card-accent);border-bottom:2px solid var(--card-ink)}.catalog-card-art{flex:1;display:flex;align-items:center;justify-content:center;padding:6%}.catalog-card-art .card-art{width:100%;height:100%}.catalog-card-count{position:absolute;bottom:3px;inset-inline-end:4px;font-family:var(--font-display);font-weight:700;font-size:.62rem;color:var(--card-ink);background:var(--card-wash);padding:1px 5px;border-radius:var(--radius-pill)}.catalog-card-text h4{font-size:1rem;color:var(--card-ink);margin-bottom:.2rem}.catalog-card-text p{font-size:.84rem;color:var(--ink-soft);font-weight:600;line-height:1.4}.help-footer{text-align:center;margin-top:2.5rem}.help-footer .btn{text-decoration:none}@media (max-width: 560px){.catalog-grid{grid-template-columns:1fr}}#root{position:relative;z-index:1}.app{width:100%;min-height:100vh;position:relative;z-index:1}.app-rejoining{width:100%;min-height:100vh;display:grid;place-items:center;color:var(--paper, #f5f1e6);font-family:var(--font-display, system-ui);font-size:1.2rem;text-align:center;padding:2rem}
