.game{--tile:50px;--sky-1:#a9d8ff;--sky-2:#dff0ff;--sky-3:#fff1cf;--wood:#b06a2c;--wood-dark:#8a4f1c;--wood-light:#d39a5b;--grass:#6fbf73;--grass-dark:#4e9f56;background:var(--card);border:1.5px solid var(--ink);box-shadow:0 6px 0 var(--ink);border-radius:24px;padding:14px;position:relative}.game-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:2px 4px 12px;display:flex}.meta{color:var(--ink-2);flex-wrap:wrap;flex:1;align-items:baseline;gap:10px;margin:0;font-size:.9rem;display:flex}.meta .no{font:italic 400 1.5rem/1 var(--display);color:var(--ink)}.meta .route{letter-spacing:.1em;color:var(--ink);align-items:center;gap:7px;font-size:.92rem;font-weight:800;display:inline-flex}.meta .route i{color:var(--muted);font-style:normal}.meta .par{background:var(--mark);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;margin-left:auto;padding:4px 12px;font-size:.76rem;font-weight:800}.unl-tools{gap:6px;width:100%;display:flex}.unl-tools select{font:inherit;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:999px;flex:1;padding:7px 12px;font-size:.9rem;font-weight:500}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.ladder-frame{border:1.5px solid var(--ink);background:linear-gradient(var(--sky-1), var(--sky-2) 55%, var(--sky-3));border-radius:16px;flex-direction:column;justify-content:flex-end;min-height:300px;display:flex;position:relative;overflow:hidden}.sun{background:var(--mark);border-radius:50%;width:46px;height:46px;transition:transform .6s cubic-bezier(.3,1.6,.5,1);position:absolute;top:20px;left:24px;box-shadow:0 0 0 10px #ffe04a59,0 0 0 22px #ffe04a2e}.cloud{opacity:.95;background:#fff;border-radius:20px;width:54px;height:18px;animation:70s linear infinite drift;position:absolute}.cloud:before,.cloud:after{content:"";background:#fff;border-radius:50%;position:absolute}.cloud:before{width:24px;height:24px;top:-11px;left:8px}.cloud:after{width:18px;height:18px;top:-7px;left:27px}.cloud.c1{top:44px;left:-60px}.cloud.c2{opacity:.8;animation-duration:95s;animation-delay:-40s;top:116px;left:-60px;transform:scale(.7)}@keyframes drift{to{translate:560px}}.ground{background:var(--grass);border-top:1.5px solid var(--ink);border-radius:50% 50% 0 0/100% 100% 0 0;height:62px;position:absolute;bottom:-34px;left:-10%;right:-10%}.ground:after{content:"";border-radius:inherit;background:radial-gradient(at 30% 0,#ffffff47,#0000 55%);position:absolute;inset:0}.climb{letter-spacing:.16em;text-transform:uppercase;color:#15140f80;writing-mode:vertical-rl;font-size:.62rem;font-weight:800;position:absolute;bottom:44px;left:10px;transform:rotate(180deg)}.climb:after{content:" →"}.ladder-wrap{z-index:1;padding:16px 0 20px;position:relative}.ladder-wrap:before,.ladder-wrap:after{content:"";background:linear-gradient(90deg, var(--wood-light), var(--wood) 45%, var(--wood-dark));border:1.5px solid var(--ink);z-index:2;border-radius:5px 5px 2px 2px;width:9px;position:absolute;top:8px;bottom:6px}.ladder-wrap:before{left:calc(50% - (2 * var(--tile) + 35px))}.ladder-wrap:after{right:calc(50% - (2 * var(--tile) + 35px))}.ladder{scrollbar-width:none;flex-direction:column-reverse;align-items:center;gap:9px;max-height:min(44vh,430px);margin:0;padding:2px 0;list-style:none;display:flex;position:relative;overflow-y:auto}.ladder::-webkit-scrollbar{display:none}.rung{gap:6px;padding:0 22px;display:flex;position:relative}.rung:before{content:"";background:linear-gradient(var(--wood-light), var(--wood));border-block:1.5px solid var(--ink);height:8px;position:absolute;top:calc(50% - 4px);left:2px;right:2px}.rung .label{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:#15140f8c;width:44px;font-size:.62rem;font-weight:800;position:absolute;top:50%;right:-52px;transform:translateY(-50%)}.tile{width:var(--tile);height:var(--tile);font:800 calc(var(--tile) * .5)/1 var(--body);border:1.5px solid var(--ink);color:var(--ink);box-shadow:0 3px 0 var(--ink);z-index:1;background:#fffdf4;border-radius:11px;place-items:center;display:grid;position:relative}.tile.hit{background:var(--mark)}.tile.changed:after{content:"";background:var(--ink);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px}.start .tile{background:var(--ink);color:#fff}.start .tile.hit{background:var(--ink);color:var(--mark)}.target .tile{box-shadow:none;color:#15140fbf;background:#eaf5ff;border-style:dashed}.target .tile.hit{background:#eaf5ff}.is-target .tile{background:var(--mark)}.input .tile.ghost{color:#a39e8e;box-shadow:none;background:#fdfcf7;border-color:#8d897c}.input .tile.caret{border-color:var(--ink);background:#fff;animation:1.2s ease-in-out infinite blink;box-shadow:0 0 0 4px #ffffffb3}@keyframes blink{50%{box-shadow:0 0 0 4px #fff0}}.input .tile.typed{background:#fff}.input .tile.typed.hit{background:var(--mark)}.rung.empty{height:14px;width:calc(4 * var(--tile) + 62px);opacity:.55;padding:0}.rung.empty span{display:none}.gap{letter-spacing:.04em;color:var(--ink);z-index:3;background:#fffc;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;position:relative}.pop .tile{animation:.38s both flip}.pop .tile:nth-child(3){animation-delay:50ms}.pop .tile:nth-child(4){animation-delay:.1s}.pop .tile:nth-child(5){animation-delay:.15s}@keyframes flip{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.game.won .sun{transform:scale(1.5)}.game.won .is-target .tile{animation:.5s both hop}.game.won .is-target .tile:nth-child(3){animation-delay:70ms}.game.won .is-target .tile:nth-child(4){animation-delay:.14s}.game.won .is-target .tile:nth-child(5){animation-delay:.21s}@keyframes hop{40%{transform:translateY(-12px)}}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:5;white-space:nowrap;border-radius:999px;padding:9px 16px;font-size:.88rem;font-weight:700;transition:opacity .15s,transform .15s;position:absolute;top:70px;left:50%;transform:translate(-50%,-6px)}.toast.show{opacity:1;transform:translate(-50%)}.tools{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 10px;display:grid}.tool{border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 6px;font-size:.86rem;font-weight:700;transition:background .12s;display:flex}.tool svg{width:15px;height:15px;stroke:var(--ink);flex:none}.tool:hover:not(:disabled){background:var(--mark)}.tool:disabled{opacity:.35;cursor:default}.kb{-webkit-user-select:none;user-select:none;flex-direction:column;gap:7px;display:flex}.kb-row{justify-content:center;gap:5px;display:flex}.kb-row:nth-child(2){padding:0 4.5%}.key{background:var(--paper-2);text-transform:uppercase;min-width:0;height:50px;color:var(--ink);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:9px;flex:1 1 0;padding:0;font-size:1rem;font-weight:800;transition:background 80ms,transform 80ms}.key:active{background:var(--mark);transform:scale(.94)}.key.wide{letter-spacing:.06em;flex-grow:1.7;font-size:.7rem}.key.enter{background:var(--ink);color:var(--mark)}.key.enter:active{background:var(--ink);color:#fff}.key.back{font-size:1.15rem}.game:has(.done:not([hidden])) .kb,.game:has(.done:not([hidden])) .tools{display:none}.done{text-align:center;margin-top:6px;padding:18px 8px 6px;animation:.35s both rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.verdict{font:italic 400 2.3rem/1.05 var(--display);background:linear-gradient(transparent 55%, var(--paper-2) 55% 92%, transparent 92%);margin-bottom:8px;padding:0 .15em;display:inline-block}.verdict.good{background:linear-gradient(transparent 55%, var(--mark) 55% 92%, transparent 92%)}.done p{color:var(--ink-2);margin:0 0 12px;font-size:.96rem}.stats{border-block:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;margin:10px 0 16px;display:grid}.stats div{text-align:center;padding:10px 4px}.stats div+div{border-left:1px solid var(--line)}.stats dt{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.62rem;font-weight:700}.stats dd{font:400 1.9rem/1 var(--display);margin:2px 0 0}.done-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.done-actions .btn{flex:140px}.next{letter-spacing:.02em;color:var(--muted)!important;margin-top:14px!important;font-size:.82rem!important}.next b{color:var(--ink);font-variant-numeric:tabular-nums}@media (width<=900px){.game{--tile:54px;border-radius:22px;width:min(100%,470px);margin-inline:auto;padding:12px}.rung .label{display:none}.ladder-frame{min-height:0}}.done:focus{outline:none}@media (width<=380px){.game{--tile:48px;padding:10px 8px}.key{height:46px}.kb-row{gap:4px}.tool{padding:11px 6px}}@media (width<=900px) and (height<=700px){.game{--tile:44px}.key{height:44px}.ladder{max-height:38vh}}
