:root{--grass-a:#a8dd7c;--grass-b:#93d267;--grass-line:#7cc154;--water-1:#7ecbf5;--water-2:#4fa9e8;--trap-mine:#ffd479;--trap-foe:#ffb1b1;--den-mine:#ffcf5c;--den-foe:#ffa1a1;--wood-1:#b9773f;--wood-2:#8f5527;--ink:#33291f;--ink-soft:#6b5b4a;--mine:#ff8a3d;--mine-dark:#e56a1c;--foe:#7b6bf0;--foe-dark:#5b4ad2;--panel-bg:#fffdf6;--shadow-soft:0 10px 24px #48341e29;--radius-lg:22px;--radius-md:14px}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{color:var(--ink);-webkit-tap-highlight-color:transparent;background-color:#0000;background-image:radial-gradient(circle at 12% 8%,#fff3b0e6,#0000 42%),radial-gradient(circle at 88% 6%,#b2ebffd9,#0000 40%),linear-gradient(#cdf0ff 0%,#e8fbd5 46%,#fdf6dc 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;font-family:PingFang SC,HarmonyOS Sans SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{cursor:pointer;font-family:inherit}.app{max-width:1240px;margin:0 auto;padding:18px 16px 32px;position:relative;overflow:hidden}.jungle-decor{pointer-events:none;z-index:0;position:fixed;inset:0}.jungle-decor span{opacity:.5;filter:saturate(1.1);position:absolute}.leaf-1{font-size:64px;animation:7s ease-in-out infinite sway;top:12%;left:2%}.leaf-2{font-size:88px;animation:9s ease-in-out infinite reverse sway;bottom:4%;left:1%}.leaf-3{font-size:52px;animation:6s ease-in-out infinite sway;top:32%;right:3%}.leaf-4{font-size:92px;animation:11s ease-in-out infinite sway;bottom:6%;right:2%}.cloud-1{font-size:46px;animation:26s linear infinite drift;top:6%;left:26%}.cloud-2{font-size:34px;animation:34s linear infinite reverse drift;top:14%;right:24%}.sun{font-size:46px;animation:30s linear infinite spin;top:3%;right:8%}@keyframes sway{0%,to{transform:rotate(-6deg)translateY(0)}50%{transform:rotate(6deg)translateY(-8px)}}@keyframes drift{0%{transform:translate(-30px)}to{transform:translate(60px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-header{z-index:1;text-align:center;margin-bottom:14px;position:relative}.app-header h1{letter-spacing:2px;color:#3f7a22;text-shadow:0 2px #fff,0 6px 14px #3f7a2247;margin:0;font-size:clamp(28px,5.2vw,46px)}.title-emoji{margin:0 8px;animation:2.4s ease-in-out infinite bounce;display:inline-block}.title-emoji:last-child{animation-delay:.6s}@keyframes bounce{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}.subtitle{color:var(--ink-soft);margin:6px 0 0;font-size:15px}.subtitle strong{color:#d2691e}.layout{z-index:1;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:22px;display:grid;position:relative}.board-area{flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.side-tag{box-shadow:var(--shadow-soft);background:#fffdf6;border:2px solid #0000000f;border-radius:999px;align-items:center;gap:8px;padding:6px 16px;font-size:14px;font-weight:700;display:inline-flex}.foe-tag{color:var(--foe-dark)}.mine-tag{color:var(--mine-dark)}.tag-avatar{font-size:18px}.toast{color:#fff;z-index:6;text-align:center;background:#3c3c3ce6;border-radius:999px;max-width:86%;padding:10px 18px;font-size:15px;font-weight:700;animation:.28s ease-out toast-in;position:absolute;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #00000038}.toast-good{background:linear-gradient(135deg,#4caf50,#2e9e5b)}.toast-bad{background:linear-gradient(135deg,#ff7043,#e64a19)}.toast-info{background:linear-gradient(135deg,#5b8def,#3f6fd8)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}.app-footer{z-index:1;text-align:center;color:var(--ink-soft);background:#fff9;border-radius:999px;margin-top:20px;padding:10px 18px;font-size:14px;position:relative}@media (width<=960px){.layout{grid-template-columns:minmax(0,1fr)}.app{padding:12px 10px 24px}}.board-frame{border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--wood-1), var(--wood-2));width:min(100%,540px,77.7778vh - 194.444px);padding:14px;position:relative;box-shadow:0 16px 34px #50321452,inset 0 2px #ffffff59}.board-frame:after{content:"";pointer-events:none;border:2px dashed #ffffff57;border-radius:18px;position:absolute;inset:6px}.board{aspect-ratio:7/9;border-radius:12px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #ffffff80;container-type:inline-size}.cells{grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(7,1fr);display:grid;position:absolute;inset:0}.cell{background:0 0;border:1px solid #48642829;justify-content:center;align-items:center;padding:0;transition:filter .15s;display:flex;position:relative}.cell:hover{filter:brightness(1.06)}.cell-grass-a{background:var(--grass-a)}.cell-grass-b{background:var(--grass-b)}.cell-grass-a:before,.cell-grass-b:before{content:"";opacity:.8;background-image:radial-gradient(circle at 22% 30%,#ffffff5c 1.4px,#0000 2px),radial-gradient(circle at 72% 68%,#588c3257 1.6px,#0000 2.4px);background-size:60% 60%;position:absolute;inset:0}.cell-water{background:linear-gradient(180deg, var(--water-1), var(--water-2));border-color:#286eaa3d}.cell-water:before{content:"";background-image:repeating-linear-gradient(100deg,#ffffff38 0 3px,#fff0 3px 20px),radial-gradient(at 30% 22%,#ffffff6b,#0000 58%),radial-gradient(at 74% 78%,#ffffff42,#0000 60%);animation:7s linear infinite water-flow;position:absolute;inset:0}.water-top{box-shadow:inset 0 6px 10px -6px #0a3c6480}.water-bottom{box-shadow:inset 0 -6px 10px -6px #0a3c6480}@keyframes water-flow{0%{background-position:0 0}to{background-position:60px 0}}.cell-trap-mine{background:radial-gradient(circle at 50% 45%,#ffedbe,#ffc65a)}.cell-trap-foe{background:radial-gradient(circle at 50% 45%,#ffdede,#ff9b9b)}.cell-trap:before{content:"";border:2.5px dashed #82460f99;border-radius:50%;position:absolute;inset:10%;box-shadow:inset 0 0 10px #82460f33}.cell-den-mine{background:radial-gradient(circle at 50% 40%, #fff3c0, var(--den-mine))}.cell-den-foe{background:radial-gradient(circle at 50% 40%, #ffe0e0, var(--den-foe))}.cell-den:before{content:"";border:3px solid #a05a1480;border-radius:14%;position:absolute;inset:8%;box-shadow:inset 0 0 12px #ffffffb3}.cell-icon{z-index:1;pointer-events:none;position:relative}.den-icon{filter:drop-shadow(0 2px 2px #78460a59);font-size:6.6cqw;animation:2.6s ease-in-out infinite den-pulse}.trap-icon{opacity:.85;filter:drop-shadow(0 1px 1px #5a320a59);font-size:5.4cqw}.water-icon{opacity:.72;font-size:4.4cqw;animation:6s ease-in-out infinite swim}@keyframes den-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes swim{0%,to{transform:translate(-14%)scaleX(1)}49%{transform:translate(14%)scaleX(1)}50%{transform:translate(14%)scaleX(-1)}99%{transform:translate(-14%)scaleX(-1)}}.dot{z-index:2;background:radial-gradient(circle at 34% 28%,#fff,#23c05a 72%);border:2px solid #fff;border-radius:50%;width:34%;height:34%;animation:1.1s ease-in-out infinite dot-pulse;position:absolute;box-shadow:0 0 0 5px #23c05a52,0 3px 6px #145a284d}@keyframes dot-pulse{0%,to{opacity:.85;transform:scale(.86)}50%{opacity:1;transform:scale(1.12)}}.eat-ring{z-index:4;justify-content:flex-end;align-items:flex-start;font-size:4.4cqw;animation:.9s ease-in-out infinite dot-pulse;display:flex;position:absolute;inset:0}.cell.is-eat{box-shadow:inset 0 0 0 4px #ff3b30e6,inset 0 0 26px #ff78648c}.cell.is-move{box-shadow:inset 0 0 0 3px #23c05ad9,inset 0 0 26px #78ffaa8c}.cell.is-selected{box-shadow:inset 0 0 0 4px #ffd60af2}.cell.is-last-from{outline-offset:-6px;outline:2px dashed #fffc}.cell.is-last-to{outline-offset:-5px;outline:3px solid #ffffffd9}.cell.is-hint{animation:.9s ease-in-out infinite hint-flash}@keyframes hint-flash{0%,to{box-shadow:inset 0 0 0 4px #ffd60a66}50%{box-shadow:inset 0 0 0 6px #ffd60a}}.pieces-layer{pointer-events:none;z-index:3;position:absolute;inset:0}.piece{place-items:center;width:14.2857%;height:11.1111%;transition:transform .32s cubic-bezier(.34,1.32,.64,1);display:grid;position:absolute;top:0;left:0}.piece-body{border:.6cqw solid var(--mine-dark);background:radial-gradient(circle at 34% 26%,#fffaf2 6%,#ffdfb8 62%,#ffc789 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:0;width:88%;height:88%;display:flex;position:relative;box-shadow:0 .7cqw 1.2cqw #3c280a52,inset 0 -.5cqw .8cqw #00000014,inset 0 .5cqw .8cqw #ffffffd9}.piece-foe .piece-body{border-color:var(--foe-dark);background:radial-gradient(circle at 34% 26%,#fbfaff 6%,#ded8ff 62%,#c0b6fb 100%)}.piece-emoji{filter:drop-shadow(0 1px 1px #0003);font-size:7.4cqw;line-height:1}.piece-name{color:var(--mine-dark);letter-spacing:.4px;margin-top:.2cqw;font-size:2.5cqw;font-weight:800}.piece-foe .piece-name{color:var(--foe-dark)}.piece-rank{background:var(--mine-dark);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:3.6cqw;height:3.6cqw;padding:0 .4cqw;font-size:2.5cqw;font-weight:800;display:flex;position:absolute;top:-.6cqw;right:-.6cqw;box-shadow:0 .3cqw .6cqw #00000047}.piece-foe .piece-rank{background:var(--foe-dark)}.piece.is-selected .piece-body{animation:.7s ease-in-out infinite piece-wiggle;box-shadow:0 0 0 .6cqw #ffd60ad9,0 .8cqw 1.4cqw #3c280a57}.piece.is-hint .piece-body{animation:.5s ease-in-out infinite piece-wiggle}@keyframes piece-wiggle{0%,to{transform:rotate(-5deg)scale(1.06)}50%{transform:rotate(5deg)scale(1.06)}}.piece.just-moved .piece-body{animation:.42s ease-out piece-pop}@keyframes piece-pop{0%{transform:scale(.82)}60%{transform:scale(1.14)}to{transform:scale(1)}}.piece.in-water .piece-body{box-shadow:0 0 0 .5cqw #ffffff8c,0 .7cqw 1.2cqw #14508266}.boom{pointer-events:none;z-index:5;place-items:center;width:14.2857%;height:11.1111%;display:grid;position:absolute;top:0;left:0}.boom-star{font-size:9cqw;animation:.7s ease-out forwards boom-star;position:absolute}.boom-emoji{font-size:6cqw;animation:.7s ease-out forwards boom-fly;position:absolute}@keyframes boom-star{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.25)}to{opacity:0;transform:scale(1.7)}}@keyframes boom-fly{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-120%)rotate(150deg)scale(.6)}}.board-frame.is-locked .cell{cursor:default}.panel{flex-direction:column;gap:14px;display:flex}.panel-block{background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);border:2px solid #785a281a;padding:14px 16px 16px}.panel-block h3{color:#4a7a2a;align-items:center;gap:6px;margin:0 0 10px;font-size:15px;display:flex}.panel-block h3:before{content:"🌿";font-size:14px}.turn-card{border-radius:var(--radius-lg);border:3px solid var(--foe);box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#ece8ff,#dcd6ff);align-items:center;gap:12px;padding:14px 16px;transition:all .25s;display:flex;position:relative}.turn-card.your-turn{border-color:var(--mine);background:linear-gradient(135deg,#fff2df,#ffe0bd);animation:1.8s ease-in-out infinite turn-glow}@keyframes turn-glow{0%,to{box-shadow:0 8px 20px #ff8a3d47}50%{box-shadow:0 8px 28px #ff8a3d8c}}.turn-avatar{filter:drop-shadow(0 2px 3px #0000002e);font-size:34px}.turn-text{flex-direction:column;display:flex}.turn-text strong{font-size:17px}.turn-text span{color:var(--ink-soft);font-size:13px}.thinking-dots{gap:4px;display:flex;position:absolute;bottom:10px;right:14px}.thinking-dots i{background:var(--foe-dark);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite dots}.thinking-dots i:nth-child(2){animation-delay:.15s}.thinking-dots i:nth-child(3){animation-delay:.3s}@keyframes dots{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}.level-row{gap:8px;display:flex}.level-btn{border-radius:var(--radius-md);background:#fff;border:2px solid #785a2829;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 6px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.level-btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px #5a461e2e}.level-btn.active{background:linear-gradient(#fff6e6,#ffe6c2);border-color:#ff9f43;box-shadow:0 6px 16px #ff9f4357}.level-emoji{font-size:24px}.level-name{font-size:13px;font-weight:800}.level-desc{color:var(--ink-soft);text-align:center;font-size:11px;line-height:1.25}.tool-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tool-btn{border-radius:var(--radius-md);color:#fff;border:none;padding:11px 8px;font-size:14px;font-weight:800;transition:transform .12s,filter .16s;box-shadow:0 4px #00000029}.tool-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #00000029}.tool-btn:hover:not(:disabled){filter:brightness(1.06)}.tool-btn:disabled{opacity:.45;cursor:not-allowed}.tool-hint{color:#5a3c00;background:linear-gradient(160deg,#ffd166,#f0a91d)}.tool-undo{background:linear-gradient(160deg,#8fd6ff,#4aa8e8)}.tool-restart{background:linear-gradient(160deg,#7ad4a1,#3aa971)}.tool-sound{background:linear-gradient(160deg,#c8a2f5,#9469df)}.tool-nature{background:linear-gradient(160deg,#9ce7c0,#34a98b);grid-column:span 2}.tool-btn.tool-off{color:#5b6a62;background:linear-gradient(160deg,#d7dcd8,#a7b1ab)}.tool-rules{background:linear-gradient(160deg,#ffa07a,#ec6b3c);grid-column:span 2}.trophy-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.trophy-box{border-radius:var(--radius-md);border:2px dashed #785a283d;min-height:76px;padding:8px 10px}.trophy-box.mine{background:#f2fbef;border-color:#3aa97166}.trophy-box.foe{background:#fdf1f1;border-color:#ec6b3c5c}.trophy-title{color:var(--ink-soft);margin-bottom:4px;font-size:12px;font-weight:800;display:block}.trophy-list{flex-wrap:wrap;gap:2px;display:flex}.trophy-item{font-size:22px;animation:.4s ease-out piece-pop}.trophy-empty{color:#9a8f80;font-size:12px}.chain{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.chain-item{align-items:center;gap:1px;display:inline-flex}.chain-emoji{font-size:22px}.chain-rank{color:var(--ink-soft);font-size:11px;font-weight:800}.chain-gt{color:#b9a58c;margin:0 2px;font-size:16px}.chain-note{color:var(--ink-soft);background:#fff8e6;border-radius:10px;margin:8px 0 0;padding:8px 10px;font-size:12.5px;line-height:1.5}.score-card{background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-align:center;border:2px solid #785a281a;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;display:grid}.score-card>div{flex-direction:column;display:flex}.score-num{color:#d2691e;font-size:26px;font-weight:900}.score-label{color:var(--ink-soft);font-size:12px}@media (width<=960px){.panel{width:100%;max-width:540px;margin:0 auto}.tool-row{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-sound{grid-column:span 1}.tool-nature{grid-column:span 2}.tool-rules{grid-column:span 3}}.think-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#f3f0ff,#e7e1ff);border:2px solid #7b6bf059;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.think-title{color:var(--foe-dark);font-size:13px;font-weight:800}.think-body{color:var(--ink-soft);font-size:12.5px;line-height:1.5}.think-body b{color:var(--foe-dark)}.modal-mask{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#281e0f7a;justify-content:center;align-items:center;padding:18px;animation:.2s ease-out mask-in;display:flex;position:fixed;inset:0}@keyframes mask-in{0%{opacity:0}to{opacity:1}}.modal{background:linear-gradient(#fffdf5,#fff4e0);border:4px solid #ffcf7a;border-radius:26px;width:min(100%,760px);max-height:88vh;padding:22px 22px 26px;animation:.28s cubic-bezier(.34,1.4,.64,1) modal-in;position:relative;overflow:auto;box-shadow:0 20px 50px #321e0a6b}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.modal-head h2{color:#3f7a22;margin:0;font-size:24px}.modal-close{color:#8a5a20;background:#ffe0b8;border:none;border-radius:50%;width:36px;height:36px;font-size:16px;font-weight:800}.modal-close:hover{background:#ffd096}.rules-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.rule-card{background:#fff;border:2px solid #785a281f;border-radius:18px;padding:14px 16px;box-shadow:0 6px 14px #785a281a}.rule-card-wide{grid-column:1/-1}.rule-icon{font-size:30px;line-height:1}.rule-card h3{color:#d2691e;margin:6px 0 8px;font-size:17px}.rule-card ul{margin:0;padding-left:18px}.rule-card li{color:#4b4034;font-size:14px;line-height:1.7}.animal-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;display:grid}.animal-item{background:#fff8ea;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:34px 1fr;align-items:center;gap:2px 8px;padding:8px 10px;display:grid}.animal-emoji{text-align:center;grid-row:span 2;font-size:28px}.animal-name{color:#6b4a12;font-size:14px;font-weight:800}.animal-name b{color:#d2691e}.animal-tip{color:var(--ink-soft);font-size:12px;line-height:1.4}.big-btn{color:#fff;background:linear-gradient(160deg,#7ad4a1,#35a06a);border:none;border-radius:999px;width:100%;margin-top:16px;padding:14px;font-size:17px;font-weight:900;transition:transform .12s;display:block;box-shadow:0 6px #2b7f55}.big-btn:active{transform:translateY(4px);box-shadow:0 2px #2b7f55}.big-btn.ghost{color:#5a3c00;background:linear-gradient(160deg,#ffd166,#eda01c);box-shadow:0 6px #bf7d0c}.big-btn.ghost:active{box-shadow:0 2px #bf7d0c}.text-btn{width:100%;color:var(--ink-soft);background:0 0;border:none;margin-top:10px;padding:8px;font-size:14px;text-decoration:underline;display:block}.result-modal{text-align:center;width:min(100%,440px)}.result-modal.is-win{border-color:#ffd166}.result-modal.is-lose{border-color:#9fc4f5}.result-emoji{font-size:70px;animation:1.4s ease-in-out infinite bounce}.result-modal h2{color:#3f7a22;margin:4px 0 6px;font-size:26px}.result-modal p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.6}.result-actions{margin-top:6px}.confetti{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.confetti span{border-radius:2px;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-20px}@keyframes fall{0%{opacity:0;transform:translateY(-10vh)rotate(0)}10%{opacity:1}to{opacity:.9;transform:translateY(105vh)rotate(720deg)}}@media (width<=600px){.modal{padding:16px 14px 20px}.modal-head h2{font-size:20px}}
