*{box-sizing:border-box;margin:0;padding:0}body{font-family:ui-monospace,SF Mono,Menlo,monospace;background:#0f1115;color:#d8dee9;min-height:100vh}main{max-width:640px;margin:0 auto;padding:24px 16px 64px}h1{font-size:20px;margin-bottom:4px}h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#7b8494;margin:24px 0 8px}.card{background:#171a21;border:1px solid #262b36;border-radius:8px;padding:12px;margin-bottom:8px}.row{justify-content:space-between;gap:8px}.row,.row-left{display:flex;align-items:center}.row-left{gap:10px;min-width:0}.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.skill-grid .card{margin-bottom:0}.skill-card{cursor:pointer}.skill-card:hover{border-color:#3a4356}.icon{image-rendering:pixelated;flex-shrink:0}.muted{color:#7b8494;font-size:12px}.locked{opacity:.45}button{font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#2d5a3d;color:#d8f2e0;border:none;border-radius:6px;padding:8px 14px;cursor:pointer}button:hover{background:#37704c}button:disabled{background:#262b36;color:#7b8494;cursor:default}button.secondary{background:#2a3040;color:#d8dee9}input{font:inherit;background:#21262f;color:#d8dee9;border:1px solid #363d4b;border-radius:6px;padding:8px 10px}input:focus{outline:none;border-color:#4a9e6a}button.secondary:hover{background:#343c50}.bar{height:6px;background:#262b36;border-radius:3px;overflow:hidden;margin-top:6px}.bar.big{height:12px;border-radius:6px}.bar.big>div{background:#b98a4a;transition:width .12s ease-out}.bar>div{height:100%;background:#4a9e6a;transition:width .5s linear}.bar>div.hp{background:#c0504d}.bar>div.energy,.bar>div.hp{transition:width .15s ease-out}.bar>div.energy{background:#4d7ec0}.bar>div.combo{background:#e8b84a;transition:width .12s ease-out}.creature.frenzy{border-color:#e8b84a;animation:frenzy-glow .8s ease-in-out infinite alternate}.frenzy-tag{position:absolute;top:8px;right:10px;color:#e8b84a;font-weight:700;font-size:12px;text-shadow:0 0 8px #e8b84a88}@keyframes frenzy-glow{0%{box-shadow:0 0 6px #e8b84a33}to{box-shadow:0 0 18px #e8b84a77}}.floats{inset:0;overflow:hidden;pointer-events:none}.float,.floats{position:absolute}.float{bottom:30%;font-weight:700;white-space:nowrap;animation:float-up 1.4s ease-out forwards}.float.xp{color:#e8b84a}.float.drop{color:#6fce8f}.float.gold{color:#e8b84a}.float.dmg{color:#f0e6c8;font-size:18px}.float.hurt{color:#e06561}@keyframes float-up{0%{transform:translateY(0);opacity:0}10%{transform:translateY(-4px);opacity:1}to{transform:translateY(-52px);opacity:0}}.creature{position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-color:#5a3d2d;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.scene-wrap{display:flex;justify-content:center;padding:6px 0 2px;position:relative}.pet-follow{position:absolute;left:-26px;bottom:-2px;animation:bob 2.2s ease-in-out infinite;pointer-events:none}.scene-fx{position:relative;display:inline-block}.scene-fx.shake-once{animation:shake-once .28s ease-out}.scene-img{animation:bob 3s ease-in-out infinite;display:block}.swing-tool{position:absolute;right:-14px;bottom:4px;transform-origin:25% 90%;transform:rotate(-80deg);opacity:0;pointer-events:none}.shake-once .swing-tool{animation:swing .28s ease-in}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes shake-once{0%{transform:translate(0)}20%{transform:translate(-3px,1px) rotate(-2deg);filter:brightness(1.7)}45%{transform:translate(3px,-1px) rotate(2deg)}70%{transform:translate(-2px)}to{transform:translate(0)}}@keyframes swing{0%{transform:rotate(-80deg);opacity:1}60%{transform:rotate(18deg);opacity:1}to{transform:rotate(12deg);opacity:0}}.simon-grid,.trace-grid{display:grid;grid-gap:10px;gap:10px;margin:12px auto;width:-moz-fit-content;width:fit-content}.trace-grid{grid-template-columns:repeat(3,56px)}.simon-grid{grid-template-columns:repeat(2,72px)}.trace-node{width:56px;height:56px;border-radius:50%;background:#21262f;border:2px solid #363d4b;color:#7b8494;font-size:18px;cursor:pointer}.trace-node.glow{border-color:#b98a4a;color:#e8b84a;box-shadow:0 0 10px #b98a4a55}.trace-node.picked{background:#2d5a3d;border-color:#4a9e6a;color:#d8f2e0}.simon-pad{width:72px;height:72px;border-radius:10px;border:2px solid #363d4b;cursor:pointer;opacity:.55;transition:opacity .1s,transform .1s}.simon-pad.p0{background:#7a3b3b}.simon-pad.p1{background:#3b5a7a}.simon-pad.p2{background:#3b7a4c}.simon-pad.p3{background:#7a6a3b}.simon-pad.lit{opacity:1;transform:scale(1.06);box-shadow:0 0 14px #ffffff33}.simon-pad:disabled{cursor:default}.timing-bar{position:relative;height:34px;margin-top:10px;background:#21262f;border-radius:8px;overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.timing-zone{background:#b9520f66;border-left:1px solid #e8763a;border-right:1px solid #e8763a}.timing-marker,.timing-zone{position:absolute;top:0;bottom:0}.timing-marker{width:4px;background:#e8b84a;box-shadow:0 0 8px #e8b84a}.particle{position:absolute;left:50%;top:55%;image-rendering:pixelated;pointer-events:none;animation:particle-fly .65s cubic-bezier(.2,.6,.4,1) forwards}@keyframes particle-fly{0%{transform:translate(-50%,-50%) rotate(0deg) scale(1);opacity:1}60%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(140deg);opacity:1}to{transform:translate(calc(-50% + var(--dx) * 1.3),calc(-50% + var(--dy) * .2 + 44px)) rotate(280deg) scale(.8);opacity:0}}.creature:active{transform:scale(.99);background:#1d1a17}.creature-name{font-size:16px}.hits{text-align:right;min-width:90px}.hit.you{color:#e8b84a;font-size:18px}.hit.them{color:#c0504d;font-size:12px}.landing{text-align:center;padding-top:48px}.landing h1{font-size:34px;margin-bottom:8px}.landing .landing-art{display:flex;justify-content:center;align-items:flex-end;gap:20px;margin:20px 0 24px}.landing .card{text-align:left;max-width:380px;margin:0 auto}.toast{background:#1d2733;border:1px solid #2f4257;border-radius:8px;padding:10px 12px;margin:12px 0;font-size:13px}.rar-common{color:#9aa4b2}.rar-uncommon{color:#6fce8f}.rar-rare{color:#4d9be8}.rar-epic{color:#b06ce8}.rar-legendary{color:#e8b84a;text-shadow:0 0 10px #e8b84a66}.rar-border-common{border-color:#3a4356}.rar-border-uncommon{border-color:#6fce8f;box-shadow:0 0 20px #6fce8f33}.rar-border-rare{border-color:#4d9be8;box-shadow:0 0 26px #4d9be855}.rar-border-epic{border-color:#b06ce8;box-shadow:0 0 32px #b06ce866}.rar-border-legendary{border-color:#e8b84a;box-shadow:0 0 44px #e8b84a88}.float.r-common{color:#9aa4b2;font-size:12px}.float.r-uncommon{color:#6fce8f}.float.r-rare{color:#4d9be8;font-size:16px;text-shadow:0 0 8px #4d9be866;animation-duration:1.8s}.float.r-epic{color:#b06ce8;font-size:18px;text-shadow:0 0 10px #b06ce877;animation-duration:2s}.float.r-legendary{color:#e8b84a;font-size:20px;text-shadow:0 0 12px #e8b84a99;animation-duration:2.4s}.reveal-backdrop{position:fixed;inset:0;z-index:50;background:#0f1115dd;display:flex;align-items:center;justify-content:center;cursor:pointer}.reveal-card{position:relative;z-index:2;background:#171a21;border:2px solid;border-radius:14px;padding:28px 36px;text-align:center;min-width:240px;animation:reveal-in .25s ease-out}.reveal-card.open{animation:reveal-pop .45s cubic-bezier(.2,1.6,.4,1)}.reveal-item{display:block;margin:0 auto 10px}.reveal-name{font-size:18px;font-weight:700}.reveal-mystery{font-size:42px;font-weight:700;padding:18px 0;animation:mystery-pulse 1s ease-in-out infinite alternate}.reveal-rays{position:absolute;width:480px;height:480px;border-radius:50%;animation:rays-spin 6s linear infinite;z-index:1}.ray-rare{background:conic-gradient(#4d9be833 0 12deg,transparent 12deg 30deg,#4d9be833 30deg 42deg,transparent 42deg 60deg,#4d9be833 60deg 72deg,transparent 72deg 90deg,#4d9be833 90deg 102deg,transparent 102deg 120deg,#4d9be833 120deg 132deg,transparent 132deg 150deg,#4d9be833 150deg 162deg,transparent 162deg 180deg,#4d9be833 180deg 192deg,transparent 192deg 210deg,#4d9be833 210deg 222deg,transparent 222deg 240deg,#4d9be833 240deg 252deg,transparent 252deg 270deg,#4d9be833 270deg 282deg,transparent 282deg 300deg,#4d9be833 300deg 312deg,transparent 312deg 330deg,#4d9be833 330deg 342deg,transparent 342deg 1turn)}.ray-epic{background:conic-gradient(#b06ce844 0 12deg,transparent 12deg 30deg,#b06ce844 30deg 42deg,transparent 42deg 60deg,#b06ce844 60deg 72deg,transparent 72deg 90deg,#b06ce844 90deg 102deg,transparent 102deg 120deg,#b06ce844 120deg 132deg,transparent 132deg 150deg,#b06ce844 150deg 162deg,transparent 162deg 180deg,#b06ce844 180deg 192deg,transparent 192deg 210deg,#b06ce844 210deg 222deg,transparent 222deg 240deg,#b06ce844 240deg 252deg,transparent 252deg 270deg,#b06ce844 270deg 282deg,transparent 282deg 300deg,#b06ce844 300deg 312deg,transparent 312deg 330deg,#b06ce844 330deg 342deg,transparent 342deg 1turn)}.ray-legendary{background:conic-gradient(#e8b84a55 0 12deg,transparent 12deg 30deg,#e8b84a55 30deg 42deg,transparent 42deg 60deg,#e8b84a55 60deg 72deg,transparent 72deg 90deg,#e8b84a55 90deg 102deg,transparent 102deg 120deg,#e8b84a55 120deg 132deg,transparent 132deg 150deg,#e8b84a55 150deg 162deg,transparent 162deg 180deg,#e8b84a55 180deg 192deg,transparent 192deg 210deg,#e8b84a55 210deg 222deg,transparent 222deg 240deg,#e8b84a55 240deg 252deg,transparent 252deg 270deg,#e8b84a55 270deg 282deg,transparent 282deg 300deg,#e8b84a55 300deg 312deg,transparent 312deg 330deg,#e8b84a55 330deg 342deg,transparent 342deg 1turn)}@keyframes rays-spin{to{transform:rotate(1turn)}}@keyframes reveal-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes reveal-pop{0%{transform:scale(.6)}60%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes mystery-pulse{0%{opacity:.5}to{opacity:1}}.chest-pop{animation:reveal-pop .4s cubic-bezier(.2,1.6,.4,1)}select{font:inherit;background:#21262f;color:#d8dee9;border:1px solid #363d4b;border-radius:6px;padding:8px 10px}body{background:transparent}.ambience{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;--sky-top:#07090f;--sky-bottom:#12151d;--hill-far:#0d1017;--hill-near:#090b10;--glow:#b9520f22;--star-op:1;--ember-op:0.8;--fog:#ffffff06}.ambience.amb-dawn{--sky-top:#131020;--sky-bottom:#2a1b22;--hill-far:#171223;--hill-near:#0e0b15;--glow:#c76b2a33;--star-op:0.25;--ember-op:0.5;--fog:#ffffff08}.ambience.amb-day{--sky-top:#131a28;--sky-bottom:#1b2534;--hill-far:#16202e;--hill-near:#101825;--glow:#4d7ec01a;--star-op:0;--ember-op:0.25;--fog:#ffffff09}.ambience.amb-dusk{--sky-top:#150f1d;--sky-bottom:#301a1e;--hill-far:#1d1420;--hill-near:#120c16;--glow:#c7502a3d;--star-op:0.5;--ember-op:0.9;--fog:#ffffff07}.amb-sky{inset:0;background:linear-gradient(to bottom,var(--sky-top),var(--sky-bottom))}.amb-glow,.amb-sky{position:absolute;transition:background 3s ease}.amb-glow{left:50%;bottom:-10vh;width:140vw;height:50vh;transform:translateX(-50%);background:radial-gradient(ellipse at center bottom,var(--glow),transparent 70%)}.amb-stars{position:absolute;inset:0;opacity:var(--star-op);transition:opacity 3s ease}.amb-star{position:absolute;width:2px;height:2px;border-radius:50%;background:#cfd8ea;animation:star-twinkle 5s ease-in-out infinite}.amb-star.small{width:1px;height:1px;opacity:.7}@keyframes star-twinkle{0%,to{opacity:.25}50%{opacity:1}}.amb-hills{position:absolute;left:0;right:0;bottom:0;width:100%}.amb-hills.far{height:34vh}.amb-hills.far path{fill:var(--hill-far);transition:fill 3s ease}.amb-hills.near{height:24vh}.amb-hills.near path{fill:var(--hill-near);transition:fill 3s ease}.amb-fog{position:absolute;height:12vh;width:160vw;border-radius:50%;background:var(--fog);filter:blur(24px)}.amb-fog.f1{bottom:8vh;animation:fog-drift 90s linear infinite}.amb-fog.f2{bottom:16vh;animation:fog-drift 130s linear infinite reverse}@keyframes fog-drift{0%{transform:translateX(-40vw)}to{transform:translateX(10vw)}}.amb-embers{position:absolute;inset:0;opacity:var(--ember-op);transition:opacity 3s ease}.amb-ember{position:absolute;bottom:-2vh;border-radius:50%;background:#e8974a;box-shadow:0 0 6px #e8974a99;animation-name:ember-rise;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes ember-rise{0%{transform:translate(0);opacity:0}8%{opacity:.9}60%{opacity:.7}to{transform:translate(var(--drift),-112vh);opacity:0}}.levelup-overlay{position:fixed;inset:0;z-index:60;background:rgba(6,8,14,.55);display:flex;align-items:center;justify-content:center;animation:levelup-fade 3.2s ease forwards;cursor:pointer}@keyframes levelup-fade{0%{opacity:0}6%{opacity:1}88%{opacity:1}to{opacity:0}}.levelup-card{position:relative;z-index:2;text-align:center;background:var(--card,#151a26);border:1px solid rgba(255,176,64,.55);border-radius:14px;padding:22px 34px;box-shadow:0 0 40px rgba(255,176,64,.35);animation:levelup-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes levelup-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.levelup-title{font-size:1.5rem;font-weight:700;color:#ffb040;margin-top:8px;letter-spacing:.04em}.levelup-detail{margin-top:4px;font-size:1.05rem}.levelup-to{color:#ffb040;font-weight:700;font-size:1.25rem}.levelup-arrow{color:#7ec97e}.firework{position:absolute;width:4px;height:4px;z-index:1;animation:firework-flash 1.4s ease-out forwards;opacity:0}@keyframes firework-flash{0%{opacity:0}5%{opacity:1}80%{opacity:1}to{opacity:0}}.firework i{position:absolute;left:0;top:0;width:3px;height:14px;border-radius:2px;transform-origin:50% 0;animation:firework-spark 1.4s ease-out forwards}@keyframes firework-spark{0%{transform:rotate(var(--rot,0deg)) translateY(0) scaleY(.4);opacity:1}60%{opacity:1}to{transform:rotate(var(--rot,0deg)) translateY(72px) scaleY(.9);opacity:0}}.levelup-hint{margin-top:10px;font-size:.8rem;color:#8b93a7;opacity:0;transition:opacity .4s ease}.levelup-hint.show{opacity:1}.proj2{position:absolute;right:4%;bottom:10%;z-index:3;pointer-events:none;animation:proj2-fly .34s ease-out forwards}.proj2-arrow-inner{display:block;transform:rotate(-60deg)}@keyframes proj2-fly{0%{transform:translate(0);opacity:1}78%{transform:translate(-118px,-64px);opacity:1}to{transform:translate(-150px,-82px);opacity:0}}.proj2.proj-wisp{animation:proj2-wisp-fly .42s ease-in forwards}@keyframes proj2-wisp-fly{0%{transform:translate(0);opacity:.95}35%{transform:translate(-46px,-46px);opacity:1}70%{transform:translate(-104px,-44px);opacity:1}to{transform:translate(-150px,-82px);opacity:0}}.proj-arrow-inner{display:block;transform:rotate(-90deg)}.proj-orb{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe2a8,#ff9d2e 55%,#b34ddb);box-shadow:0 0 12px 4px rgba(255,157,46,.7)}.proj-wisp{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#d8ffe8,#58d68b 45%,#5b2a86);box-shadow:0 0 10px 3px rgba(122,62,160,.8);filter:blur(.5px)}.shake-once .proj-wisp{animation:proj-wisp-fly .34s ease-in forwards}@keyframes proj-fly{0%{transform:translate(0) scale(.9);opacity:1}75%{transform:translate(-56px,-40px) scale(1);opacity:1}to{transform:translate(-74px,-54px) scale(1);opacity:0}}@keyframes proj-wisp-fly{0%{transform:translate(0);opacity:.9}40%{transform:translate(-28px,-36px)}70%{transform:translate(-54px,-36px)}to{transform:translate(-74px,-54px);opacity:0}}.ring-stage{position:relative;height:120px;margin-top:8px;background:#21262f;border-radius:10px;overflow:hidden}.ring-target{border:3px solid #e8763a;border-radius:50%;box-shadow:0 0 10px #e8763a66,inset 0 0 10px #e8763a44;width:auto!important;aspect-ratio:1}.ring-sweep,.ring-target{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.ring-sweep{width:112px;height:112px;border:3px solid #e8b84a;border-radius:50%;box-shadow:0 0 8px #e8b84a}