@media screen{:root[data-theme=dark] .learn-visual-board{--ink:var(--grid)}:root[data-theme=dark] .learn-visual-stone{stroke:var(--ink);stroke-width:.8px}:root[data-theme=dark] .learn-visual-on-ink{fill:var(--bg)}}.learn-progress-fill{display:block;height:100%;background:var(--ink);transition:width .2s ease-out}@media (prefers-reduced-motion:reduce){.learn-progress-fill{transition:none}}.learn-status{margin:0;font-size:var(--step--1);color:var(--ink-soft);min-height:1.4em}.learn-complete-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.learn-strip-progress .learn-progress-fill{background:var(--track)}.learn-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;background-color:var(--bg);background-image:radial-gradient(var(--learn-dot) 1px,transparent 1.4px)}.learn-viewport:active{cursor:grabbing}.learn-map-body.has-water .learn-viewport{background:none}.learn-viewport:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}.learn-world.is-gliding{transition:transform .32s cubic-bezier(.22,1,.36,1)}.learn-track-count,.learn-track-gate{margin:.15rem 0 0;font-size:var(--step--1);color:var(--ink-soft)}.learn-nudge-bar p{margin:0}@media (max-width:640px){.learn-strip-title{font-size:var(--step-2)}.learn-strip-progress{margin:0 -.8rem}.learn-map-foot{left:.6rem;right:.6rem;bottom:.6rem;flex-direction:column-reverse;align-items:stretch;gap:.6rem}}.learn-minimap{display:block;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--glass-strong);box-shadow:var(--shadow-ambient);cursor:pointer;touch-action:none;transition:opacity .2s ease,visibility 0s linear 0s}.learn-minimap.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}.learn-minimap-trail{fill:none;stroke:var(--line-strong);stroke-width:1.5;stroke-linejoin:round}.learn-minimap-dot{fill:var(--track)}.learn-minimap-dot.is-done{fill:var(--done-text)}.learn-minimap-dot.is-locked{fill:var(--line-strong)}.learn-minimap-view{fill:rgb(var(--tint-rgb)/.06);stroke:var(--accent-text);stroke-width:1.5}@media (prefers-reduced-motion:reduce){.learn-minimap,.learn-minimap.is-hidden{transition:none}}.learn-map-controls{display:flex;flex-direction:column;gap:.4rem;align-items:flex-end}.learn-trail{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.learn-trail-base{fill:none;stroke:var(--line-strong);stroke-width:4;stroke-linecap:round;stroke-dasharray:1 9}.learn-trail-lit{fill:none;stroke:var(--done-text);stroke-width:4;stroke-linecap:round}.learn-milestone-count,.learn-milestone-title{position:relative;white-space:nowrap}.learn-milestone-title{font-size:var(--step-0);font-weight:600}.learn-milestone-count{font-size:var(--step--1);color:var(--ink-soft)}.learn-milestone.is-done .learn-milestone-count{color:var(--done-text)}.learn-nodes{list-style:none;margin:0;padding:0}.learn-node-status,.learn-node-title{position:relative;padding:0 .3rem;border-radius:4px;background:var(--bg)}.learn-node-title{margin-top:.35rem;font-size:var(--step--1);font-weight:600;line-height:1.2}.learn-node-status{font-size:.75rem;line-height:1.2;color:var(--ink-soft)}.learn-node.is-current .learn-node-status{color:var(--accent-text);font-weight:600}.learn-node.is-side .learn-node-disc>.learn-node-badge{display:inline-flex}.learn-node.is-side .learn-node-title{font-style:italic}a.learn-node:focus-visible .learn-node-disc,a.learn-node:hover .learn-node-disc{transform:translateY(var(--key-rise));box-shadow:var(--disc-lip),var(--key-shadow-hover)}a.learn-node.is-side:focus-visible .learn-node-disc,a.learn-node.is-side:hover .learn-node-disc{transform:translateY(var(--key-rise)) rotate(45deg)}a.learn-node:active .learn-node-disc{transform:translateY(var(--key-sink));background-image:linear-gradient(180deg,rgba(60,16,20,.14),rgba(60,16,20,0) 70%);box-shadow:inset 0 3px 6px rgba(40,8,12,.35);animation:none}a.learn-node.is-side:active .learn-node-disc{transform:translateY(var(--key-sink)) rotate(45deg)}a.learn-node:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.learn-node.is-just-done .learn-node-check{stroke-dasharray:1;stroke-dashoffset:1;animation:learn-draw .5s ease-out .2s forwards}.learn-trail-lit.is-just-lit{stroke-dasharray:1;stroke-dashoffset:1;animation:learn-draw .7s ease-in-out .6s forwards}.learn-node.is-just-unlocked .learn-node-disc{animation:learn-unlock .6s cubic-bezier(.34,1.56,.64,1) 1.2s both}.learn-node.is-just-unlocked.is-current .learn-node-disc{animation:learn-unlock .6s cubic-bezier(.34,1.56,.64,1) 1.2s both,learn-node-breathe 2.4s ease-in-out 1.8s infinite}@keyframes learn-draw{to{stroke-dashoffset:0}}@keyframes learn-unlock{0%{transform:scale(.6);opacity:.4}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.learn-node .learn-node-disc,.learn-node.is-just-done .learn-node-check,.learn-trail-lit.is-just-lit{animation:none;stroke-dashoffset:0}.learn-node.is-current .learn-node-disc{box-shadow:var(--disc-lip),0 0 0 4px rgb(var(--tint-rgb)/.25)}.learn-world.is-gliding{transition:none}}