/* Original paired mechanics: a ribbon workshop and a ranked-vote forum. */
.lf-board,.lf-controls,.lf-preview-card{--lf-bg:#10202c;--lf-panel:#172c39;--lf-line:#405361;--lf-ink:#f3f1e8;--lf-muted:#c2ced5;--lf-gold:#f2cf87;color:var(--lf-ink);font-family:inherit;box-sizing:border-box}
.lf-board *,.lf-controls *,.lf-preview-card *{box-sizing:border-box}
.lf-board{background:linear-gradient(145deg,#132b36,#10202c 65%);border:1px solid var(--lf-line);border-radius:20px;padding:clamp(16px,3vw,28px);margin-block:16px;overflow-wrap:anywhere}
.lf-heading{padding-bottom:14px;border-bottom:1px solid var(--lf-line)}
.lf-heading h3{font-size:clamp(1.45rem,3vw,2.1rem);line-height:1.15;color:var(--lf-gold);margin:8px 0 12px}
.lf-heading p,.lf-preview-card>p{color:var(--lf-muted);line-height:1.65;max-width:76ch}
.lf-kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:750;color:#a9ded7}
.lf-stage{padding-block:20px}
.lf-stage h4,.lf-illustration h4{font-size:.94rem;line-height:1.5;margin:12px 0 9px;color:var(--lf-gold)}
.lf-loom-layout,.lf-forum-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(18px,3vw,34px);align-items:center}
.lf-loom-art{width:100%;max-width:430px;height:auto;display:block;justify-self:center;filter:drop-shadow(0 14px 22px #0004)}
.lf-loom-key{min-width:0}
.lf-measure{border-left:3px solid #8ee8dc;padding:10px 14px;background:#8ee8dc0d;line-height:1.5}
.lf-measure strong{font-size:1.8rem;display:inline-block;margin-inline-start:8px;color:#a0f4e7}
.lf-chords,.lf-crossings,.lf-duels,.lf-ballots{list-style:none;padding:0;margin:0}
.lf-chords{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;font-size:.9rem}
.lf-chords li{display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.5}
.lf-swatch{display:inline-block;width:18px;height:5px;border-radius:3px;background:var(--lf-ribbon);flex-shrink:0}
.lf-crossings{display:flex;gap:6px;flex-wrap:wrap}
.lf-crossings li{border:1px solid var(--lf-line);border-radius:8px;padding:4px 8px;font-size:.78rem;background:#091924}
.lf-explainer,.lf-table-note,.lf-demo-note,.lf-funding-note{font-size:.85rem;line-height:1.65;color:var(--lf-muted);margin-block:12px}
.lf-forum-layout{align-items:start}
.lf-ballots{display:grid;gap:7px}
.lf-ballots>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;background:#0b1c28;border:1px solid var(--lf-line);padding:8px 11px;border-radius:10px}
.lf-ballot-label{font-size:.79rem;color:var(--lf-muted)}
.lf-ranking{list-style:none;display:flex;gap:10px;padding:0;margin:0;align-items:center}
.lf-ranking li{display:flex;gap:5px;align-items:center}
.lf-rank-number{font-size:.7rem;color:var(--lf-muted)}
.lf-candidate{display:grid;place-items:center;min-width:28px;min-height:30px;border-radius:6px;font-size:1.05rem;border:1px solid #93c3c4;color:#d1faf4;background:#193a44}
.lf-candidate-1{border-color:#ddc080;background:#413623;color:#ffdfa2}
.lf-candidate-2{border-color:#bcace5;background:#312a46;color:#e0d6ff}
.lf-duels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.lf-duels li{font-size:.8rem;text-align:center;border:1px solid #6a8279;border-radius:9px;background:#18392f;padding:9px 5px;line-height:1.7}
.lf-duels li span{display:block;font-size:1.2rem;font-variant-numeric:tabular-nums;letter-spacing:.08em}
.lf-forum-empty{min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:var(--lf-muted)}
.lf-candidates{display:flex;gap:20px}
.lf-candidates span{border:2px solid #c9b680;display:grid;place-items:center;border-radius:14px;width:62px;height:72px;color:#f4d598;font-size:2rem;background:#1d3443}
.lf-table-wrap{overflow-x:auto;max-width:100%;border-radius:10px}
.lf-matrix,.lf-paytable{border-collapse:collapse;width:100%;font-size:.86rem;margin-block:14px;color:var(--lf-ink)}
.lf-matrix caption,.lf-paytable caption{text-align:left;font-size:.84rem;color:var(--lf-muted);line-height:1.6;padding-bottom:9px}
.lf-matrix th,.lf-matrix td,.lf-paytable th,.lf-paytable td{border:1px solid var(--lf-line);padding:9px 11px}
.lf-matrix th,.lf-paytable thead th{background:#203746;color:#f5d99c}
.lf-matrix td{text-align:center;font-variant-numeric:tabular-nums;font-weight:700;background:#0e202e}
.lf-paytable th{text-align:left;font-weight:600}
.lf-paytable td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.lf-paytable tbody tr:nth-child(odd){background:#0a1a2560}
.lf-result,.lf-pending{border:1px solid #738d91;background:#183139;border-radius:13px;padding:18px;margin-top:18px}
.lf-result h4,.lf-pending h4{font-size:1.08rem;line-height:1.5;color:#e6f3f0;margin:0 0 10px}
.lf-result p,.lf-pending p{font-size:.9rem;line-height:1.65;margin-block:8px}
.lf-result-win{border-color:#b1cd8d;background:#243a2c}
.lf-result-partial,.lf-result-even{border-color:#bbaa7a;background:#373526}
.lf-result-empty{border-color:#8295a2;background:#1b2e3b}
.lf-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 12px}
.lf-totals>div{padding:12px 10px;background:#08152066;border-radius:9px}
.lf-totals dt{font-size:.77rem;line-height:1.45;color:#c6d4db}
.lf-totals dd{margin:7px 0 0;font-size:clamp(1rem,2.6vw,1.45rem);line-height:1.35;font-weight:750;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.lf-result .lf-outcome-note{font-weight:700;font-size:1rem;color:#f8e5bd}
.lf-rules{border-top:1px solid var(--lf-line);padding-top:14px;margin-top:16px}
.lf-rules summary{cursor:pointer;font-weight:650;color:#f5d99c;line-height:1.5;padding:8px 2px}
.lf-rules>p{line-height:1.8;font-size:.88rem;color:var(--lf-muted)}
.lf-demo-note{margin-bottom:0}
.lf-controls{border:1px solid #53616b;border-radius:15px;background:#132632;padding:16px;margin-block:16px}
.lf-choices{border:0;margin:0;padding:0;min-width:0}
.lf-choices legend{padding:0 0 11px;font-size:.93rem;line-height:1.5;font-weight:700;color:#f3d799}
.lf-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.lf-choice{min-height:48px;padding:11px 14px;border:1px solid #7f929f;border-radius:10px;background:#1c3241;color:#e7eef2;line-height:1.45;font:inherit;font-size:.9rem;cursor:pointer;overflow-wrap:anywhere}
.lf-choice:hover:not(:disabled){background:#294657;border-color:#d2c68f}
.lf-choice.lf-selected{background:#ead39a;color:#17242f;border-color:#fff0bd;box-shadow:inset 0 0 0 1px #806b42;font-weight:750}
.lf-choice:disabled{cursor:default;opacity:.75}
.lf-play{display:block;min-height:48px;width:100%;font-weight:750;margin-top:13px}
.lf-play:disabled{opacity:.55;cursor:not-allowed}
.lf-error{border:1px solid #d9a1a1;color:#ffe0d9;background:#462d36;border-radius:10px;padding:14px;line-height:1.7}
.lf-rules summary:focus-visible,.lf-choice:focus-visible,.lf-play:focus-visible,.lf-preview-link:focus-visible{outline:3px solid #91efdc;outline-offset:4px}
.lf-cover{display:block;width:100%;height:auto;aspect-ratio:32/15;border-radius:15px;margin-block:15px;overflow:hidden}
.lf-illustration{color:#f3f1e8;background:#10202c;border:1px solid #405361;padding:clamp(12px,2.5vw,20px);border-radius:14px}
.lf-preview-title{font-size:clamp(1.6rem,3.5vw,2.7rem);line-height:1.2}
.lf-preview-note{line-height:1.8;max-width:85ch;color:#c4d1d9}
.lf-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:22px;align-items:start;margin-top:24px}
.lf-preview-card{background:#10202c;border:1px solid #43586a;border-radius:20px;padding:clamp(16px,2vw,26px);min-width:0;overflow-wrap:anywhere}
.lf-preview-card>h3{color:#f2cf87;font-size:1.45rem;line-height:1.3;margin:0}
.lf-preview-card .lf-loom-layout,.lf-preview-card .lf-forum-layout{grid-template-columns:1fr;gap:16px}
.lf-preview-card .lf-loom-art{max-width:310px}
.lf-fixed-caption{font-size:.8rem;line-height:1.7;color:#afc3cc;border-left:3px solid #84b9b1;padding-left:10px}
.lf-preview-link{display:inline-flex;align-items:center;min-height:48px;color:#fff2c4;line-height:1.5;border:1px solid #8e866d;border-radius:9px;padding:10px 14px;margin-top:16px;text-decoration:none}
.lf-preview-link:hover{background:#29403f}
@media(max-width:620px){.lf-loom-layout,.lf-forum-layout{grid-template-columns:1fr;gap:15px}.lf-loom-art{max-width:315px}.lf-totals{grid-template-columns:1fr}.lf-totals>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.lf-totals dd{margin:0}.lf-board{padding:15px}.lf-choice-grid{grid-template-columns:1fr}.lf-paytable th,.lf-paytable td{padding:8px;font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.lf-board *,.lf-controls *,.lf-preview-card *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.lf-loom-art{filter:none}}
@media(forced-colors:active){.lf-selected{outline:2px solid Highlight}.lf-choice:disabled{opacity:1}.lf-swatch{border:1px solid CanvasText}.lf-result,.lf-pending,.lf-controls{border:1px solid CanvasText}}
