*{box-sizing:border-box}body{margin:0;background:#e7e6dd;color:#252821;font-family:'PingFang TC','Heiti TC',sans-serif;display:flex;justify-content:center;align-items:center;min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;border:1.8px solid #252821;border-radius:5px;background:#f6f4ed;min-height:44px;touch-action:manipulation}button:focus-visible{outline:3px solid #708a39;outline-offset:3px}button:disabled{opacity:.45;cursor:default}main{width:min(100vw,56.25dvh,540px);min-height:min(100dvh,960px);background:#f6f4ed;border:2px solid #252821;box-shadow:5px 7px 0 #2528211a;display:flex;flex-direction:column}header{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:2px solid}header button{padding:4px 8px;font-size:12px}header b{font-size:13px}.heading{padding:16px 20px 0}.heading small{font-size:11px;letter-spacing:2px;color:#5c773e}.heading h2{font-size:25px;margin:5px 0}.heading p{font-size:13px;line-height:1.6;margin:0}.world{position:relative;flex:1;min-height:200px}canvas{display:block;width:100%;aspect-ratio:540/460}#station{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);padding:6px 15px;white-space:nowrap;background:#dfebc5;font-size:13px}.panel{padding:0 14px 12px}.progress{display:flex;gap:5px;margin:0 0 10px}.progress span{height:5px;flex:1;background:#d8d7cf}.progress span.done{background:#5c773e}.team{display:flex;gap:6px}.team button{flex:1;padding:7px 3px;font-size:13px}.team button small{display:block;font-size:10px;margin-top:3px}.team button[aria-pressed=true]{background:#dce9bf;box-shadow:2px 3px 0 #252821}.panel p{font-size:13px;min-height:42px;line-height:1.6;margin:12px 0 6px}.setting{display:flex;gap:10px;align-items:center;justify-content:center;margin-bottom:10px}.setting button{width:45px;font-size:23px}.setting div{flex:1;text-align:center}.setting small{display:block;font-size:11px;margin-top:3px;color:#5c773e}.actions{display:grid;grid-template-columns:1fr 1.65fr 1fr;gap:7px}.actions button{font-size:13px}.primary{background:#5c773e;color:white;box-shadow:3px 4px 0 #252821}footer{text-align:center;font-size:10px;padding:8px;border-top:1px dashed #999}aside{width:275px;padding-right:45px}aside span{font-size:9px;letter-spacing:2px}aside h1{font-size:42px;line-height:1.5}aside p{line-height:1.9}aside .quiet{margin-top:70px;font-size:12px;color:#666}dialog{max-width:min(95vw,580px);width:580px;max-height:90dvh;border:2px solid;border-radius:8px;background:#f6f4ed;padding:22px;box-shadow:6px 8px 0 #252821}dialog::backdrop{background:#25282188;backdrop-filter:blur(3px)}dialog h2{margin:4px 0 12px}dialog p{font-size:14px;line-height:1.8}.map-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.map-grid button{font-size:12px;min-height:54px}.map-grid button.completed{background:#dce9bf}.route{display:block;width:100%;padding:14px;margin:12px 0;text-align:left}.route b,.route small{display:block}.route small{line-height:1.8;margin-top:7px}#close{width:100%;margin-top:16px}@media(max-width:750px){aside{display:none}main{width:100vw;min-height:100dvh;border:0;box-shadow:none;max-width:540px}canvas{max-height:38dvh;object-fit:contain}.heading{padding-top:10px}.heading h2{font-size:22px}.panel{padding-bottom:8px}body{align-items:flex-start}.world{min-height:200px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media(max-width:750px) and (max-height:700px){canvas{max-height:32dvh}.heading{padding-top:7px}.heading h2{font-size:20px}.heading p{font-size:12px}.panel p{margin-top:6px;min-height:38px}.world{min-height:180px}.team button{padding:4px 2px}header{padding:6px 10px}footer{padding:5px}}
