*{box-sizing:border-box}body{margin:0;color:#243e39;background:#eff2e6;font-family:'PingFang SC','Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;min-height:48px;border:1px solid #c5d3bb;border-radius:13px;background:#fffdf1;color:#294e40;padding:10px 18px}button:focus-visible,a:focus-visible{outline:3px solid #df982e;outline-offset:4px}a{color:#386953;text-decoration:none}header{max-width:1280px;margin:auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}header strong{font-size:22px}main{max-width:1280px;margin:auto;display:grid;grid-template-columns:260px 1fr;gap:20px;padding:0 24px 24px}aside{background:#fffbed;border:1px solid #dfd7ba;border-radius:24px;padding:24px;box-shadow:0 10px 25px #4450320c}h1{font-size:34px;line-height:1.25;margin:16px 0}aside p{font-size:14px;line-height:1.8;color:#738071}.tag{color:#84743d;font-size:13px;letter-spacing:1px}.map-node{padding:10px 12px;margin:8px 0;border-radius:12px;background:#f0eedf;font-size:14px;color:#858a78}.map-node.active{background:#2f6b51;color:white;box-shadow:0 5px 15px #2f6b5120}.map-node.done{background:#e1edce;color:#3e6b48}.notebook{margin-top:20px;border-top:1px dashed #d1caab}.notebook h3{font-size:16px}#notes{font-size:13px;line-height:1.7;color:#68735e}#notes p{margin:8px 0}#code{display:flex;gap:6px;margin-top:20px}#code span{background:#e9ddb1;border-radius:8px;padding:8px;font-weight:bold}.mission{padding:18px 24px;background:#fffbed;border:1px solid #dfd7ba;border-radius:22px 22px 0 0}.mission span{font-size:12px;color:#8c7e4c}.mission h2{margin:8px 0;font-size:25px}.mission p{margin:0;color:#647b68;font-size:14px}.scene{height:430px;position:relative;overflow:hidden;border-radius:0 0 24px 24px;background:linear-gradient(#b7e2ea 0%,#e2f0d4 49%,#a4c875 50%,#709b57 100%);transition:background 1s}.sun{position:absolute;left:72%;top:8%;width:64px;height:64px;background:#ffe1a0;border-radius:50%;box-shadow:0 0 70px #fff2aa}.cloud{position:absolute;left:22%;top:0;color:white;font-size:100px;animation:float 7s ease-in-out infinite}.mountains{position:absolute;inset:20% 0 auto;height:38%;background:#88b9ac;clip-path:polygon(0 80%,15% 12%,31% 67%,45% 0,65% 80%,84% 23%,100% 80%,100% 100%,0 100%);opacity:.6}.river{position:absolute;left:43%;top:51%;width:25%;height:65%;background:#91d1cf;transform:rotate(-18deg);border-radius:45%;box-shadow:inset 10px 0 #c4eae0}.bridge{position:absolute;left:40%;top:72%;width:30%;height:35px;background:#e6d9b8;border:5px solid #cab58c;transform:rotate(-12deg);border-radius:35%}.house{position:absolute;left:71%;top:35%;font-size:95px}.tree{position:absolute;left:3%;top:32%;font-size:130px}.object{position:absolute;border:0;background:transparent;padding:4px;min-width:70px;min-height:70px;font-size:48px;filter:drop-shadow(0 7px 5px #304c3a28);transition:transform .2s}.object:hover{transform:scale(1.15)}.object span{display:block;font-size:12px;background:#fffae5e8;padding:5px 8px;border-radius:12px;white-space:nowrap}.object.target{animation:bob 2.5s ease-in-out infinite}.object.found{opacity:.5;animation:none}#toast{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:#fff9e9;color:#42614e;border-radius:16px;padding:12px 18px;max-width:90%;font-size:14px;pointer-events:none;opacity:0;transition:opacity .2s}#toast.visible{opacity:1}.foot{text-align:center;color:#7b8871;font-size:13px}.veil{position:fixed;inset:0;background:#173e3b80;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.card{background:#fffbee;width:min(800px,100%);max-height:92vh;overflow:auto;border:2px solid #e1c88f;border-radius:26px;padding:28px;box-shadow:0 25px 80px #102e3350}.card h2{font-size:25px;margin:10px 0}.card p{line-height:1.7}.letter{max-width:520px;text-align:center}.envelope{font-size:85px;animation:bob 3s infinite}.letter small{display:block;margin-top:18px;font-size:12px;color:#879078}.primary{background:#306e52;color:white;border:0;font-weight:600}.letter a{display:block;margin-top:18px}#passage{line-height:2.1;font-size:21px;background:#eef2df;border-left:4px solid #8aaf77;padding:18px;border-radius:12px;margin:18px 0}#passage button{font-size:21px;min-height:44px;padding:5px 9px;margin:3px;background:white;border:1px dashed #88a66e}#answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}#answers button{text-align:left;background:#f5edda;font-size:17px}#feedback{background:#fff0d1;border-radius:15px;padding:16px;margin-top:14px}#feedback p{margin-top:0}#success{padding:16px;color:#2a7452;font-weight:bold}#summary{text-align:left;padding:14px;background:#eef2df;border-radius:15px;font-size:14px;line-height:1.8}[hidden]{display:none!important}@keyframes bob{50%{transform:translateY(-7px)}}@keyframes float{50%{transform:translateX(25px)}}@media(max-width:750px){header{padding:12px;font-size:12px}header strong{font-size:17px}main{grid-template-columns:1fr;padding:0 10px;gap:12px}aside{padding:15px}h1,aside>p,.notebook{display:none}#map{display:flex;gap:5px;flex-wrap:wrap}.map-node{padding:8px;font-size:12px;margin:8px 0}#code{margin-top:4px}.scene{height:390px}.card{padding:20px}#answers{grid-template-columns:1fr}#passage,#passage button{font-size:18px}.mission{padding:16px}.mission h2{font-size:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
