.dlink-root{width:100%}.dlink-wrap{contain:inline-size;justify-content:center;width:100%;display:flex}.dlink-board{box-sizing:border-box;border:3px solid var(--ink);border-radius:var(--r-md);background:var(--cream);box-shadow:var(--hard);position:relative;overflow:hidden}.dlink-svg{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:pointer;display:block}.dlink-board.is-drawing .dlink-svg{cursor:grabbing}.dlink-lines{fill:none;stroke:var(--ink);stroke-opacity:.14;stroke-width:1.5px}.dlink-tint{transition:fill .12s}.dlink-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.dlink-shine{stroke:var(--white);stroke-opacity:.5}.dlink-pipe.is-hinted{animation:dlink-hint .7s var(--ease-spring);transform-box:fill-box;transform-origin:50%}@keyframes dlink-hint{0%{opacity:0;transform:scale(.9)}40%{opacity:1}}.dlink-finger{fill-opacity:.28;stroke:var(--ink);stroke-opacity:.35;stroke-width:2px;pointer-events:none}.dlink-dot.is-pop{animation:dlink-pop .36s var(--ease-squish)}@keyframes dlink-pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}.dlink-mark{font-family:var(--font-body);text-anchor:middle;dominant-baseline:central;pointer-events:none;opacity:.7;font-weight:800}.dlink-cursor{fill:none;stroke:var(--ink);stroke-width:3px;stroke-dasharray:6 4;pointer-events:none}.dlink-board.is-won .dlink-dot{animation:dlink-hop .56s var(--ease-spring) both;animation-delay:calc(var(--i) * 50ms + .12s)}@keyframes dlink-hop{40%{transform:translateY(-8px)scale(1.2)}70%{transform:translateY(1px)scale(.95)}}.dlink-overlay{z-index:5;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.dlink-card{pointer-events:auto;border-radius:var(--r-lg);border:3px solid var(--ink);background:var(--white);width:min(300px,88%);box-shadow:var(--hard-lg);animation:dlink-card .36s var(--ease-spring);flex-direction:column;align-items:flex-start;gap:8px;padding:16px 18px;display:flex}@keyframes dlink-card{0%{opacity:0;transform:translateY(16px)scale(.92)rotate(-2deg)}}.dlink-card-title{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:26px;font-weight:800;line-height:1}.dlink-card-actions{flex-wrap:wrap;justify-content:flex-end;align-self:stretch;gap:8px;margin-top:6px;display:flex}.dlink-card>.dlink-stars{gap:5px}.dlink-foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;display:inline-flex}.dlink-switch{cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;font-weight:700;display:inline-flex}.dlink-switch input{opacity:0;width:1px;height:1px;position:absolute}.dlink-switch span{border:2px solid var(--ink);background:var(--cream);border-radius:99px;width:36px;height:20px;transition:background .14s;position:relative}.dlink-switch span:after{content:"";background:var(--ink);width:12px;height:12px;transition:transform .16s var(--ease-spring);border-radius:50%;position:absolute;top:2px;left:2px}.dlink-switch input:checked+span{background:var(--game)}.dlink-switch input:checked+span:after{transform:translate(16px)}.dlink-switch input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}.dlink-stars{vertical-align:-2px;align-items:center;gap:2px;display:inline-flex}.dlink-stars svg{display:block;overflow:visible}.dlink-stars path{fill:var(--cream);stroke:var(--ink);stroke-width:1.8px;stroke-linejoin:round}.dlink-stars svg.is-on path{fill:var(--sun)}.dlink-win-stars{flex-direction:column;align-items:center;gap:6px;display:flex}.dlink-win-stars .dlink-stars{gap:6px}.dlink-win-stars .dlink-stars svg{animation:dlink-star .42s var(--ease-spring) backwards}.dlink-win-stars .dlink-stars svg:nth-child(2){animation-delay:.11s}.dlink-win-stars .dlink-stars svg:nth-child(3){animation-delay:.22s}.dlink-win-stars p{color:var(--ink-2);text-align:center;margin:0;font-size:14px;font-weight:700}@keyframes dlink-star{0%{opacity:0;transform:scale(.2)rotate(-40deg)}}.dlink-star-key{flex-wrap:wrap;justify-content:center;gap:4px 16px;display:inline-flex}.dlink-star-key>span{align-items:center;gap:6px;display:inline-flex}.dlink-levels{flex-direction:column;gap:16px;width:100%;display:flex}.dlink-pager{justify-content:space-between;align-items:center;gap:12px;display:flex}.dlink-pager .ka-btn{font-size:24px;line-height:1}.dlink-pager-label{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:800}.dlink-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;padding:0 4px 4px 0;list-style:none;display:grid}.dlink-grid li{display:flex}.dlink-lvl{border:var(--edge);border-radius:var(--r-md);background:var(--white);min-height:74px;color:var(--ink);box-shadow:var(--hard-sm);cursor:pointer;transition:transform .14s var(--ease-spring), box-shadow .14s var(--ease-spring);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 4px;display:flex}.dlink-lvl:not(:disabled):hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}.dlink-lvl:not(:disabled):active{box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.dlink-lvl:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.dlink-lvl-num{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.dlink-lvl-foot{align-items:center;min-height:16px;display:flex}.dlink-lvl-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px;font-weight:800}.dlink-lvl.is-done{background:color-mix(in srgb, var(--game) 30%, var(--white))}.dlink-lvl.is-next{background:var(--sun)}.dlink-lvl.is-locked{background:var(--cream);color:var(--ink-3);cursor:not-allowed;box-shadow:none}.dlink-lock path{stroke:var(--ink-3);stroke-width:2.4px;stroke-linecap:round}.dlink-lock rect{fill:var(--white);stroke:var(--ink-3);stroke-width:2.2px}.dlink-lock circle{fill:var(--ink-3)}@media (width<=520px){.dlink-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dlink-lvl{min-height:66px}.dlink-lvl-num{font-size:22px}}@media (prefers-reduced-motion:reduce){.dlink-pipe,.dlink-dot,.dlink-card,.dlink-win-stars .dlink-stars svg,.dlink-tint{transition:none;animation:none!important}}
