.fd-page{max-width:42rem;min-height:100dvh;padding:calc(12px + var(--safe-top)) var(--gutter) calc(40px + var(--safe-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex}.fd-header{align-items:center;gap:10px;min-height:44px;display:flex}.fd-back{min-height:44px;color:var(--ink-700);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650;text-decoration:none}.fd-spacer{flex:1}.fd-timer{color:var(--ink-700);font-size:var(--text-s);font-variant-numeric:tabular-nums;font-weight:650}.fd-link{min-height:44px;color:var(--ink-700);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0 4px;font-weight:650;text-decoration:underline}.fd-intro{flex-direction:column;gap:14px;padding-top:8px;display:flex}.fd-title{font-size:var(--text-2xl)}.fd-lead{font-size:var(--text-l)}.fd-small{color:var(--text-muted);font-size:var(--text-s)}.fd-levels{margin:4px 0 0}.fd-start{flex-wrap:wrap;gap:10px;display:flex}.fd-learn{border-radius:var(--radius-l);background:var(--paper);box-shadow:var(--shadow-card);gap:12px;margin-top:10px;padding:18px;display:grid}.fd-learn__title{font-size:var(--text-xl)}.fd-lessons{gap:8px;margin:0;padding:0;list-style:none;display:grid}.fd-lesson-row{border-radius:var(--radius-m);background:var(--chalk);width:100%;min-height:56px;color:var(--ink-900);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:12px;padding:10px 14px;display:flex}.fd-lesson-row:hover{box-shadow:inset 0 0 0 2px var(--ink-200)}.fd-lesson-row.is-next{background:var(--marigold-100);box-shadow:inset 0 0 0 2px var(--marigold)}.fd-lesson-row__n{background:var(--paper);width:32px;height:32px;color:var(--ink-700);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.fd-lesson-row__text{gap:2px;display:grid}.fd-lesson-row__title{font-weight:700}.fd-lesson-row__blurb{color:var(--text-muted);font-size:var(--text-s)}.fd-diagram{border-radius:var(--radius-l);background:var(--paper);box-shadow:var(--shadow-card);gap:10px;padding:18px;display:grid;position:relative}.fd-diagram__level{color:var(--text-muted);font-size:var(--text-xs);justify-self:center;font-weight:650}.fd-hand{flex-direction:column;align-items:center;gap:2px;display:flex}.fd-hand__seat{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:650}.fd-hand__cards{font-family:var(--font-display);letter-spacing:.04em;font-size:clamp(1.7rem,1.2rem + 2.4vw,2.3rem);font-weight:800}.fd-spade{color:var(--ink-900)}.fd-diagram__middle{color:var(--text-muted);font-size:var(--text-s);justify-content:space-between;align-items:center;gap:8px;display:flex}.fd-diagram__need{background:var(--chalk);color:var(--ink-900);text-align:center;border-radius:999px;padding:6px 12px}.fd-diagram__missing{color:var(--text-muted);font-size:var(--text-s);text-align:center}.fd-step{gap:10px;display:grid}.fd-step__title{font-family:var(--font-body);font-size:var(--text-l);letter-spacing:0;font-weight:700}.fd-options{gap:8px;display:grid}.fd-chances{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.fd-option{border-radius:var(--radius-m);background:var(--paper);min-height:56px;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink-900);font:inherit;font-size:var(--text-m);text-align:left;cursor:pointer;transition:box-shadow var(--dur-fast), background-color var(--dur-fast);border:0;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:flex;position:relative}.fd-option__key{background:var(--chalk);width:26px;height:26px;color:var(--ink-500);font-size:var(--text-xs);border-radius:8px;flex:none;place-items:center;font-weight:750;display:grid}@media (hover:hover){.fd-option:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--marigold-600);background:var(--marigold-100)}}.fd-option:disabled{cursor:default}.fd-option--chance{font-size:var(--text-l);font-variant-numeric:tabular-nums;text-align:center;justify-content:center;padding:12px 6px}.fd-option--chance .fd-option__key{border-radius:5px;width:18px;height:18px;font-size:.7rem;position:absolute;top:5px;left:5px}.fd-option.is-right{box-shadow:inset 0 0 0 2px var(--mint-700);background:#e3f8ee}.fd-option.is-wrong{background:var(--marigold-100);box-shadow:inset 0 0 0 2px var(--marigold-600)}.fd-option.is-dim{opacity:.5}.fd-note{border-radius:var(--radius-m);background:var(--paper);box-shadow:var(--shadow-card);gap:12px;padding:16px;display:grid}.fd-note__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.fd-note__verdict{font-weight:750}.fd-note__verdict.is-right{color:var(--mint-700)}.fd-note__lines{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fd-note__lines li{border-radius:var(--radius-s);background:var(--chalk);justify-content:space-between;gap:12px;padding:8px 12px;display:flex}.fd-note__lines li.is-best{background:#e3f8ee}.fd-note__lines b{font-variant-numeric:tabular-nums;flex:none}.fd-note__replay{justify-self:start}.fd-review{gap:12px;margin:0;padding:0;list-style:none;display:grid}.fd-review li{border-radius:var(--radius-m);background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--line);gap:2px;padding:12px 14px;display:grid}.fd-table{--card-w:2.15rem;--card-h:2.9rem;border-radius:var(--radius-l);background:var(--chalk);box-shadow:inset 0 0 0 1.5px var(--line);grid-template-columns:minmax(0,1fr) 8.5rem minmax(0,1fr);grid-template-areas:".n.""w t e"".s.";align-items:center;gap:10px 6px;padding:14px 10px;display:grid}.fd-seat{gap:4px;min-width:0;display:grid}.fd-seat--n{grid-area:n;justify-items:center}.fd-seat--s{grid-area:s;justify-items:center}.fd-seat--w{grid-area:w;justify-items:end}.fd-seat--e{grid-area:e;justify-items:start}.fd-seat__label{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.fd-seat__cards{width:100%;min-height:var(--card-h);flex-wrap:wrap;gap:4px;display:flex}.fd-seat--n .fd-seat__cards,.fd-seat--s .fd-seat__cards{justify-content:center}.fd-seat--w .fd-seat__cards{justify-content:flex-end}.fd-seat--w .fd-seat__label{justify-self:end}.fd-seat__hidden,.fd-seat__none{min-width:var(--card-w);height:var(--card-h);color:var(--ink-300);font-size:var(--text-s);place-items:center;font-weight:700;display:grid}.fd-seat__hidden{background:repeating-linear-gradient(135deg, var(--ink-700) 0 6px, var(--ink-800) 6px 12px);color:var(--paper);border-radius:8px}.fd-card{width:var(--card-w);height:var(--card-h);background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--ink-200), 0 1px 0 #1a144614;color:var(--ink-900);border-radius:8px;flex:none;align-content:center;place-items:center;line-height:1;display:inline-grid}.fd-card.is-red{color:var(--coral-700)}.fd-card__rank{font-family:var(--font-display);font-size:1.05rem;font-weight:800}.fd-card__suit{font-size:.95rem}.fd-card--none{box-shadow:inset 0 0 0 1.5px var(--ink-200);background:0 0}.fd-card-button{font:inherit;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:9px;padding:0}.fd-card-button .fd-card{box-shadow:inset 0 0 0 2px var(--ink-300), 0 2px 0 #1a14461f}@media (hover:hover){.fd-card-button:hover{transform:translateY(-3px)}}.fd-card-button:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}.fd-card-button.is-right .fd-card{box-shadow:inset 0 0 0 2.5px var(--mint-700);background:#e3f8ee}.fd-card-button.is-wrong .fd-card{box-shadow:inset 0 0 0 2.5px var(--marigold-600);background:var(--marigold-100)}.fd-trick{background:var(--paper);width:8.5rem;height:8.5rem;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:50%;grid-area:t;justify-self:center;position:relative}.fd-trick__trumps{background:var(--ink-900);color:var(--paper);font-size:var(--text-xs);border-radius:999px;padding:3px 9px;font-weight:700;position:absolute;top:-10px;right:-14px}.fd-trick__trumps.is-red{background:var(--coral-700)}.fd-trick__centre{height:100%;color:var(--text-muted);font-size:var(--text-xs);text-align:center;place-items:center;padding:10px;display:grid}.fd-trick__slot{border-radius:10px;position:absolute}.fd-trick__slot--n{top:6px;left:50%;translate:-50%}.fd-trick__slot--s{bottom:6px;left:50%;translate:-50%}.fd-trick__slot--w{top:50%;left:8px;translate:0 -50%}.fd-trick__slot--e{top:50%;right:8px;translate:0 -50%}.fd-trick__slot.is-winner .fd-card{box-shadow:0 0 0 3px var(--marigold), 0 6px 14px -6px #1a144680}.fd-trick__slot .fd-card--played{animation:fd-land var(--dur-med) var(--ease-out) both}.fd-trick__slot--n .fd-card--played{--from:0 -14px}.fd-trick__slot--s .fd-card--played{--from:0 14px}.fd-trick__slot--w .fd-card--played{--from:-14px 0}.fd-trick__slot--e .fd-card--played{--from:14px 0}@keyframes fd-land{0%{translate:var(--from,0 0)}to{translate:0}}.fd-playback{gap:10px;display:grid}.fd-playback__bar{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.fd-playback__count,.fd-playback__score{color:var(--ink-700);font-size:var(--text-s);font-variant-numeric:tabular-nums;font-weight:650}.fd-playback__play{margin-left:auto}.fd-playback__story{gap:4px;min-height:3em;display:grid}.fd-playback__result{font-weight:750}.fd-playback__summary{border-radius:var(--radius-m);background:var(--marigold-100);padding:10px 14px;font-weight:600}.fd-replay{border-top:1.5px solid var(--line);gap:12px;padding-top:4px;display:grid}.fd-replay__tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.fd-replay__tab{border-radius:var(--radius-m);background:var(--chalk);color:var(--ink-900);font:inherit;text-align:left;cursor:pointer;border:0;align-content:start;gap:2px;padding:10px 12px;display:grid}.fd-replay__tab[aria-selected=true]{background:var(--paper);box-shadow:inset 0 0 0 2px var(--ink-900)}.fd-replay__tab-kind{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.fd-replay__tab-label{font-size:var(--text-s);font-weight:650}.fd-replay__tab-result{font-size:var(--text-s);font-weight:750}.fd-replay__tab-result.is-made{color:var(--mint-700)}.fd-lesson{gap:14px;display:grid}.fd-lesson__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fd-lesson__title{font-size:var(--text-xl)}.fd-lesson__count{color:var(--text-muted);font-size:var(--text-s);font-variant-numeric:tabular-nums;flex:none;font-weight:650}.fd-phases{gap:6px;margin:0;padding:0;list-style:none;display:flex}.fd-phases li{background:var(--chalk);color:var(--text-muted);font-size:var(--text-xs);text-align:center;border-radius:999px;flex:1;padding:6px 4px;font-weight:700}.fd-phases li.is-current{background:var(--ink-900);color:var(--paper)}.fd-lesson__text{font-size:var(--text-l)}.fd-hint{border-radius:var(--radius-m);background:var(--chalk);color:var(--ink-700);padding:10px 14px}.fd-feedback{border-radius:var(--radius-m);padding:10px 14px;font-weight:600}.fd-feedback.is-right{background:#e3f8ee}.fd-feedback.is-wrong{background:var(--marigold-100)}.fd-lesson__nav{justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.fd-lesson--done{padding-top:12px}.fd-triangle{border-radius:var(--radius-l);background:var(--chalk);gap:6px;padding:14px 10px;display:grid;overflow-x:auto}.fd-triangle__row{border-radius:999px;justify-content:center;gap:6px;padding:3px 0;display:flex;position:relative}.fd-triangle__row.is-highlight{background:var(--marigold-100);box-shadow:inset 0 0 0 2px var(--marigold)}.fd-triangle__n{color:var(--ink-300);font-size:var(--text-xs);font-weight:700;position:absolute;top:50%;left:8px;translate:0 -50%}.fd-triangle__cell{background:var(--paper);font-variant-numeric:tabular-nums;border-radius:8px;place-items:center;min-width:2.2rem;height:2rem;font-weight:750;display:grid}.fd-triangle__cell.is-blank{background:var(--marigold)}.fd-splits{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.fd-splits th,.fd-splits td{border-bottom:1px solid var(--line);text-align:right;padding:7px 8px}.fd-splits th:first-child{text-align:left}.fd-splits thead th{color:var(--text-muted);font-size:var(--text-xs);font-weight:700}@media (width<=380px){.fd-table{--card-w:1.95rem;--card-h:2.65rem;grid-template-columns:minmax(0,1fr) 7.4rem minmax(0,1fr);padding:12px 6px}.fd-trick{width:7.4rem;height:7.4rem}.fd-option--chance{font-size:var(--text-m)}}@media (width>=700px){.fd-table{--card-w:2.6rem;--card-h:3.5rem;grid-template-columns:minmax(0,1fr) 11rem minmax(0,1fr);padding:18px 14px}.fd-trick{width:11rem;height:11rem}.fd-card__rank{font-size:1.25rem}.fd-card__suit{font-size:1.1rem}}
