:root{--felt-1: #15302a;--felt-2: #0d211c;--felt-edge: #081512;--parchment: #f3e9d2;--parchment-2: #e8dabb;--parchment-edge: #cdb98c;--ink: #2b2118;--ink-soft: #6a5a45;--gold: #c8a45c;--gold-bright: #e6c982;--gold-deep: #8a6d2f;--oxblood: #6e1f29;--oxblood-bright: #8f2c38;--cat-intentional: #8f2c38;--cat-negligence: #2f5d74;--cat-strict: #b5772a;--cat-dignitary: #5b3d72;--defense: #6e1f29;--objection: #1f3a55;--shadow: rgba(0, 0, 0, .45);--serif-display: "Cinzel", "Cormorant Garamond", Georgia, serif;--serif-head: "Cormorant Garamond", Georgia, serif;--serif-body: "EB Garamond", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--serif-body);color:var(--ink);background:radial-gradient(120% 80% at 50% -10%,#1c3f37 0%,var(--felt-1) 35%,var(--felt-2) 75%,var(--felt-edge) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}button{font-family:var(--serif-head);cursor:pointer}.app{min-height:100%;display:flex;flex-direction:column}.masthead{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1.25rem;border-bottom:1px solid rgba(200,164,92,.28);background:linear-gradient(180deg,#00000052,#0000)}.masthead__brand{display:flex;align-items:baseline;gap:.6rem}.masthead__title{font-family:var(--serif-display);font-weight:700;letter-spacing:.18em;font-size:1.5rem;color:var(--gold-bright);text-shadow:0 1px 2px rgba(0,0,0,.6);margin:0}.masthead__tag{font-style:italic;color:#f3e9d2b3;font-size:1rem}.masthead__right{display:flex;align-items:center;gap:1.25rem}.scoreboard{display:flex;gap:1rem}.scoreboard__seat{text-align:right;line-height:1.1}.scoreboard__name{font-family:var(--serif-head);color:#f3e9d2d9;font-size:.95rem}.scoreboard__seat--active .scoreboard__name{color:var(--gold-bright)}.scoreboard__damages{font-family:var(--serif-display);font-size:1.25rem;color:var(--gold)}.btn{border:1px solid var(--gold-deep);background:linear-gradient(180deg,#2a4a40,#1a352d);color:var(--parchment);border-radius:6px;padding:.5rem 1rem;font-size:.95rem;letter-spacing:.05em;transition:transform .08s ease,box-shadow .15s ease,filter .15s ease;box-shadow:0 2px 6px var(--shadow)}.btn:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--gold{background:linear-gradient(180deg,var(--gold-bright),var(--gold-deep));color:#3a2a10;border-color:var(--gold-deep);font-weight:600}.btn--ghost{background:#0003}.table{flex:1;display:grid;grid-template-rows:auto auto 1fr auto;gap:.75rem;padding:1rem 1.25rem 1.25rem;max-width:1400px;width:100%;margin:0 auto}.zone-label{font-family:var(--serif-display);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:#c8a45cb3;margin:0 0 .4rem}.opponent-row,.player-row{display:grid;grid-template-columns:1fr 16rem;gap:1rem;align-items:start}.cases{display:flex;gap:.85rem;flex-wrap:wrap;min-height:9rem}.cases--empty{align-items:center}.cases__hint{color:#f3e9d266;font-style:italic;align-self:center}.center{display:grid;grid-template-columns:1fr 18rem;gap:1rem;align-items:start}.docket{background:linear-gradient(180deg,#0000002e,#0000000d);border:1px solid rgba(200,164,92,.22);border-radius:10px;padding:.75rem .9rem .9rem}.docket__cards{display:flex;gap:.85rem;flex-wrap:wrap}.sidebar{display:flex;flex-direction:column;gap:.75rem}.decks{display:flex;gap:.75rem}.deck{flex:1;border-radius:8px;border:1px solid rgba(200,164,92,.25);background:linear-gradient(160deg,#243f1a,#14250f);color:var(--parchment);text-align:center;padding:.5rem;box-shadow:inset 0 0 0 4px #0000002e,0 3px 8px var(--shadow)}.deck__count{font-family:var(--serif-display);font-size:1.3rem;color:var(--gold-bright)}.deck__label{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#f3e9d2a6}.log{background:#00000047;border:1px solid rgba(200,164,92,.18);border-radius:8px;padding:.6rem .75rem;height:12rem;overflow-y:auto;font-size:.9rem;display:flex;flex-direction:column-reverse}.log__entry{color:#f3e9d2cc;padding:.15rem 0;border-bottom:1px dotted rgba(200,164,92,.12);line-height:1.25}.log__entry--system{color:var(--gold);font-style:italic}.hand{display:flex;gap:.6rem;flex-wrap:wrap;min-height:12.5rem;padding-top:.25rem}.hand--opponent{gap:.2rem}.cardback{width:2.4rem;height:3.4rem;border-radius:5px;background:repeating-linear-gradient(45deg,#5a1a23 0,#5a1a23 6px,#4a141c 6px,#4a141c 12px);border:1px solid var(--gold-deep);box-shadow:0 2px 4px var(--shadow)}.card{width:9rem;min-height:12rem;border-radius:9px;background:linear-gradient(165deg,var(--parchment),var(--parchment-2));border:1px solid var(--parchment-edge);color:var(--ink);padding:.55rem .6rem .65rem;position:relative;display:flex;flex-direction:column;box-shadow:0 4px 10px var(--shadow),inset 0 0 0 1px #ffffff59;transition:transform .1s ease,box-shadow .15s ease}.card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9px;pointer-events:none;box-shadow:inset 0 0 22px #785a2840}.card--interactive{cursor:pointer}.card--interactive:hover{transform:translateY(-6px);box-shadow:0 12px 22px var(--shadow),inset 0 0 0 1px #fff6}.card--selected{transform:translateY(-10px);outline:2px solid var(--gold-bright);outline-offset:2px;box-shadow:0 14px 26px var(--shadow),0 0 18px #e6c9828c}.card--playable{outline:2px dashed var(--gold);outline-offset:2px}.card--dimmed{opacity:.5;filter:saturate(.6)}.card__cat{font-family:var(--serif-display);font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--ink-soft);padding:.12rem .4rem;border-radius:3px;align-self:flex-start}.card__cat[data-cat=Intentional]{background:var(--cat-intentional)}.card__cat[data-cat=Negligence]{background:var(--cat-negligence)}.card__cat[data-cat="Strict Liability"]{background:var(--cat-strict)}.card__cat[data-cat=Dignitary]{background:var(--cat-dignitary)}.card__cat--evidence{background:#4f6b3a}.card__cat--defense{background:var(--defense)}.card__cat--objection{background:var(--objection)}.card__name{font-family:var(--serif-head);font-weight:700;font-size:1.05rem;line-height:1.05;margin:.35rem 0 .2rem;letter-spacing:.01em;padding-right:2.3rem}.card__name--small{font-size:.95rem}.card__rule{font-size:.74rem;line-height:1.22;color:var(--ink-soft);font-style:italic;flex:1}.card__elements{display:flex;flex-wrap:wrap;gap:.2rem;margin:.35rem 0 .2rem}.pill{font-size:.6rem;letter-spacing:.02em;padding:.1rem .34rem;border-radius:999px;border:1px solid var(--gold-deep);background:#c8a45c29;color:var(--ink);white-space:nowrap}.pill--filled{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep)}.card__landmark{font-size:.62rem;color:var(--ink-soft);border-top:1px solid rgba(120,90,40,.25);padding-top:.3rem;margin-top:.3rem;font-variant:small-caps;letter-spacing:.02em}.seal{position:absolute;top:.5rem;right:.5rem;width:2.05rem;height:2.05rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--oxblood-bright),var(--oxblood) 60%,#4d141c);color:var(--gold-bright);display:grid;place-items:center;font-family:var(--serif-display);font-weight:700;font-size:1.05rem;box-shadow:0 2px 5px var(--shadow),inset 0 0 0 2px #e6c98280;border:1px solid var(--gold-deep)}.seal__label{position:absolute;bottom:-.85rem;font-size:.48rem;letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase}.case{width:11.5rem;border-radius:10px;background:linear-gradient(165deg,var(--parchment),var(--parchment-2));border:1px solid var(--parchment-edge);box-shadow:0 5px 12px var(--shadow);padding:.55rem .6rem .6rem;position:relative}.case--complete{outline:2px solid var(--gold-bright);box-shadow:0 8px 18px var(--shadow),0 0 16px #e6c98266}.case--defending{outline:2px solid var(--oxblood-bright);box-shadow:0 8px 18px var(--shadow),0 0 18px #8f2c388c}.case__title{font-family:var(--serif-head);font-weight:700;font-size:1rem;margin:.25rem 0 .4rem}.slots{display:flex;flex-direction:column;gap:.32rem}.slot{border:1px dashed var(--parchment-edge);border-radius:6px;padding:.3rem .45rem;font-size:.72rem;background:#ffffff4d;display:flex;align-items:center;gap:.35rem;min-height:1.85rem;transition:background .12s ease,border-color .12s ease}.slot__check{width:1rem;height:1rem;border-radius:50%;display:grid;place-items:center;font-size:.6rem;flex-shrink:0;border:1px solid var(--ink-soft);color:var(--ink-soft)}.slot--filled{border-style:solid;border-color:var(--gold-deep);background:#c8a45c38}.slot--filled .slot__check{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep)}.slot--playable{cursor:pointer;border-color:var(--gold);background:#e6c9824d;animation:pulse 1.4s ease-in-out infinite}.slot--playable:hover{background:#e6c9828c}@keyframes pulse{0%,to{box-shadow:0 0 #e6c98200}50%{box-shadow:0 0 0 3px #e6c98273}}.case__footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center}.case__damages{font-family:var(--serif-display);color:var(--oxblood);font-size:.85rem}.btn--rest{padding:.3rem .7rem;font-size:.82rem}.prompt{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#2a0e12,#46141b);border:1px solid var(--oxblood-bright);border-radius:10px;padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 8px 24px #00000080;animation:drop-in .25s ease}@keyframes drop-in{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.prompt__text{color:var(--parchment);font-size:1.05rem}.prompt__text strong{color:var(--gold-bright)}.prompt__actions{display:flex;gap:.6rem}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:#2a0e12;color:var(--parchment);border:1px solid var(--oxblood-bright);padding:.6rem 1.1rem;border-radius:8px;box-shadow:0 8px 20px var(--shadow);z-index:50;font-size:.95rem;animation:drop-in .2s ease}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 30%,#142d26e6,#081512f7);display:grid;place-items:center;z-index:100;padding:1rem}.panel{background:linear-gradient(170deg,#1d3b33,#12241e);border:1px solid var(--gold-deep);border-radius:14px;padding:2rem 2.25rem;max-width:30rem;width:100%;text-align:center;box-shadow:0 20px 60px #0009}.panel__seal{font-size:2.6rem;color:var(--gold-bright)}.panel__title{font-family:var(--serif-display);font-size:2.1rem;letter-spacing:.16em;color:var(--gold-bright);margin:.4rem 0 .1rem}.panel__subtitle{font-style:italic;color:#f3e9d2bf;margin:0 0 1.4rem}.panel__text{color:#f3e9d2d9;line-height:1.4;margin-bottom:1.4rem}.field{display:flex;flex-direction:column;gap:.3rem;text-align:left;margin-bottom:1rem;color:#f3e9d2d9}.field label{font-family:var(--serif-head);letter-spacing:.04em;font-size:.9rem}.field input,.field select{font-family:var(--serif-body);font-size:1rem;padding:.5rem .6rem;border-radius:6px;border:1px solid var(--gold-deep);background:#00000040;color:var(--parchment)}.choices{display:flex;gap:.5rem;margin-bottom:1.2rem}.choices .btn{flex:1}.choices .btn[aria-pressed=true]{outline:2px solid var(--gold-bright)}.panel--rules{max-width:40rem;text-align:left;padding:1.5rem 1.75rem;max-height:88vh;display:flex;flex-direction:column}.rules__header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(200,164,92,.3);padding-bottom:.75rem;margin-bottom:.5rem}.rules__title{font-family:var(--serif-display);font-size:1.6rem;letter-spacing:.1em;color:var(--gold-bright);margin:0}.rules__body{overflow-y:auto;padding-right:.5rem;color:#f3e9d2e6;line-height:1.45}.rules__lead{font-size:1.05rem;color:var(--parchment);border-left:3px solid var(--gold-deep);padding-left:.8rem;margin:.6rem 0 1.1rem}.rules__lead strong,.rules__body strong{color:var(--gold-bright);font-weight:600}.rules__h{font-family:var(--serif-head);font-size:1.2rem;color:var(--gold);margin:1.1rem 0 .35rem;letter-spacing:.02em}.rules__list{margin:.2rem 0 .6rem;padding-left:1.2rem}.rules__list li{margin:.32rem 0}.rules__p{margin:.35rem 0 .5rem}.rules__seal{color:var(--oxblood-bright);font-style:italic}.rules__footnote{margin-top:1rem;padding-top:.8rem;border-top:1px solid rgba(200,164,92,.25);font-style:italic;color:#f3e9d2b3;font-size:.92rem}.rules__body::-webkit-scrollbar{width:8px}.rules__body::-webkit-scrollbar-thumb{background:#c8a45c59;border-radius:8px}.gameover__winner{font-family:var(--serif-display);font-size:1.6rem;color:var(--gold-bright);margin:.6rem 0}.gameover__scores{list-style:none;padding:0;margin:0 0 1.4rem;color:#f3e9d2d9}.gameover__scores li{padding:.2rem 0}.aithinking{font-style:italic;color:var(--gold);font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem}.aithinking:before{content:"⚖";animation:tip 1.1s ease-in-out infinite;display:inline-block}@keyframes tip{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.log::-webkit-scrollbar{width:8px}.log::-webkit-scrollbar-thumb{background:#c8a45c59;border-radius:8px}@media(max-width:960px){.center,.opponent-row,.player-row{grid-template-columns:1fr}}
