.interests{display:flex;gap:15px;margin:19px 0;color:var(--accent);font-size:10px}.logo{letter-spacing:.1px}.squad{display:flex;gap:18px;flex-wrap:wrap}.visitors{align-items:center;flex-wrap:wrap;gap:15px;padding-top:20px}.visitors>span:first-child{flex-basis:100%}.visitors>span:first-child small{font:8px Arial;margin-left:12px}.teammate{position:relative;display:flex;gap:5px;align-items:center;border:0;background:none;padding:4px 7px;color:var(--fg);text-align:left;border-radius:4px;min-width:110px}.teammate:hover{background:var(--card)}.teammate>svg{width:48px;height:58px;overflow:visible;transition:transform .25s}.teammate>span:not(.ability){font-size:10px}.teammate small{display:block;margin:5px 0 0;font-size:8px}.squad-message{margin-left:auto;font-size:9px;min-height:16px}.ability{position:absolute;top:20px;left:42px;pointer-events:none;opacity:0;font:20px monospace;color:var(--accent);white-space:nowrap;z-index:2}.acting .ability{opacity:1}.world{position:relative;cursor:pointer;transition:transform .25s,background .25s}.world:hover{transform:translateY(-3px)}.world-reward{position:absolute;top:-6px;left:12px;background:var(--bg);padding:5px 9px;font-size:10px;color:var(--accent);border:1px solid var(--line);animation:reward 2.2s ease forwards;z-index:2}.found svg{filter:brightness(1.12)}.dynamite .ability{color:#a05c45;animation:throw 1s ease forwards}.boom{font-style:normal;position:absolute;left:25px;top:5px;color:#d49a4b;animation:burst 2s steps(3) forwards}.flame .ability{color:#d59b51;text-shadow:12px 4px #c57849,-5px -3px #eac477;transform-origin:left center;animation:flames .18s steps(2) infinite}.heal .ability{color:#a97464;animation:heal 2s ease forwards}.machine .ability{color:#c5a461;animation:bullets .22s linear infinite}.machine>svg{animation:recoil .15s steps(2) infinite}.scout .ability{top:15px;left:22px;color:#3e5149;animation:look 2s ease}.grapple .ability{top:-50px;left:20px;height:100px;border-left:1px solid var(--accent);transform:rotate(35deg);transform-origin:bottom;animation:rope 3s forwards}.grapple>svg{animation:grapple 3s ease-in forwards}.void>svg{animation:phase 2s ease forwards}.void .ability{animation:scan 2s ease forwards;color:#a395bd}.drone .ability{animation:drone 2s ease-in-out;top:0;color:#9db5af}.dash>svg{animation:dash 2s ease-in-out}.scan .ability{animation:scan 2s ease forwards;color:#c89b77}.acting{pointer-events:none}@keyframes reward{0%{opacity:0;transform:translateY(7px)}20%,75%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-15px)}}@keyframes throw{0%{transform:translate(0,0) rotate(0)}65%,100%{transform:translate(65px,20px) rotate(190deg)}}@keyframes burst{0%,50%{opacity:0;transform:scale(.2)}65%{opacity:1;transform:scale(2.6)}100%{opacity:0;transform:scale(3)}}@keyframes flames{50%{transform:scaleX(1.3) translateY(-3px)}}@keyframes heal{20%{transform:translateY(-15px)}70%{transform:translate(20px,8px)}100%{opacity:0;transform:translate(20px,8px)}}@keyframes bullets{to{transform:translateX(50px);opacity:0}}@keyframes recoil{50%{transform:translateX(-2px)}}@keyframes look{25%,75%{transform:translateY(-5px)}}@keyframes rope{0%{opacity:0;transform:scaleY(0) rotate(35deg)}20%,70%{opacity:1;transform:scaleY(1) rotate(35deg)}100%{opacity:0}}@keyframes grapple{0%,20%{transform:translate(0,0);opacity:1}60%,85%{transform:translate(170px,-220px) rotate(25deg);opacity:0}86%{transform:translate(0,0);opacity:0}100%{transform:translate(0,0);opacity:1}}@keyframes phase{35%,70%{opacity:.12;filter:drop-shadow(5px 0 #afa3c4)}100%{opacity:1}}@keyframes drone{50%{transform:translate(15px,-20px)}100%{opacity:0}}@keyframes dash{35%{transform:translateX(85px) skewX(-10deg);opacity:0}36%{transform:translateX(-35px);opacity:0}100%{transform:none;opacity:1}}@keyframes scan{0%{transform:scale(.4);opacity:1}100%{transform:scale(5);opacity:0}}#runner{width:min(960px,96vw);padding:25px;overflow:hidden}#runner-canvas{width:100%;display:block;image-rendering:pixelated;border:1px solid var(--line);border-radius:4px}.runner-top,.runner-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px}.runner-top{margin-bottom:22px;font-size:15px}.runner-top button{border:0;background:none;font:10px monospace;color:var(--muted)}.runner-top small{font-size:9px}.runner-bottom{margin-top:18px;font-size:10px;color:var(--muted)}.runner-note{font-size:10px;line-height:1.9;color:var(--muted);margin-top:18px}.touch-controls{display:flex;gap:12px;margin-top:18px}.touch-controls button{border:1px solid var(--line);background:var(--card);padding:10px 18px;border-radius:4px;font-size:11px;touch-action:none}dialog[open]{animation:dialog-in .23s ease}.item{transition:opacity .2s,transform .2s}@keyframes dialog-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.syringe{display:block;width:31px;height:10px;border:2px solid #a7b9ae;background:#edf1df;transform:rotate(-25deg)}.syringe:after{content:'';position:absolute;width:15px;height:2px;background:#7b8d85;right:-16px;top:2px}.medpack{display:block;background:#e2dcc9;border:1px solid #b0aa95;padding:0 7px;color:#a56958;font-size:22px}@media(max-width:720px){.logo{font-size:13px}.squad{gap:7px}.teammate{min-width:95px;padding-left:0}.squad-message{margin-left:0;width:100%}.runner-bottom{align-items:flex-start;flex-direction:column;gap:9px}.runner-top small{display:none}#runner{padding:16px}.interests{gap:12px;font-size:9px}.game{width:120px}.intro{gap:5px}}@media(prefers-reduced-motion:reduce){.grapple>svg,.void>svg,.dash>svg{opacity:.3}.acting .ability{opacity:1}.world:hover{transform:none}#runner[open],.ability,.teammate>svg,.world-reward{animation:none}}
/* 跑酷彩蛋直接叠在网页上，退出只淡化障碍。 */
#heron-run-layer{position:fixed;inset:0;z-index:7;pointer-events:none;visibility:hidden;opacity:0;transition:opacity 1s ease,visibility 1s}#heron-run-layer.visible{visibility:visible;opacity:1}#heron-run-layer.leaving{opacity:0}#heron-run-layer canvas{width:100%;height:100%;display:block;background:transparent}.run-poem{position:absolute;bottom:125px;left:35px;right:35px;text-align:center;color:var(--muted);font-size:10px;line-height:1.9;opacity:.85;max-width:660px;margin:0 auto;text-shadow:0 1px var(--bg)}.run-distance{position:absolute;right:30px;bottom:115px;font:10px monospace;color:var(--muted)}.heron-corner{transition:right 1.05s cubic-bezier(.4,0,.2,1);z-index:8}.heron-corner.heron-to-start{right:calc(100% - 155px)}.heron-running .legs{animation:heron-stride .24s steps(2) infinite}.heron-running .pet-caption{opacity:0}.heron-running #heron-message{opacity:0!important}.heron-taunting #heron-message{opacity:1}.heron-to-start #heron-message{white-space:normal;min-width:125px}.heron-to-start .pet-caption{transition:opacity .5s}.heron-to-start button{transition:transform .08s linear}.heron-running .head{animation:none}.run-duck .head{transform:translate(-9px,39px)}.run-duck .neck{transform:translateY(28px) scaleY(.2)}.run-neck .head{transform:translateY(-26px)}.run-neck .neck{transform:scaleY(2.1)}.run-drop{z-index:0;left:25px;bottom:18px}@keyframes heron-stride{50%{transform:translateY(-4px)}}@media(max-width:720px){.heron-corner.heron-to-start{right:calc(100% - 130px)}.run-poem{bottom:140px;left:24px;right:24px;font-size:9px}.run-distance{right:18px;bottom:105px}}@media(prefers-reduced-motion:reduce){.heron-corner,#heron-run-layer{transition:opacity .15s}.heron-running .legs{animation:none}}
.heron-relocating .legs{animation:heron-stride .18s steps(2) infinite}.heron-relocating .bird{animation:heron-trot .2s steps(2) infinite}.heron-relocating .pet-caption{opacity:0}@keyframes heron-trot{50%{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.heron-relocating .legs,.heron-relocating .bird{animation:none}}
.heron-returning #heron-message{opacity:0!important}
.run-hud{position:absolute;top:24px;right:24px;display:flex;gap:28px;padding:15px 22px;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 5px 24px #2530210d;color:var(--fg);min-width:230px}.run-hud>div{min-width:80px}.run-hud>div+div{border-left:1px solid var(--line);padding-left:25px}.run-stat-label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin-bottom:9px}.run-stat-label svg{width:19px;height:13px;color:#ae8651}.run-stat-value{display:flex;align-items:baseline;gap:7px}.run-stat-value b{display:inline-block;font:28px/1 monospace;font-weight:600;letter-spacing:1px;font-variant-numeric:tabular-nums}.run-stat-value small{font-size:11px;color:var(--muted)}.fish-pickup{position:absolute;font:600 13px monospace;color:#917044;white-space:nowrap;padding:6px 10px;background:var(--bg);border:1px solid var(--line);border-radius:4px;animation:fish-pickup 1.2s ease forwards}.fish-count-pop{animation:fish-count-pop .4s ease}@keyframes fish-pickup{0%{opacity:0;transform:translateY(4px)}20%,65%{opacity:1}100%{opacity:0;transform:translateY(-28px)}}@keyframes fish-count-pop{40%{transform:scale(1.25);color:#b28a51}}@media(max-width:720px){.run-hud{top:16px;right:16px;gap:18px;min-width:205px;padding:13px 17px}.run-hud>div{min-width:65px}.run-hud>div+div{padding-left:18px}.run-stat-value b{font-size:25px}}@media(prefers-reduced-motion:reduce){.fish-pickup,.fish-count-pop{animation:none}.fish-pickup{opacity:1}}
/* 计分牌贴近跑道，避免视线离开游戏区域。 */
#heron-run-layer .run-hud{top:var(--run-hud-top,auto);bottom:auto;right:24px;padding:11px 17px;gap:21px;min-width:210px}#heron-run-layer .run-stat-label{margin-bottom:7px}#heron-run-layer .run-stat-value b{font-size:25px}@media(max-width:720px){#heron-run-layer .run-hud{right:16px;min-width:185px;padding:10px 14px;gap:15px}#heron-run-layer .run-hud>div{min-width:58px}#heron-run-layer .run-hud>div+div{padding-left:15px}#heron-run-layer .run-stat-value b{font-size:23px}}
.craft .ability,.coin .ability,.harvest .ability,.egg .ability,.build .ability{animation:crew-loot 2.2s ease forwards}.grow .ability{color:#83a460;transform-origin:bottom;animation:crew-grow 2.2s ease forwards}.magic .ability,.plasma .ability,.holo .ability,.teleport .ability{color:#8eacb9;animation:crew-magic 2.2s ease forwards}.bounce>svg{animation:crew-bounce .65s ease-in-out 3;transform-origin:bottom}.water .ability,.rain .ability{color:#8aaebc;animation:crew-rain .7s linear 3}.sword .ability{font-size:38px;color:#b4d4d1;text-shadow:0 0 7px #aecfcc;transform-origin:bottom left;animation:crew-sword .8s ease 2}.shield .ability{font-size:50px;left:2px;top:0;color:#9cbfc2;animation:crew-shield 2.2s ease forwards}.landing>svg{animation:crew-land 1.5s ease}.landing .ability{top:40px;left:5px;animation:crew-magic 1.6s ease forwards}.holo>svg{animation:crew-holo .4s steps(2) 5}.hiss>svg{animation:crew-hiss .18s steps(2) 10}.hiss .ability{color:#a5ad73}.teleport>svg{animation:phase 2.2s ease}.buzz>svg{animation:crew-buzz .55s ease-in-out 4}.buzz .ability{color:#c3a45f;animation:crew-loot 2.2s ease forwards}@keyframes crew-loot{0%{opacity:0;transform:translateY(12px) scale(.6)}25%,70%{opacity:1;transform:translateY(-15px) scale(1)}100%{opacity:0;transform:translateY(-30px)}}@keyframes crew-grow{0%{transform:scale(.1)}45%,75%{transform:scale(1.4)}100%{opacity:0;transform:scale(1.4)}}@keyframes crew-magic{0%{opacity:0;transform:translate(0,0) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(35px,-25px) scale(2)}}@keyframes crew-bounce{50%{transform:translateY(-15px) scale(.95,1.05)}85%{transform:scale(1.1,.9)}}@keyframes crew-rain{0%{opacity:0;transform:translateY(-15px)}30%{opacity:1}100%{opacity:0;transform:translateY(20px)}}@keyframes crew-sword{0%,100%{opacity:0;transform:rotate(-60deg)}25%,65%{opacity:1}80%{transform:rotate(70deg)}}@keyframes crew-shield{0%{opacity:0;transform:scale(.5)}25%,75%{opacity:.7;transform:scale(1.2)}100%{opacity:0}}@keyframes crew-land{0%{opacity:0;transform:translateY(-40px)}65%{opacity:1;transform:translateY(4px)}100%{transform:none}}@keyframes crew-holo{50%{opacity:.5;transform:translateX(1px)}}@keyframes crew-hiss{50%{transform:translateX(1px);filter:brightness(1.3)}}@keyframes crew-buzz{50%{transform:translate(8px,-8px)}}@media(prefers-reduced-motion:reduce){.teammate.acting>svg,.teammate.acting .ability{animation:none}}
/* 各自的礼物和招式用独立形状，避免共用一个色块。 */
.coin .ability{animation:coin-toss 2.2s ease forwards}.gold-coin{display:block;width:15px;height:19px;background:#e9bd45;border:2px solid #aa772b;box-shadow:inset 3px 0 #ffe49b,inset -2px 0 #cf9633;position:relative}.gold-coin:after{content:'';position:absolute;left:5px;top:3px;width:2px;height:9px;background:#b7842c}.egg .ability{top:36px;left:8px;animation:egg-drop 2.2s ease forwards}.gift-egg{width:17px;height:23px;display:block}.energy-sword .ability{left:30px;top:9px;transform-origin:8px 38px;animation:energy-sweep 1.5s ease forwards}.energy-blade{width:60px;height:52px;filter:drop-shadow(0 0 4px #8de6e8)}.energy-trail{position:absolute;left:10px;top:6px;border-right:3px solid #8cdfe2;border-top:2px solid #c3f4ec;width:68px;height:45px;border-radius:50%;opacity:0;animation:sword-trail 1.5s ease forwards}.energy-sword>svg{animation:arbiter-lunge 1.5s ease forwards}.adventure-sword .ability{left:21px;top:-8px;transform-origin:14px 44px;animation:abigail-swing 1.8s ease forwards}.adventure-blade{width:36px;height:49px;display:block}.purple-spark{position:absolute;left:37px;top:-4px;color:#ac83bb;font:20px monospace;opacity:0;animation:abigail-spark 1.8s ease forwards}.adventure-sword>svg{animation:abigail-hop 1.8s ease forwards}.portal .ability{left:48px;top:-2px;width:34px;height:62px}.wizard-portal{position:absolute;inset:0;border:3px solid #a28ac3;border-radius:50%;box-shadow:inset 0 0 0 3px #d0c2e4,0 0 10px #ac92c04d;animation:portal-open 2.8s ease forwards}.portal-rune{position:absolute;left:10px;top:16px;font:20px monospace;color:#b69ed2;animation:rune-turn 2.8s linear forwards}.portal>svg{animation:wizard-step 2.8s ease forwards}.salute .diver-right-arm{transform-box:fill-box;transform-origin:top left;animation:diver-salute 2.2s ease}.salute .democracy-star{color:#d6bd62;position:absolute;top:-24px;left:-12px;animation:crew-loot 2.2s ease forwards;font-style:normal}.stratagem-orb{position:absolute;width:9px;height:9px;background:#ce675a;box-shadow:2px 0 #ef9c72;animation:beacon-throw 2.9s ease forwards}.orbital-beam{position:absolute;left:48px;bottom:-30px;width:3px;height:150px;background:#d87a66;box-shadow:0 0 8px #db9a6d;transform-origin:bottom;animation:beacon-beam 2.9s ease forwards}.stratagem .ability{top:28px;left:28px}.jetpack>svg{animation:jet-jump 2.2s ease}.jetpack .ability{top:42px;left:10px;color:#d7ad5d;animation:jet-fire 2.2s ease}.resupply .ability{left:48px;top:25px}.supply-pod{display:block;width:21px;height:32px;background:#6e7865;border:3px solid #3e4d46;border-top:6px solid #c7b35d;animation:pod-drop 2.9s ease forwards;font-style:normal}.supply-pod b{font:16px monospace;color:#e4ce7a;display:block;text-align:center}.pod-dust{position:absolute;left:-8px;top:20px;font-style:normal;color:#b7ad95;animation:pod-dust 2.9s ease forwards}.diver-cape{transform-origin:50% 20%;animation:cape-rest 4s ease-in-out infinite}@keyframes coin-toss{0%{opacity:0;transform:translate(0,7px) rotateY(0)}25%{opacity:1;transform:translate(12px,-27px) rotateY(360deg)}60%{transform:translate(24px,12px) rotateY(720deg)}85%{opacity:1}100%{opacity:0;transform:translate(24px,12px)}}@keyframes egg-drop{0%,12%{opacity:0;transform:translateY(-8px)}30%{opacity:1;transform:translateY(9px)}40%{transform:translateY(6px)}55%,85%{opacity:1;transform:translateY(9px)}100%{opacity:0;transform:translateY(9px)}}@keyframes energy-sweep{0%,15%{opacity:0;transform:rotate(-80deg)}20%{opacity:1}55%{opacity:1;transform:rotate(65deg) translateX(8px)}85%,100%{opacity:0;transform:rotate(80deg) translateX(8px)}}@keyframes sword-trail{0%,25%{opacity:0}45%{opacity:.8}70%,100%{opacity:0}}@keyframes arbiter-lunge{25%{transform:translateX(-4px)}50%,65%{transform:translateX(15px)}100%{transform:none}}@keyframes abigail-swing{0%,15%{opacity:0;transform:rotate(35deg)}25%{opacity:1;transform:translateY(-7px) rotate(-35deg)}55%{opacity:1;transform:rotate(80deg)}80%,100%{opacity:0;transform:rotate(80deg)}}@keyframes abigail-hop{25%,40%{transform:translateY(-8px)}70%{transform:translateY(0)}}@keyframes abigail-spark{0%,50%{opacity:0;transform:scale(.2)}65%{opacity:1;transform:scale(1.3)}100%{opacity:0;transform:translate(12px,-10px)}}@keyframes portal-open{0%{opacity:0;transform:scaleY(.1) scaleX(.2)}20%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scaleX(.1)}}@keyframes rune-turn{0%{opacity:0;transform:rotate(0)}25%,65%{opacity:1}100%{opacity:0;transform:rotate(270deg)}}@keyframes wizard-step{0%,20%{opacity:1;transform:none}45%,65%{opacity:0;transform:translateX(35px) scaleX(.4)}75%{opacity:0;transform:translateX(-8px)}100%{opacity:1;transform:none}}@keyframes diver-salute{20%,70%{transform:rotate(-115deg)}}@keyframes beacon-throw{0%{opacity:0}10%{opacity:1;transform:translate(0,0)}35%{transform:translate(28px,-25px)}50%,75%{opacity:1;transform:translate(48px,29px)}100%{opacity:0;transform:translate(48px,29px)}}@keyframes beacon-beam{0%,45%{opacity:0;transform:scaleY(0)}55%,80%{opacity:.75;transform:scaleY(1)}100%{opacity:0}}@keyframes jet-jump{15%{transform:translateY(3px)}40%,60%{transform:translate(15px,-36px) rotate(5deg)}90%,100%{transform:none}}@keyframes jet-fire{0%,15%{opacity:0}35%,60%{opacity:1;transform:translate(13px,-28px) scaleY(1.5)}80%,100%{opacity:0}}@keyframes pod-drop{0%,20%{opacity:0;transform:translateY(-100px)}45%{opacity:1;transform:translateY(5px)}55%,85%{opacity:1;transform:translateY(0)}100%{opacity:0}}@keyframes pod-dust{0%,40%{opacity:0;transform:scale(.1)}55%{opacity:.8;transform:scale(2)}80%,100%{opacity:0;transform:scale(3)}}@keyframes cape-rest{50%{transform:skewX(3deg)}}@media(prefers-reduced-motion:reduce){.teammate.acting .ability *,.diver-cape{animation:none!important}.gold-coin,.gift-egg,.energy-blade,.adventure-blade,.wizard-portal,.supply-pod{opacity:1}}
