.luban-lock{color:#302b24;isolation:isolate;--luban-ink:#302b24;--luban-muted:#655d50;--luban-line:#b6ad9c;--luban-accent:#695536;background:#e8e3d9;font-family:Georgia,Times New Roman,serif;position:absolute;inset:0;overflow:hidden;container-type:size}.luban-lock *{box-sizing:border-box}.luban-lock [hidden]{display:none!important}.luban-lock button{color:var(--luban-ink);cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:3px;min-width:44px;min-height:44px;font:12px/1.3 Arial,sans-serif}.luban-lock button:hover{background:#d6cbb780}.luban-lock button:active{background:#c9b89c}.luban-lock button:focus-visible{outline-offset:3px;outline:3px solid #5c7557}.luban-lock button:disabled{cursor:default;color:#847b6d}.luban-lock button:disabled:hover{background:0 0}.luban-lock__header{z-index:4;top:max(22px,env(safe-area-inset-top));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:start;gap:15px;display:flex;position:absolute}.luban-lock__header>*{pointer-events:auto}.luban-lock__eyebrow{letter-spacing:.16em;color:var(--luban-muted);font:10px/1.4 Arial,sans-serif}.luban-lock__header h2{margin:7px 0 0;font-size:31px;font-weight:400;line-height:1.1}.luban-lock__header h2 span{color:var(--luban-muted);margin-top:7px;font-size:13px;line-height:1.4;display:block}.luban-lock__header nav{gap:5px;display:flex}.luban-lock__header nav button{background:#ede9df80;border:1px solid #bab09d8c;font:19px Georgia,serif}.luban-lock__viewport{touch-action:none;position:absolute;inset:110px 22px 170px}.luban-lock__viewport canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.luban-lock__viewport canvas:focus-visible{outline-offset:3px;outline:2px solid #5c755770}.luban-lock__handles{pointer-events:none;position:absolute;inset:0}.luban-lock__handles button{pointer-events:auto;touch-action:none;background:#f8f4e9ed;border:1px solid #a79679;border-radius:50%;width:45px;height:45px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 10px #47351616}.luban-lock__handles button span{pointer-events:none;font-family:Arial,sans-serif;font-size:25px;line-height:1;display:block}.luban-lock__handles button:hover,.luban-lock__handles .luban-lock__gripped{background:#e4d6b8;border-color:#685337}.luban-lock__handles .luban-lock__hinted{outline-offset:4px;background:#e0e9d7;outline:3px solid #526e51}.luban-lock__caption{color:var(--luban-muted);pointer-events:none;justify-content:space-between;align-items:center;gap:15px;font:11px Arial,sans-serif;display:flex;position:absolute;bottom:153px;left:30px;right:30px}.luban-lock__caption .luban-lock__eyebrow{font-size:9px}.luban-lock__selection{text-align:right}.luban-lock__footer{z-index:4;bottom:max(16px,env(safe-area-inset-bottom));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));border-top:1px solid var(--luban-line);background:#e8e3d9;padding-top:13px;position:absolute}.luban-lock__progress{justify-content:space-between;align-items:center;gap:10px;display:flex}.luban-lock__count{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:31px;line-height:1}.luban-lock__count small{letter-spacing:.12em;color:var(--luban-muted);font:9px Arial,sans-serif}.luban-lock__pieces{gap:8px;display:flex}.luban-lock__pieces button{border:1px solid var(--luban-line);background:#f0ece3;justify-content:center;align-items:center;gap:7px;width:54px;display:flex}.luban-lock__pieces i{background:var(--luban-wood);border-radius:1px;width:9px;height:23px;display:block;box-shadow:inset -2px 0 #0002}.luban-lock__pieces button[aria-pressed=true]{outline-offset:2px;background:#f9f7f0;border-color:#4d6349;outline:2px solid #74836a}.luban-lock__pieces .luban-lock__released{color:#4a5d44;background:#ddd6c8;border-style:dashed}.luban-lock__pieces .luban-lock__released i{height:13px;transform:rotate(45deg)}.luban-lock__notice{text-align:center;color:#534a3e;min-height:17px;margin:11px 0 6px;font:12px/1.4 Arial,sans-serif}.luban-lock__tools{justify-content:center;gap:20px;display:flex}.luban-lock__tools button{align-items:center;gap:7px;padding:0 10px;font-size:20px;display:flex}.luban-lock__tools button span{font-size:11px}.luban-lock__modal{z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overscroll-behavior:contain;background:#e8e3d946;place-items:safe center;padding:24px;display:grid;position:absolute;inset:0;overflow:auto}.luban-lock__modal>section{text-align:left;background:#f5f1e7f5;border:1px solid #b9ad985e;width:min(440px,100%);padding:31px 34px;box-shadow:0 18px 75px #3f2f2426}.luban-lock__modal h3{letter-spacing:0;margin:17px 0 21px;font-size:45px;font-weight:400;line-height:1.06}.luban-lock__modal p{color:#5c5143;font:13px/1.6 Arial,sans-serif}.luban-lock__lesson{margin-bottom:23px}.luban-lock__lesson p{gap:14px;margin:15px 0;display:flex}.luban-lock__lesson b{color:#7c6a50;font:12px/1.7 Georgia,serif}.luban-lock__lesson strong{color:#322d25;margin-bottom:3px;font-size:12px;display:block}.luban-lock__modal section>button{text-align:center;border-color:#b7ac98;width:100%;min-height:47px;margin-top:10px}.luban-lock__modal section>.luban-lock__primary{color:#fff9eb;text-align:left;background:#554b3b;border-color:#554b3b;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.luban-lock__modal section>.luban-lock__primary:hover{background:#706047}.luban-lock__modal small{color:#6b604f;letter-spacing:.12em;text-align:center;margin-top:16px;font:9px/1.5 Arial,sans-serif;display:block}.luban-lock__result{color:#655846;gap:28px;margin:24px 0;font:11px Arial,sans-serif;display:flex}.luban-lock__result b{color:#312b23;margin-right:5px;font:30px Georgia,serif}@container (width<=580px){.luban-lock__header{top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}.luban-lock__header h2{font-size:26px}.luban-lock__header .luban-lock__eyebrow{letter-spacing:.1em;font-size:8px}.luban-lock__header h2 span{max-width:170px;font-size:11px}.luban-lock__header nav{gap:1px}.luban-lock__header nav button{width:44px;min-width:44px;height:44px}.luban-lock__viewport{inset:calc(116px + env(safe-area-inset-top)) 5px calc(233px + env(safe-area-inset-bottom))}.luban-lock__footer{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding-top:14px}.luban-lock__progress{flex-direction:column;gap:14px}.luban-lock__count{font-size:24px}.luban-lock__pieces{justify-content:center;gap:7px;width:100%}.luban-lock__pieces button{gap:6px;width:46px}.luban-lock__tools{justify-content:space-between;gap:0}.luban-lock__tools button{gap:5px;padding:0 6px}.luban-lock__tools button span{font-size:10px}.luban-lock__notice{max-width:340px;min-height:35px;margin:12px auto 4px;font-size:11px;line-height:1.5}.luban-lock__caption{justify-content:center;bottom:213px;left:16px;right:16px}.luban-lock__caption>.luban-lock__eyebrow{display:none}.luban-lock__selection{text-align:center;font-size:10px}.luban-lock__modal{padding:15px}.luban-lock__modal>section{padding:25px 24px}.luban-lock__modal h3{font-size:38px}.luban-lock__lesson p{font-size:12px}}@container (height<=530px){.luban-lock__header{top:max(10px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}.luban-lock__header h2{margin-top:4px;font-size:24px}.luban-lock__header h2 span{display:none}.luban-lock__header .luban-lock__eyebrow{font-size:8px}.luban-lock__viewport{inset:calc(68px + env(safe-area-inset-top)) max(80px,env(safe-area-inset-right)) calc(113px + env(safe-area-inset-bottom)) max(80px,env(safe-area-inset-left))}.luban-lock__footer{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom));padding-top:5px}.luban-lock__progress{flex-direction:row;gap:8px}.luban-lock__count{font-size:22px}.luban-lock__pieces{gap:5px;width:auto}.luban-lock__pieces button{width:44px;height:44px;min-height:44px}.luban-lock__pieces i{height:18px}.luban-lock__notice{max-width:none;min-height:14px;margin:3px 0 0;font-size:10px}.luban-lock__tools{justify-content:center;gap:15px}.luban-lock__tools button{min-height:44px}.luban-lock__caption{display:none}.luban-lock__modal{padding:12px}.luban-lock__modal>section{width:min(510px,100%);padding:17px 25px}.luban-lock__modal h3{margin:9px 0;font-size:30px}.luban-lock__modal h3 br{display:none}.luban-lock__lesson{margin-bottom:8px}.luban-lock__lesson p{margin:8px 0;font-size:11px}.luban-lock__modal small{margin-top:8px}.luban-lock__modal section>button{margin-top:6px}}@media (prefers-reduced-motion:reduce){.luban-lock__modal{-webkit-backdrop-filter:none;backdrop-filter:none}}.luban-lock__pieces .luban-lock__released{font-size:0;position:relative;overflow:hidden}.luban-lock__pieces .luban-lock__released i{display:none}.luban-lock__pieces .luban-lock__released img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.luban-lock__pieces .luban-lock__released:after{content:"✓";color:#3e5c3a;font:11px Arial,sans-serif;position:absolute;bottom:1px;right:3px}.luban-lock__header nav [data-action=levels]{font:11px Arial,sans-serif}.luban-lock__header>div{min-width:0}.luban-lock__header nav{flex-shrink:0}.luban-lock[data-mode=levels] .luban-lock__modal{padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:#e8e3d9e8}.luban-lock[data-mode=levels] .luban-lock__modal>section{width:min(840px,100%);padding:26px 30px;box-shadow:0 16px 60px #3f2f2417}.luban-lock__collection-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.luban-lock__collection-head h3{margin:8px 0 0;font-size:36px}.luban-lock__collection-head>button{border-color:var(--luban-line);flex-shrink:0;font-size:27px}.luban-lock__modal .luban-lock__collection-intro{margin:12px 0 20px;font-size:12px}.luban-lock__levels{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.luban-lock__levels>button{text-align:left;background:#e8e3d9;border:1px solid #bcb19e;flex-direction:column;align-items:stretch;min-width:0;padding:11px 12px 13px;display:flex;overflow:hidden}.luban-lock__levels>button:hover{background:#e4dccd;border-color:#736149}.luban-lock__levels>button[aria-current=true]{border-color:#746348;box-shadow:inset 0 0 0 1px #746348}.luban-lock__level-top,.luban-lock__level-bottom{color:#625849;justify-content:space-between;align-items:center;gap:5px;font:10px/1.4 Arial,sans-serif;display:flex}.luban-lock__level-top>span:first-child{font:13px Georgia,serif}.luban-lock__level-top .luban-lock__solved{color:#3e613d}.luban-lock__levels img{aspect-ratio:5/3;object-fit:contain;pointer-events:none;width:100%;height:auto}.luban-lock__levels strong{margin:3px 0 4px;font:21px/1.2 Georgia,serif}.luban-lock__levels .luban-lock__form{color:#625849;margin-bottom:10px;font:11px/1.4 Arial,sans-serif}.luban-lock__level-bottom b{color:#4f5f45;font-weight:400}@container (width<=580px){.luban-lock__header{gap:8px}.luban-lock__header h2 span{max-width:160px}.luban-lock__header .luban-lock__eyebrow{letter-spacing:.06em}.luban-lock[data-mode=levels] .luban-lock__modal{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.luban-lock[data-mode=levels] .luban-lock__modal>section{padding:18px 16px}.luban-lock__collection-head h3{font-size:29px}.luban-lock__collection-head .luban-lock__eyebrow{font-size:8px}.luban-lock__modal .luban-lock__collection-intro{margin:12px 0 16px;font-size:11px}.luban-lock__levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.luban-lock__levels>button{padding:10px}.luban-lock__levels strong{font-size:19px}.luban-lock__level-bottom{flex-wrap:wrap;gap:2px;font-size:9px}.luban-lock__level-top{font-size:9px}.luban-lock__levels .luban-lock__form{margin-bottom:7px;font-size:10px}}@container (width<=360px){.luban-lock__header h2{white-space:nowrap;font-size:19px}.luban-lock__header .luban-lock__eyebrow{display:none}.luban-lock__header h2 span{white-space:normal;font-size:10px}.luban-lock__header nav{gap:0}.luban-lock__levels strong{font-size:17px}.luban-lock__levels>button{padding:8px}.luban-lock__level-top{font-size:8px}}@container (height<=530px){.luban-lock[data-mode=levels] .luban-lock__modal>section{padding:18px 24px}.luban-lock__collection-head h3{font-size:29px}}.luban-lock__modal section>.luban-lock__practice{text-align:left;background:#e5e9dc;border-color:#849477;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;padding:14px 16px;display:flex}.luban-lock__practice b{color:#34462f;margin-bottom:5px;font:20px/1.2 Georgia,serif;display:block}.luban-lock__practice span span{color:#4e5b45;font:11px/1.4 Arial,sans-serif}.luban-lock__practice>span:last-child{font-size:24px}.luban-lock__tutorial{z-index:6;pointer-events:none;position:absolute;inset:0}.luban-lock__tutorial svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.luban-lock__tutorial line{stroke:#526e51;stroke-width:1.5px;stroke-dasharray:4 4}.luban-lock__tutorial-card{background:#f8f5ec;border:1px solid #718269;padding:13px 15px;position:absolute;box-shadow:0 5px 20px #3e493315}.luban-lock__tutorial-card>span{letter-spacing:.1em;color:#4e6546;font:9px/1.4 Arial,sans-serif}.luban-lock__tutorial-card strong{margin:5px 0;font:22px/1.2 Georgia,serif;display:block}.luban-lock__tutorial-card p{color:#3d4637;margin:0;font:12px/1.45 Arial,sans-serif}.luban-lock__tutorial-target{color:#f8f7ef;border:2px solid #4f6c44;border-radius:50%;place-items:center;width:51px;height:51px;font:20px/1 Arial,sans-serif;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #67845435}.luban-lock__tutorial-target[data-kind=piece]{background:#435c3cdd;width:44px;height:44px}.luban-lock__tutorial-target[data-kind=orbit]{color:#3d5936;background:#f4f6e7c9;border-radius:24px;width:64px;height:48px;font-size:26px}.luban-lock[data-tutorial] .luban-lock__notice,.luban-lock[data-tutorial] .luban-lock__caption,.luban-lock[data-tutorial] [data-action=hint]{display:none}.luban-lock[data-tutorial] .luban-lock__tools{justify-content:center;gap:18px}@container (width<=580px){.luban-lock[data-tutorial] .luban-lock__viewport{top:calc(236px + env(safe-area-inset-top));bottom:calc(130px + env(safe-area-inset-bottom))}.luban-lock[data-tutorial] .luban-lock__progress{flex-direction:row;gap:8px}.luban-lock[data-tutorial] .luban-lock__pieces{gap:7px;width:auto}.luban-lock[data-tutorial] .luban-lock__tools{gap:14px}.luban-lock__tutorial-card{padding:11px 13px}.luban-lock__tutorial-card strong{margin:4px 0;font-size:20px}.luban-lock__tutorial-card p{font-size:12px}.luban-lock__practice b{font-size:19px}}@container (width<=360px){.luban-lock[data-tutorial] .luban-lock__viewport{top:calc(208px + env(safe-area-inset-top))}.luban-lock__tutorial-card strong{font-size:19px}}@container (height<=530px) and (width>=581px){.luban-lock__tutorial-card{padding:10px 12px}.luban-lock__tutorial-card strong{font-size:20px}.luban-lock__tutorial-card p{font-size:11px}}[data-game-shell=luban-lock]:not(.game-shell--embedded) .game-shell__stage:not(:fullscreen):not(.game-shell__stage--expanded):has(>.luban-lock){width:100%;min-width:0;max-width:100%;min-height:600px}@container (width<=340px){.luban-lock__header{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));gap:5px}.luban-lock__header h2{font-size:18px}.luban-lock:not([data-tutorial]) .luban-lock__pieces{grid-template-columns:repeat(3,44px);gap:4px;display:grid}.luban-lock:not([data-tutorial]) .luban-lock__viewport{bottom:calc(275px + env(safe-area-inset-bottom))}.luban-lock:not([data-tutorial]) .luban-lock__caption{bottom:255px}}[data-game-shell=luban-lock] .game-shell__stage:is(:fullscreen,.game-shell__stage--expanded)>.luban-lock .luban-lock__header{right:max(172px,calc(env(safe-area-inset-right) + 168px))}@media (max-width:600px){[data-game-shell=luban-lock] .game-shell__stage:is(:fullscreen,.game-shell__stage--expanded):has(>.luban-lock){background:#e8e3d9}[data-game-shell=luban-lock] .game-shell__stage:is(:fullscreen,.game-shell__stage--expanded)>.luban-lock{top:max(72px,calc(env(safe-area-inset-top) + 68px))}[data-game-shell=luban-lock] .game-shell__stage:is(:fullscreen,.game-shell__stage--expanded)>.luban-lock .luban-lock__header{right:max(8px,env(safe-area-inset-right))}}
