.xv-dock{--dock-w:min(4rem, calc((100vw - 1.5rem - 2 * var(--dock-pad)) / var(--dock-n)));--dock-h:4rem;inset-inline:0;z-index:45;width:calc(var(--dock-w) * var(--dock-n) + 2 * var(--dock-pad));height:var(--dock-h);margin-inline:auto;position:fixed;bottom:1.75rem}.xv-dock__shadow{filter:drop-shadow(.375rem .5rem .75rem var(--neu-lo)) drop-shadow(-.3125rem -.3125rem .5rem var(--neu-hi));position:absolute;inset:0}.xv-dock__bar{background:var(--neu-surface);border-radius:var(--dock-r);position:absolute;inset:0}.xv-dock__outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.xv-dock__outline path{fill:none;stroke:color-mix(in srgb, var(--c-brand) 26%, transparent);stroke-width:1px}.xv-dock__bubble{top:calc(var(--dock-bubble) / -2 - var(--dock-rise));left:calc(var(--dock-x,50%) - var(--dock-bubble) / 2);width:var(--dock-bubble);height:var(--dock-bubble);color:#fff;box-shadow:0 .5rem 1.25rem var(--neu-accent-glow), 0 .125rem .25rem #0000002e, var(--neu-rim);pointer-events:none;background:linear-gradient(#8b5cf6,#6d28d9);border:1px solid #5b21b680;border-radius:50%;place-items:center;transition:opacity .18s,transform .26s cubic-bezier(.3,1.4,.5,1);display:grid;position:absolute}.xv-dock--idle .xv-dock__bubble{opacity:0;transform:scale(.4)}.xv-dock__bubble>svg{animation:.38s cubic-bezier(.3,1.5,.5,1) xv-dock-pop}@keyframes xv-dock-pop{0%{opacity:0;transform:scale(.4)rotate(-25deg)}to{opacity:1;transform:none}}.xv-dock__items{inset:0 var(--dock-pad);grid-template-columns:repeat(var(--dock-n), 1fr);display:grid;position:absolute}.xv-dock__item{color:var(--c-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:1.25rem;place-items:center;display:grid;position:relative}.xv-dock__item:hover{color:var(--c-ink)}.xv-dock__item:focus-visible{outline:.125rem solid var(--neu-ring);outline-offset:-.25rem}.xv-dock__item svg{transition:opacity .16s,transform .26s}.xv-dock__item[aria-current=page] svg{opacity:0;transform:translateY(-.75rem)scale(.6)}.xv-dock__label{inset-inline:0;text-align:center;letter-spacing:.01em;color:var(--c-brand);opacity:0;white-space:nowrap;font-size:.6875rem;font-weight:700;transition:opacity .2s .12s,transform .26s .12s;position:absolute;bottom:.5rem;transform:translateY(.375rem)}.xv-dock__item[aria-current=page] .xv-dock__label{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.xv-dock__bubble,.xv-dock__item svg,.xv-dock__label{transition:none}.xv-dock__bubble>svg{animation:none}}@media print{.xv-dock{display:none}}@property --xv-hold{syntax:"<number>";inherits:false;initial-value:0}.xv-dock__item:before{content:"";background:conic-gradient(var(--c-brand) calc(var(--xv-hold) * 1turn), transparent 0);opacity:0;pointer-events:none;border-radius:50%;width:2.75rem;height:2.75rem;margin:auto;position:absolute;inset:0;-webkit-mask:radial-gradient(closest-side,#0000 calc(100% - .1875rem),#000 calc(100% - .125rem));mask:radial-gradient(closest-side,#0000 calc(100% - .1875rem),#000 calc(100% - .125rem))}.xv-dock__item.is-holding:not([aria-current=page]):before{opacity:1;animation:xv-hold var(--hold-ms) linear forwards}@keyframes xv-hold{0%{--xv-hold:0}to{--xv-hold:1}}.xv-dock__bubble{z-index:3}.xv-fan{--fan-shine:#ffffffb3;--fan-spring:cubic-bezier(.34, 1.56, .64, 1);left:calc(var(--dock-pad) + (var(--fan-i) + .5) * var(--dock-w));z-index:-1;pointer-events:none;width:0;height:0;position:absolute;top:0}.xv-fan--bubble{left:var(--dock-x);top:calc(var(--dock-rise) * -1)}:root[data-theme=dark] .xv-fan{--fan-shine:#fff3}.xv-fan:before{content:"";left:calc(var(--fan-box) * -1.6);top:calc(var(--fan-box) * -1.45);width:calc(var(--fan-box) * 3.2);height:calc(var(--fan-box) * 2.1);background:radial-gradient(closest-side, color-mix(in srgb, var(--neu-bg) 96%, transparent) 62%, transparent);opacity:0;transform-origin:50% 78%;transition:opacity .26s,transform .42s;position:absolute;transform:scale(.6)}.xv-fan[data-open=true]:before{opacity:1;transform:none}.xv-fan__tubes{left:calc(var(--fan-box) * -1);top:calc(var(--fan-box) * -1);width:calc(var(--fan-box) * 2);height:var(--fan-box);filter:drop-shadow(0 .25rem .375rem var(--neu-accent-glow));position:absolute;overflow:visible}.xv-fan__tube{opacity:0;transition:opacity .16s .14s}.xv-fan[data-open=true] .xv-fan__tube{opacity:1;transition:opacity .12s ease calc(var(--i) * 45ms)}.xv-fan__tube path{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .26s cubic-bezier(.5,0,.75,0)}.xv-fan__tube-body{stroke:url(#xv-fan-tube);stroke-width:.75px}.xv-fan__tube-shine{stroke:var(--fan-shine);stroke-width:.12px;opacity:.8}.xv-fan__tube.is-active .xv-fan__tube-body{stroke-width:.9px}.xv-fan[data-open=true] .xv-fan__tube path{stroke-dashoffset:0;transition:stroke-dashoffset .52s cubic-bezier(.65, 0, .35, 1) calc(var(--i) * 45ms)}.xv-fan__node{--size:3rem;width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);cursor:pointer;pointer-events:none;visibility:hidden;opacity:0;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;transition:transform .26s cubic-bezier(.5,0,.75,0),opacity .2s,visibility 0s linear .26s;position:absolute;top:0;left:0;transform:translate(0)scale(.2)}.xv-fan[data-open=true] .xv-fan__node{pointer-events:auto;visibility:visible;opacity:1;transform:translate(var(--x), var(--y)) scale(1);transition:transform .62s var(--fan-spring) calc(var(--i) * 45ms + 80ms), opacity .22s ease calc(var(--i) * 45ms + 80ms), visibility 0s}.xv-fan__node.is-active{--size:5rem}.xv-fan__node:focus-visible{outline:none}.xv-fan__node:focus-visible .xv-fan__orb{box-shadow:var(--neu-raise-sm), 0 0 0 .1875rem var(--neu-ring)}.xv-fan__orb{width:100%;height:100%;color:var(--c-muted);background:var(--neu-surface);box-shadow:var(--neu-raise-sm), inset 0 0 0 .0625rem color-mix(in srgb, var(--c-brand) 14%, transparent);transition:transform .24s var(--fan-spring), color .18s ease, box-shadow .22s ease;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.125rem;display:flex}.xv-fan__node:hover .xv-fan__orb{color:var(--c-brand);box-shadow:var(--neu-raise), inset 0 0 0 .0625rem color-mix(in srgb, var(--c-brand) 40%, transparent);transform:translateY(-.1875rem)scale(1.08)}.xv-fan__node:active .xv-fan__orb{box-shadow:var(--neu-inset-sm);transform:scale(.94)}.xv-fan__node.is-active .xv-fan__orb{color:#fff;box-shadow:0 .625rem 1.5rem var(--neu-accent-glow), 0 0 0 .375rem color-mix(in srgb, var(--c-brand) 12%, transparent), var(--neu-rim);background:linear-gradient(#8b5cf6,#6d28d9);border:1px solid #5b21b680;animation:2.6s ease-in-out .9s infinite xv-fan-halo}.xv-fan__node.is-active:hover .xv-fan__orb{color:#fff;background:linear-gradient(#a78bfa,#7c3aed)}@keyframes xv-fan-halo{50%{box-shadow:0 .625rem 1.75rem var(--neu-accent-glow), 0 0 0 .625rem color-mix(in srgb, var(--c-brand) 7%, transparent), var(--neu-rim)}}.xv-fan__orb-label{text-align:center;max-width:4.25rem;font-size:.6875rem;font-weight:700;line-height:1.1}.xv-fan__label{width:max-content;max-width:7.5rem;color:var(--c-ink);background:color-mix(in srgb, var(--neu-bg) 82%, transparent);-webkit-backdrop-filter:blur(.375rem);backdrop-filter:blur(.375rem);box-shadow:var(--neu-raise-xs);opacity:0;border-radius:.625rem;padding:.25rem .5rem;font-size:.8125rem;font-weight:600;line-height:1.15;transition:opacity .16s,transform .3s;position:absolute;top:50%}.xv-fan__node[data-side=start] .xv-fan__label{text-align:end;right:calc(100% + .5rem);transform:translate(.5rem,-50%)}.xv-fan__node[data-side=end] .xv-fan__label{text-align:start;left:calc(100% + .5rem);transform:translate(-.5rem,-50%)}.xv-fan__node[data-side=top] .xv-fan__label{text-align:center;top:auto;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,.5rem)}.xv-fan[data-open=true] .xv-fan__label{opacity:1;transition:opacity .26s ease calc(var(--i) * 45ms + .32s), transform .36s ease calc(var(--i) * 45ms + .32s)}.xv-fan[data-open=true] .xv-fan__node[data-side=start] .xv-fan__label,.xv-fan[data-open=true] .xv-fan__node[data-side=end] .xv-fan__label{transform:translateY(-50%)}.xv-fan[data-open=true] .xv-fan__node[data-side=top] .xv-fan__label{transform:translate(-50%)}.xv-fan__node:hover .xv-fan__label{color:var(--c-brand)}@media (prefers-reduced-motion:reduce){.xv-fan__node,.xv-fan[data-open=true] .xv-fan__node,.xv-fan__tube path,.xv-fan[data-open=true] .xv-fan__tube path,.xv-fan__label,.xv-fan[data-open=true] .xv-fan__label,.xv-fan:before{transition-duration:1ms;transition-delay:0s}.xv-fan__node.is-active .xv-fan__orb,.xv-dock__item.is-holding:before{animation:none}}.xv-dock__hop{z-index:1;width:var(--dock-pad);border-radius:var(--dock-r);color:var(--c-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:0}.xv-dock__hop--start{left:0}.xv-dock__hop--end{right:0}.xv-dock__hop svg{transition:transform .18s,color .18s}.xv-dock__hop:hover:not(:disabled){color:var(--c-brand)}.xv-dock__hop--start:hover:not(:disabled) svg{transform:translate(-.125rem)}.xv-dock__hop--end:hover:not(:disabled) svg{transform:translate(.125rem)}.xv-dock__hop:active:not(:disabled) svg{transform:scale(.82)}.xv-dock__hop:disabled{opacity:.3;cursor:default}.xv-dock__hop:focus-visible{outline:.125rem solid var(--neu-ring);outline-offset:-.375rem}.xv-dock__module{color:var(--c-muted);letter-spacing:.02em;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;align-items:center;gap:.3125rem;padding:.25rem .75rem;font-size:.6875rem;font-weight:700;display:inline-flex;position:absolute;top:calc(100% + .25rem);left:50%;transform:translate(-50%)}.xv-dock__module:hover,.xv-dock__module[aria-expanded=true]{color:var(--c-brand)}.xv-dock__module:focus-visible{outline:.125rem solid var(--neu-ring)}.xv-dock__module-caret{transition:transform .24s}.xv-dock__module[aria-expanded=true] .xv-dock__module-caret{transform:rotate(180deg)}.xv-modmenu{z-index:2;background:var(--neu-surface);width:min(19rem,100vw - 1.5rem);max-height:60vh;box-shadow:var(--neu-raise);opacity:0;visibility:hidden;pointer-events:none;transform-origin:50% 100%;border-radius:1.25rem;padding:.5rem;transition:opacity .18s,transform .28s cubic-bezier(.34,1.4,.64,1),visibility 0s linear .28s;position:absolute;bottom:calc(100% + 2.25rem);left:50%;overflow-y:auto;transform:translate(-50%)translateY(.75rem)scale(.96)}.xv-modmenu[data-open=true]{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s,transform .28s cubic-bezier(.34,1.4,.64,1),visibility;transform:translate(-50%)}.xv-modmenu__item{width:100%;color:var(--c-ink);text-align:start;cursor:pointer;background:0 0;border:0;border-radius:.875rem;align-items:center;gap:.75rem;padding:.5rem .625rem;display:flex}.xv-modmenu__item:hover{box-shadow:var(--neu-inset-sm)}.xv-modmenu__item:focus-visible{outline:.125rem solid var(--neu-ring);outline-offset:-.125rem}.xv-modmenu__item.is-active{color:#fff;box-shadow:0 .375rem 1rem var(--neu-accent-glow), var(--neu-rim);background:linear-gradient(#8b5cf6,#6d28d9)}.xv-modmenu__glyph{background:var(--neu-bg);width:2.25rem;height:2.25rem;box-shadow:var(--neu-raise-xs);border-radius:.75rem;flex:none;place-items:center;display:grid}.xv-modmenu__item.is-active .xv-modmenu__glyph{box-shadow:none;background:#ffffff29}.xv-modmenu__text{flex-direction:column;min-width:0;display:flex}.xv-modmenu__name,.xv-modmenu__blurb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.xv-modmenu__name{font-size:.8125rem;font-weight:700}.xv-modmenu__blurb{color:var(--c-muted);font-size:.6875rem}.xv-modmenu__item.is-active .xv-modmenu__blurb{color:#ffffffc7}.xv-modmenu__row{align-items:center;gap:.25rem;display:flex}.xv-modmenu__row .xv-modmenu__item{flex:1;min-width:0}.xv-modmenu__heading{border-top:.0625rem solid var(--c-border);letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);margin:.375rem 0 .125rem;padding:.375rem .75rem .125rem;font-size:.625rem;font-weight:700}.xv-modmenu__remove{width:1.75rem;height:1.75rem;color:var(--c-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.xv-modmenu__remove:hover{color:#b42318;background:var(--neu-bg);box-shadow:var(--neu-inset-sm)}.xv-modmenu__remove:focus-visible{outline:.125rem solid var(--neu-ring);outline-offset:-.125rem}.xv-modmenu__add,.xv-modmenu__glyph--add{color:var(--c-brand)}.xv-modmenu__pick{padding-inline-start:1.25rem}.xv-modmenu__theme{border-top:.0625rem solid var(--c-border);border-radius:0 0 .875rem .875rem;margin-top:.25rem;padding-top:.625rem}.xv-dock--in-next{animation:.46s cubic-bezier(.2,.9,.3,1) backwards xv-dock-in-next}.xv-dock--in-prev{animation:.46s cubic-bezier(.2,.9,.3,1) backwards xv-dock-in-prev}@keyframes xv-dock-in-next{0%{opacity:0;transform:translate(3rem)}}@keyframes xv-dock-in-prev{0%{opacity:0;transform:translate(-3rem)}}@media (prefers-reduced-motion:reduce){.xv-dock--in-next,.xv-dock--in-prev{animation:none}.xv-dock__hop svg,.xv-dock__module-caret,.xv-modmenu,.xv-modmenu[data-open=true]{transition-duration:1ms}}
