.bb-learn{--bb-paper:#F7F6F1;--bb-paper-deep:#EFEDE5;--bb-ink:#131210;--bb-ink-soft:#5A5850;--bb-pencil:#A9A69D;--bb-pencil-line:#C9C6BB;--bb-highlighter:#D4F034;--bb-highlighter-acid:#D4F034;--bb-highlighter-rose:#FFB3C1;--bb-highlighter-amber:#FFD66B;--bb-highlighter-teal:#93E9D0;--bb-exam-red:#E4483C;--bb-exam-red-text:#B23B30;--bb-action:#2F3A8C;--bb-night:#14130F;--bb-night-paper:#1D1B16;--bb-night-lime:#B8D62A;--bb-font-display:var(--bb-font-display-var,"Playfair Display"),Georgia,serif;--bb-font-body:var(--bb-font-body-var,"Source Serif 4"),Georgia,serif;--bb-font-mono:var(--bb-font-mono-var,"IBM Plex Mono"),ui-monospace,SFMono-Regular,monospace;--bb-font-ui:var(--bb-font-ui-var,"Inter"),system-ui,-apple-system,"Segoe UI",sans-serif;--bb-fs-micro:13px;--bb-fs-label:14px;--bb-fs-meta:15px;--bb-fs-body:16.5px;--bb-fs-lede:18px;--bb-fs-h3:21px;--bb-fs-h2:26px;--bb-fs-h1:32px;--bb-fs-display:44px;--bb-fs-hero:60px;--bb-fs-mega:76px;--bb-fs-11:var(--bb-fs-micro);--bb-fs-13:var(--bb-fs-label);--bb-fs-14:var(--bb-fs-meta);--bb-fs-15:var(--bb-fs-body);--bb-fs-17:var(--bb-fs-lede);--bb-fs-21:var(--bb-fs-h3);--bb-fs-24:var(--bb-fs-h2);--bb-fs-28:var(--bb-fs-h1);--bb-fs-40:var(--bb-fs-display);--bb-fs-56:var(--bb-fs-hero);--bb-fs-76:var(--bb-fs-mega);--bb-lh-tight:1.15;--bb-lh-snug:1.3;--bb-lh-normal:1.5;--bb-lh-relaxed:1.65;--bb-lh-loose:1.8;--bb-control-sm:40px;--bb-control-md:40px;--bb-control-lg:48px;--bb-tap-min:44px;--bb-track-mono:0.12em;--bb-track-mono-tight:0.08em;--bb-track-mono-loose:0.1em;--bb-track-display:-0.025em;--bb-track-display-tight:-0.02em;--bb-track-display-loose:-0.015em;--bb-rule:1.25px;--bb-rule-thick:1.5px;--bb-radius:2px;--bb-radius-none:0;--bb-radius-btn:8px;--bb-radius-input:8px;--bb-radius-chip:999px;--bb-border:color-mix(in srgb,var(--bb-ink) 12%,transparent);--bb-border-strong:color-mix(in srgb,var(--bb-ink) 22%,transparent);--bb-ease:cubic-bezier(0.2,0.8,0.2,1);--bb-t-micro:120ms;--bb-t-transition:240ms;--bb-t-signature:480ms;--bb-t-seal-hold:1200ms;--bb-ruled-height:28px;--bb-ruled-color:var(--bb-pencil-line);--bb-grid-color:rgba(19,18,16,0.04);--bb-mastered:#4A8C3A;--bb-shaky:#C08A2E;--bb-weak:#B84A3D;--bb-neutral:var(--bb-pencil);--bb-shadow-sm:0 1px 0 rgba(19,18,16,0.04),0 2px 8px -4px rgba(19,18,16,0.08);--bb-shadow-md:0 1px 0 rgba(19,18,16,0.05),0 8px 20px -8px rgba(19,18,16,0.12);--bb-shadow-lg:0 1px 0 rgba(19,18,16,0.06),0 20px 40px -16px rgba(19,18,16,0.18);--bb-shadow-lift:0 24px 60px -30px rgba(19,18,16,0.35);--bb-fs-100:100px;--bb-fs-140:140px;color:var(--bb-ink);background:var(--bb-paper);font-family:var(--bb-font-ui);font-size:var(--bb-fs-body);line-height:var(--bb-lh-normal);font-optical-sizing:auto;font-feature-settings:"kern","liga","calt","onum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bb-learn [data-bb-num],.bb-learn time{font-variant-numeric:tabular-nums}.bb-learn h1,.bb-learn h2,.bb-learn h3{text-wrap:balance}.bb-learn li,.bb-learn p{text-wrap:pretty}html[data-bb-theme=night] .bb-learn{--bb-paper:#14130F;--bb-paper-deep:#1D1B16;--bb-ink:#F1EEE5;--bb-ink-soft:#A8A49A;--bb-pencil:#4A4740;--bb-pencil-line:#2E2C27;--bb-highlighter:#B8D62A;--bb-action:#A3A6FF;--bb-exam-red-text:#E67567;--bb-grid-color:rgba(241,238,229,0.04);--bb-shadow-sm:0 1px 0 rgba(0,0,0,0.10),0 2px 8px -4px rgba(0,0,0,0.12);--bb-shadow-md:0 1px 0 rgba(0,0,0,0.12),0 8px 20px -8px rgba(0,0,0,0.18);--bb-shadow-lg:0 1px 0 rgba(0,0,0,0.14),0 20px 40px -16px rgba(0,0,0,0.24);--bb-mastered:#7EC65E;--bb-shaky:#E9B75E;--bb-weak:#E67567}.bb-learn-surface{background-color:var(--bb-paper)}.bb-ruled{background-image:repeating-linear-gradient(transparent 0 calc(var(--bb-ruled-height) - 1px),var(--bb-ruled-color) calc(var(--bb-ruled-height) - 1px) var(--bb-ruled-height));background-attachment:local;line-height:var(--bb-ruled-height)}.bb-underline-lime{text-decoration:underline;text-decoration-color:var(--bb-highlighter);text-decoration-thickness:3px;text-underline-offset:5px}.bb-rule-drawn{height:var(--bb-rule);background:var(--bb-ink);transform:rotate(-.5deg)}.bb-learn{accent-color:var(--bb-action)}@media (prefers-contrast:more){.bb-learn{--bb-ink-soft:var(--bb-ink);--bb-pencil:#6B6860;--bb-pencil-line:#8A877E;--bb-rule:1.5px;--bb-rule-thick:2px;--bb-grid-color:transparent}html[data-bb-theme=night] .bb-learn{--bb-ink-soft:var(--bb-ink);--bb-pencil:#9A968C;--bb-pencil-line:#6B6860}.bb-learn :focus-visible{outline-width:3px}}@keyframes bb-seal-break{0%{transform:scale(.94)}35%{transform:scale(1.06) rotate(-2deg)}to{transform:scale(1) rotate(0deg)}}@keyframes bb-seal-ring{0%{opacity:.55;transform:scale(.9)}to{opacity:0;transform:scale(2.1)}}.bb-seal-break{animation:bb-seal-break var(--bb-t-signature) var(--bb-ease) both}.bb-seal-break:after{content:"";position:absolute;inset:0;border-radius:50%;border:var(--bb-rule-thick) solid var(--bb-exam-red);pointer-events:none;animation:bb-seal-ring var(--bb-t-signature) var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-seal-break,.bb-seal-break:after{animation:none!important}.bb-seal-break:after{display:none}}.bb-stagger>*{animation:bb-page-in .32s var(--bb-ease) both}.bb-stagger>:first-child{animation-delay:0s}.bb-stagger>:nth-child(2){animation-delay:40ms}.bb-stagger>:nth-child(3){animation-delay:80ms}.bb-stagger>:nth-child(4){animation-delay:.12s}.bb-stagger>:nth-child(5){animation-delay:.16s}.bb-stagger>:nth-child(6){animation-delay:.2s}.bb-stagger>:nth-child(7){animation-delay:.24s}.bb-stagger>:nth-child(n+8){animation-delay:.28s}@media (prefers-reduced-motion:reduce){.bb-stagger>*{animation:none!important}}.bb-skip-link{position:absolute;left:var(--bb-space-2);top:calc(var(--bb-space-2) * -10);z-index:200;padding:var(--bb-space-2) var(--bb-space-4);min-height:var(--bb-control-md);display:inline-flex;align-items:center;background:var(--bb-ink);color:var(--bb-paper);border-radius:var(--bb-radius);font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);letter-spacing:var(--bb-track-mono);text-transform:uppercase;text-decoration:none;transition:top var(--bb-t-micro) var(--bb-ease)}.bb-skip-link:focus-visible{top:var(--bb-space-2);outline:2px solid var(--bb-highlighter);outline-offset:2px}.bb-learn :focus-visible{outline:2px solid var(--bb-action);outline-offset:2px;border-radius:var(--bb-radius)}.bb-focusable:focus-visible{outline:2px solid var(--bb-action);outline-offset:2px}.bb-learn button{font:inherit}.bb-learn a{color:var(--bb-action);text-decoration:none}.bb-learn a:hover{color:var(--bb-ink);text-decoration:underline}@media (prefers-reduced-motion:reduce){.bb-learn *,.bb-learn :after,.bb-learn :before{transition:none!important;animation:none!important}}@keyframes bb-ink-write{0%{opacity:.15;letter-spacing:-.01em}to{opacity:1;letter-spacing:0}}.bb-ink-write>*{animation:bb-ink-write .16s var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-ink-write>*{animation:none!important;opacity:1!important}}html[data-bb-focus="1"] [data-bb-desktop-rail],html[data-bb-focus="1"] [data-bb-mobile-bar]{display:none!important}html[data-bb-focus="1"] .bb-learn-surface{padding:0}.bb-torn-bottom{--bb-torn-color:var(--bb-paper);position:relative}.bb-torn-bottom:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:8px;background:var(--bb-torn-color);clip-path:polygon(0 0,4% 60%,9% 20%,15% 80%,21% 30%,27% 70%,33% 25%,39% 65%,45% 20%,51% 75%,57% 30%,63% 70%,69% 25%,75% 65%,81% 20%,87% 80%,93% 30%,100% 60%,100% 100%,0 100%)}.bb-paper-grain{background-color:var(--bb-paper);background-image:radial-gradient(circle at 15% 25%,rgba(19,18,16,.03) .5px,transparent 1px),radial-gradient(circle at 60% 70%,rgba(19,18,16,.025) .5px,transparent 1px),radial-gradient(circle at 85% 15%,rgba(19,18,16,.02) .5px,transparent 1px);background-size:32px 32px,24px 24px,18px 18px}@keyframes bb-count-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bb-count-in{animation:bb-count-in .48s var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-count-in{animation:none!important}}@keyframes bb-page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.bb-page-in{animation:bb-page-in .32s var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-page-in{animation:none!important}}@keyframes bb-flicker{0%,to{transform:scale(1) rotate(0deg)}25%{transform:scale(1.03) rotate(-1.5deg)}55%{transform:scale(.98) rotate(1deg)}80%{transform:scale(1.02) rotate(-.5deg)}}.bb-flicker{animation:bb-flicker 2.2s ease-in-out infinite;transform-origin:50% 90%}@media (prefers-reduced-motion:reduce){.bb-flicker{animation:none!important}}@keyframes bb-scribble{0%{background-position:0 50%}to{background-position:200% 50%}}.bb-skeleton{background-image:repeating-linear-gradient(-8deg,var(--bb-pencil-line) 0 3px,transparent 3px 9px);background-size:200% 100%;animation:bb-scribble 1.4s linear infinite}@media (prefers-reduced-motion:reduce){.bb-skeleton{animation:none!important;opacity:.6}}.bb-learn{--bb-space-1:4px;--bb-space-2:8px;--bb-space-3:12px;--bb-space-4:16px;--bb-space-5:24px;--bb-space-6:32px;--bb-space-7:48px;--bb-space-8:96px;--bb-page-max:1240px;--bb-page-max-wide:1440px;--bb-prose-max:680px;--bb-form-max:620px;--bb-card-pad:28px}@media (max-width:640px){.bb-learn{--bb-card-pad:20px}}.bb-learn{--bb-shadow-card:0 1px 0 rgba(19,18,16,0.04),0 1px 2px rgba(19,18,16,0.04),0 12px 32px -20px rgba(19,18,16,0.22);--bb-shadow-card-hover:0 1px 0 rgba(19,18,16,0.05),0 2px 4px rgba(19,18,16,0.05),0 24px 48px -24px rgba(19,18,16,0.30);--bb-radius-card:6px;--bb-heat-1:rgba(184,214,42,0.35);--bb-heat-2:rgba(184,214,42,0.60);--bb-heat-3:#a3cf1e;--bb-heat-4:#4a6f12}html[data-bb-theme=night] .bb-learn{--bb-shadow-card:0 1px 0 rgba(0,0,0,0.2),0 12px 32px -20px rgba(0,0,0,0.5);--bb-shadow-card-hover:0 1px 0 rgba(0,0,0,0.25),0 24px 48px -24px rgba(0,0,0,0.6);--bb-heat-1:rgba(184,214,42,0.25);--bb-heat-2:rgba(184,214,42,0.45);--bb-heat-3:#8fb61a;--bb-heat-4:#d4f034}.bb-empty-drawn{position:relative;overflow:hidden;border-style:dashed!important;border-color:var(--bb-pencil)!important}.bb-empty-drawn:after{content:"";position:absolute;right:-10px;bottom:-10px;width:190px;height:116px;pointer-events:none;opacity:.55;background:repeating-linear-gradient(to bottom,var(--bb-pencil-line) 0 var(--bb-rule),transparent var(--bb-rule) 24px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 34%),linear-gradient(180deg,#000 40%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 34%),linear-gradient(180deg,#000 40%,transparent);-webkit-mask-composite:source-in,xor;mask-composite:intersect}.bb-dash-split{margin-top:var(--bb-space-7)}.bb-dash-main>section:first-child,.bb-dash-rail>div:first-child,.bb-dash-rail>section:first-child{margin-top:0!important}@media (min-width:1280px){.bb-dash-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:var(--bb-space-7);align-items:start}.bb-dash-rail{display:flex;flex-direction:column;gap:var(--bb-space-6)}.bb-dash-rail>section{margin-top:0!important}}:root{--bb-dock-x:20px;--bb-dock-1:20px;--bb-dock-2:76px;--bb-dock-lane:92px}.bb-learn{--bb-wash-acid:rgba(212,240,52,0.18);--bb-wash-rose:rgba(255,179,193,0.24);--bb-wash-teal:rgba(147,233,208,0.24);--bb-wash-amber:rgba(255,214,107,0.26);--bb-class-accent:var(--bb-highlighter);--bb-class-wash:var(--bb-wash-acid)}html[data-bb-theme=night] .bb-learn{--bb-wash-acid:rgba(212,240,52,0.12);--bb-wash-rose:rgba(255,179,193,0.14);--bb-wash-teal:rgba(147,233,208,0.14);--bb-wash-amber:rgba(255,214,107,0.15)}.bb-class-rule{height:3px;border-radius:2px;background:var(--bb-class-accent);opacity:.9}.bb-class-edge{border-left:3px solid var(--bb-class-accent)}.bb-class-fill{background:var(--bb-class-wash)}.bb-learn{--bb-elev-sunk-bg:var(--bb-paper-deep);--bb-elev-sunk-border:var(--bb-border);--bb-elev-sunk-shadow:inset 0 1px 2px rgba(19,18,16,0.06),inset 0 0 0 1px rgba(19,18,16,0.02);--bb-elev-ground-bg:var(--bb-paper);--bb-elev-ground-border:transparent;--bb-elev-ground-shadow:none;--bb-elev-raised-bg:var(--bb-paper);--bb-elev-raised-border:var(--bb-border);--bb-elev-raised-shadow:0 1px 2px rgba(19,18,16,0.04);--bb-elev-float-bg:var(--bb-paper);--bb-elev-float-border:var(--bb-border-strong);--bb-elev-float-shadow:0 1px 0 rgba(19,18,16,0.04),0 18px 40px -22px rgba(19,18,16,0.38),0 2px 8px -4px rgba(19,18,16,0.10)}html[data-bb-theme=night] .bb-learn{--bb-elev-sunk-bg:#131109;--bb-elev-sunk-shadow:inset 0 1px 3px rgba(0,0,0,0.5);--bb-elev-raised-bg:var(--bb-night-paper);--bb-elev-raised-shadow:0 1px 2px rgba(0,0,0,0.3);--bb-elev-float-bg:#26231C;--bb-elev-float-shadow:0 1px 0 rgba(0,0,0,0.3),0 18px 40px -22px rgba(0,0,0,0.75),0 2px 8px -4px rgba(0,0,0,0.4)}.bb-sunk{background:var(--bb-elev-sunk-bg);border:1px solid var(--bb-elev-sunk-border);box-shadow:var(--bb-elev-sunk-shadow)}.bb-raised{background:var(--bb-elev-raised-bg);border:1px solid var(--bb-elev-raised-border);box-shadow:var(--bb-elev-raised-shadow)}.bb-float{background:var(--bb-elev-float-bg);border:1px solid var(--bb-elev-float-border);box-shadow:var(--bb-elev-float-shadow)}.bb-learn{--bb-radius-tight:4px;--bb-radius-base:8px;--bb-radius-soft:12px;--bb-radius-paper:16px}.bb-card{position:relative;background:var(--bb-paper);border:1px solid var(--bb-border);border-radius:12px;box-shadow:0 1px 2px rgba(19,18,16,.04);transition:box-shadow var(--bb-t-micro) var(--bb-ease),transform var(--bb-t-micro) var(--bb-ease),border-color var(--bb-t-micro) var(--bb-ease)}.bb-card-hover:hover,.bb-card-strong{border-color:var(--bb-border-strong)}.bb-card-hover:hover{box-shadow:0 6px 20px -8px rgba(19,18,16,.14);transform:translateY(-2px)}.bb-card-hover:active{transform:translateY(0) scale(.995)}@media (prefers-reduced-motion:reduce){.bb-card-hover:active,.bb-card-hover:hover{transform:none!important}}a.bb-card-hover{text-decoration:none}a.bb-card-hover:hover{text-decoration:none;color:var(--bb-ink)}.bb-learn a[data-bb-nav],[data-bb-desktop-rail] a[data-bb-nav]{transition:background var(--bb-t-micro) var(--bb-ease),color var(--bb-t-micro) var(--bb-ease),padding-left var(--bb-t-micro) var(--bb-ease)}.bb-learn a[data-bb-nav]:hover{background:var(--bb-paper-deep);text-decoration:none;color:var(--bb-ink)}.bb-learn a[data-bb-nav][data-active=true]{background:var(--bb-paper-deep);box-shadow:inset 0 0 0 1px var(--bb-pencil-line)}.bb-learn a[data-bb-nav][data-active=true]:after{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--bb-highlighter)}@keyframes bb-draw{0%{stroke-dashoffset:var(--bb-draw-len,400)}to{stroke-dashoffset:0}}.bb-draw{stroke-dasharray:var(--bb-draw-len,400);animation:bb-draw var(--bb-t-signature) var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-draw{animation:none!important;stroke-dasharray:none!important}}.bb-press{transition:transform var(--bb-t-micro) var(--bb-ease),box-shadow var(--bb-t-micro) var(--bb-ease),background var(--bb-t-micro) var(--bb-ease)}.bb-press:hover{transform:translateY(-1px);box-shadow:var(--bb-shadow-md)}.bb-press:active{transform:translateY(0) scale(.99);box-shadow:var(--bb-shadow-sm)}.bb-learn input:not([type=checkbox]):not([type=radio]):focus-visible,.bb-learn select:focus-visible,.bb-learn textarea:focus-visible{outline:none;border-color:var(--bb-ink)!important;box-shadow:0 0 0 3px rgba(47,58,140,.18),inset 0 1px 0 rgba(19,18,16,.03)!important}.bb-ring{--ring-size:132px;--ring-track:var(--bb-paper-deep);--ring-fill:var(--bb-ink);--ring-pct:0;width:var(--ring-size);height:var(--ring-size);border-radius:50%;background:conic-gradient(var(--ring-fill) calc(var(--ring-pct) * 1%),var(--ring-track) 0);display:grid;place-items:center;position:relative;flex:none}.bb-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--bb-paper);box-shadow:inset 0 1px 0 rgba(19,18,16,.04)}.bb-ring>*{position:relative}.bb-hero-row{grid-template-columns:1fr}@media (min-width:640px){.bb-hero-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:900px){.bb-hero-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr)}}.bb-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.bb-chip{display:inline-flex;align-items:center;gap:var(--bb-space-2);min-height:28px;padding:2px var(--bb-space-3);border:1px solid var(--bb-border);border-radius:var(--bb-radius-chip);background:var(--bb-paper-deep);font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);font-weight:500;line-height:var(--bb-lh-normal);letter-spacing:0;text-transform:none;color:var(--bb-ink-soft)}.bb-chip-acid{background:var(--bb-highlighter);color:#131210;border-color:transparent}.bb-learn{--primary:40 8% 7%;--primary-foreground:48 24% 96%;--ring:40 8% 7%}html[data-bb-theme=night] .bb-learn{--primary:45 20% 92%;--primary-foreground:45 14% 7%;--ring:45 20% 92%}.bb-learn{--bb-viz-lime:#6FA00A;--bb-viz-green:#3E8E3A;--bb-viz-teal:#1F8F84;--bb-viz-amber:#C8881F;--bb-viz-orange:#E8701A;--bb-viz-rose:#D45C74;--bb-viz-red:#C0453A;--bb-gauge-a:#E8A13A;--bb-gauge-b:#AFD514;--bb-gauge-c:#3E8E3A}html[data-bb-theme=night] .bb-learn{--bb-viz-lime:#AFD514;--bb-viz-green:#7EC65E;--bb-viz-teal:#4FD6C0;--bb-viz-amber:#F0B64E;--bb-viz-orange:#F2894A;--bb-viz-rose:#F08AA0;--bb-viz-red:#E67567;--bb-gauge-a:#F0B64E;--bb-gauge-b:#C7E84A;--bb-gauge-c:#7EC65E}@keyframes bb-gauge-draw{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.bb-gauge-arc{stroke-dasharray:100;animation:bb-gauge-draw 1s var(--bb-ease) both}@media (prefers-reduced-motion:reduce){.bb-gauge-arc{animation:none!important;stroke-dashoffset:0}}.bb-pill-soft{display:inline-flex;align-items:center;gap:var(--bb-space-1);padding:3px 10px;border-radius:var(--bb-radius-chip);background:color-mix(in srgb,var(--pill) 16%,transparent);color:var(--pill);font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);font-weight:600;letter-spacing:0;line-height:1.2}html[data-bb-theme=night] .bb-pill-soft{background:color-mix(in srgb,var(--pill) 24%,transparent)}.bb-learn a[data-bb-nav][data-active=true][data-bb-accent]:after{background:var(--bb-nav-accent,var(--bb-highlighter))}.bb-recall-queue{display:grid;gap:8px}.bb-recall-segs{display:flex;gap:3px}.bb-recall-seg{flex:1 1 0;min-width:2px;height:5px;border-radius:2px;background:var(--bb-pencil-line);transition:background var(--bb-t-micro) var(--bb-ease),transform var(--bb-t-micro) var(--bb-ease)}.bb-recall-seg[data-state=done]{background:var(--bb-ink)}.bb-recall-seg[data-state=now]{background:var(--bb-highlighter);transform:scaleY(1.8)}.bb-recall-queue-meta{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);color:var(--bb-ink-soft)}.bb-recall-queue-meta span:last-child{font-variant-numeric:tabular-nums;color:var(--bb-ink);font-weight:600}.bb-flip-stage{margin-top:36px;perspective:1400px}.bb-flip{display:grid;align-items:stretch;min-height:268px;transform-style:preserve-3d;transition:transform .56s cubic-bezier(.2,.8,.2,1);border-radius:16px}.bb-flip[data-flipped=true]{transform:rotateX(180deg)}.bb-flip-face{padding:40px 32px;background:var(--bb-paper);border:1px solid var(--bb-border-strong);border-radius:16px;box-shadow:var(--bb-shadow-card);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:auto}.bb-flip-back,.bb-flip-front{grid-area:1/1;position:relative}.bb-flip-back{transform:rotateX(180deg)}.bb-recall-class{margin-bottom:14px;font-size:var(--bb-fs-micro);font-weight:650;letter-spacing:.05em;text-transform:uppercase}.bb-recall-class,.bb-recall-turn{font-family:var(--bb-font-ui);color:var(--bb-pencil)}.bb-recall-turn{margin-top:24px;display:inline-flex;align-items:center;gap:7px;font-size:var(--bb-fs-label)}.bb-recall-grade{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--bb-space-2)}.bb-recall-grade-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 12px;min-height:62px;border:1px solid var(--bb-border);border-top:3px solid var(--bb-pencil-line);background:var(--bb-paper);color:var(--bb-ink);border-radius:10px;text-align:left;transition:background var(--bb-t-micro) var(--bb-ease),transform var(--bb-t-micro) var(--bb-ease)}.bb-recall-grade-btn:hover:not(:disabled){background:var(--bb-paper-deep);transform:translateY(-1px)}.bb-recall-grade-btn:active:not(:disabled){transform:translateY(0)}.bb-recall-grade-top{display:inline-flex;align-items:center;gap:7px;font-family:var(--bb-font-ui);font-size:var(--bb-fs-meta);font-weight:560}.bb-recall-grade-hint,.bb-recall-keys{font-family:var(--bb-font-ui);font-size:var(--bb-fs-micro);color:var(--bb-ink-soft)}.bb-recall-keys{margin:12px 0 0;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.bb-recall-tally{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--bb-space-2)}.bb-recall-tally-cell{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--bb-border);border-top:3px solid var(--bb-pencil-line);border-radius:10px;background:var(--bb-paper)}.bb-recall-tally-cell span:first-child{font-family:var(--bb-font-display);font-weight:600;font-size:var(--bb-fs-h2);line-height:var(--bb-lh-tight);font-variant-numeric:tabular-nums}.bb-recall-tally-cell span:last-child{font-family:var(--bb-font-ui)}.bb-recall-tally-cell span:last-child,kbd{font-size:var(--bb-fs-micro);color:var(--bb-ink-soft)}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:solid var(--bb-pencil-line);border-width:1px 1px 2px;border-radius:5px;background:var(--bb-paper-deep);font-family:var(--bb-font-mono);line-height:1}@media (max-width:560px){.bb-recall-grade,.bb-recall-tally{grid-template-columns:repeat(2,1fr)}.bb-flip-face{padding:28px 20px}}@media (prefers-reduced-motion:reduce){.bb-flip{transition:none}.bb-recall-seg[data-state=now]{transform:none;outline:1px solid var(--bb-ink)}.bb-recall-grade-btn:hover:not(:disabled){transform:none}}.bb-hist{margin-top:var(--bb-space-6);display:grid;gap:var(--bb-space-6)}.bb-hist-day{position:relative;padding-left:26px}.bb-hist-day:before{content:"";position:absolute;left:5px;top:14px;bottom:2px;width:1px;background:var(--bb-pencil-line)}.bb-hist-day:last-child:before{bottom:12px}.bb-hist-date{display:flex;align-items:baseline;gap:var(--bb-space-3)}.bb-hist-dot{position:absolute;left:0;width:11px;height:11px;border-radius:999px;margin-top:5px;background:var(--bb-paper);border:2px solid var(--bb-ink)}.bb-hist-date h2{margin:0;font-family:var(--bb-font-display);font-weight:600;font-size:var(--bb-fs-h3);line-height:var(--bb-lh-tight);letter-spacing:-.015em;color:var(--bb-ink)}.bb-hist-count{font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);letter-spacing:var(--bb-track-mono);color:var(--bb-ink-soft);font-variant-numeric:tabular-nums}.bb-hist-rows{margin:var(--bb-space-3) 0 0;padding:0;list-style:none;display:grid;gap:6px}.bb-hist-row{display:flex;align-items:center;gap:var(--bb-space-3);padding:10px 12px;border-radius:10px;border:1px solid transparent;text-decoration:none;color:var(--bb-ink);transition:background var(--bb-t-micro) var(--bb-ease),border-color var(--bb-t-micro) var(--bb-ease)}.bb-hist-row:hover{background:var(--bb-paper);border-color:var(--bb-border)}.bb-hist-accent{width:3px;align-self:stretch;min-height:20px;border-radius:2px;flex:none}.bb-hist-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--bb-font-body);font-size:var(--bb-fs-body);color:var(--bb-ink)}.bb-hist-chips{display:flex;align-items:center;gap:5px;flex:none;flex-wrap:wrap}.bb-hist-chip{padding:3px 8px;border-radius:999px;border:1px solid var(--bb-pencil-line);background:var(--bb-paper-deep);font-family:var(--bb-font-ui);font-size:var(--bb-fs-micro);color:var(--bb-ink-soft);white-space:nowrap}.bb-hist-chip[data-tone=good]{color:var(--bb-mastered);border-color:color-mix(in srgb,var(--bb-mastered) 40%,transparent)}.bb-hist-chip[data-tone=mid]{color:var(--bb-shaky);border-color:color-mix(in srgb,var(--bb-shaky) 45%,transparent)}.bb-hist-chip[data-tone=warn]{color:var(--bb-exam-red-text);border-color:color-mix(in srgb,var(--bb-exam-red-text) 32%,transparent)}.bb-hist-chip[data-quiet=true]{background:transparent;border-color:transparent;color:var(--bb-pencil)}.bb-hist-time{flex:none;font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);color:var(--bb-pencil);font-variant-numeric:tabular-nums}@media (max-width:720px){.bb-hist-time{display:none}.bb-hist-row{flex-wrap:wrap;row-gap:6px}.bb-hist-title{flex-basis:100%;white-space:normal}}.bb-desk-card{display:grid;gap:10px;padding:10px;border:1px solid var(--bb-border);border-radius:12px;background:var(--bb-paper);cursor:pointer;text-align:left;transition:border-color var(--bb-t-micro) var(--bb-ease),box-shadow var(--bb-t-micro) var(--bb-ease)}.bb-desk-card:hover{border-color:var(--bb-pencil)}.bb-desk-card[data-selected=true]{border-color:var(--bb-ink);box-shadow:0 0 0 1px var(--bb-ink)}.bb-desk-card-foot{display:flex;align-items:center;gap:7px;font-family:var(--bb-font-ui);font-size:var(--bb-fs-meta);color:var(--bb-ink-soft)}.bb-desk-card-name{font-weight:560;color:var(--bb-ink)}.bb-desk-card-state{margin-left:auto;font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);letter-spacing:var(--bb-track-mono);text-transform:uppercase;color:var(--bb-ink-soft)}.bb-desk-swatch{position:relative;display:block;height:86px;overflow:hidden;border:1px solid;border-radius:8px}.bb-desk-rule{position:absolute;left:0;right:0;height:1px}.bb-desk-ink{position:absolute;left:12px;height:5px;border-radius:2px}.bb-desk-chip{position:absolute;right:10px;bottom:10px;width:34px;height:22px;border:1px solid;border-radius:5px}.bb-set-hint{margin:0;font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);line-height:var(--bb-lh-normal);color:var(--bb-ink-soft);max-width:62ch}.bb-set-data{margin:0;display:grid;gap:var(--bb-space-3)}.bb-set-data>div{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--bb-border);border-radius:10px;background:var(--bb-paper-deep)}.bb-set-data dt{font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);letter-spacing:var(--bb-track-mono);text-transform:uppercase;color:var(--bb-ink)}.bb-set-data dd{margin:0;font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);line-height:var(--bb-lh-relaxed);color:var(--bb-ink-soft);max-width:68ch}.bb-map-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--bb-space-3);flex-wrap:wrap;margin-bottom:8px}.bb-map-hint{font-family:var(--bb-font-ui);font-size:var(--bb-fs-micro);color:var(--bb-ink-soft)}.bb-map-zoom{display:inline-flex;align-items:center;gap:4px}.bb-map-zoom button{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--bb-border);border-radius:8px;background:var(--bb-paper);color:var(--bb-ink);cursor:pointer;font-family:var(--bb-font-ui);font-size:var(--bb-fs-meta);line-height:1;transition:background var(--bb-t-micro) var(--bb-ease)}.bb-map-zoom button:hover:not(:disabled){background:var(--bb-paper-deep)}.bb-map-zoom button:disabled{opacity:.4;cursor:default}.bb-map-zoom>span{min-width:46px;text-align:center;font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);color:var(--bb-ink-soft);font-variant-numeric:tabular-nums}.bb-map-reset{font-size:var(--bb-fs-label)!important}.bb-map-host{background:var(--bb-paper);border:var(--bb-rule) solid var(--bb-ink);border-radius:var(--bb-radius);overflow:hidden;cursor:grab}.bb-map-host[data-dragging=true]{cursor:grabbing}.bb-map-legend{margin-top:var(--bb-space-4);display:grid;gap:var(--bb-space-4);grid-template-columns:minmax(200px,300px) 1fr;padding:14px 16px;border:1px solid var(--bb-border);border-radius:12px;background:var(--bb-paper)}.bb-map-legend-scale{display:grid;gap:6px;align-content:start}.bb-map-legend-label{font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);letter-spacing:var(--bb-track-mono);text-transform:uppercase;color:var(--bb-ink-soft)}.bb-map-legend-swatches{display:flex;gap:6px}.bb-map-legend-ends{display:flex;justify-content:space-between;font-family:var(--bb-font-ui);font-size:var(--bb-fs-micro);color:var(--bb-ink-soft)}.bb-map-legend-notes{margin:0;padding:0;list-style:none;display:grid;gap:10px}.bb-map-legend-notes li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;font-family:var(--bb-font-ui);font-size:var(--bb-fs-label);line-height:var(--bb-lh-normal);color:var(--bb-ink-soft)}.bb-map-practise{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid var(--bb-ink);background:var(--bb-ink);color:var(--bb-paper);border-radius:10px;text-decoration:none;font-family:var(--bb-font-ui);font-size:var(--bb-fs-meta);font-weight:600}.bb-rh-strip{margin-top:8px;display:flex;gap:3px;flex-wrap:wrap}.bb-rh-tick{width:10px;height:18px;border-radius:2px;background:var(--bb-pencil-line)}.bb-rh-tick[data-hit=true]{background:var(--bb-viz-green)}.bb-rh-tick[data-hit=false]{background:var(--bb-viz-red);opacity:.8}.bb-rh-note{margin:6px 0 0;font-family:var(--bb-font-mono);font-size:var(--bb-fs-micro);color:var(--bb-pencil)}@media (max-width:720px){.bb-map-legend{grid-template-columns:1fr}}[data-bb-mobile-bar]>div>a,[data-bb-mobile-bar]>div>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:7px 2px 8px;border:none;border-top:2px solid transparent;background:transparent;color:var(--bb-ink-soft);text-decoration:none;cursor:pointer;transition:color var(--bb-t-micro) var(--bb-ease),border-color var(--bb-t-micro) var(--bb-ease)}[data-bb-mobile-bar] [data-active=true]{color:var(--bb-ink);border-top-color:var(--bb-ink)}[data-bb-tab-label]{font-family:var(--bb-font-ui);font-size:var(--bb-fs-micro);line-height:1;letter-spacing:0}[data-bb-mobile-bar] [data-active=true] [data-bb-tab-label]{font-weight:600}[data-bb-tab-badge]{position:absolute;top:-5px;left:11px;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:var(--bb-highlighter);color:#131210;font-family:var(--bb-font-mono);font-size:9px;line-height:15px;text-align:center;font-variant-numeric:tabular-nums}@media (min-width:900px){[data-bb-mobile-bar]{display:none!important}}.bb-main-pad{padding-bottom:calc(56px + env(safe-area-inset-bottom, 0px) + 8px)}@media (min-width:900px){.bb-main-pad{padding-bottom:0}}