:root{--paper: #fbf4e6;--paper-2: #f3e8d2;--ink: #4b3b28;--ink-soft: #8a755a;--line: #e2d2b4;--sage: #86b06a;--sage-deep: #5f9350;--rose: #e39aa6;--lav: #b7a0d8;--sky: #8fbfe0;--gold: #e6b24d;--plaque: #35433f;--danger: #c9603f;--shadow: 0 8px 24px rgba(90, 70, 40, .18)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);min-height:100vh;background:radial-gradient(1000px 520px at 50% -8%,#fdf7ea 0%,transparent 60%),radial-gradient(900px 420px at 50% 118%,#d6e6c4 0%,transparent 55%),linear-gradient(165deg,#efe1c6,#e7d6b6 55%,#e2cfab);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:repeating-linear-gradient(92deg,rgba(120,90,50,.05) 0px,rgba(120,90,50,.05) 2px,transparent 2px,transparent 22px);z-index:0}.app{position:relative;z-index:1}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 16px;border-radius:14px;font-size:14px;font-weight:600;box-shadow:0 2px #5a46281f;transition:transform .1s,filter .15s}button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.03)}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--sage),var(--sage-deep));border:1px solid var(--sage-deep);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.15)}button.ghost{background:transparent;box-shadow:none}.countdown{margin-left:8px;color:var(--sage-deep);font-weight:700;font-variant-numeric:tabular-nums}input{background:#fffdf8;border:1px solid var(--line);color:var(--ink);padding:11px 13px;border-radius:12px;font-size:15px;width:100%}input::placeholder{color:#b6a488}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-soft);font-weight:600}.muted{color:var(--ink-soft);font-size:13px}.error{color:var(--danger);font-size:13px;cursor:pointer;font-weight:600}.status{color:var(--ink-soft);font-size:16px;padding:34px 0;text-align:center;font-style:italic}.brand{display:flex;align-items:center;gap:16px}.brand-icon{height:60px;width:auto;display:block;filter:drop-shadow(0 4px 8px rgba(30,25,55,.28))}.brand-text{display:flex;flex-direction:column}.brand-text h1{margin:0;font-weight:800;font-size:42px;line-height:1;letter-spacing:6px;color:#3c4a78}.brand-text .slogan{margin:8px 0 0;color:var(--ink-soft);font-style:italic;font-size:14px;letter-spacing:1px}.brand.small{gap:10px}.brand.small .brand-icon{height:34px}.brand.small .brand-text h1{font-size:22px;letter-spacing:3px}.page.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:20px}.card-panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow)}.lobby-card{width:350px;display:flex;flex-direction:column;gap:14px}.divider{text-align:center;color:var(--ink-soft);font-size:12px;position:relative}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:38%;height:1px;background:var(--line)}.divider:before{left:0}.divider:after{right:0}.code{letter-spacing:4px;color:var(--sage-deep);font-size:24px}.players-simple{list-style:none;padding:0;margin:0}.players-simple li{padding:7px 0;border-bottom:1px dashed var(--line);font-weight:600}.deck-select{display:flex;flex-direction:column;gap:8px}.deck-label{font-size:13px;color:var(--ink-soft);font-weight:600}.deck-options{display:flex;gap:10px;flex-wrap:wrap}.deck-chip{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border-radius:14px;border:2px solid var(--line);background:var(--paper-2);box-shadow:none;font-weight:700;font-size:12px;color:var(--ink)}.deck-chip img{width:48px;height:67px;object-fit:cover;border-radius:8px;border:2px solid #fffdf8;display:block}.deck-chip.active{border-color:var(--sage-deep);background:#eef4e8}.page.game{max-width:1240px;margin:0 auto;padding:18px}.topbar{display:flex;align-items:center;gap:24px;margin-bottom:18px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:12px 20px;box-shadow:var(--shadow)}.phase{display:flex;flex-direction:column;margin-left:auto;text-align:right}.phase-label{font-weight:700}.round{color:var(--ink-soft);font-size:13px}.layout{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}.side,.main{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.main{min-height:62vh}.scoreboard h3{margin:0 0 12px;color:#6a4b74}.scoreboard ul{list-style:none;padding:0;margin:0}.scoreboard li{display:flex;align-items:center;gap:9px;padding:9px 8px;border-radius:12px;font-size:14px}.scoreboard li.me{background:var(--paper-2)}.scoreboard li.me .pname{font-weight:800}.dot{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:2px solid #fff;box-shadow:0 1px 2px #00000026}.pname{flex:1}.tag{font-size:9px;text-transform:uppercase;letter-spacing:.5px;background:var(--gold);color:#4b3b28;padding:3px 7px;border-radius:8px;font-weight:800}.tag.off{background:#cbb89a}.score{font-weight:800;font-variant-numeric:tabular-nums;font-size:16px;min-width:22px;text-align:right}.clue-banner{background:linear-gradient(180deg,#3d4c47,var(--plaque));border:1px solid #26302c;border-radius:16px;padding:16px 18px;text-align:center;margin-bottom:18px;box-shadow:inset 0 0 0 2px #ffffff0f,var(--shadow)}.clue-label{font-size:11px;letter-spacing:2px;color:#b7c7bd}.clue-text{font-style:italic;font-size:26px;font-weight:600;color:#f6efdf;margin-top:6px}.clue-input{display:flex;gap:8px;margin-top:12px}.clue-input input{flex:1}.card{width:108px;height:152px;border-radius:12px;border:4px solid #fffdf8;object-fit:cover;cursor:pointer;background:var(--paper-2);box-shadow:0 6px 14px #5a462840;transition:transform .12s,box-shadow .12s,border-color .12s}.card:hover{transform:translateY(-8px) rotate(-1deg)}.card.selected{border-color:var(--gold);transform:translateY(-8px);box-shadow:0 8px 18px #e6b24d8c}.card.disabled{opacity:.5;cursor:not-allowed;filter:saturate(.7)}.card.winner{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold),0 8px 20px #e6b24d99}.table,.voting,.reveal{display:flex;flex-direction:column;gap:18px;align-items:center}.prompt{text-align:center}.prompt h3{margin:0 0 4px;color:#6a4b74}.pool{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.hand{margin-top:8px;width:100%;background:var(--paper-2);border:1px dashed var(--line);border-radius:16px;padding:12px}.hand-label{font-size:12px;color:var(--ink-soft);margin-bottom:8px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.hand-cards{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.reveal-card{display:flex;flex-direction:column;align-items:center;gap:6px}.reveal-meta{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px}.votes{display:flex;gap:4px;min-height:12px}.vote-dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff}.avatar{flex-shrink:0;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}.round-end{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}.champion-title{margin:0;text-align:center}.champion-names{text-align:center;font-size:24px;font-weight:800;color:#6a4b74;margin:4px 0 10px}.track{position:relative;height:150px;width:100%;max-width:1100px;margin:18px auto 0;background:linear-gradient(180deg,#efe6cf,#e7d9ba);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.track-svg{width:100%;height:100%;display:block}.track-path{fill:none;stroke:#9ec585;stroke-width:20;stroke-linecap:round;opacity:.75}.stone{fill:#d8c39a;stroke:#b8a074;stroke-width:1.5}.goal{fill:var(--gold);stroke:#b9852b;stroke-width:2}.track-labels{position:absolute;left:18px;right:18px;bottom:10px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.track-tokens{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.track-token{position:absolute;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.card-wrap{position:relative;display:inline-block;line-height:0}.zoom-btn{position:absolute;top:7px;right:7px;width:26px;height:26px;padding:0;border:none;border-radius:50%;background:#1914288c;color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;box-shadow:none;transition:opacity .12s,background .12s}.card-wrap:hover .zoom-btn,.zoom-btn:focus-visible{opacity:1}.zoom-btn:hover{background:#191428d9}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#14102080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .22s ease}.lightbox.visible{opacity:1}.lightbox-card{height:80vh;max-height:80vh;width:auto;max-width:92vw;border-radius:16px;border:5px solid #fffdf8;box-shadow:0 24px 60px #00000080;transform-origin:center center;will-change:transform;cursor:default}.lightbox-close{position:fixed;top:20px;right:24px;width:44px;height:44px;padding:0;border-radius:50%;border:none;background:#fffdf8eb;color:#3c4a78;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d}@media (max-width: 820px){.layout{grid-template-columns:1fr}}
