:root{font-family:Inter,Manrope,system-ui,sans-serif;color:#f0ecf5;background:#100f16;font-size:14px;color-scheme:dark;--gold:#e6bf78;--purple:#bd96ff;--line:#393041}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid #493e54;border-radius:9px;background:#292332;color:#eee7f6;padding:10px 16px;transition:background .15s,transform .15s}button:hover{background:#42334f}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--gold);color:#251b10;font-weight:800;border-color:transparent}button.primary:hover{background:#f5d69b}input,select,textarea{padding:12px;background:#18151f;color:#f7f0ff;border:1px solid #4b3f57;border-radius:8px;width:100%}textarea{resize:vertical}label{display:grid;gap:8px;margin:14px 0;color:#c1b3ce}header{height:72px;padding:0 36px;border-bottom:1px solid #2f2838;display:flex;align-items:center;justify-content:space-between;background:#15121c}.brand{font-size:19px;font-weight:850;letter-spacing:-.6px;text-decoration:none;color:#f1e7fb}.brand span{color:#c9a1ff}.room-code{font-size:12px;color:#b7a5c7;letter-spacing:2px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:20px}h3{font-size:17px}small,.muted{color:#aa9bb9}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:#c6abda}.badge{font-size:10px;letter-spacing:1.5px;padding:5px 8px;border-radius:5px;background:#352740;color:#c9a4eb}.panel{padding:24px;border:1px solid var(--line);background:#1c1725;border-radius:15px}.notice{font-size:12px;line-height:1.7;color:#aa9bb9}.empty{padding:25px;text-align:center;color:#a391b3;border:1px dashed #50415e;border-radius:10px}.top{display:flex;align-items:center;justify-content:space-between;gap:18px}.avatar{font-size:32px}.you-tag{font-size:9px;letter-spacing:1px;padding:3px 6px;border-radius:4px;color:var(--gold);background:#e6bf7812}.workshop{padding:44px 32px;max-width:1240px;margin:auto}.workshop-heading h1{font-size:44px;margin:12px 0 36px}.pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin:24px 0}.pack-tile{display:flex;flex-direction:column;gap:16px}.pack-tile h3{font-size:24px;margin:0}.pack-tile>.badge{align-self:start}.pack-description{color:#bcaeca;line-height:1.7;flex:1}.pack-counts{display:flex;flex-wrap:wrap;gap:9px}.pack-counts span{font-size:11px;color:#bdadcc}.join-panel{margin-top:44px}.join-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.join-form label{flex:1;min-width:100px}.join-form button{margin-bottom:14px}.entry-screen{max-width:540px;margin:60px auto;padding:24px}.entry-screen .join-form{display:block}.entry-gavel{font-size:70px;color:var(--gold);margin-bottom:24px}.lobby-screen,.game-screen{max-width:1400px;padding:30px 36px;margin:auto}.game-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.game-heading h1{margin:9px 0 0}.case-description{color:#b8a9c4;max-width:680px;line-height:1.7;margin:14px 0 0}.lobby-seats{display:flex;justify-content:center;gap:16px;padding:35px 0;flex-wrap:wrap}.seat{display:flex;flex-direction:column;align-items:center;width:195px;min-height:250px;background:linear-gradient(150deg,#282030,#19161f);border:1px dashed #594568;border-radius:18px;padding:22px;position:relative}.seat.occupied{border-style:solid;border-color:#826540}.seat-role-icon{font-size:28px;color:var(--gold);margin-bottom:12px}.seat-label{font-size:12px;color:#cbb6dd}.seat-avatar{font-size:45px;margin:20px 0 12px}.seat h3{margin:0 0 12px}.seat button{margin-top:auto}.lobby-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:28px 0}.lobby-self{display:flex;align-items:center;gap:15px}.lobby-self select{margin-top:8px;padding:8px;width:185px}.lobby-self .muted{display:block;margin-top:6px}.lobby-start{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:end}.lobby-start small{width:100%;text-align:right;font-size:11px}.jury-bench{padding:28px 0;border-top:1px solid var(--line)}.jury-bench>span{font-size:10px;letter-spacing:2px;color:#a48bb9}.jury-avatars{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}.jury-avatars>span{font-size:24px}.jury-avatars small{font-size:12px}.table-actions{display:flex;gap:10px;align-items:center}.icon-button{padding:8px 12px;border-color:transparent;background:transparent;font-size:22px}.round-dot{padding:0 8px;color:#745b89}.game-table{position:relative;min-height:500px;margin:30px 0 20px}.table-surface{position:absolute;left:14%;right:14%;top:35px;bottom:20px;border-radius:48%;border:1px solid #a67d473f;background:radial-gradient(ellipse at center,#40304a,#251f32 65%,#1b1825);box-shadow:inset 0 0 0 12px #100f1622,inset 0 0 0 13px #a67d4724,0 25px 65px #0004;overflow:hidden}.blue .table-surface{background:radial-gradient(ellipse,#2e424e,#1c2935 65%,#141d28)}.red .table-surface{background:radial-gradient(ellipse,#50313c,#30202c 65%,#201820)}.table-seal{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font-size:210px;color:#e6bf7808;pointer-events:none}.table-center{position:absolute;top:155px;left:22%;right:22%;text-align:center;z-index:1}.table-center .eyebrow{font-size:9px;color:#d0b78e}.table-center h2{font-size:27px;margin:16px 0;line-height:1.25}.turn-marker{min-height:20px;display:flex;gap:9px;align-items:center;justify-content:center;color:#baa8c9;font-size:12px}.play-dot{width:8px;height:8px;border:1px solid #ba9c6c;border-radius:50%}.play-dot.used{background:var(--gold)}.subtle-button{border:0;background:transparent;color:#bdaccb;padding:9px;font-size:12px}.table-player{position:absolute;width:184px;min-height:178px;text-align:center;background:linear-gradient(155deg,#2b2434,#18151f);border:1px solid #51415e;border-radius:18px;padding:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;z-index:2}.table-player:nth-child(1){left:calc(50% - 92px);top:0}.table-player:nth-child(2){left:1%;top:120px}.table-player:nth-child(3){right:1%;top:120px}.table-player:nth-child(4){left:22%;bottom:0}.table-player:nth-child(5){right:22%;bottom:0}.player-role{color:#c4aed6;font-size:10px;letter-spacing:.5px}.player-portrait{font-size:40px;margin:14px 0 8px}.table-player h3{margin:0 0 8px;font-size:15px}.player-character{color:#ad95c0;font-size:11px;line-height:1.6}.player-character>span{display:block;color:#ddbb8b}.table-player.speaking{border-color:var(--gold);box-shadow:0 0 24px #d5a6571c}.speaking-label{display:block;font-size:8px;letter-spacing:1.6px;color:var(--gold);margin-top:10px}.table-player.target-ready,.card-dragging .table-player{border-style:dashed;border-color:#c8a4ff}.table-player.target-ready:hover,.table-player.drop-hover{border-color:#edce91;background:#493554;transform:translateY(-5px);box-shadow:0 0 30px #c99aff33}.penalty-badge{margin-top:10px;color:#f0c583;background:#e39d3614;border-radius:6px;padding:7px;font-size:11px;line-height:1.5}.clear-penalty{border:0;padding:0 0 0 7px;color:#f0c583;background:transparent}.event-banner{max-width:700px;margin:26px auto;display:flex;gap:16px;align-items:center;justify-content:center;padding:15px;border-top:1px solid #72553a;border-bottom:1px solid #72553a;color:#e3c495}.event-banner>span{font-size:26px}.exhibit-strip{margin-top:32px;border-bottom:1px solid #302738;padding-bottom:22px}.strip-label{font-size:9px;letter-spacing:2px;color:#a68cbb;margin-bottom:14px}.strip-label>span{margin-left:6px;color:var(--gold)}.exhibits{display:flex;gap:12px;overflow-x:auto;padding:0 2px 8px}.exhibit{background:#221c2a;border:1px solid #51435d;border-radius:9px;padding:14px;min-width:175px;max-width:240px}.exhibit>span{display:block;font-size:10px;color:#b49ac9;margin-bottom:10px}.exhibit strong{font-size:13px;line-height:1.6;display:block}.exhibit small{display:block;font-size:10px;margin-top:10px}.exhibit.traits{border-color:#79604c}.table-empty{text-align:center;color:#574460;font-size:26px;line-height:1}.hand-area{padding:25px 0}.hand-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.hand-tabs{display:flex;gap:20px}.hand-tabs button{padding:10px 0;border:0;border-radius:0;background:transparent;color:#a48db7;border-bottom:2px solid transparent}.hand-tabs button.active{border-bottom-color:var(--gold);color:#f0d4a8}.hand-tabs button span{font-size:10px;margin-left:5px}.hand-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.character-token{font-size:11px;background:#201c29;border-color:#4b3c59;color:#c0a1d9}.character-token.revealed{color:#dbbc8c;border-color:#705839}.objection-button{color:#f4baaf;background:#40272e;border-color:#673c46;font-size:12px}.your-turn{font-size:9px;letter-spacing:1px;color:var(--gold)}.card-hand{display:flex;justify-content:center;align-items:end;gap:14px;min-height:218px;padding:8px 8px 14px}.playing-card{width:156px;min-height:205px;border:1px solid #776287;border-radius:12px;padding:20px 16px;position:relative;background:linear-gradient(140deg,#493458,#241e30);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:18px;color:#f7ecff;box-shadow:0 8px 16px #0003;text-align:center;touch-action:none;flex-shrink:0;user-select:none}.playing-card.traits{background:linear-gradient(140deg,#51412f,#2b2421);border-color:#92744c}.playing-card.penalties{background:linear-gradient(140deg,#67343b,#301c27);border-color:#9b5a64}.playing-card:hover:not(:disabled),.playing-card.chosen{transform:translateY(-12px);box-shadow:0 12px 28px #0005;border-color:#e9c888;background-color:#493554}.playing-card.chosen{outline:2px solid var(--gold);outline-offset:3px}.card-corner{position:absolute;top:9px;left:11px;font-size:18px;color:#d5b6ea}.card-type{font-size:8px;letter-spacing:2px;margin-top:8px;color:#dac2e9}.playing-card strong{font-size:14px;line-height:1.6;font-weight:650;overflow-wrap:anywhere}.card-symbol{font-size:28px;opacity:.5}.playing-card.resting:disabled{opacity:.7;filter:saturate(.7)}.drag-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-80%);background:#483454;color:#fff;border:2px solid var(--gold);border-radius:12px;padding:20px;max-width:180px;box-shadow:0 12px 35px #0008}.jury-area{text-align:center;padding:30px}.jury-area h2{margin:20px 0}.jury-faces{font-size:30px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:20px}.favorite-options,.vote-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:20px}.verdict-score{display:flex;justify-content:center;gap:30px}.verdict-score span{font-size:32px;color:var(--gold)}.verdict-score small{font-size:10px;display:block;margin-top:7px}.court-history{border-top:1px solid #302738;padding:20px 0;color:#aa94bb}.court-history summary{font-size:11px;cursor:pointer;letter-spacing:1px}.court-history summary>span{margin-left:8px;color:#e3bd7f}.court-history p{font-size:12px;padding:10px 0;margin:0;border-bottom:1px solid #2a2331}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:none;z-index:10001;padding:14px 20px;border:1px solid #b592cc;background:#32243f;color:#f3e4ff;box-shadow:0 10px 35px #0007;border-radius:10px;max-width:calc(100% - 30px);font-size:13px}
@media(min-width:1500px){.game-table{min-height:490px}.table-player{width:200px}.table-player:nth-child(1){left:calc(50% - 100px)}}
@media(max-width:900px){header{padding:0 20px}.lobby-screen,.game-screen{padding:24px 18px}.table-player{width:150px;padding:12px}.table-player:nth-child(1){left:calc(50% - 75px)}.table-player:nth-child(4){left:17%}.table-player:nth-child(5){right:17%}.table-center{left:24%;right:24%}.table-center h2{font-size:22px}.table-surface{left:8%;right:8%}.game-heading h1{font-size:26px}.seat{width:170px}.hand-tools{gap:8px}}
@media(max-width:600px){header{height:64px;padding:0 14px}.brand{font-size:15px}.room-code{display:none}header button{font-size:11px;padding:8px 10px}.workshop{padding:26px 16px}.workshop-heading h1{font-size:31px}.pack-grid{grid-template-columns:1fr}.top{align-items:start;flex-direction:column}.game-heading{align-items:start;flex-direction:column;gap:16px}.game-heading h1{font-size:26px;line-height:1.25}.table-actions{width:100%;flex-wrap:wrap}.table-actions button{flex:1;font-size:12px}.table-actions .icon-button{flex:0}.game-table{display:flex;flex-direction:column;min-height:0;margin-top:8px}.table-surface{position:relative;left:auto;right:auto;top:auto;bottom:auto;min-height:230px;border-radius:30px;margin-bottom:16px}.table-center{top:40px;left:15px;right:15px}.table-center h2{font-size:26px;margin:16px 0}.table-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.table-player:nth-child(n){position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;min-height:175px}.table-player:nth-child(1){grid-column:1/-1;display:grid;grid-template-columns:60px 1fr;text-align:left;min-height:100px;align-items:center;column-gap:12px}.table-player:nth-child(1) .player-portrait{grid-column:1;grid-row:1/5;margin:0}.table-player:nth-child(1) .player-role,.table-player:nth-child(1) h3,.table-player:nth-child(1) .player-character,.table-player:nth-child(1) .speaking-label,.table-player:nth-child(1) .penalty-badge{grid-column:2}.table-player h3{font-size:14px}.lobby-seats{gap:12px;padding:12px 0 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.seat{width:auto;min-height:225px;padding:16px}.seat:first-child{grid-column:1/-1;min-height:200px}.seat-avatar{margin:12px 0}.lobby-footer{align-items:stretch;flex-direction:column}.lobby-start{justify-content:start}.lobby-start small{text-align:left}.lobby-start button{flex:1;padding:12px}.join-form{display:block}.join-form button{width:100%}.entry-screen{margin:25px auto}.hand-heading{gap:8px}.hand-tools{width:100%;justify-content:space-between}.character-token{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-hand{justify-content:flex-start;overflow-x:auto;gap:12px;padding:16px 4px 20px}.playing-card{width:142px;min-height:195px}.objection-button{padding:8px 10px}.your-turn{font-size:8px}.exhibit-strip{margin-top:20px}.jury-area{padding:24px 4px}.card-hand::-webkit-scrollbar{height:4px}.card-hand::-webkit-scrollbar-thumb{background:#665075;border-radius:8px}}
.pack-dialog,.launch-dialog{color:#eeeaf7;background:#1b1723;border:1px solid #59426d;border-radius:18px;padding:0;max-width:1000px;width:calc(100% - 28px);max-height:90vh}.pack-dialog::backdrop,.launch-dialog::backdrop{background:#07050dbb;backdrop-filter:blur(5px)}.editor-head{padding:24px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #3e314a}.editor-head h2{font-size:23px;margin:8px 0 0}.editor-head small{color:#b68ce9;font-size:11px;letter-spacing:2px}.editor-layout{display:grid;grid-template-columns:220px 1fr;min-height:390px}.editor-nav{padding:22px;background:#16111d;display:flex;flex-direction:column;gap:7px}.editor-nav button{background:transparent;border:0;text-align:left;display:flex;justify-content:space-between;gap:8px}.editor-nav button.selected{background:#48325e;color:#e6d3ff}.editor-nav .notice{padding:10px}.editor-body{padding:28px;max-height:53vh;overflow-y:auto}.editor-body>p{line-height:1.8}.editor-body h2{font-size:22px}.card-edit-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.card-edit-row>span{font-size:12px;color:#a28bb8;width:20px}.card-edit-row input{flex:1;min-width:0}.card-edit-row button{background:transparent;padding:10px}.add-card{width:100%;border-style:dashed;margin-top:12px}.bulk-add{margin-top:22px}.bulk-add summary{color:#bca0d8;cursor:pointer}.editor-footer{padding:20px 28px;border-top:1px solid #3e314a;display:flex;justify-content:space-between;align-items:center;gap:20px}.editor-footer small{max-width:320px;line-height:1.7}.pack-help{background:#30243f;border-left:3px solid #bd8aff;border-radius:6px;padding:16px;line-height:1.8;color:#d0b7e8;margin-top:24px}#editor-error{color:#ffb1b1;padding:0 28px 12px}.launch-dialog{max-width:480px;padding:28px}.launch-dialog h2{margin:20px 0}.launch-dialog .row{justify-content:end;margin-top:24px}@media(max-width:650px){.workshop>h1{font-size:30px}.pack-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:1fr}.editor-nav{flex-direction:row;flex-wrap:wrap;padding:12px}.editor-nav .notice{display:none}.editor-body{padding:18px;max-height:42vh}.editor-footer{padding:18px;flex-direction:column;align-items:stretch}.editor-footer .row{justify-content:end}.editor-head{padding:18px}.editor-head h2{font-size:18px}}
.table-player h3,.seat h3,.case-description,.exhibit strong{overflow-wrap:anywhere}.table-center h2{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.canvas-shell{min-height:calc(100dvh - 72px);display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#302330,#0a0b12 75%);overflow:hidden}.canvas-stage{width:min(100%,calc((100dvh - 76px)*1.6));position:relative;flex:none;isolation:isolate}.canvas-stage canvas{display:block;touch-action:none;outline:none}.canvas-stage canvas:focus-visible{outline:2px solid #edca87;outline-offset:-5px}.canvas-access{position:absolute;inset:0;pointer-events:none;overflow:hidden}.canvas-a11y{position:absolute;width:1px;height:1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap;pointer-events:none}.canvas-a11y:focus-visible{clip-path:none;width:auto;height:auto;left:25%;right:25%;bottom:4px;padding:10px;z-index:5;pointer-events:auto;background:#35263f;border:1px solid #edca87;color:#fff}.role-options{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.launch-dialog details{margin:18px 0;line-height:1.6}.launch-dialog details summary{cursor:pointer;color:#d9bc89}.launch-dialog>button{margin-top:20px}@media(max-width:650px){.canvas-shell{min-height:calc(100dvh - 64px);align-items:start;padding-top:8px}.canvas-stage{width:100%}}
