*{box-sizing:border-box}html{font-family:ui-rounded,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:#f8f0e3;color:#514e43}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:#fffbf3;border:1px solid #e0d9c8;border-radius:12px;min-height:44px;padding:8px 14px;cursor:pointer;touch-action:manipulation}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #cd8459;outline-offset:3px}button:disabled{opacity:.4}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.app{max-width:1160px;margin:auto;padding:22px 30px}header{display:flex;align-items:center;justify-content:space-between;font-size:12px}header span{font-size:9px;letter-spacing:2px;color:#a3a08e}header button{min-height:36px;padding:6px 11px;font-size:11px}.title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 20px}.title p{font-size:10px;color:#a6a08a;letter-spacing:3px;margin:0 0 8px}h1{font-size:43px;letter-spacing:-2px;line-height:1.2;margin:0}h1 span{color:#c7835b}h1 i{font-size:35px;font-style:normal;display:inline-block;transform:rotate(-12deg);margin-left:15px;color:#ad8f63}.best{text-align:right;display:grid;font-size:10px;gap:3px;color:#a5a28d}.best b{font-size:24px;color:#6b7f6d}main{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,1fr);gap:30px}.play{min-width:0}.hud{display:flex;justify-content:space-between;padding:12px 17px;background:#fffaf0;border:1px solid #e3ddce;border-bottom:0;border-radius:15px 15px 0 0;font-size:10px;color:#a39f8a}.hud b{display:block;font-size:17px;color:#697c6e;margin-top:3px}#hearts{color:#c58a73;letter-spacing:1px}.canvas-wrap{position:relative;overflow:hidden;border-radius:0 0 15px 15px;background:#eed3b5;box-shadow:0 15px 35px #79634814}canvas{display:block;width:100%;height:auto;aspect-ratio:30/17;object-fit:contain;touch-action:none}.route-label{position:absolute;left:15px;top:12px;font-size:9px;letter-spacing:2px;background:#fff6deac;padding:6px 9px;border-radius:6px;color:#9c8668;pointer-events:none}.status-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:56px;font-size:11px;color:#8c947e}.status-row button{flex-shrink:0;font-size:11px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#b28e68}aside h2{font-size:28px;line-height:1.45;letter-spacing:-1px;margin:14px 0 23px}.delivery-note{display:flex;justify-content:space-between;align-items:center;background:#e9e8d9;padding:13px 10px;border-radius:12px;font-size:9px;color:#76856f}.delivery-note b{color:#b9b797}.controls{display:flex;justify-content:center;gap:20px;align-items:center;margin:23px 0}.controls>div{display:flex;gap:6px}.controls button{touch-action:none;user-select:none}#left,#right{width:51px;height:54px;padding:0;font-size:27px}#jump{width:85px;height:85px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#7f9984;color:#fffcf2;border-color:#6c8b74;box-shadow:0 4px 0 #65816b;font-size:11px}#jump b{font-size:30px;line-height:1}#jump small{font-size:9px;opacity:.6}.rules{font-size:11px;line-height:1.75;color:#8d947f}.rules p{margin:8px 0}.rules b{color:#bd9566;margin-right:5px}.hint{font-size:9px;line-height:1.8;color:#aba991}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:18px;background:#524d4a78;backdrop-filter:blur(7px);z-index:20;overflow:auto}.overlay[hidden]{display:none}.modal{width:min(440px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:#fffaf0;border-radius:22px;text-align:center;padding:28px;box-shadow:0 20px 75px #453d4130;border:1px solid #fff}.envelope{font-size:53px;line-height:1;color:#b48e64;transform:rotate(-9deg)}.modal h2{font-size:29px;line-height:1.35;margin:16px 0}.modal h2 em{font-style:normal;color:#bf8a64}.modal p:not(.eyebrow){font-size:12px;line-height:1.9;color:#92947f}.modal #primary{display:block;width:100%;background:#788e77;color:white;border:0;margin:19px 0 10px;min-height:48px;font-weight:700}.modal #restart{width:100%;margin-bottom:6px}.modal a{display:block;padding:10px;font-size:11px;color:#a6a28c}.result-score{font-size:43px;font-weight:800;color:#b38159}.result-score small{font-size:12px;margin-left:5px}.result-detail{font-size:11px;color:#92947d;line-height:1.8}@media(max-width:800px){.app{max-width:660px;padding:10px 14px}header span{display:none}.title{margin:16px 0 13px}.title p{font-size:8px}h1{font-size:32px}.best b{font-size:21px}main{display:flex;flex-direction:column;gap:0}.hud{padding:9px 12px}.hud b{font-size:15px}.intro,.rules,.hint{display:none}.delivery-note{padding:9px 13px}.controls{margin:12px 0;gap:35px}#left,#right{width:60px;height:55px}.status-row{min-height:50px}}@media(max-width:800px) and (max-height:650px) and (orientation:portrait){.app{padding:6px 10px}.title{margin:7px 0}.title p{display:none}h1{font-size:25px}h1 i{font-size:23px}.best b{font-size:16px}.hud{padding:6px 10px}.hud b{font-size:13px;margin-top:1px}.controls{margin:8px 0}.route-label{top:7px;left:9px;font-size:8px}.modal{padding:18px}.modal h2{font-size:25px}.envelope{font-size:40px}}@media(orientation:landscape) and (max-height:540px){.app{padding:6px 14px;max-width:1050px}header{height:34px}header span{display:none}.title{position:absolute;top:12px;left:50%;transform:translateX(-50%);margin:0;pointer-events:none}.title p,.best,h1 i{display:none}h1{font-size:20px;letter-spacing:0}main{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-top:4px}.hud{padding:5px 12px}.hud b{display:inline;margin-left:4px;font-size:12px}.canvas-wrap{border-radius:0 0 12px 12px}canvas{height:calc(100dvh - 128px);min-height:175px}.status-row{min-height:44px;font-size:10px}.intro,.rules,.hint{display:none}.delivery-note{padding:12px 8px;font-size:9px}.controls{flex-direction:column;gap:14px;margin:14px 0 0}#left,#right{width:65px;height:45px}#jump{width:75px;height:75px}.modal{padding:16px 24px;max-width:490px}.envelope{display:none}.modal h2{font-size:22px;margin:6px 0}.modal p:not(.eyebrow){font-size:11px;line-height:1.55}.modal #primary{margin:9px 0 3px}.modal .eyebrow{margin:4px 0}}
