@font-face{font-family:CN;src:local('Microsoft YaHei UI');font-display:swap}
:root{--paper:#f3f1eb;--ink:#252a2b;--muted:#687173;--accent:#dd6545;--soft:#f4e0d5;--line:#dcded5;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,CN,'Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}button:disabled{opacity:.4;cursor:default}.header{max-width:1140px;margin:auto;padding:29px 35px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:-.6px}.brand-mark{width:24px;height:24px;background:var(--accent);border-radius:8px;display:grid;place-items:center;font-size:17px;color:white}.header-link{font-size:11px;color:var(--muted);display:flex;gap:19px}.header-link span{font-size:17px}.wrap{max-width:1140px;margin:auto;padding:40px 35px 30px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:.13em;color:var(--accent);margin-bottom:13px;font-family:'Courier New',monospace}.intro h1{font-size:38px;font-weight:500;letter-spacing:-.06em;line-height:1.25}.description{font-size:12px;line-height:1.9;color:var(--muted);margin-top:13px}.stats{display:flex;gap:10px;flex-shrink:0}.stat{min-width:85px;padding:12px 17px;background:#fff9;border:1px solid #e5e6dd;border-radius:12px;text-align:center}.stat span{font-size:9px;color:var(--muted);display:block}.stat b{display:block;font-size:25px;margin-top:6px;font-weight:500;font-variant-numeric:tabular-nums}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:27px;align-items:start}.stage-wrap{border:1px solid #e1e2d8;border-radius:20px;padding:12px;background:#faf9f3;box-shadow:0 15px 45px #242b2110;min-width:0}.stage{position:relative;border-radius:12px;overflow:hidden;min-width:0;background:var(--soft);isolation:isolate}.stage canvas{display:block;width:100%;height:auto;touch-action:none;user-select:none;outline-offset:-4px}.curtain{position:absolute;inset:0;background:#f9f7e8d9;backdrop-filter:blur(8px);z-index:10;display:grid;place-items:center;padding:30px;text-align:center}.curtain-inner{max-width:310px}.curtain-symbol{width:54px;height:54px;background:var(--accent);color:white;border-radius:17px;display:grid;place-items:center;font-size:25px;margin:0 auto 20px;transform:rotate(-7deg)}.curtain h2{font-size:29px;font-weight:500;letter-spacing:-.04em;line-height:1.4}.curtain p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px;white-space:pre-line}.curtain-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:23px}.button{border:1px solid var(--line);border-radius:10px;padding:12px 16px;background:transparent;font-size:12px;line-height:1.25;min-height:42px;transition:transform .2s,background .2s}.button:hover:not(:disabled){background:white;transform:translateY(-2px)}.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.button.primary:hover{filter:brightness(1.07)}.guide{padding:14px 5px}.guide-label{font-size:9px;letter-spacing:.1em;color:var(--muted);font-family:'Courier New',monospace}.guide h2{font-size:18px;font-weight:500;margin:15px 0 20px;letter-spacing:-.03em}.instructions{list-style:none;padding:0;margin:0;font-size:12px;line-height:1.85;color:var(--muted)}.instructions li{position:relative;padding-left:19px;margin:13px 0}.instructions li::before{content:'';position:absolute;top:9px;left:0;width:4px;height:4px;background:var(--accent);border-radius:50%}.guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.guide-actions .button{flex:1;white-space:nowrap;min-width:75px;font-size:11px}.status{font-size:11px;line-height:1.9;color:var(--muted);margin-top:22px;min-height:42px}.keys{font-size:10px;color:#7a827e;border-top:1px solid var(--line);padding-top:21px;margin-top:19px;line-height:1.9}.key{display:inline-grid;place-items:center;min-width:21px;height:22px;padding:0 5px;border:1px solid #cfd3c8;border-radius:4px;background:#fff7;margin-inline:2px;color:#5e6c65}.controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;padding:14px 0 1px;user-select:none}.control{border:1px solid #d8dcd1;background:#fff9;border-radius:10px;width:49px;height:44px;font-size:19px;touch-action:none}.control:active{background:var(--soft);border-color:var(--accent)}.control.wide{width:auto;min-width:90px;padding-inline:16px;font-size:11px}.board2048{width:100%;aspect-ratio:1;position:relative;background:#d1d0c0;touch-action:none;outline-offset:-4px;max-width:520px;margin:auto}.cells,.tiles{position:absolute;inset:14px}.cells{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:12px}.cell{background:#e3e1d3;border-radius:9px}.tile{position:absolute;left:calc(var(--x)*(25% + 3px));top:calc(var(--y)*(25% + 3px));width:calc(25% - 9px);height:calc(25% - 9px);display:grid;place-items:center;border-radius:9px;font-size:clamp(22px,4vw,45px);font-weight:600;background:var(--tile);color:var(--text);transition:left .14s,top .14s;box-shadow:0 4px 0 #0000000b}.tile.fresh{animation:pop .18s ease-out}.tile.large{font-size:clamp(19px,3.1vw,34px)}.tile.huge{font-size:clamp(14px,2.5vw,24px)}.stage.puzzle-stage{background:#e7ebdf;padding:15px 25px 27px}.puzzle-board{position:relative;aspect-ratio:4/5;width:100%;max-width:355px;margin:0 auto;border:5px solid #485a4a;border-radius:9px;background:#d3dccc;touch-action:none;box-shadow:inset 0 0 18px #31433017}.puzzle-block{position:absolute;left:calc(var(--x)*25% + 3px);top:calc(var(--y)*20% + 3px);width:calc(var(--w)*25% - 6px);height:calc(var(--h)*20% - 6px);border:1px solid #ffffff70;border-radius:7px;background:var(--color);box-shadow:0 4px 0 #0000001c,inset 0 1px 0 #ffffff9c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;touch-action:none;color:#f9fbf1;font-size:15px;letter-spacing:.12em;transition:left .12s,top .12s;user-select:none}.puzzle-block small{font-size:8px;letter-spacing:.12em;opacity:.65}.puzzle-block.selected{outline:3px solid #efae54;outline-offset:-5px}.puzzle-block.cao{font-size:25px;background:#ce7353}.puzzle-exit{width:50%;position:absolute;bottom:-26px;left:25%;font-size:9px;letter-spacing:.12em;text-align:center;color:#51624c;padding-top:9px;pointer-events:none}.stage.tetris-stage{background:#172d36;padding:13px;display:flex;align-items:flex-start;justify-content:center;gap:14px;min-height:500px}.tetris-stage #game-canvas{width:min(73%,300px);aspect-ratio:1/2;border:1px solid #ffffff18;border-radius:4px;background:#11242c}.tetris-info{width:80px;color:#bbcdd1;padding-top:7px}.tetris-info label{font-size:9px;display:block;margin-bottom:14px;color:#9cafb4}.tetris-info #next-canvas{width:78px;height:78px;aspect-ratio:1;border-radius:8px;background:#ffffff0a;touch-action:auto}.tetris-info p{font-size:9px;line-height:1.9;margin-top:18px;color:#79989d}.footer{max-width:1140px;margin:12px auto 0;padding:22px 35px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted)}.footer a{white-space:nowrap}.footer p{line-height:1.7}.level-meter{height:3px;background:#b7c5b5;border-radius:3px;overflow:hidden;margin-top:15px}.level-meter i{display:block;background:var(--accent);height:100%;width:0}.notice-badge{position:absolute;top:20px;left:50%;transform:translateX(-50%);z-index:4;background:#fffdf2df;color:var(--accent);border-radius:20px;padding:9px 16px;font-size:12px;pointer-events:none;white-space:nowrap;box-shadow:0 6px 20px #303a2420}
@keyframes pop{from{transform:scale(.7);opacity:.5}to{transform:scale(1);opacity:1}}@media(max-width:850px){.game-grid{grid-template-columns:minmax(0,1fr) 205px;gap:20px}.intro h1{font-size:34px}.stat{min-width:74px;padding:10px 13px}.stat b{font-size:22px}.guide{padding-top:9px}}@media(max-width:650px){.header{padding:20px 21px}.brand{font-size:14px}.header-link{font-size:10px;gap:10px}.wrap{padding:29px 19px 22px}.intro{align-items:flex-start;gap:14px;margin-bottom:20px}.intro h1{font-size:30px}.eyebrow{font-size:8px;margin-bottom:11px}.description{font-size:10px;max-width:200px;margin-top:10px}.stats{gap:6px}.stat{min-width:54px;padding:8px 10px;border-radius:8px}.stat span{font-size:8px}.stat b{font-size:19px;margin-top:5px}.stat:nth-child(3){display:none}.game-grid{grid-template-columns:1fr;gap:17px}.stage-wrap{padding:9px;border-radius:16px}.stage{border-radius:9px}.guide{padding:7px 6px 0}.guide-label{font-size:8px}.guide h2{font-size:17px;margin:11px 0 15px}.instructions{font-size:11px;display:grid;grid-template-columns:1fr 1fr;gap:8px 15px}.instructions li{margin:3px 0;padding-left:13px;line-height:1.75}.instructions li::before{top:7px;width:3px;height:3px}.guide-actions{margin-top:18px;gap:8px}.guide-actions .button{font-size:11px;flex:none}.status{font-size:10px;margin-top:14px;min-height:30px}.keys{display:none}.controls{padding-top:12px;gap:8px}.control{height:43px;width:49px}.curtain{padding:22px}.curtain-symbol{width:45px;height:45px;font-size:22px;margin-bottom:16px}.curtain h2{font-size:25px}.curtain p{font-size:11px}.curtain-actions{margin-top:18px}.curtain .button{font-size:11px;padding:12px 15px}.footer{padding:19px 22px 25px;font-size:8px;margin-top:0}.footer p{max-width:240px}.board2048{max-width:none}.cells,.tiles{inset:10px}.cells{gap:8px}.cell,.tile{border-radius:6px}.tile{left:calc(var(--x)*(25% + 2px));top:calc(var(--y)*(25% + 2px));width:calc(25% - 6px);height:calc(25% - 6px);font-size:31px}.tile.large{font-size:24px}.tile.huge{font-size:18px}.stage.puzzle-stage{padding:13px 17px 27px}.puzzle-board{max-width:315px}.puzzle-block{font-size:13px}.puzzle-block.cao{font-size:23px}.tetris-stage{min-height:0!important;gap:10px;padding:10px!important}.tetris-stage #game-canvas{width:min(72%,235px)}.tetris-info{width:65px}.tetris-info #next-canvas{width:60px;height:60px}.tetris-info p{font-size:8px}.notice-badge{top:15px;font-size:10px}}@media(max-width:370px){.wrap{padding-inline:15px}.stat{min-width:48px;padding:8px}.intro h1{font-size:27px}.description{font-size:9px;max-width:175px}.intro{gap:9px}.puzzle-block{font-size:12px}.control{width:44px}.instructions{gap:6px 10px}.stage-wrap{padding:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
