:root{--lamp-clear:#f5c400;--lamp-fc:#ff7eb6;--lamp-ap-ring:conic-gradient(from 210deg, #f08bb4, #f2c35a, #8fd88a, #6cc3ef, #a48cf0, #f08bb4)}.lm-lamp{white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4em;padding:.1rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.lm-lamp[data-size=lg]{letter-spacing:.08em;padding:.45rem 1.4rem;font-size:clamp(1.4rem,1rem + 2.5vw,2.4rem);font-weight:800}.lm-lamp-tier{opacity:.85;font-weight:600}[data-grade=none].lm-lamp{color:var(--muted-foreground);border-color:var(--border);border-style:dashed}[data-grade=finish].lm-lamp{color:var(--foreground);border-color:color-mix(in oklab, var(--foreground) 45%, transparent)}[data-grade=clear].lm-lamp{color:var(--foreground);border:1.5px solid var(--lamp-clear)}[data-grade=fc].lm-lamp{color:var(--foreground);border:1.5px solid var(--lamp-fc)}[data-grade=ap].lm-lamp{color:var(--foreground);background:linear-gradient(var(--card), var(--card)) padding-box, var(--lamp-ap-ring) border-box;border:1.5px solid #0000}.lm-course{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--card);flex-direction:column;align-items:flex-start;gap:.35rem;height:100%;padding:1.25rem 1.35rem 1.1rem;transition:border-color .12s;display:flex}.lm-course:hover{border-color:color-mix(in oklab, var(--foreground) 35%, transparent)}.lm-course:focus-visible{outline:3px solid color-mix(in oklab, var(--ring) 50%, transparent);outline-offset:2px}.lm-course-bar{background:var(--border);border-radius:999px;width:100%;height:4px;margin:.6rem 0 .25rem;overflow:hidden}.lm-course-bar>span{background:var(--primary);transform-origin:0;height:100%;display:block}.lm-course-next{max-width:100%;color:var(--primary-on-tint,var(--primary));align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.lm-course:hover .lm-course-next{text-underline-offset:4px;text-decoration:underline}.lm-key{color:var(--muted-foreground);flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.8125rem;display:flex}.lm-key li{align-items:center;gap:.45rem;display:inline-flex}.lm-unit{flex-direction:column;gap:2rem;display:flex}.lm-unit-head{grid-template-columns:1fr auto;align-items:end;gap:.15rem 1rem;display:grid}.lm-unit-no{color:var(--primary-on-tint,var(--primary));grid-column:1/-1;font-size:.8125rem;font-weight:700}.lm-unit-count{color:var(--muted-foreground);font-size:.875rem}.lm-node[data-skipped] .lm-node-face{border-style:dashed;border-color:color-mix(in oklab, var(--foreground) 45%, transparent);color:var(--foreground)}.lm-unit-skip{border:1px solid var(--border);background:var(--card);border-radius:999px;grid-column:1/-1;justify-self:start;align-items:center;gap:.4rem;min-height:2.5rem;margin-top:.85rem;padding:0 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.lm-unit-skip:hover{border-color:color-mix(in oklab, var(--foreground) 35%, transparent)}.lm-unit-skip:focus-visible{outline:3px solid color-mix(in oklab, var(--ring) 50%, transparent)}.lm-row:not([data-reachable]){color:var(--muted-foreground)}.lm-unit-bar{background:var(--border);border-radius:999px;grid-column:1/-1;height:3px;margin-top:.6rem;overflow:hidden}.lm-unit-bar>span{background:var(--primary);transform-origin:0;height:100%;display:block}.lm-path{--node:4.25rem;flex-direction:column;align-items:center;gap:1.5rem;padding-bottom:.5rem;display:flex}.lm-stop{flex-direction:column;align-items:center;width:100%;display:flex}.lm-stop-node{width:8.5rem;transform:translateX(calc(var(--swing) * var(--node)));text-align:center;flex-direction:column;align-items:center;gap:.45rem;display:flex;position:relative}.lm-stop-node:has(.lm-start){margin-top:1.6rem}.lm-stop-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8125rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.lm-node{width:var(--node);height:var(--node);background:color-mix(in oklab, var(--foreground) 18%, var(--background));cursor:pointer;border-radius:999px;outline:none;place-items:center;padding-bottom:.3rem;transition:transform .12s;display:grid}.lm-node-face{border:2px solid var(--border);background:var(--muted);width:100%;height:100%;color:var(--muted-foreground);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;font-size:1.3rem;font-weight:800;display:grid}.lm-node:active,.lm-node[aria-expanded=true]{transform:translateY(.2rem)}.lm-node[aria-expanded=true]{padding-bottom:.1rem}.lm-node:focus-visible{box-shadow:0 0 0 4px color-mix(in oklab, var(--ring) 55%, transparent)}.lm-node[data-next] .lm-node-face{border-color:var(--primary);color:var(--primary-on-tint,var(--primary))}.lm-node[data-reachable][data-grade=none] .lm-node-face{background:var(--card);border-color:var(--primary);color:var(--primary-on-tint,var(--primary))}.lm-node[data-next][data-reachable][data-grade=none] .lm-node-face{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.lm-node[data-grade=finish] .lm-node-face,.lm-node[data-grade=clear] .lm-node-face,.lm-node[data-grade=fc] .lm-node-face,.lm-node[data-grade=ap] .lm-node-face{background:var(--card);color:var(--foreground);border-width:4px}.lm-node[data-grade=finish] .lm-node-face{border-color:color-mix(in oklab, var(--foreground) 45%, transparent)}.lm-node[data-grade=clear] .lm-node-face{border-color:var(--lamp-clear)}.lm-node[data-grade=fc] .lm-node-face{border-color:var(--lamp-fc)}.lm-node[data-grade=ap] .lm-node-face{background:linear-gradient(var(--card), var(--card)) padding-box, var(--lamp-ap-ring) border-box;border-color:#0000}.lm-start{border:1px solid var(--border);background:var(--card);color:var(--primary-on-tint,var(--primary));white-space:nowrap;border-radius:.6rem;padding:.2rem .6rem;font-size:.75rem;font-weight:700;position:absolute;bottom:calc(100% + .3rem)}@media (prefers-reduced-motion:no-preference){.lm-start{animation:1.6s ease-in-out infinite lm-bob}}@keyframes lm-bob{50%{translate:0 -.2rem}}.lm-unit-body{display:grid}[data-view=map] .lm-list,[data-view=list] .lm-path{display:none}.lm-switch{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.2rem;display:inline-flex}.lm-switch button{border-radius:999px;min-height:2.25rem;padding:0 1rem;font-size:.875rem;font-weight:500}.lm-switch button[aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.lm-switch button:focus-visible{outline:3px solid color-mix(in oklab, var(--ring) 50%, transparent)}.lm-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.lm-row{border-bottom:1px solid var(--border);grid-template-columns:1.75rem minmax(0,1fr) auto auto;align-items:center;gap:.85rem;min-height:3.25rem;padding:.4rem .5rem;transition:background-color .12s;display:grid;position:relative}.lm-row.lm-row-hit{grid-template-columns:1.75rem minmax(0,1fr) auto}.lm-row:hover .lm-row-title{text-underline-offset:4px;text-decoration:underline}.lm-row-mark{border:2px solid var(--border);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;width:1.75rem;height:1.75rem;font-size:.75rem;font-weight:800;display:grid}.lm-row[data-grade=finish] .lm-row-mark{border-color:color-mix(in oklab, var(--foreground) 45%, transparent)}.lm-row[data-grade=clear] .lm-row-mark{border-color:var(--lamp-clear)}.lm-row[data-grade=fc] .lm-row-mark{border-color:var(--lamp-fc)}.lm-row[data-grade=ap] .lm-row-mark{background:linear-gradient(var(--background), var(--background)) padding-box, var(--lamp-ap-ring) border-box;border-color:#0000}.lm-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.lm-row-title:after{content:"";position:absolute;inset:0}.lm-row-title:focus-visible{outline:none}.lm-row:has(.lm-row-title:focus-visible){outline:3px solid color-mix(in oklab, var(--ring) 50%, transparent);outline-offset:-3px}.lm-row-len{color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem}.lm-row-lamps{color:var(--muted-foreground);justify-content:flex-end;gap:.25rem;display:flex}.lm-pip{border:1.5px dashed var(--border);width:1.375rem;height:1.375rem;color:var(--muted-foreground);border-radius:999px;place-items:center;font-size:.625rem;font-weight:800;display:grid}.lm-pip[data-grade=finish],.lm-pip[data-grade=clear],.lm-pip[data-grade=fc],.lm-pip[data-grade=ap]{color:var(--foreground);border-style:solid}.lm-pip[data-grade=finish]{border-color:color-mix(in oklab, var(--foreground) 45%, transparent)}.lm-pip[data-grade=clear]{border-color:var(--lamp-clear)}.lm-pip[data-grade=fc]{border-color:var(--lamp-fc)}.lm-pip[data-grade=ap]{background:linear-gradient(var(--background), var(--background)) padding-box, var(--lamp-ap-ring) border-box;border-color:#0000}@media (max-width:480px){.lm-row{grid-template-columns:1.75rem minmax(0,1fr) auto}.lm-row-len{display:none}}.lm-pop{border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:var(--card);flex-direction:column;gap:.9rem;width:min(100%,22rem);margin-top:.9rem;padding:1rem 1.1rem 1.1rem;display:flex;position:relative;box-shadow:0 12px 32px -18px #00000059}.lm-pop[hidden]{display:none}@media (prefers-reduced-motion:no-preference){.lm-pop{animation:.18s ease-out lm-rise}}@keyframes lm-rise{0%{opacity:0;translate:0 -.35rem}}.lm-pop-label{color:var(--muted-foreground);align-items:center;gap:.4rem;font-size:.8125rem;font-weight:600;display:flex}.lm-btn{border:1px solid var(--border);background:var(--card);border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:2.75rem;padding:0 1.2rem;font-size:.95rem;font-weight:600;display:inline-flex}.lm-btn[data-primary]{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.lm-btn:disabled{opacity:.45;cursor:not-allowed}.lm-btn:focus-visible{outline:3px solid color-mix(in oklab, var(--ring) 50%, transparent);outline-offset:2px}.lm-stars{align-items:center;gap:.15rem;display:inline-flex}.lm-star{width:.95rem;height:.95rem}.lm-stars[data-size=md] .lm-star{width:1.2rem;height:1.2rem}.lm-star path{stroke-width:1.6px;stroke-linejoin:round}.lm-star[data-grade=none] path{fill:none;stroke:color-mix(in oklab, var(--foreground) 30%, transparent)}.lm-star[data-grade=finish] path{fill:none;stroke:var(--foreground)}.lm-star[data-grade=clear] path{fill:var(--lamp-clear);stroke:color-mix(in oklab, var(--lamp-clear) 70%, var(--foreground))}.lm-star[data-grade=fc] path{fill:var(--lamp-fc);stroke:color-mix(in oklab, var(--lamp-fc) 70%, var(--foreground))}.lm-star[data-grade=ap] path{stroke:color-mix(in oklab, var(--foreground) 35%, transparent)}.lm-unit-head{background:var(--primary);color:var(--primary-foreground);box-shadow:0 6px 18px -12px color-mix(in oklab, var(--foreground) 60%, transparent);border-radius:1.1rem;padding:1rem 1.25rem 1.1rem}.lm-unit-head .lm-unit-no{color:color-mix(in oklab, var(--primary-foreground) 80%, transparent);letter-spacing:.06em}.lm-unit-head h3{font-size:1.3rem;font-weight:800}.lm-unit-head .lm-unit-count{color:color-mix(in oklab, var(--primary-foreground) 85%, transparent);font-weight:600}.lm-unit-head .lm-unit-bar{background:color-mix(in oklab, var(--primary-foreground) 28%, transparent);height:4px}.lm-unit-head .lm-unit-bar>span{background:var(--primary-foreground)}.lm-unit-head .lm-unit-skip{color:var(--primary-foreground);border-color:color-mix(in oklab, var(--primary-foreground) 55%, transparent);background:0 0}.lm-unit-head .lm-unit-skip:hover{background:color-mix(in oklab, var(--primary-foreground) 12%, transparent);border-color:var(--primary-foreground)}.lm-pop-note{color:var(--muted-foreground);font-size:.78rem;line-height:1.6}.lm-node[data-kind=challenge] .lm-node-face{border-style:double;border-width:4px}.lm-chal{justify-content:center;width:100%;display:flex}.lm-chal-inner{text-align:center;flex-direction:column;align-items:center;gap:.45rem;width:8.5rem;display:flex}@media (min-width:900px){.lm-chal{height:0;display:block;position:relative}.lm-chal-inner{z-index:2;position:absolute;top:-7.5rem}.lm-chal[data-side=right] .lm-chal-inner{right:6%}.lm-chal[data-side=left] .lm-chal-inner{left:6%}.lm-chal .lm-pop{z-index:3;width:18rem;position:absolute;top:calc(100% + .4rem)}.lm-chal[data-side=right] .lm-pop{right:0}.lm-chal[data-side=left] .lm-pop{left:0}}.lm-node[data-stage=pattern] .lm-node-face{border-style:dashed}.lm-node[data-kind=exam] .lm-node-face{border-style:double;border-width:4px;border-radius:1.1rem}.lm-unit-ready{background:var(--primary-foreground);color:var(--primary);border-radius:999px;margin-left:.5rem;padding:.05rem .55rem;font-weight:700}
