.ec-piece{filter:drop-shadow(0 2px 1.5px #00000073);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.ec-piece svg{display:block;overflow:visible}.ec-piece-mark{font-family:var(--font-ui);pointer-events:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.ec-die{filter:drop-shadow(0 2px 2px #00000059);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.ec-die svg{display:block;overflow:visible}.ec-die-mark{font-family:var(--font-ui);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ec-die-roll{animation:.16s linear infinite ec-tumble}@keyframes ec-tumble{0%{transform:rotate(0)translate(0)}25%{transform:rotate(14deg)translate(2px,-3px)}50%{transform:rotate(-8deg)translate(-2px,1px)}75%{transform:rotate(10deg)translate(1px,2px)}to{transform:rotate(0)translate(0)}}.ec-cbadge{font-family:var(--font-ui);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid;border-radius:999px;align-items:center;gap:.15em;padding:0 .42em 0 0;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 1px 2px #00000059}.ec-cbadge.status{padding:0}.ec-cbadge-icon{border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ec-cbadge-val{font-family:var(--font-mono)}.ec-res{border:1px solid var(--line-strong);background:var(--panel);border-radius:3px;flex-direction:column;gap:6px;min-width:220px;padding:8px 10px;display:inline-flex}.ec-res-head{align-items:center;gap:6px;display:flex}.ec-res-name{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.ec-res-pools{flex-wrap:wrap;gap:6px 12px;display:flex}.ec-res-pool{align-items:center;gap:3px;display:inline-flex}.ec-res-gem{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #0000004d,0 1px #00000040}.ec-res-step{border:1px solid var(--btn-line);background:linear-gradient(var(--btn-top), var(--btn-bot));width:17px;height:17px;color:var(--ink-2);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;padding:0;font-size:10px;display:inline-flex}.ec-res-step:hover{border-color:var(--line-strong)}.ec-res-val{min-width:38px;font-family:var(--font-mono);justify-content:center;align-items:baseline;gap:2px;font-size:13px;display:inline-flex}.ec-res-max{cursor:pointer;color:var(--ink-2);border-bottom:1px dotted var(--line-strong)}.ec-res.compact{min-width:0;padding:4px 6px}.ec-preview{border:1px solid var(--line-strong);background:var(--panel-2);border-radius:3px;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;min-height:120px;padding:18px;display:flex}.ec-felt{background:radial-gradient(ellipse at 50% 40%, #ffffff12, transparent 70%), var(--felt);color:#efe6cf;border-color:#1a2a22;box-shadow:inset 0 0 30px #00000059}.ec-preview-caption{color:var(--muted);text-align:center;margin-top:4px;font-size:11px}.ec-felt .ec-preview-caption{color:#efe6cfb3}.ec-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.ec-split{grid-template-columns:minmax(300px,1.1fr) minmax(260px,1fr);align-items:start;gap:18px;display:grid}@media (width<=1150px){.ec-split,.ec-two{grid-template-columns:1fr}}.ec-title-input{font-family:var(--font-serif);font-weight:600;height:32px!important;font-size:19px!important}.ec-explain{color:var(--muted);font-size:12px;line-height:1.45}.ec-refs{margin:6px 0 0;padding-left:18px;font-size:12px}.ec-options{flex-direction:column;gap:5px;display:flex}.ec-option{border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;border-radius:3px;grid-template-columns:18px 1fr;gap:2px 8px;padding:7px 9px;display:grid}.ec-option:hover{border-color:var(--line-strong)}.ec-option.on{border-color:var(--select-line);background:color-mix(in srgb, var(--select) 45%, var(--panel))}.ec-option input{margin-top:2px}.ec-option .t{font-weight:600}.ec-option .d{color:var(--muted);grid-column:2;font-size:11.5px;line-height:1.35}.ec-chip{color:#efe6cf;background:#14100a8c;border:1px solid #00000073;border-radius:3px;align-items:center;gap:6px;height:28px;padding:0 4px 0 8px;font-size:12px;display:inline-flex}.ec-chip b{font-family:var(--font-mono);text-align:center;min-width:22px;font-size:14px}.ec-chip .ec-res-step{color:#efe6cf;background:#ffffff1a;border-color:#ffffff40}.ec-mini-card{aspect-ratio:63/88;background:#d8ccaa;border:3px solid #16130f;border-radius:5px;width:92px;position:relative;box-shadow:0 3px 8px #00000073}.ec-mini-card .ec-cbadge{position:absolute}.ov-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;max-width:1280px;display:grid}@media (width<=1100px){.ov-grid{grid-template-columns:1fr}}.ov-strip{gap:10px;padding:4px 2px 10px;display:flex;overflow-x:auto}.ov-strip .cf{cursor:pointer;transition:transform .12s;box-shadow:0 2px 6px #281e0a40}.ov-strip .cf:hover{transform:translateY(-3px)}.ov-stats{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.ov-stat{border:1px solid var(--line);background:var(--panel-2);border-radius:3px;padding:8px 10px}.ov-stat .v{font-family:var(--font-serif);font-size:24px;font-weight:600;line-height:1}.ov-stat .l{color:var(--muted);margin-top:3px;font-size:11px}.ov-check{flex-direction:column;gap:4px;display:flex}.ov-check-item{border:1px solid var(--line-soft);background:var(--panel-2);align-items:flex-start;gap:8px;padding:5px 7px;font-size:12px;line-height:1.35;display:flex}.ov-check-item.error{background:color-mix(in srgb, var(--danger) 7%, var(--panel-2))}.ov-check-item.warn{background:color-mix(in srgb, var(--warn) 8%, var(--panel-2))}.ov-check-item .ic{flex:none;margin-top:1px}.ov-check-item.error .ic{color:var(--danger)}.ov-check-item.warn .ic{color:var(--warn)}.ov-check-item.ok .ic{color:var(--ok)}.ov-check-item a,.ov-comp-row{cursor:pointer}.ov-comp-row td:first-child{font-weight:500}.dk-builder{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}@media (width<=1150px){.dk-builder{grid-template-columns:1fr}}.dk-col{flex-direction:column;height:440px;min-height:0;display:flex}.dk-col .panel-head{flex:none}.dk-scroll{background:var(--panel);flex:1;min-height:0;overflow:auto}.dk-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:6px;min-height:27px;padding:2px 6px 2px 8px;font-size:12.5px;display:flex}.dk-row:hover{background:var(--hover)}.dk-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dk-row.pool{cursor:pointer}.dk-row.missing{color:var(--danger)}.dk-count{text-align:center;min-width:22px;font-family:var(--font-mono);font-weight:600}.dk-group-head{background:var(--panel-3);border-bottom:1px solid var(--line);letter-spacing:.06em;text-transform:uppercase;height:24px;color:var(--ink-2);z-index:1;align-items:center;gap:6px;padding:0 8px;font-size:11px;font-weight:600;display:flex;position:sticky;top:0}.dk-thumbs{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;padding:8px;display:grid}.dk-thumb{cursor:pointer;flex-direction:column;align-items:center;display:flex;position:relative}.dk-thumb:hover .cf{outline:2px solid var(--select-line);outline-offset:1px}.dk-thumb .in-deck{z-index:2;position:absolute;top:-4px;right:-4px}.dk-foot{border-top:1px solid var(--line);background:var(--panel-2);flex-wrap:wrap;flex:none;align-items:center;gap:4px 10px;padding:6px 8px;font-size:11.5px;display:flex}.dc-faces{flex-wrap:wrap;gap:8px;display:flex}.dc-face-cell{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:10.5px;display:flex}.dc-roll-result{align-items:center;gap:10px;min-height:64px;display:flex}.dc-history{font-family:var(--font-mono);flex-wrap:wrap;gap:4px;font-size:11.5px;display:flex}.dc-history span{border:1px solid var(--line);background:var(--panel-2);border-radius:2px;padding:1px 5px}.dc-quick{grid-template-columns:repeat(6,1fr);gap:3px;display:grid}.dc-quick .btn{padding:0}.mt-preview{border:1px solid var(--line-strong);background-position:50%;background-size:cover;border-radius:3px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #0000004d}.mt-zone{color:#fff8e6e6;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:#0000001f;border:1px dashed #fff8e6bf;border-radius:3px;padding:2px 4px;font-size:10px;position:absolute;overflow:hidden}
