.tl-root{width:100%;scroll-margin-top:88px}.tl-fit{touch-action:manipulation;justify-content:center;width:100%;display:flex;position:relative}.tl-board{background:var(--cream);border:3px solid var(--ink);box-shadow:var(--hard);animation:tl-deal .38s var(--ease-out);border-radius:18px;outline:none;flex:none;position:relative}.tl-board:focus-visible{box-shadow:var(--hard), 0 0 0 3px var(--white), 0 0 0 6px var(--ink)}@keyframes tl-deal{0%{opacity:.2;transform:scale(.97)}}.tl-tile{width:var(--tw);height:var(--th);border:2px solid var(--ink);box-shadow:2px 2px 0 0 #e9ddb8, 2px 2px 0 2px var(--ink);cursor:pointer;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent;transition:transform .24s var(--ease-spring), background .14s;background:#fffdf4;border-radius:7px;margin:0;padding:0;position:absolute;top:0;left:0}.tl-tile .mj-art{pointer-events:none;width:100%;max-width:none;height:100%;display:block}@media (hover:hover){.tl-board:not(.is-done) .tl-tile:hover{background:var(--white)}}.tl-tile.is-sel{background:color-mix(in srgb, var(--sun) 78%, #fffdf4);box-shadow:2px 2px 0 0 #e9ddb8, 2px 2px 0 2px var(--ink), inset 0 0 0 2.5px var(--ink)}.tl-tile.is-cursor{outline:3px dashed var(--ink);outline-offset:1px}.tl-tile.is-hint{animation:.8s ease-in-out infinite alternate tl-hint}@keyframes tl-hint{0%{background:var(--white)}to{background:var(--sun)}}.tl-tile.is-nope{animation:.28s ease-in-out tl-nope}@keyframes tl-nope{25%{translate:-3px}60%{translate:3px}}.tl-tile.is-leaving{pointer-events:none;z-index:3;animation:tl-leave .4s var(--ease-out) forwards;background:var(--sun)}@keyframes tl-leave{0%{opacity:1;scale:1}35%{opacity:1;scale:1.12 .9}to{opacity:0;rotate:18deg;scale:.2}}.tl-board.is-done .tl-tile{cursor:default}.tl-path{pointer-events:none;z-index:4;animation:.42s ease-out forwards tl-path;position:absolute;inset:0;overflow:visible}.tl-path polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.tl-path-ink{stroke:var(--ink);stroke-width:9px}.tl-path-sun{stroke:var(--sun);stroke-width:4.5px}@keyframes tl-path{0%,60%{opacity:1}to{opacity:0}}.tl-board .mj-cjk{font-family:Noto Sans CJK SC,Noto Sans SC,PingFang SC,Hiragino Sans,Microsoft YaHei,Yu Gothic,sans-serif}.tl-board .mj-idx{font-family:var(--font-display);font-weight:800}.tl-board .mj-lbl{font-family:var(--font-body);font-weight:800}.tl-low{color:var(--bad)}.tl-status{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.tl-status .tl-grav{color:var(--ink)}.tl-toast{z-index:30;border:var(--edge);background:var(--white);width:max-content;max-width:min(92%,440px);box-shadow:var(--hard);text-align:center;pointer-events:none;animation:tl-toast 2.6s var(--ease-out) forwards;border-radius:14px;margin:0;padding:7px 16px 8px;font-size:14px;font-weight:700;position:absolute;top:6px;left:50%}@keyframes tl-toast{0%{opacity:0;transform:translate(-50%,-8px)scale(.9)}8%,85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)}}.tl-overlay{z-index:20;pointer-events:none;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.tl-card{pointer-events:auto;border-radius:var(--r-lg);border:3px solid var(--ink);background:var(--white);width:min(340px,100%);box-shadow:var(--hard-lg);animation:tl-card .36s var(--ease-spring);flex-direction:column;align-items:flex-start;gap:8px;padding:18px 20px;display:flex}@keyframes tl-card{0%{opacity:0;transform:translateY(16px)scale(.92)rotate(-2deg)}}.tl-card-kicker{border:2px solid var(--ink);background:var(--game);border-radius:999px;margin:0;padding:2px 10px 3px;font-size:13px;font-weight:800}.tl-card-title{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800;line-height:1}.tl-card-sub{color:var(--ink-2);margin:0;font-size:14px;font-weight:500}.tl-card-actions{flex-wrap:wrap;justify-content:flex-end;align-self:stretch;gap:8px;margin-top:6px;display:flex}.tl-foot{flex-wrap:wrap;justify-content:center;gap:6px 18px;display:inline-flex}.tl-touch{display:none}@media (hover:none) and (pointer:coarse){.tl-keys{display:none}.tl-touch{display:inline}}.tl-stars{vertical-align:-2px;align-items:center;gap:2px;display:inline-flex}.tl-stars svg{display:block;overflow:visible}.tl-stars path{fill:var(--cream);stroke:var(--ink);stroke-width:1.8px;stroke-linejoin:round}.tl-stars svg.is-on path{fill:var(--sun)}.tl-win-stars{flex-direction:column;align-items:center;gap:6px;display:flex}.tl-win-stars .tl-stars{gap:6px}.tl-win-stars .tl-stars svg{animation:tl-star .42s var(--ease-spring) backwards}.tl-win-stars .tl-stars svg:nth-child(2){animation-delay:.11s}.tl-win-stars .tl-stars svg:nth-child(3){animation-delay:.22s}.tl-win-stars p{color:var(--ink-2);text-align:center;margin:0;font-size:14px;font-weight:700}@keyframes tl-star{0%{opacity:0;transform:scale(.2)rotate(-40deg)}}.tl-levels{flex-direction:column;gap:22px;width:100%;display:flex}.tl-tier-h{font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;gap:10px;margin:0 0 12px;font-size:22px;font-weight:800;display:flex}.tl-tier-h span{font-family:var(--font-body);letter-spacing:0;color:var(--ink-3);font-size:13px;font-weight:700}.tl-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px 12px;margin:0;padding:0 6px 6px 0;list-style:none;display:grid}.tl-grid li{display:flex}.tl-lvl{--lvl-face:#fffdf4;border:2.5px solid var(--ink);background:var(--lvl-face);min-height:104px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:4px 4px 0 0 #e9ddb8, 4px 4px 0 2.5px var(--ink);transition:transform .15s var(--ease-spring), box-shadow .15s var(--ease-spring);border-radius:12px;flex-direction:column;flex:1;align-items:flex-start;gap:3px;margin:0;padding:9px 10px;display:flex}@media (hover:hover){.tl-lvl:not(:disabled):hover{transform:translate(-1px,-2px)}}.tl-lvl:not(:disabled):active{box-shadow:1px 1px 0 0 #e9ddb8, 1px 1px 0 2.5px var(--ink);transform:translate(3px,3px)}.tl-lvl:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.tl-lvl-top{justify-content:space-between;align-self:stretch;align-items:center;display:flex}.tl-lvl-num{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:.95}.tl-lvl-name{font-size:13px;font-weight:800}.tl-lvl-foot{flex-wrap:wrap;align-items:center;gap:3px 6px;min-height:20px;margin-top:auto;display:flex}.tl-lvl-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.tl-lvl-tag{border:2px solid var(--ink);background:var(--white);border-radius:999px;padding:1px 8px 2px;font-size:11px;font-weight:800}.tl-lvl.is-done{--lvl-face:color-mix(in srgb, var(--game) 30%, #fffdf4)}.tl-lvl.is-next{--lvl-face:var(--sun)}.tl-lvl.is-locked{--lvl-face:var(--cream);cursor:not-allowed;color:var(--ink-3)}.tl-lvl.is-locked .tl-lvl-num{color:color-mix(in srgb, var(--ink) 35%, var(--cream))}.tl-lock path{stroke:var(--ink-3);stroke-width:2.4px;stroke-linecap:round}.tl-lock rect{fill:var(--white);stroke:var(--ink-3);stroke-width:2.2px}.tl-lock circle{fill:var(--ink-3)}.tl-grav{flex:none;display:block}.tl-star-key{flex-wrap:wrap;justify-content:center;gap:4px 16px;display:inline-flex}.tl-star-key>span{align-items:center;gap:6px;display:inline-flex}@media (width<=520px){.tl-root .ka-bar{gap:8px}.tl-root .ka-actions{gap:6px}.tl-root .ka-actions .ka-btn{height:36px;padding:0 11px;font-size:14px}.tl-root .ka-stat{min-width:0;padding:4px 10px 5px}.tl-root .ka-stat dd{font-size:19px}.tl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px}.tl-lvl{min-height:92px;padding:7px 8px}.tl-lvl-num{font-size:26px}.tl-tile{box-shadow:1.5px 1.5px 0 0 #e9ddb8, 1.5px 1.5px 0 1.5px var(--ink);border-width:1.5px;border-radius:5px}.tl-path-ink{stroke-width:7px}.tl-path-sun{stroke-width:3.5px}}@media (prefers-reduced-motion:reduce){.tl-tile,.tl-board,.tl-lvl{transition:none;animation:none}}
