.festival-chip{white-space:normal;text-align:left;background:#fff3c4;flex-direction:column;align-items:flex-start;gap:0;max-width:min(330px,74vw);height:auto;min-height:40px;padding:4px 12px;pointer-events:auto!important}.festival-chip b{font-size:15px}.festival-chip .festival-chip-hint{font-family:var(--body);font-size:12.5px;font-weight:600;line-height:1.25}.festival-chip.festival-founders{background:#dfe8ff}.festival-chip.festival-harvest{background:#ffe1c2}.festival-chip.festival-winter{background:#dff4ff}.festival-chip.festival-new-year{background:#f5eccf}.vote-list{flex-direction:column;gap:8px;margin:10px 0;display:flex}.vote-row{border:2px solid var(--ink);background:var(--paper);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.vote-row.mine{background:#e7fbe9}.vote-swatch{border:2px solid var(--ink);border-radius:50%;flex:none;width:28px;height:28px}.vote-text{flex-direction:column;flex:1;min-width:0;font-size:13px;display:flex}.vote-text b{font-family:var(--display);font-size:16px;font-weight:400}.vote-bar{background:linear-gradient(90deg, var(--tone) calc(var(--share) * 100%), #e7e1d2 0);border-radius:3px;height:6px;margin:4px 0 2px;display:block}.vote-count{color:#5a5870}.vote-mine{font-family:var(--display);color:#1f8a4c;flex:none}.keepsake-thumb{flex:none;width:48px;height:48px}.keepsake-note{color:#6b4a1a;margin-top:2px;font-weight:700;display:block}.keepsake-heading{font-family:var(--display);margin:14px 0 6px;font-size:17px;font-weight:400}.festival-banner{border:3px solid var(--ink);background:var(--banner-bg,#1f3f8a);max-width:560px;color:var(--banner-ink,#fff6dc);box-shadow:0 4px 0 var(--ink);text-align:left;border-radius:14px;align-items:center;gap:12px;margin:10px auto;padding:10px 14px;display:flex}.festival-banner canvas{flex:none;width:56px;height:56px}.festival-banner-text{flex-direction:column;gap:2px;min-width:0;display:flex}.festival-banner-kicker{font-family:var(--body);letter-spacing:1px;text-transform:uppercase;color:var(--banner-accent,#ffd23f);font-size:12px;font-weight:700}.festival-banner b{font-family:var(--display);font-size:20px;font-weight:400;line-height:1.1}.festival-banner small{font-family:var(--body);font-size:13.5px;line-height:1.3}.festival-banner .festival-banner-count{color:var(--banner-accent,#ffd23f);font-weight:700}.gazette-festival{border:2px solid var(--ink);background:#fffaf0;border-radius:6px;margin:10px 0;padding:10px 12px}.gazette-festival .gazette-results{margin:6px 0 0;padding-left:18px;font-size:13px}
