:root{--crimson: #7a1e2e;--crimson-dark: #5a1420;--crimson-light: #9e3040;--gold: #c9a84c;--gold-dark: #a88b3a;--gold-light: #e0c878;--ivory: #f5f0e1;--parchment: #ede4d0;--parchment-dark: #d4c9b0;--purple: #4a2d5e;--purple-light: #6b4480;--slate: #3a3a4a;--slate-light: #5a5a6e;--white: #ffffff;--black: #1a1a1a;--success: #2d6a2e;--danger: #a02020;--font-heading: "Cormorant Garamond", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-sm: 0 1px 3px rgba(0,0,0,.15);--shadow-md: 0 3px 8px rgba(0,0,0,.2);--shadow-lg: 0 6px 20px rgba(0,0,0,.25);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--parchment);color:var(--slate);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#root{display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at top,rgba(122,30,46,.05) 0%,transparent 70%),linear-gradient(to bottom,var(--ivory) 0%,var(--parchment) 50%,var(--parchment-dark) 100%)}.btn{display:flex;flex-direction:column;align-items:center;padding:14px 28px;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;gap:4px}.btn:active{transform:scale(.97)}.btn-primary{background:var(--crimson);color:var(--ivory);box-shadow:var(--shadow-md)}.btn-primary:hover{background:var(--crimson-light)}.btn-secondary{background:var(--gold-dark);color:var(--white);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--gold)}.btn-tertiary{background:transparent;color:var(--crimson);border:2px solid var(--crimson)}.btn-tertiary:hover{background:#7a1e2e14}.btn-large{padding:18px 36px;font-size:18px}.btn-sub{font-size:12px;font-weight:400;opacity:.8}.btn-icon{font-size:22px;line-height:1}.btn-back{background:none;border:none;color:var(--crimson);font-size:16px;font-weight:600;cursor:pointer;padding:8px 0;font-family:var(--font-body);align-self:flex-start}.btn-icon-only{background:none;border:none;font-size:20px;cursor:pointer;padding:6px 8px;border-radius:var(--radius-sm);line-height:1}.btn-icon-only:hover{background:#00000014}.main-menu{display:flex;flex-direction:column;align-items:center;padding:40px 24px;min-height:100%;text-align:center;gap:24px}.menu-header{display:flex;flex-direction:column;align-items:center;gap:8px}.wax-seal{width:64px;height:64px;border-radius:50%;background:var(--crimson);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:var(--shadow-md),inset 0 -2px 4px #0000004d}.game-title{font-family:var(--font-heading);font-size:48px;font-weight:700;color:var(--crimson);line-height:1.1}.game-subtitle{font-family:var(--font-heading);font-size:18px;color:var(--slate-light);font-style:italic}.flavor-text{max-width:480px;padding:20px 24px;background:#ffffff80;border-radius:var(--radius-md);border-left:3px solid var(--gold);text-align:left;font-size:14px;line-height:1.6;color:var(--slate-light)}.flavor-text p+p{margin-top:8px}.menu-buttons{display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px}.menu-footer{margin-top:auto;font-size:13px;color:var(--slate-light);opacity:.7}.player-setup{padding:24px;min-height:100%;display:flex;flex-direction:column;gap:20px;max-width:480px;margin:0 auto;width:100%}.player-setup h2{font-family:var(--font-heading);font-size:28px;color:var(--crimson)}.setup-step{display:flex;flex-direction:column;gap:16px}.setup-label{font-weight:600;font-size:15px;color:var(--slate)}.player-count-selector{display:flex;gap:8px;flex-wrap:wrap}.count-btn{width:48px;height:48px;border-radius:var(--radius-sm);border:2px solid var(--parchment-dark);background:var(--white);font-size:18px;font-weight:600;cursor:pointer;transition:all .2s;font-family:var(--font-body)}.count-btn.active{background:var(--crimson);color:var(--white);border-color:var(--crimson)}.mode-indicator{font-size:14px;color:var(--slate-light)}.name-inputs{display:flex;flex-direction:column;gap:10px}.name-input-row{display:flex;align-items:center;gap:10px}.player-number{font-weight:700;color:var(--crimson);width:28px;flex-shrink:0}.name-input-row input{flex:1;padding:10px 14px;border:2px solid var(--parchment-dark);border-radius:var(--radius-sm);font-size:16px;font-family:var(--font-body);background:var(--white)}.name-input-row input:focus{outline:none;border-color:var(--crimson)}.ai-opponents-preview{display:flex;flex-direction:column;gap:8px}.ai-preview-row{display:flex;justify-content:space-between;padding:8px 12px;background:#4a2d5e14;border-radius:var(--radius-sm)}.ai-name{font-weight:600;color:var(--purple)}.ai-personality{font-size:13px;color:var(--purple-light);font-style:italic}.win-condition{padding:12px 16px;background:#c9a84c26;border-radius:var(--radius-sm);border-left:3px solid var(--gold);font-size:14px}.card{width:120px;min-height:170px;border-radius:var(--radius-md);background:var(--white);border:2px solid var(--gold-dark);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;overflow:hidden;flex-shrink:0;transition:all .2s}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--crimson)}.card-selected{border-color:var(--crimson);box-shadow:0 0 0 3px #7a1e2e4d;transform:translateY(-4px)}.card-disabled{opacity:.5;pointer-events:none}.card-forced{border-color:var(--danger);box-shadow:0 0 0 3px #a020204d}.card-small{width:90px;min-height:130px}.card-small .card-value{font-size:16px;width:24px;height:24px}.card-small .card-title{font-size:13px}.card-small .card-character{font-size:10px}.card-small .card-ability{font-size:9px}.card-value{position:absolute;top:6px;left:6px;width:28px;height:28px;background:var(--crimson);color:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:18px;font-weight:700;z-index:1}.card-value-bottom{top:auto;left:auto;bottom:6px;right:6px;transform:rotate(180deg)}.card-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 8px;text-align:center;gap:4px}.card-title{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--crimson)}.card-character{font-size:11px;color:var(--slate-light);font-style:italic}.card-ability{font-size:10px;color:var(--slate);line-height:1.3;margin-top:4px}.card-back{background:var(--crimson);border-color:var(--crimson-dark)}.card-back-design{flex:1;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.03) 8px,rgba(255,255,255,.03) 16px)}.card-back-seal{width:48px;height:48px;background:var(--gold-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--crimson);box-shadow:inset 0 -2px 4px #0000004d}.card-mini{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;background:var(--white);border:1px solid var(--parchment-dark);font-size:12px;line-height:1}.card-mini-value{font-weight:700;color:var(--crimson);font-family:var(--font-heading);font-size:13px}.card-mini-title{color:var(--slate)}.handoff-screen{display:flex;flex-direction:column;align-items:center;padding:32px 24px;min-height:100%;gap:24px}.handoff-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.handoff-header h2{font-family:var(--font-heading);font-size:20px;color:var(--slate-light)}.handoff-player-name{font-family:var(--font-heading);font-size:36px;font-weight:700;color:var(--crimson)}.handoff-ai-badge{padding:4px 12px;background:var(--purple);color:var(--white);border-radius:12px;font-size:12px;font-weight:600}.handoff-game-info{width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.handoff-round,.handoff-deck{text-align:center;font-size:14px;color:var(--slate-light)}.handoff-players{display:flex;flex-direction:column;gap:8px}.handoff-player-row{padding:10px 14px;background:var(--white);border-radius:var(--radius-sm);border-left:3px solid transparent;display:flex;flex-direction:column;gap:4px}.handoff-player-row.current{border-left-color:var(--crimson);background:#7a1e2e0a}.handoff-player-row.eliminated{opacity:.5}.handoff-player-info{display:flex;justify-content:space-between;align-items:center}.handoff-pname{font-weight:600;font-size:15px}.ai-tag{font-size:10px;padding:1px 5px;background:var(--purple);color:var(--white);border-radius:4px;margin-left:6px;font-weight:600}.protected-tag{margin-left:4px;font-size:14px}.current-tag{margin-left:4px;color:var(--crimson);font-size:12px}.handoff-tokens{display:flex;align-items:center;gap:2px}.token-heart{color:var(--crimson);font-size:14px}.token-heart-small{color:var(--crimson);font-size:11px}.no-tokens{font-size:12px;color:var(--slate-light)}.handoff-discard{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.eliminated-badge{align-self:flex-start;font-size:11px;font-weight:700;color:var(--danger);text-transform:uppercase}.handoff-removed{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 12px;background:#0000000a;border-radius:var(--radius-sm);font-size:13px}.removed-label{color:var(--slate-light)}.handoff-jester{text-align:center;font-size:13px;color:var(--purple);padding:6px 12px;background:#4a2d5e14;border-radius:var(--radius-sm)}.jester-sub{opacity:.7}.handoff-ready-btn{margin-top:auto;width:100%;max-width:340px}.game-board{display:flex;flex-direction:column;min-height:100%}.game-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--crimson);color:var(--ivory);flex-shrink:0}.header-left{display:flex;gap:12px;align-items:center}.round-badge{font-family:var(--font-heading);font-size:16px;font-weight:700}.deck-count{font-size:13px;opacity:.8}.header-right{display:flex;gap:4px}.header-right .btn-icon-only{color:var(--ivory)}.header-right .btn-icon-only:hover{background:#ffffff26}.game-content{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.players-overview{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.player-badge{flex-shrink:0;padding:8px 10px;background:var(--white);border-radius:var(--radius-sm);border:2px solid transparent;min-width:100px;display:flex;flex-direction:column;gap:3px;position:relative}.player-badge.current{border-color:var(--crimson)}.player-badge.eliminated{opacity:.4}.player-badge.protected{border-color:var(--gold)}.player-badge-name{font-weight:600;font-size:13px;display:flex;align-items:center;gap:4px}.ai-indicator{font-size:9px;padding:0 4px;background:var(--purple);color:var(--white);border-radius:3px}.player-badge-tokens{display:flex;gap:1px;align-items:center}.player-badge-discard{display:flex;flex-wrap:wrap;gap:2px;margin-top:2px}.shield-icon{position:absolute;top:2px;right:4px;font-size:12px}.out-badge{position:absolute;top:2px;right:4px;font-size:9px;font-weight:700;color:var(--danger);text-transform:uppercase}.current-turn{flex:1;display:flex;flex-direction:column;align-items:center;gap:16px}.turn-header{font-family:var(--font-heading);font-size:22px;color:var(--crimson)}.draw-phase,.play-phase{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.hand-display{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.forced-play-warning{padding:10px 16px;background:#a020201a;border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-weight:600;font-size:14px;text-align:center}.ai-turn-display{flex:1;display:flex;align-items:center;justify-content:center}.ai-thinking{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.ai-thinking h3{font-family:var(--font-heading);font-size:24px;color:var(--purple)}.ai-personality-tag{font-style:italic;color:var(--purple-light);font-size:14px}.ai-result{padding:12px 20px;background:var(--white);border-radius:var(--radius-sm);max-width:320px;text-align:center}.ai-played-card{margin-bottom:6px;font-size:.95rem}.ai-eliminated-notice{margin-top:6px;color:var(--danger);font-weight:600}.ai-continue-btn{margin-top:14px}.thinking-dots span{display:inline-block;font-size:32px;color:var(--purple);animation:dots 1.4s infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--ivory);border-radius:var(--radius-lg);padding:28px 24px;max-width:400px;width:100%;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:16px;max-height:90vh;overflow-y:auto}.effect-result-title{font-family:var(--font-heading);font-size:26px;color:var(--crimson)}.effect-result-message{font-size:15px;text-align:center;line-height:1.5}.revealed-cards{display:flex;flex-direction:column;gap:10px;align-items:center}.revealed-card-row{display:flex;align-items:center;gap:10px}.revealed-player{font-weight:600;color:var(--slate)}.bishop-choice{text-align:center}.bishop-choice-buttons{display:flex;gap:10px;margin-top:10px}.effect-interaction{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px;background:#fff9;border-radius:var(--radius-lg);width:100%;max-width:400px}.effect-card-played{display:flex;justify-content:center}.effect-interaction h3{font-family:var(--font-heading);font-size:18px;color:var(--crimson);text-align:center}.effect-target-info{font-size:14px;color:var(--slate-light);font-style:italic}.target-buttons{display:flex;flex-direction:column;gap:8px;width:100%}.btn-target{padding:12px 16px;background:var(--white);border:2px solid var(--parchment-dark);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:15px;font-weight:500;text-align:left;transition:all .15s;display:flex;align-items:center;gap:8px}.btn-target:hover{border-color:var(--crimson);background:#7a1e2e0a}.btn-target.selected{border-color:var(--crimson);background:#7a1e2e14}.target-name{flex:1}.target-self{font-size:12px;color:var(--gold-dark)}.target-protected{font-size:11px;color:var(--gold-dark)}.number-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.btn-number{width:48px;height:48px;border-radius:50%;border:2px solid var(--crimson);background:var(--white);color:var(--crimson);font-family:var(--font-heading);font-size:20px;font-weight:700;cursor:pointer;transition:all .15s}.btn-number:hover{background:var(--crimson);color:var(--white)}.round-end-screen{display:flex;flex-direction:column;align-items:center;padding:32px 24px;min-height:100%;gap:20px}.round-end-screen h2{font-family:var(--font-heading);font-size:28px;color:var(--crimson)}.round-winner{text-align:center}.winner-label{font-size:14px;color:var(--slate-light)}.winner-name{font-family:var(--font-heading);font-size:26px;font-weight:700;color:var(--gold-dark)}.final-hands{display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px}.final-hand-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--white);border-radius:var(--radius-sm)}.fh-name{font-weight:600;flex:1;font-size:14px}.count-bonus{font-size:12px;color:var(--success)}.fh-total{font-weight:700;color:var(--crimson)}.jester-bonus{font-size:14px;color:var(--purple);font-style:italic;text-align:center}.standings{width:100%;max-width:360px}.standings h3{font-family:var(--font-heading);font-size:20px;margin-bottom:8px;text-align:center}.standing-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--parchment-dark)}.standing-tokens{display:flex;align-items:center;gap:4px}.token-count{font-size:12px;color:var(--slate-light);margin-left:4px}.tie-notice{font-weight:600;color:var(--crimson);text-align:center;padding:10px;background:#7a1e2e14;border-radius:var(--radius-sm)}.game-over-screen{display:flex;flex-direction:column;align-items:center;padding:40px 24px;min-height:100%;gap:24px}.victory-display{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.victory-seal{width:80px;height:80px;border-radius:50%;background:var(--gold);color:var(--crimson);display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:var(--shadow-lg);animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.victory-display h1{font-family:var(--font-heading);font-size:42px;color:var(--crimson)}.winner-announcement{font-family:var(--font-heading);font-size:20px;color:var(--gold-dark);font-style:italic}.winner-tokens{font-size:16px;color:var(--slate-light)}.final-standings{width:100%;max-width:360px}.final-standings h3{font-family:var(--font-heading);font-size:22px;text-align:center;margin-bottom:12px}.final-standing-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--parchment-dark)}.final-standing-row.winner{background:#c9a84c26;border-radius:var(--radius-sm)}.rank{font-weight:700;color:var(--crimson);width:30px}.standing-name{flex:1;font-weight:500}.rounds-played{font-size:13px;color:var(--slate-light)}.game-over-buttons{margin-top:auto}.card-reference{padding:24px;min-height:100%;display:flex;flex-direction:column;gap:16px;max-width:600px;margin:0 auto;width:100%}.card-reference h2{font-family:var(--font-heading);font-size:28px;color:var(--crimson)}.mode-toggle{display:flex;gap:8px}.mode-btn{padding:8px 16px;border-radius:var(--radius-sm);border:2px solid var(--parchment-dark);background:var(--white);cursor:pointer;font-family:var(--font-body);font-weight:500;font-size:14px}.mode-btn.active{background:var(--crimson);color:var(--white);border-color:var(--crimson)}.card-ref-list{display:flex;flex-direction:column;gap:12px}.card-ref-item{padding:14px 16px;background:var(--white);border-radius:var(--radius-sm);border-left:4px solid var(--crimson)}.card-ref-item.extended-card{border-left-color:var(--purple)}.card-ref-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.card-ref-value{width:28px;height:28px;border-radius:50%;background:var(--crimson);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:16px;font-weight:700;flex-shrink:0}.extended-card .card-ref-value{background:var(--purple)}.card-ref-title{font-family:var(--font-heading);font-weight:700;font-size:17px;color:var(--crimson)}.extended-card .card-ref-title{color:var(--purple)}.card-ref-character{font-size:13px;color:var(--slate-light);font-style:italic}.card-ref-qty{font-size:12px;color:var(--slate-light);margin-left:auto}.extended-badge{font-size:10px;padding:2px 6px;background:var(--purple);color:var(--white);border-radius:4px}.card-ref-ability{font-size:14px;line-height:1.5}.card-ref-strategy{font-size:12px;color:var(--gold-dark);margin-top:4px;line-height:1.4}.how-to-play{padding:24px;min-height:100%;display:flex;flex-direction:column;gap:16px;max-width:600px;margin:0 auto;width:100%}.how-to-play h2{font-family:var(--font-heading);font-size:28px;color:var(--crimson)}.section-tabs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.tab-btn{padding:8px 14px;border-radius:20px;border:1px solid var(--parchment-dark);background:var(--white);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:var(--font-body)}.tab-btn.active{background:var(--crimson);color:var(--white);border-color:var(--crimson)}.section-content{background:var(--white);border-radius:var(--radius-md);padding:20px}.section-content h3{font-family:var(--font-heading);font-size:22px;color:var(--crimson);margin-bottom:12px}.section-content h4{font-family:var(--font-heading);font-size:17px;color:var(--slate);margin-top:16px;margin-bottom:8px}.section-content p{font-size:14px;line-height:1.6;margin-bottom:8px}.section-content ul,.section-content ol{padding-left:20px;margin-bottom:8px}.section-content li{font-size:14px;line-height:1.6;margin-bottom:4px}.card-help-list{display:flex;flex-direction:column;gap:8px}.card-help-item{font-size:14px;line-height:1.5;padding:6px 0;border-bottom:1px solid var(--parchment)}.game-log-panel{padding:24px;min-height:100%;display:flex;flex-direction:column;gap:16px;max-width:600px;margin:0 auto;width:100%}.game-log-panel h2{font-family:var(--font-heading);font-size:28px;color:var(--crimson)}.log-section h3{font-family:var(--font-heading);font-size:18px;color:var(--slate);margin-bottom:8px}.log-entries{display:flex;flex-direction:column;gap:4px}.log-entry{font-size:13px;padding:6px 10px;background:var(--white);border-radius:4px;line-height:1.4;border-left:3px solid var(--crimson)}.log-entry-old{border-left-color:var(--parchment-dark);opacity:.7}.log-round-tag{font-size:10px;font-weight:700;color:var(--slate-light);margin-right:6px}.log-empty{font-size:13px;color:var(--slate-light);font-style:italic}.log-section-previous{margin-top:12px}@media(min-width:768px){.game-title{font-size:60px}.main-menu{padding:60px 32px}.menu-buttons{max-width:400px}.hand-display{gap:20px}.card{width:140px;min-height:196px}.card-small{width:110px;min-height:155px}.players-overview{flex-wrap:wrap}.player-badge{min-width:120px}.handoff-player-name{font-size:44px}}@media(min-width:1024px){.game-content{flex-direction:row;align-items:flex-start}.players-overview{flex-direction:column;min-width:200px;max-width:240px;overflow-x:visible}.current-turn{flex:1}}
