@charset "UTF-8";
:root{font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#314c40;background:#e8eade;font-synthesis:none;--green:#385c4b;--ink:#314c40;--muted:#788474;--paper:#f8f7ef;--line:#e2e5d9}
*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #b46a3e;outline-offset:3px}button:disabled{opacity:.4;cursor:default}button{border:0}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.game-shell{position:relative;max-width:440px;margin:28px auto;background:var(--paper);border:1px solid #fff;border-radius:27px;padding:23px 24px 15px;box-shadow:0 16px 70px #33482d13}.brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.brand{display:flex;gap:9px;align-items:center;text-decoration:none;color:var(--ink);font-weight:800;font-size:18px;letter-spacing:2px}.brand small{display:block;font-size:8px;font-weight:600;letter-spacing:2px;margin-top:2px}.brand-mark{background:var(--green);color:#f3f0df;border-radius:12px;font-size:29px;line-height:40px;text-align:center;width:39px;height:40px;font-weight:400}.header-actions{display:flex;align-items:center;gap:8px}.icon-button{width:44px;height:44px;border-radius:50%;background:transparent;color:var(--green);font-size:20px}.icon-button[aria-pressed=true]{color:#a6aa9d;text-decoration:line-through}.text-button{background:transparent;min-height:44px;color:var(--green);font-size:12px;font-weight:600}.text-button span{font-size:22px;margin-left:5px;vertical-align:middle}.route-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.eyebrow{font-size:9px;letter-spacing:2.1px;color:#7d8775;font-weight:700}h1{font-size:25px;letter-spacing:1px;margin:5px 0 0;line-height:1.3}.tag{font-size:10px;padding:7px 10px;border:1px solid #dce0d2;border-radius:20px;color:#73806e}.stats{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:11px}.energy-label{display:flex;align-items:center;gap:5px;white-space:nowrap}.energy-icon{font-size:20px;color:#b17842}.energy-label b{font-size:14px;margin-left:4px}.energy-label span span{color:#92998c;font-size:10px}.energy-track{flex:1;height:5px;border-radius:8px;background:#e5e8db;overflow:hidden}.energy-track>div{height:100%;background:#82977b;border-radius:8px;transition:width .25s}.energy-track>div.low{background:#cc865c}.moves{margin-left:4px;color:#92998c;white-space:nowrap}.moves b{font-size:14px;color:#526350;margin-right:2px}.wall-wrap{position:relative;border-radius:15px;overflow:hidden;background:#e9eadc;border:1px solid #dfe2d2}.wall-caption{position:absolute;z-index:1;top:13px;left:15px;right:15px;display:flex;justify-content:space-between;pointer-events:none;font-size:8px;letter-spacing:2.4px;color:#939c89}.wall-caption span:last-child{font-size:20px;letter-spacing:0;font-weight:300}#wall{width:100%;height:auto;display:block;touch-action:manipulation;user-select:none}.mat-label{font:6px sans-serif;letter-spacing:1.7px;fill:#e7ecdf}.hold{cursor:pointer;outline:none}.hold .rock{filter:drop-shadow(0 2px 0 #6e756326);transition:filter .15s}.hold:hover .rock{filter:drop-shadow(0 2px 3px #496d5144)}.hold:focus-visible .rock{stroke:#385c4b;stroke-width:3}.hold .top-label{font:bold 8px sans-serif;letter-spacing:2px;fill:#52725d}.hold .cost-label{font:bold 10px sans-serif;fill:#567360}#climber{pointer-events:none}.limb-label{pointer-events:all;cursor:pointer}.limb-label text{pointer-events:none}.dust{animation:dust .6s ease-out forwards;transform-box:fill-box;transform-origin:center}@keyframes dust{to{transform:translate(var(--dx),var(--dy));opacity:0}}.coach{min-height:53px;display:flex;align-items:center;gap:9px;margin:8px 0 5px}.coach>span{width:25px;height:25px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:#e9eee2;color:#78906c;font-size:16px}.coach p{font-size:11px;line-height:1.7;margin:0;color:#6d7968}.coach.error>span{background:#f3e5d7;color:#a06c49}.coach.error p{color:#a06c49}.control-heading{display:flex;justify-content:space-between;font-size:10px;color:#8b9483;margin-bottom:9px}.control-heading span:first-child{color:#61705b;font-weight:600}.limb-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.limb-buttons button{height:52px;border:1px solid #dde2d4;background:#f4f4e9;color:#72806a;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;transition:background .15s}.limb-buttons button[aria-pressed=true]{background:var(--green);color:#fff8e9;border-color:var(--green);box-shadow:0 3px 8px #385c4b1a}.limb-symbol{font-size:26px;line-height:1}.foot-symbol{font-size:22px}.utility-row{display:flex;gap:8px;margin-top:10px}.secondary-button{background:#edeFE4;color:#6d7a64;border-radius:10px;min-height:44px;font-size:11px;padding:0 15px}.utility-row>.secondary-button{flex:1}.hint-button{width:44px;min-height:44px;border-radius:10px;background:#edefe4;color:#7f8c76;font-size:15px}footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:11px;border-top:1px solid var(--line);font-size:9px;color:#a0a793}footer button{min-height:44px;font-size:10px;background:none;color:#7b876e;padding:0 0 0 8px}.desktop-note{position:fixed;left:calc(50% - 420px);top:34%;color:#8d9b83}.desktop-note p{font-size:22px;line-height:1.8;font-weight:300;letter-spacing:4px}.desktop-note small{font-size:8px;line-height:2;letter-spacing:2px}.note-line{display:block;width:28px;height:2px;background:#acb69d}.result-card{position:absolute;left:16px;right:16px;top:50%;transform:translateY(-50%);padding:25px 20px;background:#faf9f0f5;border:1px solid white;border-radius:18px;text-align:center;box-shadow:0 10px 40px #344b3b1a;backdrop-filter:blur(8px)}.result-card h2{font-size:22px;margin:9px 0}.result-card p{font-size:12px;color:#7d8975;line-height:1.8;margin:8px 0}.result-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}.primary-button{background:var(--green);color:#fff8e9;border-radius:11px;min-height:46px;font-size:12px;padding:10px 18px}.result-card #personal-best{font-size:10px;color:#a9804c}.full-width{width:100%}dialog{width:min(400px,calc(100vw - 32px));max-height:85dvh;overflow:auto;border:1px solid #fff;border-radius:22px;padding:25px;background:var(--paper);color:var(--ink);box-shadow:0 25px 80px #20352c33}dialog::backdrop{background:#2a3b3166;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.dialog-head h2{font-size:21px;letter-spacing:.5px;margin:7px 0 10px}.close-button{min-width:44px;height:44px;background:#e9eddf;border-radius:50%;font-size:24px;color:#708267;margin-top:-5px;margin-right:-8px}.dialog-intro{font-size:12px;color:#839079;line-height:1.9;margin:5px 0 20px}.route-choice{display:flex;align-items:center;width:100%;gap:15px;padding:17px 13px;border:1px solid var(--line);border-radius:13px;margin:10px 0;background:#f0f1e6;text-align:left;color:var(--ink)}.route-choice.active{border-color:#849d7f;background:#e7ecdf}.route-choice .number{font-size:24px;font-weight:300;color:#8da080}.route-choice strong{font-size:14px;font-weight:600}.route-choice small{display:block;color:#849078;font-size:10px;margin-top:6px}.route-choice .check{margin-left:auto;color:#67825c}.dialog-footnote{font-size:10px;line-height:1.8;color:#96a08d;margin:17px 0 0}.help-list{padding-left:22px;margin:15px 0 22px}.help-list li{padding-left:6px;margin-bottom:20px;font-size:13px}.help-list p{font-size:12px;line-height:1.9;color:#7e8975;margin:7px 0}.help-list+.dialog-footnote{margin-bottom:20px}.record-summary{display:flex;justify-content:space-around;padding:20px 0;background:#edf0e2;border-radius:12px;margin-bottom:16px;font-size:11px;text-align:center;color:#7a896e}.record-summary b{display:block;color:var(--green);font-size:27px;margin-bottom:4px}.record-item{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:11px;gap:10px}.record-item span{color:#89967c}.record-item:last-child{margin-bottom:20px}#record-list{max-height:230px;overflow:auto}.storage-warning{color:#a47648!important}
@media(min-width:1100px){.game-shell{margin-left:calc(50% - 140px)}}
@media(max-width:700px){.desktop-note{display:none}.game-shell{margin:0 auto;border:0;border-radius:0;box-shadow:none;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 18px calc(8px + env(safe-area-inset-bottom))}.brand-row{margin-bottom:17px}body{background:var(--paper)}}
@media(max-width:360px){.game-shell{padding-left:12px;padding-right:12px}.limb-buttons{gap:6px}.tag{font-size:9px;padding:6px 8px}h1{font-size:23px}.coach p{font-size:10px}.brand-row{margin-bottom:12px}.brand{font-size:16px}}
@media(max-width:700px) and (max-height:820px){.game-shell{padding-top:calc(10px + env(safe-area-inset-top))}.brand-row{margin-bottom:10px}.route-heading{margin-bottom:9px}.stats{margin-bottom:8px}#wall{height:clamp(260px,calc(100svh - 330px),440px)}.coach{min-height:46px;margin:4px 0}.utility-row{margin-top:7px}footer{margin-top:8px;padding-top:3px}.limb-buttons button{height:46px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
#wall{touch-action:none;cursor:default}.hold{cursor:default}.drag-handle{pointer-events:all;cursor:grab;outline:none}.drag-handle text{pointer-events:none}.drag-handle:focus-visible>circle:nth-child(2){stroke:#ba6b42;stroke-width:3}.dragging,.dragging .drag-handle{cursor:grabbing!important}.hold.snap-target .rock{fill:#4e9470;stroke:#f8ffee;stroke-width:3;filter:drop-shadow(0 0 7px #3f9669aa)}.drag-guide{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dce3d3;background:#edf1e5;border-radius:12px}.drag-guide strong{font-size:12px;font-weight:600;line-height:1.6}.drag-guide small{display:block;color:#829078;font-size:10px;margin-top:3px}.gesture-icon{font-size:34px;font-weight:300;color:#72906a}.control-heading{gap:8px}.control-heading span:first-child{font-size:9px;letter-spacing:.7px}.control-heading span:last-child{text-align:right;font-size:10px}
