.lum-map{flex-direction:column;height:calc(100dvh - 4.25rem);min-height:420px;display:flex;position:relative;overflow-x:clip}.lum-map-hud{z-index:5;flex-wrap:wrap;align-items:center;gap:.5rem;transition:opacity .45s ease-out,visibility linear;display:flex;position:absolute}.lum-map-hud-tl{max-width:calc(100% - 15.5rem);top:.75rem;left:clamp(.75rem,2vw,1.25rem)}.lum-map-hud-tr{top:.75rem;right:clamp(.75rem,2vw,1.25rem)}.lum-map-hud-bl{bottom:.75rem;left:clamp(.75rem,2vw,1.25rem)}.lum-map-hud.is-over{opacity:.45}.lum-map-hud:hover,.lum-map-hud:has(:focus-visible),.lum-map-hud[open]{opacity:1}.lum-map.is-moving .lum-map-hud:not([open]){opacity:0;visibility:hidden;transition:opacity .16s,visibility 0s linear .16s}@media (width<=640px){.lum-map-hud-tl{max-width:calc(100% - 1.5rem)}.lum-map-hud-tr{top:auto;bottom:.75rem}.lum-map-hud.is-over{opacity:1}.lum-map-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.lum-map-title{border:2px solid var(--lum-ink);background:var(--lum-card);box-shadow:var(--lum-shadow-sm);border-radius:12px;padding:.15rem .9rem;font-size:1.25rem;font-weight:800;line-height:1.6}.lum-map-tool{min-width:42px;min-height:40px;padding:0 .6rem;font-size:1.05rem}.lum-map-progress,.lum-map-chip,.lum-map-help{border:2px solid var(--lum-ink);background:var(--lum-yellow);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;min-height:36px;padding:0 .8rem;font-size:.85rem;font-weight:800;display:inline-flex}.lum-map-progress[hidden],.lum-map-chip[hidden]{display:none}.lum-map-help{background:var(--lum-card);cursor:help;justify-content:center;width:36px;padding:0}.lum-map-chip{background:var(--lum-card);color:var(--lum-muted);font-weight:700}.lum-map-hud-tl .lum-map-sim{padding:0 .8rem;font-size:.85rem}.lum-map-hud-tl .lum-map-sim[aria-pressed=true]{background:var(--lum-yellow)}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);z-index:10;border:2px solid var(--lum-ink);background:var(--lum-note);width:max-content;max-width:18rem;box-shadow:var(--lum-shadow-sm);color:var(--lum-ink);white-space:normal;pointer-events:none;opacity:0;border-radius:10px;padding:.45rem .7rem;font-size:.82rem;font-weight:600;line-height:1.5;transition:opacity .14s,transform .14s;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px)}.lum-map-hud-tr [data-tip]:after{left:auto;right:0}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transition-delay:.25s;transform:none}.lum-map-legend{border:2px solid var(--lum-ink);background:var(--lum-card);box-shadow:var(--lum-shadow-sm);border-radius:12px;padding:.35rem .8rem;font-size:.82rem;display:block}.lum-map-legend summary{cursor:pointer;align-items:center;gap:.35rem;min-height:32px;font-weight:800;list-style:none;display:flex}.lum-map-legend summary::-webkit-details-marker{display:none}.lum-map-legend summary:before{content:"▸";transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.lum-map-legend[open] summary:before{transform:rotate(90deg)}.lum-map-legend ul{color:var(--lum-muted);gap:.4rem;padding:.3rem 0 .4rem;display:grid}.lum-map-legend li{align-items:center;gap:.5rem;display:flex}.lum-map-key{border:2px solid var(--lum-ink);background:#fff;border-radius:6px;place-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;display:inline-grid}.lum-map-key.is-passed{background:var(--lum-ok);color:#b45309}.lum-map-key.is-open{box-shadow:0 0 0 3px var(--lum-orange)}.lum-map-key.is-locked{background:#eee9dc;border-color:#a39c8d}.lum-map-key-line{border-top:2.5px dashed #9b86d9;width:1.4rem}.lum-map-view{cursor:grab;overscroll-behavior:contain;background:radial-gradient(circle,#2b2a261f 1.2px,#0000 1.5px) 0 0/24px 24px,#f7f2e6;flex:1;position:relative;overflow:auto}.lum-map-view.is-dragging{cursor:grabbing;user-select:none}.lum-map-stage{box-sizing:content-box;margin-inline:auto;position:relative}.lum-map-plane{transform-origin:0 0;position:absolute;top:0;left:0}.lum-map-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.lum-map-edge{fill:none;stroke:#d3c9b2;stroke-width:5px;stroke-linecap:round;transition:stroke .3s}.lum-map-edge.is-lit{stroke:var(--lum-ink)}.lum-map-edge.is-extra{stroke:#b7a6e6;stroke-width:2.5px;stroke-dasharray:4 7}.lum-map-node{border:2px solid var(--lum-ink);background:var(--lum-card);box-shadow:4px 4px 0 var(--lum-ink);font-family:var(--lum-round);color:var(--lum-ink);text-align:left;cursor:pointer;border-radius:18px;grid-template-rows:1fr 1fr;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.65rem;padding:.55rem .75rem;transition:transform .16s cubic-bezier(.23,1,.32,1),box-shadow .16s cubic-bezier(.23,1,.32,1),background-color .2s;display:grid;position:absolute}@media (hover:hover) and (pointer:fine){.lum-map-node:hover{box-shadow:6px 6px 0 var(--lum-ink);transform:translate(-2px,-2px)}}.lum-map-node:active{box-shadow:1px 1px 0 var(--lum-ink);transform:translate(2px,2px)}.lum-map-node:focus-visible{outline:3px solid var(--lum-orange);outline-offset:4px}.lum-map-medal{border:2px solid var(--lum-ink);background:var(--branch);color:#fff;letter-spacing:.02em;border-radius:999px;grid-row:1/span 2;place-items:center;width:2.9rem;height:2.9rem;font-size:.85rem;font-weight:800;display:grid}.lum-map-name{white-space:nowrap;text-overflow:ellipsis;align-self:end;font-size:1.02rem;font-weight:800;line-height:1.2;overflow:hidden}.lum-map-state{color:var(--lum-muted);align-self:start;font-size:.75rem;font-weight:600}.lum-map-node[data-state=passed]{background:var(--lum-ok)}.lum-map-node[data-state=passed] .lum-map-state{color:#3f6212}.lum-map-node.is-next{box-shadow:4px 4px 0 var(--lum-ink), 0 0 0 4px var(--lum-orange);animation:1.8s ease-in-out infinite lum-map-glow}.lum-map-node.is-next .lum-map-state{color:var(--lum-orange-ink);font-weight:800}@keyframes lum-map-glow{50%{box-shadow:4px 4px 0 var(--lum-ink), 0 0 0 9px #ff8a3d40}}.lum-map-node[data-state=prereq],.lum-map-node[data-state=closed],.lum-map-node[data-state=login],.lum-map-node[data-state=badge]{color:#6f695d;background:#eee9dc;border-color:#a39c8d;box-shadow:3px 3px #bdb5a3}.lum-map-node[data-state=prereq] .lum-map-medal,.lum-map-node[data-state=closed] .lum-map-medal,.lum-map-node[data-state=login] .lum-map-medal,.lum-map-node[data-state=badge] .lum-map-medal{background:color-mix(in srgb, var(--branch) 35%, #d9d2c1);border-color:#a39c8d}.lum-map-branch{z-index:1;border:2px solid var(--lum-ink);background:var(--branch);color:#fff;letter-spacing:.08em;white-space:nowrap;border-radius:999px;padding:0 .55rem;font-size:.78rem;font-weight:800;line-height:1.45;position:absolute}.lum-map-node[data-state=prereq] .lum-map-state:before,.lum-map-node[data-state=closed] .lum-map-state:before,.lum-map-node[data-state=login] .lum-map-state:before,.lum-map-node[data-state=badge] .lum-map-state:before{content:"🔒 ";font-size:.7rem}.lum-map-node[data-state=planned]{box-shadow:none;color:#9d9686;background:0 0;border-style:dashed;border-color:#b3ab99}.lum-map-node[data-state=planned] .lum-map-medal{color:#9d9686;background:0 0;border-style:dashed;border-color:#b3ab99}.lum-map-node.is-cleared{animation:.7s cubic-bezier(.34,1.56,.64,1) .25s both lum-map-cleared}@keyframes lum-map-cleared{0%{background:var(--lum-yellow);transform:scale(.9)}45%{transform:scale(1.08)}to{transform:none}}.lum-map-node.is-new{animation:.52s cubic-bezier(.34,1.56,.64,1) lum-map-pop,1.8s ease-in-out .52s infinite lum-map-glow}@keyframes lum-map-pop{40%{transform:translateY(-10px)scale(1.06)}}.lum-map-toast{z-index:50;border:2px solid var(--lum-ink);background:var(--lum-yellow);max-width:calc(100% - 2rem);box-shadow:var(--lum-shadow-sm);border-radius:999px;padding:.7rem 1.2rem;font-weight:800;animation:.36s cubic-bezier(.23,1,.32,1) lum-map-toast;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.lum-map-toast[hidden]{display:none}@keyframes lum-map-toast{0%{opacity:0;transform:translate(-50%,12px)}}.lum-map-progress{cursor:help;gap:.35rem}.lum-gem-btn{z-index:1;font:700 .72rem var(--lum-round);color:var(--lum-orange-ink);cursor:pointer;background:0 0;border:0;justify-items:center;gap:.2rem;padding:.25rem;display:grid;position:absolute;top:.5rem;right:4.4rem}.lum-gem-btn .lum-gem{transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.lum-gem-btn[hidden]{display:none}.lum-gem-glow{opacity:0;pointer-events:none;background:radial-gradient(circle,#ffe678b3,#0000 65%);border-radius:50%;width:4.5rem;height:4.5rem;margin:-2.25rem 0 0 -2.25rem;position:absolute;top:2.4rem;left:50%}.lum-gem-btn .lum-gem-glow{opacity:1;animation:2.4s ease-in-out infinite lum-gem-breathe}@keyframes lum-gem-breathe{50%{opacity:.55;transform:scale(1.15)}}@media (hover:hover) and (pointer:fine){.lum-gem-btn:hover .lum-gem{transform:scale(1.1)}}.lum-modal-body.has-gem .lum-brief-title,.lum-modal-body.has-gem .lum-brief-story{padding-right:5.5rem}.lum-notes-back{min-height:40px;font:700 .95rem var(--lum-round);color:var(--lum-ink);text-decoration:underline;text-decoration-color:var(--lum-orange);text-underline-offset:4px;cursor:pointer;text-decoration-thickness:2px}.lum-notes-head{border:2px solid var(--lum-ink);background:var(--lum-note);box-shadow:var(--lum-shadow-sm);border-radius:16px;align-items:flex-start;gap:1.1rem;margin:.75rem 3rem 1.25rem 0;padding:1rem 1.2rem;display:flex}.lum-notes-gem{flex:none;align-self:flex-start;animation:.6s cubic-bezier(.34,1.56,.64,1) lum-gem-in}@keyframes lum-gem-in{0%{opacity:0;transform:scale(.5)rotate(-25deg)}}.lum-notes-kicker{letter-spacing:.08em;color:var(--lum-orange-ink);font-size:.8rem;font-weight:800}.lum-notes-title{font-size:1.6rem;font-weight:800;line-height:1.25}.lum-notes-sum{color:var(--lum-muted);margin-top:.25rem;line-height:1.6}.lum-notes-toc{margin-top:.7rem}.lum-notes-toc ol{flex-wrap:wrap;gap:.3rem 1rem;display:flex}.lum-notes-toc button{min-height:32px;font:700 .85rem var(--lum-round);color:var(--lum-ink);text-align:left;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;text-decoration:underline 2px #0000;transition:text-decoration-color .14s;display:inline-flex}@media (hover:hover) and (pointer:fine){.lum-notes-toc button:hover{text-decoration-color:var(--lum-orange)}}.lum-notes-mark{background:var(--lum-orange);clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);flex:none;width:.55rem;height:.85rem}.lum-notes-body h2{scroll-margin-top:1rem}.lum-notes-body h2.is-flash{animation:1.2s ease-out lum-notes-flash}@keyframes lum-notes-flash{0%,30%{background:var(--lum-yellow)}to{background:0 0}}.lum-notes-totop{float:right;border:2px solid var(--lum-ink);background:var(--lum-yellow);min-height:36px;box-shadow:2px 2px 0 var(--lum-ink);font:800 .82rem var(--lum-round);cursor:pointer;border-radius:999px;margin-top:1rem;padding:0 .8rem;position:sticky;bottom:.5rem}.lum-notes-body{font-size:.98rem;line-height:1.8}.lum-notes-body h2{border-bottom:2px solid var(--lum-ink);margin:1.75rem 0 .6rem;padding-bottom:.25rem;font-size:1.2rem;font-weight:800}.lum-notes-body h3{color:var(--lum-orange-ink);margin:1.2rem 0 .4rem;font-size:1.02rem;font-weight:800}.lum-notes-body p,.lum-notes-body ul,.lum-notes-body ol{margin:.5rem 0}.lum-notes-body ul{padding-left:1.3rem;list-style:outside}.lum-notes-body ol{padding-left:1.4rem;list-style:decimal}.lum-notes-body strong{font-weight:800}.lum-notes-body :not(pre)>code{font-family:var(--lum-mono);background:var(--lum-note);border:1px solid var(--lum-note-line);border-radius:6px;padding:.05em .35em;font-size:.88em}.lum-notes-body pre{border:2px solid var(--lum-ink);font-family:var(--lum-mono);border-radius:12px;margin:.75rem 0;padding:.8rem 1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.lum-notes-body table{border-collapse:collapse;max-width:100%;margin:.75rem 0;font-size:.92rem;display:block;overflow-x:auto}.lum-notes-body th,.lum-notes-body td{text-align:left;vertical-align:top;border:1.5px solid #cfc7b4;padding:.4rem .7rem}.lum-notes-body th{background:var(--lum-note);font-weight:800}@media (prefers-reduced-motion:reduce){.lum-gem-btn .lum-gem-glow,.lum-notes-body h2.is-flash,.lum-notes-gem{animation:none}}.lum-modal{background:0 0;border:0;width:min(46rem,100% - 1.5rem);max-width:none;max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:visible}.lum-modal::backdrop{background:#2b2a2673;animation:.2s ease-out lum-modal-fade}.lum-modal-card{border:2px solid var(--lum-ink);background:var(--lum-paper);max-height:calc(100dvh - 2rem);box-shadow:8px 8px 0 var(--lum-ink);color:var(--lum-ink);font-family:var(--lum-round);border-radius:20px;padding:1.5rem clamp(1rem,4vw,2rem) 1.25rem;animation:.3s cubic-bezier(.34,1.36,.64,1) lum-modal-in;position:relative;overflow:auto}.lum-modal.is-closing .lum-modal-card{animation:.16s ease-in forwards lum-modal-out}.lum-modal.is-closing::backdrop{opacity:0;transition:opacity .16s}@keyframes lum-modal-in{0%{opacity:0;transform:scale(.94)translateY(10px)}}@keyframes lum-modal-out{to{opacity:0;transform:scale(.96)translateY(6px)}}@keyframes lum-modal-fade{0%{opacity:0}}.lum-modal-x{border:2px solid var(--lum-ink);cursor:pointer;background:#fff;border-radius:999px;place-items:center;width:44px;height:44px;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:.75rem;right:.75rem}.lum-modal-foot{background:linear-gradient(to bottom, #fbf8f100, var(--lum-paper) 1rem);margin:1.5rem calc(-1*clamp(1rem,4vw,2rem)) -1.25rem;padding:1rem clamp(1rem,4vw,2rem) 1.25rem;position:sticky;bottom:-1.25rem}.lum-modal-foot p{font-size:.95rem;line-height:1.6}.lum-modal-row{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.lum-modal-go{letter-spacing:.15em;width:100%;min-height:56px;box-shadow:var(--lum-shadow);font-size:1.15rem}.lum-modal-link{color:var(--lum-orange-ink);text-underline-offset:3px;cursor:pointer;font-weight:700;text-decoration:underline}@media (prefers-reduced-motion:reduce){.lum-map-node,.lum-map-edge{transition-duration:1ms}.lum-map-node.is-next,.lum-map-node.is-new,.lum-map-node.is-cleared,.lum-modal-card,.lum-modal.is-closing .lum-modal-card,.lum-modal::backdrop,.lum-map-toast{animation:none}}
