:root{--bg: #2f2418;--bg2: #3d2f20;--parchment: #f4ead3;--parchment-2: #e9dbb9;--ink: #3a2a1a;--ink-soft: #6b5640;--accent: #b5532f;--accent-dark: #85391d;--line: #c9b48a;--ok: #3f8a4a;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--radius: 14px;--font-title: "Alegreya SC", Georgia, serif;--font: "Alegreya Sans", "Segoe UI", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(ellipse at 50% 30%,#4a3925 0%,var(--bg) 70%);color:var(--ink);font-family:var(--font);font-size:16px;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#app{height:100%}button{font:inherit;color:inherit}input{font:inherit}.screen{height:100%;display:flex;flex-direction:column}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:linear-gradient(#fbf4e3,var(--parchment-2));color:var(--ink);padding:10px 16px;border-radius:10px;font-weight:500;cursor:pointer;box-shadow:0 2px #b59c6c,0 3px 8px #00000026;transition:transform .08s,box-shadow .08s,filter .15s;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.04)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #b59c6c,0 1px 3px #0003}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:linear-gradient(#c9643c,var(--accent));border-color:var(--accent-dark);color:#fff8ec;box-shadow:0 2px 0 var(--accent-dark),0 3px 10px #0003}.btn.danger{color:#9b2c1a}.btn.ghost{background:transparent;box-shadow:none;border-color:transparent}.btn.big{font-size:1.15rem;padding:14px 22px}.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fbf4e3eb;font-size:1.2rem;cursor:pointer;box-shadow:0 2px 6px #0003}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:3px 10px;font-size:.85rem;cursor:pointer}.chip.active{background:var(--ink);color:var(--parchment);border-color:var(--ink)}.menu{align-items:center;justify-content:center;position:relative;overflow:hidden}.menu-deco{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.menu-deco .tile-icon{position:absolute;border-radius:6px;box-shadow:0 8px 18px #0006;opacity:.55;animation:drift 14s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -2s)}.menu-deco .tile-icon:nth-child(1){left:6%;top:12%}.menu-deco .tile-icon:nth-child(2){left:18%;top:66%}.menu-deco .tile-icon:nth-child(3){right:9%;top:14%}.menu-deco .tile-icon:nth-child(4){right:16%;top:70%}.menu-deco .tile-icon:nth-child(5){left:40%;top:4%}.menu-deco .tile-icon:nth-child(6){left:4%;top:40%}.menu-deco .tile-icon:nth-child(7){right:4%;top:44%}@keyframes drift{0%{transform:translateY(0) rotate(-4deg)}to{transform:translateY(-18px) rotate(5deg)}}.menu-card{position:relative;background:var(--parchment);border-radius:20px;padding:36px 40px 30px;width:min(420px,calc(100vw - 32px));text-align:center;box-shadow:var(--shadow),inset 0 0 0 6px #fbf4e3,inset 0 0 0 7px var(--line)}.logo{font-family:var(--font-title);font-size:clamp(2.2rem,7vw,3rem);margin:0;color:var(--accent-dark);letter-spacing:.02em}.tagline{margin:6px 0 26px;color:var(--ink-soft)}.menu-buttons{display:flex;flex-direction:column;gap:12px}.lobby{background:var(--parchment);max-width:760px;margin:0 auto;width:100%;overflow-y:auto;padding:0 16px 24px}.screen-head{display:flex;align-items:center;gap:12px;padding:14px 0 6px}.screen-head h2{font-family:var(--font-title);margin:0;font-size:1.6rem}.hint-text{color:var(--ink-soft);margin:4px 0 16px}.seats{display:flex;flex-direction:column;gap:8px}.seat{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 12px 6px 8px;min-height:52px;border-radius:var(--radius);background:#fbf4e3;border:1px solid var(--line);border-left:6px solid var(--seat)}.seat.empty{opacity:.65;border-left-color:var(--line)}.seat-color{border:0;background:transparent;cursor:pointer;padding:2px}.seat-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.seat-main .seat-name{flex:1 1 140px;min-width:0}.seat-name{width:100%;border:0;border-bottom:1px dashed var(--line);background:transparent;font-size:1.1rem;font-weight:700;padding:2px 0;-webkit-user-select:text;user-select:text}.seat-name:focus{outline:none;border-bottom-color:var(--accent)}.seat-empty{color:var(--ink-soft);font-style:italic}.bot-levels{display:flex;gap:6px;flex-wrap:wrap}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:transparent;padding:7px 10px;cursor:pointer;font-size:.9rem}.seg button.active{background:var(--ink);color:var(--parchment)}.seg button:disabled{opacity:.35;cursor:default}.lobby-foot{display:flex;justify-content:center;margin-top:20px}.rules-body{padding-bottom:20px}.rule h3{font-family:var(--font-title);color:var(--accent-dark);margin:18px 0 6px}.rule p,.rule li{line-height:1.5}@media(max-width:560px){.seat{grid-template-columns:auto 1fr}.seat .seg{grid-column:1 / -1;justify-self:start}}.game{position:relative}.game-top{display:flex;align-items:center;gap:10px;padding:8px 10px;background:linear-gradient(#4a3824,#3a2c1c);box-shadow:0 3px 10px #00000059;z-index:2}.players{display:flex;gap:8px;flex:1;overflow-x:auto;scrollbar-width:none}.player{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 8px;background:#f4ead3e6;border-radius:12px;border:2px solid transparent;min-width:0;flex-shrink:0;transition:transform .2s,border-color .2s,box-shadow .2s}.player.active{border-color:var(--pc);box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 35%,transparent);transform:translateY(1px)}.p-info{display:flex;flex-direction:column;gap:3px}.p-name{font-weight:700;font-size:.95rem;white-space:nowrap}.p-bot{font-weight:400;font-size:.72rem;color:var(--ink-soft);margin-left:6px}.p-meeples{display:flex;gap:2px}.p-meeples i{width:6px;height:8px;border-radius:3px 3px 1px 1px;background:#d6c6a2}.p-meeples i.on{background:var(--pc)}.p-score{font-family:var(--font-title);font-size:1.4rem;min-width:2ch;text-align:right;color:var(--ink)}.p-score.bump{animation:bump .5s ease-out}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.45);color:var(--accent)}to{transform:scale(1)}}.board-wrap{position:relative;flex:1;min-height:0}.board{width:100%;height:100%;display:block;touch-action:none;cursor:grab;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.05),transparent 60%),repeating-linear-gradient(45deg,rgba(0,0,0,.04) 0 2px,transparent 2px 9px),#5b4630}.board.dragging{cursor:grabbing}.board g.smooth{transition:transform .35s ease}.board .tile use{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.board .tile.drop{animation:drop .35s cubic-bezier(.2,1.4,.4,1);transform-box:fill-box;transform-origin:center}@keyframes drop{0%{opacity:.2;scale:1.25}to{opacity:1;scale:1}}.board .tile.last:after{content:""}.hint{fill:#fff4c81f;stroke:#fff4c873;stroke-width:2;stroke-dasharray:6 5}.hint.strong{fill:#ffeca047;stroke:#ffe9a6;stroke-dasharray:none;animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{fill:#ffeca06b}}.pending-frame{fill:none;stroke:#fff3c4;stroke-width:4}.pending .pending-tile{opacity:.93}.meeple-options .spot{cursor:pointer;transition:transform .15s}.meeple-options .spot:hover circle{fill-opacity:.7}.meeple-options .spot circle{animation:spot 1.2s ease-in-out infinite}.meeple-options .spot.chosen circle{animation:none}@keyframes spot{50%{stroke-width:4.5}}.fx .float{font-family:var(--font-title);font-weight:700;font-size:34px;text-anchor:middle;paint-order:stroke;stroke:#fff8e6;stroke-width:6px;animation:float 1.9s ease-out forwards;opacity:0}@keyframes float{0%{opacity:0;transform:translateY(10px)}15%{opacity:1}70%{opacity:1}to{opacity:0;transform:translateY(-38px)}}.fx .pulse>*{opacity:0;animation:pulse 1.3s ease-out}@keyframes pulse{20%{opacity:.45}to{opacity:0}}.board-tools{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:8px}.status{position:absolute;left:50%;top:14px;transform:translate(-50%);background:#f4ead3f2;padding:8px 16px;border-radius:999px;font-weight:500;box-shadow:0 4px 14px #0000004d;opacity:0;pointer-events:none;max-width:calc(100% - 120px);text-align:center}.status.show{animation:status 2.6s ease forwards}@keyframes status{0%{opacity:0;transform:translate(-50%,-8px)}10%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}.hand{display:flex;align-items:center;gap:16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(#f6eed9,var(--parchment-2));border-top:1px solid var(--line);box-shadow:0 -4px 14px #00000040;z-index:2}.hand-left{display:flex;flex-direction:column;align-items:center;gap:4px}.hand-tile{border:0;padding:0;background:transparent;cursor:pointer;border-radius:8px;box-shadow:0 6px 14px #0000004d;line-height:0;transition:transform .2s}.hand-tile:disabled{cursor:default}.hand-tile .tile-icon{border-radius:8px}.deck-count{font-size:.8rem;color:var(--ink-soft)}.hand-right{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.turn-name{font-family:var(--font-title);font-size:1.35rem}.hand-hint{color:var(--ink-soft);font-size:.92rem;min-height:1.2em}.hand-actions{display:flex;gap:8px;flex-wrap:wrap}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e140a8c;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px;animation:fade .2s}.overlay.hidden{display:none}@keyframes fade{0%{opacity:0}}.panel{background:var(--parchment);border-radius:18px;padding:22px 24px;width:min(560px,100%);max-height:100%;overflow:auto;box-shadow:var(--shadow),inset 0 0 0 5px #fbf4e3,inset 0 0 0 6px var(--line)}.panel h2{font-family:var(--font-title);margin:0 0 14px;text-align:center;color:var(--accent-dark)}.panel-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.panel-actions.column{flex-direction:column}.muted{color:var(--ink-soft);font-size:.9rem;text-align:center}.score-table{width:100%;border-collapse:collapse;font-size:.95rem}.score-table th{font-weight:500;color:var(--ink-soft);font-size:.8rem;padding:4px 6px;text-align:right}.score-table th:nth-child(-n+2){text-align:left}.score-table.compact th:first-child{text-align:left}.score-table td{padding:8px 6px;border-top:1px solid var(--line);text-align:right}.score-table td.pname{text-align:left;font-weight:700;white-space:nowrap}.score-table td.pname .meeple-icon{vertical-align:middle}.score-table td.place{text-align:left;width:2em}.score-table td.total{font-family:var(--font-title);font-size:1.2rem}.score-table tr.winner td{background:#e2b42b2e}.results h2{font-size:1.8rem}@media(max-width:640px){.hand{gap:10px;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.hand-tile .tile-icon{width:72px;height:72px}.turn-name{font-size:1.1rem}.btn{padding:8px 12px}.p-meeples{display:none}.score-table th:nth-child(n+3):not(:last-child),.score-table td:nth-child(n+3):not(:last-child){display:none}.score-table.compact th:nth-child(n+2):not(:last-child),.score-table.compact td:nth-child(n+2):not(:last-child){display:none}}.piece-tabs{display:flex;gap:6px;flex-wrap:wrap}.piece-tab{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fbf4e3;border-radius:10px;padding:3px 10px 3px 6px;cursor:pointer;font-size:.9rem}.piece-tab small{color:var(--ink-soft)}.piece-tab.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#fff}.piece-tab.picked:after{content:"✓";color:var(--ok);font-weight:700;margin-left:2px}.piece-tab:disabled{opacity:.4;cursor:default}.bonus-tag{margin-left:10px;font-family:var(--font);font-size:.8rem;background:#f2d48f;color:var(--ink);padding:2px 8px;border-radius:999px;vertical-align:middle}.spot.taken circle{stroke-dasharray:3 3}.chosen-piece{animation:pop .25s cubic-bezier(.3,1.6,.5,1);transform-box:fill-box;transform-origin:center}@keyframes pop{0%{scale:.4;opacity:0}}.section-title{font-family:var(--font-title);margin:22px 0 8px;font-size:1.2rem}.expansions{display:flex;flex-direction:column;gap:10px}.expansion{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--radius);background:#fbf4e3;border:1px solid var(--line);cursor:pointer}.expansion.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.expansion input{width:20px;height:20px;accent-color:var(--accent)}.exp-icons{display:flex;gap:2px;align-items:center}.exp-title{font-weight:700}.exp-about{font-size:.88rem;color:var(--ink-soft);line-height:1.4}.gallery{display:flex;flex-wrap:wrap;gap:12px;padding:16px;overflow:auto;height:100%;align-content:flex-start}.gallery figure{margin:0;text-align:center;color:var(--parchment);font-size:.8rem}.game{position:relative;display:block;overflow:hidden}.game .board-wrap{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#8a4522;background-image:radial-gradient(ellipse at 45% 40%,rgba(255,190,120,.18),transparent 65%),radial-gradient(ellipse at 50% 120%,rgba(0,0,0,.45),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='800'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0025 0.07' numOctaves='5' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.24 0 0 0 0 0.09 0 0 0 0 0.03 1.25 0 0 0 -0.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='v'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.45' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.98 0 0 0 0 0.66 0 0 0 0 0.4 0.55 0 0 0 -0.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23v)'/%3E%3C/svg%3E");background-size:auto,auto,800px 800px,400px 400px}.game .board{background:transparent}.tile-gap{fill:#230c038c}.board .tile use{filter:none}.last-frame{fill:none;stroke-width:4.5}.hint-slot .slot{fill:#2d0e0366}.hint-slot .slot-shade{fill:none;stroke:#14060080;stroke-width:3.5}.hint-slot .slot-light{fill:none;stroke:#ffd2a024;stroke-width:2}.hint-slot.fit .slot{fill:#3c160680}.hint-slot.fit .slot-light{stroke:#ffe9a68c;stroke-width:2.5}.hint-x{stroke:#1e090180;stroke-width:3;stroke-linecap:round}.hint-slot.last .slot{fill:#3c160680}.hint-slot.last .slot-light{stroke:#ffe9a68c;stroke-width:2.5}.hint-slot.last .hint-x{stroke:#ffe9a64d;stroke-width:2.5;stroke-dasharray:6 5}.pending-frame{fill:none;stroke:#ffe9a6;stroke-width:4}.pending .pending-tile{opacity:1}.flag{position:absolute;top:0;right:22px;width:210px;z-index:5;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45));--pc: #3f9a4a;--pcd: #1d5a25}.flag-rod{position:absolute;top:2px;left:-14px;right:-14px;height:12px;border-radius:6px;background:linear-gradient(#e2bf7a,#9a7236 60%,#6e4f22);z-index:2}.flag-rod:before,.flag-rod:after{content:"";position:absolute;top:-3px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f7dc9c,#a07a3a 70%)}.flag-rod:before{left:-6px}.flag-rod:after{right:-6px}.flag-cloth{position:relative;margin-top:8px;padding:16px 16px 46px;display:flex;flex-direction:column;align-items:center;gap:10px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px),linear-gradient(90deg,#0000002e,#ffffff1a 35%,#0000001f),var(--pc);clip-path:polygon(0 0,100% 0,100% calc(100% - 34px),50% 100%,0 calc(100% - 34px));transition:background-color .4s}.flag-cloth:before{content:"";position:absolute;top:6px;right:6px;bottom:0;left:6px;border:2px solid rgba(255,244,214,.55);border-bottom:0;pointer-events:none}.flag-remaining{font-family:var(--font-title);color:#fff8ec;font-size:1.25rem;text-shadow:0 1px 0 var(--pcd);white-space:nowrap}.flag-remaining b{font-size:1.6rem}.flag-tile{border:0;padding:0;line-height:0;cursor:pointer;background:#fff8ec;box-shadow:0 0 0 3px #fff8ec,0 0 0 5px var(--pcd),0 6px 12px #00000059;transition:transform .2s}.flag-tile:not(:disabled):hover{transform:rotate(4deg)}.flag-tile:disabled{cursor:default}.flag-empty{display:block;width:150px;height:150px;background:#00000026}.flag-bonus{background:#f2d48f;color:var(--ink);font-weight:700;font-size:.85rem;border-radius:999px;padding:3px 12px;animation:breathe-tag 1.2s ease-in-out infinite}@keyframes breathe-tag{50%{transform:scale(1.06)}}.flag-pieces{display:flex;gap:6px}.flag-pieces .piece-tab{padding:4px;border-radius:10px;background:#fff8ecd9;border:2px solid transparent}.flag-pieces .piece-tab.active{border-color:#fff8ec;background:#fff;box-shadow:0 0 0 2px var(--pcd)}.flag-pieces .piece-tab.picked:after{content:none}.flag-pieces .piece-tab.picked{background:#f2d48f}.flag-icons{display:flex;gap:14px;margin-top:2px}.flag-icon{width:40px;height:40px;border-radius:50%;border:0;background:#0000002e;color:#f2d48f;font-size:1.3rem;display:grid;place-items:center;cursor:pointer}.flag-icon:hover{background:#0000004d}.shelf{position:absolute;left:0;right:0;bottom:0;height:190px;z-index:4;pointer-events:none}.shelf-bar{position:absolute;left:0;right:0;bottom:0;height:76px;background:linear-gradient(#d29a5c,#a5642e 9px,#6f3c17 18px,transparent 18px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='80'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.004 0.12' numOctaves='4' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.07 0 0 0 0 0.02 1.3 0 0 0 -0.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),linear-gradient(#8a4a22,#6e3716);background-size:auto,600px 80px,auto;box-shadow:0 -6px 12px #00000073,inset 0 1px #ffe6be99}.cards{position:absolute;left:0;bottom:0;display:flex;align-items:flex-end;gap:4px;pointer-events:auto}.card{position:relative;width:232px;height:124px;padding:5px 10px 8px;color:#fff8ec;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 30%,rgba(0,0,0,.22)),var(--pc);border:2px solid var(--pcd);border-bottom:0;border-radius:6px 6px 0 0;box-shadow:inset 0 0 0 2px #fff4d659,0 -2px 10px #00000059;transition:transform .35s cubic-bezier(.3,1.4,.5,1)}.card.active{transform:translateY(-12px)}.card-roof{position:absolute;left:-2px;right:-2px;top:-24px;height:26px;background:linear-gradient(var(--pcl),var(--pc));clip-path:polygon(0 100%,50% 0,100% 100%);opacity:0;transition:opacity .3s}.card.active .card-roof{opacity:1}.card.active:after{content:"";position:absolute;left:50%;top:-14px;width:0;height:0;transform:translate(-50%);border:8px solid transparent;border-bottom-color:#f2d48f}.card-name{font-family:var(--font-title);font-size:1.25rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.5);line-height:1.25}.card-body{display:flex;align-items:center;gap:8px;margin-top:2px}.card-body .avatar{border-radius:3px;flex-shrink:0;box-shadow:0 1px 3px #0006}.card-stats{display:flex;flex-direction:column;gap:2px}.stat{display:flex;align-items:center;gap:6px}.stat b{font-family:var(--font-title);font-size:1.7rem;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.5)}.stat .meeple-icon{filter:drop-shadow(0 0 1px #fff8ec) drop-shadow(0 0 1px #fff8ec)}.score-dot{display:inline-block;width:21px;height:21px;margin:0 2px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--pcl),var(--pc) 70%);box-shadow:0 0 0 2px #fff8ec}.stat b.bump{animation:bump .5s ease-out;display:inline-block}.card.with-extra{height:168px}.card-extra{display:flex;justify-content:space-between;gap:2px;align-items:center;margin-top:7px;padding:4px 7px;border-radius:6px;background:#fff8eceb;color:var(--ink);font-size:.85rem;font-weight:700}.card-extra .sp{line-height:0;opacity:.3}.card-extra .sp.on{opacity:1}.card-extra .gd{display:inline-flex;flex-direction:column;align-items:center;gap:1px}.gd-dots{display:grid;grid-template-columns:repeat(5,4px);gap:1.5px;min-height:4px}.gd-dots i{width:4px;height:4px;border-radius:50%;background:#3a2a1a}.gd.empty .good-icon{opacity:.35;filter:grayscale(1)}.card-extra .meeple-icon{filter:none}.actions{position:absolute;right:18px;bottom:12px;display:flex;align-items:center;gap:10px;pointer-events:auto}.round-btn{width:84px;height:84px;border-radius:50%;border:0;cursor:pointer;color:#4a2a10;font-size:2.2rem;font-weight:700;background:radial-gradient(circle at 50% 50%,transparent 58%,rgba(0,0,0,.25) 60%,transparent 63%),radial-gradient(circle at 35% 30%,#e7b47a,#b06d34 60%,#7a4219);box-shadow:0 6px 14px #00000080,inset 0 2px #ffe6be99;transition:transform .1s,filter .2s}.round-btn span{text-shadow:0 1px 0 rgba(255,230,190,.7)}.round-btn:not(:disabled):hover{filter:brightness(1.08)}.round-btn:not(:disabled):active{transform:scale(.95)}.round-btn:disabled{cursor:default;filter:brightness(.82)}.round-btn:disabled span{opacity:.35}.small-btn{border:0;border-radius:999px;padding:8px 14px;background:#280f04bf;color:#f4ead3;font-weight:500;cursor:pointer;box-shadow:0 3px 8px #00000059}.step-hint{position:absolute;left:50%;bottom:200px;transform:translate(-50%);background:#1e0c03b8;color:#f4ead3;padding:6px 14px;border-radius:999px;font-size:.92rem;opacity:0;transition:opacity .25s;pointer-events:none;z-index:4;white-space:nowrap}.step-hint.show{opacity:1}.game .status{top:16px;left:calc(50% - 115px)}.remaining-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:10px}.remaining .rem{display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700}.panel.remaining{width:min(760px,100%)}.menu-toggles{display:flex;justify-content:center;gap:4px}.flag-check,.flag-cross{border:0;background:transparent;cursor:pointer;line-height:0;padding:4px;border-radius:12px;transition:transform .12s,background .2s}.flag-check:hover,.flag-cross:hover{background:#ffffff1f;transform:scale(1.05)}.flag-check:active,.flag-cross:active{transform:scale(.95)}.flag-check.big{padding:22px 26px;animation:check-in .3s cubic-bezier(.3,1.6,.5,1)}@keyframes check-in{0%{transform:scale(.5);opacity:0}}.flag-confirm{display:flex;flex-direction:column;align-items:center;gap:4px}.flag-link{border:0;background:transparent;color:#fff3d6;text-decoration:underline;cursor:pointer;font-size:.85rem;margin-top:-6px}.flag-pieces{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:2px}.piece-stack{display:flex;flex-direction:column;align-items:center;gap:0;border:2px solid transparent;background:#0000001f;border-radius:10px;padding:4px 8px;cursor:pointer;min-width:44px}.piece-stack .meeple-icon{margin-top:-6px;filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}.piece-stack .meeple-icon:first-child{margin-top:0}.piece-stack.active{border-color:#fff3d6;background:#ffffff29}.piece-stack:disabled{opacity:.35;cursor:default}.piece-empty{color:#fff3d6;opacity:.6}.piece-stack .used{opacity:.3}.flag .flag-pieces .piece-tab{display:none}.shelf-icons{position:absolute;right:18px;bottom:14px;display:flex;gap:14px;pointer-events:auto}.shelf-icon{width:52px;height:52px;border:0;border-radius:10px;cursor:pointer;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,rgba(255,220,170,.25),transparent 70%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.5));transition:transform .12s}.shelf-icon:hover{transform:translateY(-2px)}.remaining-strip{position:absolute;left:0;right:0;bottom:214px;z-index:4;display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:repeating-linear-gradient(45deg,rgba(0,0,0,.03) 0 2px,transparent 2px 5px),linear-gradient(#efe2c4,#e2d1ab);border-top:3px solid #a5642e;border-bottom:3px solid #a5642e;box-shadow:0 -6px 14px #00000059;animation:strip-in .25s ease-out}.remaining-strip.hidden{display:none}@keyframes strip-in{0%{transform:translateY(20px);opacity:0}}.strip-tiles{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);gap:8px;flex:1;overflow-x:auto;padding-bottom:4px}.strip-tile{position:relative;line-height:0;box-shadow:0 2px 4px #0000004d}.strip-tile b{position:absolute;right:3px;bottom:3px;line-height:1;font-family:var(--font-title);font-size:1.4rem;color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000}.strip-close{border:0;background:#0000001a;border-radius:50%;width:30px;height:30px;font-size:1.2rem;cursor:pointer}.drag-ghost{position:fixed;left:-20px;top:-30px;z-index:50;pointer-events:none;filter:drop-shadow(0 8px 6px rgba(0,0,0,.45))}.piece-stack{touch-action:none}.piece-stack:not(:disabled){cursor:grab}.meeple-options .spot.hover circle{fill-opacity:.85;stroke-width:4}.spot{cursor:pointer}.spot .ghost{opacity:.6;transition:opacity .15s,transform .15s;transform-box:fill-box;transform-origin:center bottom}.spot .ghost use,.spot .ghost g use{--mf: #ffffff !important;--md: rgba(255, 255, 255, .85) !important;--ml: #ffffff !important}.spot .ghost{filter:drop-shadow(0 0 2px rgba(0,0,0,.35))}.spot:hover .ghost,.spot.hover .ghost{opacity:.95;transform:scale(1.12)}.meeple-options .spot circle{animation:none}.flag-sub{position:relative;width:80%;margin:-40px auto 0;z-index:-1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.4))}.flag-sub-cloth{padding:52px 12px 40px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px),linear-gradient(90deg,#00000038,#ffffff14 35%,#00000029),var(--pc);clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),50% 100%,0 calc(100% - 28px));box-shadow:inset 0 0 0 2px #fff4d659}.pc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 10px;justify-items:center}.pc{position:relative;line-height:0;cursor:grab;touch-action:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45));transition:transform .12s}.pc:hover:not(.off){transform:translateY(-2px) scale(1.06)}.pc.off{opacity:.32;filter:grayscale(.4);cursor:default}.pc-count{position:absolute;right:-8px;bottom:-2px;line-height:1;font-family:var(--font-title);font-size:1rem;color:#fff8ec;text-shadow:0 1px 2px rgba(0,0,0,.7)}.flag-cloth,.flag-sub-cloth{isolation:isolate;background:var(--pcd)}.flag-cloth:before,.flag-sub-cloth:before,.flag-cloth:after,.flag-sub-cloth:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;border:0}.flag-cloth:before{background:linear-gradient(180deg,#f6dc98,#c9973e 60%,#f2d48f);clip-path:polygon(4px 4px,calc(100% - 4px) 4px,calc(100% - 4px) calc(100% - 36px),50% calc(100% - 5px),4px calc(100% - 36px))}.flag-cloth:after{background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px),linear-gradient(90deg,#0000002e,#ffffff1a 35%,#0000001f),var(--pc);clip-path:polygon(7px 7px,calc(100% - 7px) 7px,calc(100% - 7px) calc(100% - 37.5px),50% calc(100% - 9px),7px calc(100% - 37.5px))}.flag-sub-cloth{box-shadow:none}.flag-sub-cloth:before{background:linear-gradient(180deg,#f6dc98,#c9973e 60%,#f2d48f);clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) calc(100% - 30px),50% calc(100% - 5px),4px calc(100% - 30px))}.flag-sub-cloth:after{background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px),linear-gradient(90deg,#00000038,#ffffff14 35%,#00000029),var(--pc);clip-path:polygon(7px 0,calc(100% - 7px) 0,calc(100% - 7px) calc(100% - 31.5px),50% calc(100% - 9px),7px calc(100% - 31.5px))}.card{border:0;box-shadow:inset 0 0 0 3px var(--pcd),inset 0 0 0 5px #f2d48fe6,inset 0 0 0 6px #0000002e,0 -2px 10px #00000059;padding:7px 12px 8px}.card-roof{left:0;right:0;top:-25px;height:27px;isolation:isolate;background:var(--pcd);clip-path:polygon(0 100%,50% 0,100% 100%)}.card-roof:before,.card-roof:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.card-roof:before{background:linear-gradient(180deg,#f6dc98,#c9973e);clip-path:polygon(3px 100%,50% 3px,calc(100% - 3px) 100%)}.card-roof:after{background:linear-gradient(var(--pcl),var(--pc));clip-path:polygon(7px 100%,50% 7px,calc(100% - 7px) 100%)}.shelf .shelf-bar{transition:height .4s cubic-bezier(.3,1.1,.4,1)}.shelf.expanded .shelf-bar{height:var(--open-h, 380px)}.shelf .cards{transition:transform .35s ease-in}.shelf.expanded .cards{transform:translateY(calc(100% + 70px));pointer-events:none}.shelf-tiles{position:absolute;left:16px;bottom:22px;display:grid;gap:8px;opacity:0;transform:translateY(30px);pointer-events:none;transition:opacity .25s,transform .4s cubic-bezier(.3,1.1,.4,1)}.shelf.expanded .shelf-tiles{opacity:1;transform:none;pointer-events:auto;transition-delay:.12s}.coll-tile{position:relative;line-height:0;box-shadow:0 3px 6px #00000073}.coll-tile.used{opacity:.3;filter:saturate(.5);box-shadow:none}.coll-tile b{position:absolute;right:4px;bottom:4px;line-height:1;font-family:var(--font-title);color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000}.shelf.expanded~.step-hint,.shelf.expanded+.step-hint{opacity:0}.flag-next{padding:6px 18px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.45))}.flag-next .meeple-icon{filter:drop-shadow(0 0 1.5px #fff8ec) drop-shadow(0 0 1.5px #fff8ec)}.tile-drop{animation:tile-drop .32s cubic-bezier(.25,1.35,.5,1);transform-box:fill-box;transform-origin:center}@keyframes tile-drop{0%{transform:translateY(-14px) scale(1.12);opacity:.4}to{transform:none;opacity:1}}.piece-land{animation:piece-land .38s cubic-bezier(.3,1.4,.5,1);transform-box:fill-box;transform-origin:center bottom}@keyframes piece-land{0%{transform:translateY(-22px) scale(1.08);opacity:0}55%{transform:translateY(1px) scale(1.04,.92);opacity:1}to{transform:none}}.chosen-piece{animation:none}.screen.setup{align-items:center;justify-content:center;overflow:hidden;padding:16px}.setup-card{width:min(760px,100%);max-height:100%;min-height:0;display:flex;flex-direction:column;margin:auto;background:var(--parchment);border-radius:20px;padding:6px 26px 20px;box-shadow:var(--shadow),inset 0 0 0 6px #fbf4e3,inset 0 0 0 7px var(--line)}.setup-card>*{flex:none}.setup-card>.seats,.setup-card>.expansions{flex:0 1 auto;min-height:0;overflow-y:auto;padding:2px;margin:0 -2px}.setup-card .hint-text{margin:4px 0 12px}.setup-card .lobby-foot{margin-top:14px}.exp-chosen{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 2px}.exp-badge{display:inline-flex;align-items:center;gap:2px;padding:4px 8px;border-radius:10px;background:#fbf4e3;border:1px solid var(--line)}.muted-label{color:var(--ink-soft);font-size:.92rem}.flying-good{position:fixed;left:0;top:0;z-index:60;pointer-events:none;transition:transform .6s cubic-bezier(.4,0,.3,1);filter:drop-shadow(0 6px 6px rgba(0,0,0,.45))}.card-extra .gd.got .good-icon{animation:bump .5s ease-out}.flag{transition:transform .5s ease-in,opacity .4s}.flag.final-hidden{transform:translateY(-110%);opacity:0;pointer-events:none}.flag.drop-target .flag-cloth:after{filter:brightness(1.15)}.results-btn{font-size:1.6rem}.results-btn.hidden{display:none}.panel.results.themed{padding:0 0 20px;overflow:hidden;box-shadow:var(--shadow),inset 0 0 0 4px var(--pcd),inset 0 0 0 6px #f2d48fe6}.results-head{display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 20px;margin-bottom:12px;background:linear-gradient(90deg,#0000002e,#ffffff1f 40%,#00000024),var(--pc);border-bottom:3px solid #e2b43a}.results-head .avatar{border-radius:6px;box-shadow:0 0 0 3px #f2d48f,0 4px 10px #0006}.results.themed h2{margin:0;color:#fff8ec;text-shadow:0 2px 0 var(--pcd);font-size:2rem}.results.themed .score-table{width:calc(100% - 40px);margin:0 20px}.results.themed .score-table tr.winner td{background:color-mix(in srgb,var(--pc) 16%,transparent)}.results.themed .panel-actions{padding:0 20px}.pname-in{display:inline-flex;align-items:center;gap:6px}.pname-in .avatar{border-radius:4px}.opp-cursor{transition:transform .5s cubic-bezier(.35,0,.25,1),opacity .3s;pointer-events:none}.opp-cursor .opp-cursor-body{transition:transform .12s;transform-box:fill-box;transform-origin:top left}.opp-cursor.press .opp-cursor-body{transform:scale(.85)}.click-ring{fill:none;stroke-width:3;animation:click-ring .55s ease-out forwards}@keyframes click-ring{0%{r:6;opacity:.9}to{r:34;opacity:0}}.drag-tile{position:fixed;left:calc(-1 * var(--half));top:calc(-1 * var(--half));z-index:50;pointer-events:none;line-height:0;opacity:.92;filter:drop-shadow(0 10px 10px rgba(0,0,0,.45))}.drop-mark{fill:#ffe9a61f;stroke:#ffe9a680;stroke-width:2.5;stroke-dasharray:6 4;pointer-events:none}.drop-mark.ok{fill:#ffe9a64d;stroke:#ffe9a6;stroke-dasharray:none}.flag-icons{display:flex;gap:12px;justify-content:center}.flag-icon:disabled{opacity:.35;cursor:default}.flag-tile{touch-action:none}.spotlight{pointer-events:none}.spotlight .spot-shade{opacity:.55;animation:spot-in .35s ease-out}.spotlight.out .spot-shade{opacity:0;transition:opacity .3s}@keyframes spot-in{0%{opacity:0}}.score-table td.place{font-family:var(--font-title);font-weight:700}.spot.spot-phantom .ghost use{--md: #8f8576 !important;--ml: #8f8576 !important}.pause-goods{display:flex;flex-direction:column;gap:6px;margin:12px 0 4px}.pg-row{display:flex;align-items:center;gap:8px}.pg-name{font-weight:700;min-width:110px}.pg-good{display:inline-flex;align-items:center;gap:3px;margin-right:8px}.pg-good b{font-family:var(--font-title);font-size:1.1rem}.garland.fresh{animation:garland-in .6s cubic-bezier(.3,1.5,.5,1);transform-box:fill-box}@keyframes garland-in{0%{opacity:0}}.scaffold,.garland{pointer-events:none}.status.colored{background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 45%,rgba(0,0,0,.18)),var(--sc);color:#fff8ec;font-weight:700;font-size:1.05rem;padding:9px 22px;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 1px var(--scd);box-shadow:0 0 0 2px var(--scd),0 0 0 4px #e2b43a,0 6px 16px #0006}.status.colored.light{color:#2a1c0e;text-shadow:0 1px 0 rgba(255,255,255,.5)}.status.show{animation-duration:3.2s}.fire{pointer-events:none}.fire .fire-glow{opacity:.1;animation:fire-glow 1.6s ease-in-out infinite alternate}@keyframes fire-glow{to{opacity:.2}}.fire .flame{animation:flicker .9s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center bottom}@keyframes flicker{0%{transform:scale(1)}50%{transform:scale(.92,1.08)}to{transform:scale(1.06,.9)}}.fire .puff{transform-box:fill-box;transform-origin:center;opacity:0;animation:puff 3.2s linear infinite}@keyframes puff{0%{transform:translateY(4px) scale(.4);opacity:0}15%{opacity:.6}60%{opacity:.4}to{transform:translate(8px,-34px) scale(2.2);opacity:0}}.fire .spark{opacity:0;animation:spark 1.5s ease-out infinite}@keyframes spark{0%{transform:translate(0);opacity:0}10%{opacity:1}to{transform:translate(3px,-26px);opacity:0}}.roadworks,.ruined{pointer-events:none}.sound-board{max-width:760px;margin:40px auto;padding:24px;background:var(--parchment);border-radius:18px}.sound-board h2{font-family:var(--font-title);margin:0 0 6px}.sound-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:16px}.goods-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;padding-bottom:150px;background:#140a039e;animation:fade .4s}.goods-stage.out{opacity:0;transition:opacity .4s}.gs-panel{background:var(--parchment);border-radius:18px;padding:18px 24px 22px;min-width:min(720px,92vw);box-shadow:0 20px 50px #0000008c,inset 0 0 0 5px #fbf4e3,inset 0 0 0 6px var(--line);animation:gs-in .45s cubic-bezier(.3,1.3,.5,1)}@keyframes gs-in{0%{transform:translateY(24px) scale(.96);opacity:0}}.gs-panel h2{font-family:var(--font-title);margin:0;text-align:center;color:var(--accent-dark);font-size:1.9rem}.gs-hint{text-align:center;color:var(--ink-soft);margin:2px 0 14px;font-size:.92rem}.gs-row{display:grid;grid-template-columns:120px repeat(var(--cols),1fr);gap:10px;align-items:center;padding:8px 6px;border-radius:12px;transition:background .3s}.gs-row.gs-active{background:#e2b42b2e}.gs-row.gs-empty .gs-cell{opacity:.45}.gs-head{padding-bottom:2px}.gs-player{display:flex;align-items:center;gap:6px;font-weight:700;justify-content:center}.gs-player .avatar{border-radius:4px}.gs-good{display:flex;align-items:center;gap:8px;font-weight:700}.gs-cell{position:relative;min-height:48px;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:#fbf4e3;border:2px solid transparent;transition:border-color .3s,box-shadow .3s,transform .3s}.gs-stack{display:flex;flex:1;min-height:32px}.gs-token{line-height:0;margin-right:-14px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));animation:pop .25s cubic-bezier(.3,1.6,.5,1)}.gs-count{font-family:var(--font-title);font-size:1.5rem;color:var(--ink);min-width:1.2ch;text-align:right}.gs-cell.gs-win{border-color:var(--pc);box-shadow:0 0 0 3px color-mix(in srgb,var(--pc) 35%,transparent),0 6px 14px #00000040;transform:translateY(-2px);background:color-mix(in srgb,var(--pcl) 30%,#fbf4e3)}.gs-cell.gs-win:after{content:"👑";position:absolute;top:-14px;right:-6px;font-size:1.3rem;animation:pop .3s cubic-bezier(.3,1.6,.5,1)}.gs-plus{position:fixed;left:0;top:0;z-index:61;width:60px;text-align:center;font-family:var(--font-title);font-weight:700;font-size:2rem;paint-order:stroke;-webkit-text-stroke:5px #fff8ec;pointer-events:none;transition:transform .7s cubic-bezier(.4,0,.3,1),opacity .7s}.demo-bar{position:fixed;top:10px;left:10px;z-index:80;display:flex;align-items:center;gap:10px;background:#f4ead3f2;padding:8px 12px;border-radius:12px;box-shadow:0 4px 14px #00000059}.demo-bar a.btn{text-decoration:none}.discard-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;padding-bottom:150px;padding-right:230px;background:#140a0359;pointer-events:none;animation:fade .3s}.discard-stage.out{background:transparent;transition:background .5s}.discard-card{position:relative;line-height:0;box-shadow:0 0 0 4px #fff8ec,0 16px 30px #0000008c;animation:discard-in .45s cubic-bezier(.3,1.4,.5,1);transition:transform .65s cubic-bezier(.5,0,.75,0),opacity .65s}@keyframes discard-in{0%{transform:translateY(-40px) scale(1.15);opacity:0}}.discard-card.shake{animation:discard-shake .5s ease-in-out}@keyframes discard-shake{0%,to{transform:rotate(0)}20%{transform:rotate(-7deg) translate(-6px)}40%{transform:rotate(6deg) translate(6px)}60%{transform:rotate(-4deg) translate(-3px)}80%{transform:rotate(3deg) translate(2px)}}.discard-stamp{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;opacity:0;transform:scale(1.8)}.discard-card.stamped .discard-stamp{opacity:1;transform:scale(1);transition:transform .2s cubic-bezier(.3,1.6,.5,1),opacity .15s}.discard-card.stamped .tile-icon{filter:grayscale(.6) brightness(.85);transition:filter .3s}.discard-card.away{transform:translate(var(--dx, 300px),var(--dy, 300px)) scale(.15) rotate(25deg);opacity:0}.flag.discarding .flag-tile{visibility:hidden}.screen.rules-screen{align-items:center;justify-content:center;padding:16px;overflow:hidden}.letter{position:relative;width:min(820px,100%);height:min(86vh,100%);margin-top:26px;display:flex;flex-direction:column;padding:34px 40px 22px;border-radius:4px;color:var(--ink);background:linear-gradient(transparent calc(33.3% - 1px),rgba(120,90,40,.13) 33.3%,rgba(255,255,255,.35) calc(33.3% + 1px),transparent calc(33.3% + 3px)),linear-gradient(transparent calc(66.6% - 1px),rgba(120,90,40,.13) 66.6%,rgba(255,255,255,.35) calc(66.6% + 1px),transparent calc(66.6% + 3px)),radial-gradient(ellipse at 50% 40%,#fbf3df,#f3e6c6 55%,#e2cb98);box-shadow:0 18px 40px #00000080,inset 0 0 0 10px #fbf3df8c,inset 0 0 0 11px #b99b63,inset 0 0 0 14px #fbf3df66,inset 0 0 0 15px #b99b6399,inset 0 0 60px #8c642847;animation:letter-in .35s ease-out}@keyframes letter-in{0%{opacity:0;transform:translateY(14px) scale(.98)}}.wax-seal{position:absolute;top:-44px;left:50%;transform:translate(-50%) rotate(-6deg);filter:drop-shadow(0 4px 4px rgba(0,0,0,.4));pointer-events:none}.letter-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;flex:none;padding-top:12px}.letter-head .back{justify-self:start}.letter-head h2{font-family:var(--font-title);font-size:1.9rem;margin:0;color:var(--accent-dark);letter-spacing:.02em}.letter-ornament{flex:none;display:flex;align-items:center;gap:12px;color:#a07c42;font-size:1.2rem;margin:4px 0 6px}.letter-ornament:before,.letter-ornament:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#b99b63 30%,#b99b63 70%,transparent)}.letter-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px 14px 18px 4px;scrollbar-width:thin;scrollbar-color:#b99b63 transparent;-webkit-mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 22px),transparent)}.letter .rule h3{margin-top:14px}.letter .rule p,.letter .rule li{line-height:1.55}.overlay .letter{height:min(86vh,calc(100% - 30px))}.card.offline .card-body{filter:grayscale(.85);opacity:.7}.card-offline{position:absolute;left:8px;right:8px;top:30px;display:flex;flex-direction:column;align-items:center;gap:3px;z-index:2}.offline-time{padding:1px 8px;border-radius:8px;background:#1e140ac7;color:#f6e9cc;font-size:.75rem;white-space:nowrap;font-variant-numeric:tabular-nums}.offline-bot{border:1px solid #f6e9cc;border-radius:8px;padding:2px 10px;background:#3a2a1a;color:#f6e9cc;font-size:.78rem;cursor:pointer}.offline-bot:hover{background:#5a3d1e}.notice-card{width:min(520px,100%);text-align:center}.notice-card .screen-head{text-align:left}.name-input{width:100%;font-size:1.2rem;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbf4e3;-webkit-user-select:text;user-select:text}.name-input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn.small{padding:5px 10px;font-size:.9rem}.invite{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.invite-link{flex:1;min-width:0;font:inherit;padding:6px 10px;border:1px dashed var(--line);border-radius:8px;background:#fbf4e3;color:var(--ink);-webkit-user-select:text;user-select:text}.exp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}.exp-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px 10px 4px 6px;border-radius:10px;border:1px solid var(--line);background:#fbf4e3;cursor:pointer;font-size:.92rem}.exp-toggle.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.exp-toggle input{accent-color:var(--accent);margin:0 2px 0 0}.exp-toggle input:disabled{display:none}.exp-toggle:has(input:disabled):not(.on){display:none}.seat.bot,.seat.human{border-left-color:var(--seat)}.seat-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}.seat-label{font-weight:700;font-size:1.05rem}.presence{width:9px;height:9px;border-radius:50%;background:#b9ab92;flex:none}.presence.on{background:var(--ok);box-shadow:0 0 0 3px #3f8a4a33}.room-members{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}.member-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border-radius:12px;background:#fbf4e3;border:1px solid var(--line);font-size:.9rem}.chip-x{border:0;background:transparent;cursor:pointer;font-size:1rem;padding:0 4px;color:var(--ink-soft)}.room-foot{flex-direction:column;align-items:center;gap:8px}.room-foot .hint-text{margin:0}.spectators-toggle{color:var(--ink-soft);cursor:pointer}.spectators-toggle input{accent-color:var(--accent)}.lobby-flash{margin-top:10px;padding:6px 10px;border-radius:8px;background:#f3d9c9;color:var(--accent-dark);text-align:center;animation:fade .2s}.conn-banner{position:fixed;left:50%;top:12px;transform:translate(-50%);z-index:100;padding:8px 16px;border-radius:12px;background:#3a2a1a;color:#f6e9cc;box-shadow:var(--shadow);font-size:.95rem}.conn-banner.hidden{display:none}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;background:#1e140a8c;animation:fade .15s}.dialog{width:min(420px,100%);padding:22px 24px 18px;border-radius:16px;background:var(--parchment);color:var(--ink);box-shadow:var(--shadow),inset 0 0 0 5px #fbf4e3,inset 0 0 0 6px var(--line);text-align:center;animation:letter-in .2s ease-out}.dialog h3{font-family:var(--font-title);font-size:1.4rem;margin:0 0 8px;color:var(--accent-dark)}.dialog p{margin:0 0 16px;color:var(--ink-soft);line-height:1.45}.dialog-actions{display:flex;justify-content:center;gap:10px}.color-pop{position:fixed;z-index:250;display:flex;gap:2px;padding:6px;border-radius:12px;background:var(--parchment);box-shadow:var(--shadow),inset 0 0 0 1px var(--line);animation:fade .12s}.color-pop button{border:0;background:transparent;padding:3px;border-radius:8px;cursor:pointer}.color-pop button:hover{background:#fbf4e3}.color-pop button.active{box-shadow:inset 0 0 0 2px var(--accent)}.master-label{color:var(--accent-dark);font-weight:700}.screen.setup.with-chat{padding-left:344px}.chat-panel{position:fixed;z-index:60;font-size:.95rem}.chat-panel .hidden{display:none!important}.chat-box{display:flex;flex-direction:column;height:100%;border-radius:16px;background:var(--parchment);color:var(--ink);box-shadow:var(--shadow),inset 0 0 0 5px #fbf4e3,inset 0 0 0 6px var(--line);padding:10px 12px 12px;overflow:hidden}.chat-panel.in-lobby{left:16px;top:50%;transform:translateY(-50%);width:312px;height:min(620px,calc(100vh - 32px))}.chat-panel.in-lobby .chat-toggle,.chat-panel.in-lobby .chat-close{display:none}.chat-panel.in-game{left:12px;top:12px;width:312px;height:min(520px,calc(100vh - 200px));pointer-events:none}.chat-panel.in-game>*{pointer-events:auto}.chat-panel.in-game:not(.open) .chat-box{display:none}.chat-panel.in-game.open .chat-toggle{display:none}.chat-toggle{position:relative;width:48px;height:48px;border-radius:50%;border:2px solid #f6e9cc;background:#3a2a1a;font-size:1.3rem;cursor:pointer;box-shadow:var(--shadow)}.chat-badge{position:absolute;right:-4px;top:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:#fff;font-size:.75rem;line-height:20px;font-weight:700}.chat-peek{margin-top:8px;max-width:312px;padding:6px 10px;border-radius:12px;background:var(--parchment);box-shadow:var(--shadow);animation:fade .2s}.chat-panel.in-game.open .chat-peek{display:none}.chat-head{display:flex;align-items:center;gap:8px;padding:2px 4px 6px;border-bottom:1px solid var(--line)}.chat-head b{font-family:var(--font-title);font-size:1.15rem}.chat-channel{color:var(--ink-soft);font-size:.85rem;flex:1}.chat-close{margin-left:auto;border:0;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink-soft)}.chat-list{flex:1;overflow-y:auto;padding:8px 4px;display:flex;flex-direction:column;gap:5px;-webkit-user-select:text;user-select:text;scrollbar-width:thin}.chat-msg{line-height:1.35;overflow-wrap:anywhere}.chat-msg b{margin-right:2px}.chat-msg.system{color:var(--ink-soft);font-style:italic;text-align:center;font-size:.88rem}.chat-tag{margin-left:4px;padding:0 5px;border-radius:6px;background:#e9dbb9;color:var(--ink-soft);font-size:.72rem}.chat-reactions{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0;border-top:1px solid var(--line)}.chat-reactions button{border:1px solid var(--line);background:#fbf4e3;border-radius:10px;cursor:pointer;padding:2px 7px;font:inherit;font-size:.85rem}.chat-reactions button.emoji{font-size:1.05rem;padding:0 6px}.chat-reactions button:hover{border-color:var(--accent)}.chat-form{display:flex;gap:6px;align-items:center}.chat-input{flex:1;min-width:0;font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fbf4e3;-webkit-user-select:text;user-select:text}.chat-input:focus{outline:2px solid var(--accent);outline-offset:0}.chat-as{font:inherit;font-size:.85rem;max-width:92px;border:1px solid var(--line);border-radius:8px;background:#fbf4e3;padding:5px 4px}.chat-panel.hidden-all,.chat-panel.readonly .chat-reactions,.chat-panel.readonly .chat-form{display:none}.results .archive-link{margin:6px 0 2px}.card-avatar{position:relative;flex-shrink:0;display:flex}.avatar-tag{position:absolute;left:50%;bottom:-6px;transform:translate(-50%);padding:0 6px;border-radius:6px;font-size:.62rem;font-weight:700;line-height:15px;letter-spacing:.02em;white-space:nowrap;box-shadow:0 1px 3px #00000073;z-index:1}.avatar-tag.master{background:#fbf4e3;color:var(--accent-dark)}.avatar-tag.bot{background:#3a2a1a;color:#fff8ec}
