:root{--ink: #141414;--paper: #fffdf5;--yellow: #ffd21f;--yellow-2: #ffe873;--orange: #ff8a1f;--pink: #ff8fc8;--pink-2: #ffd1e8;--sky: #2dbdfb;--green: #4fbf3f;--green-2: #d9f7c4;--red: #f0433f;--red-2: #ffd6dc;--brown: #8a4a1f;--soil: #8b4a21;--shadow: 6px 6px 0 var(--ink);--shadow-sm: 4px 4px 0 var(--ink);--radius: 20px;--font: "Fredoka", "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--sky);overflow:hidden;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;color:inherit}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--sky)}.sky{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--sky)}.bg{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.bg-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.bg-soil{position:absolute;top:100%;left:0;width:100%;height:100vh;background:var(--soil)}.sun-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;will-change:transform,opacity}.sun{position:absolute;top:-3vh;right:19vw;width:25vh;height:25vh;transition:transform .35s cubic-bezier(.3,1.5,.5,1),filter .35s;transform-origin:50% 50%}.sun.beam{transform:scale(1.12) rotate(4deg);filter:brightness(1.12) drop-shadow(0 0 24px rgba(255,232,115,.9))}.sun-rays{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;animation:sun-spin 90s linear infinite}.sun-rays polygon,.sun-rays circle{fill:var(--yellow);stroke:var(--ink);stroke-width:5;stroke-linejoin:round}.sun-face{position:absolute;left:50%;top:50%;width:41%;height:41%;transform:translate(-50%,-50%);object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sun-face.blink{opacity:0;animation:sun-blink 5.5s steps(1,end) infinite}.plant-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;display:block;cursor:grab}.plant-svg:active{cursor:grabbing}.pan-hint{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:6;pointer-events:none;animation:hint-in .5s ease-out both}.pan-hint>span{display:inline-block;background:#fffdf5eb;border:3px solid var(--ink);border-radius:999px;padding:6px 14px;font-weight:700;font-size:13px;box-shadow:var(--shadow-sm);animation:bob-center 2s ease-in-out infinite}.pan-top{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:6;flex:none;cursor:pointer;background:var(--yellow);animation:hint-in .3s ease-out both}.plant-svg image{image-rendering:auto}.tick-label{font-family:var(--font);font-weight:700;font-size:15px;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:#ffec7873;z-index:5}.scene.flash-buy:after{animation:flash .7s ease-out forwards}.scene.flash-sell:after{background:#f0433f4d;animation:flash .7s ease-out forwards}.seed-bubble{position:absolute;transform:translate(-50%,-100%);z-index:4;white-space:nowrap}.seed-bubble>span{display:block;background:#fff;border:3px solid var(--ink);border-radius:999px;padding:8px 16px;font-weight:600;box-shadow:var(--shadow-sm);animation:bob-center 2.4s ease-in-out infinite}.fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;overflow:hidden}.particle{position:absolute;transform:translate(-50%,-50%);animation:fly 1.4s ease-out forwards;will-change:transform,opacity;line-height:1;filter:drop-shadow(0 2px 0 rgba(0,0,0,.25))}.particle.down{animation-name:fall}.float-label{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;animation:float-up 1.9s ease-out forwards;white-space:nowrap}.float-label .amount{background:#fff;border:3px solid var(--ink);border-radius:999px;padding:4px 14px;font-weight:700;font-size:22px;box-shadow:var(--shadow-sm)}.float-label.buy .amount{color:#1d8f2c;background:var(--green-2)}.float-label.sell .amount{color:#c2201c;background:var(--red-2)}.float-label .sub{background:var(--yellow);border:3px solid var(--ink);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hud{z-index:10}.hud-left{position:absolute;top:16px;left:16px;width:min(350px,calc(100vw - 32px));background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand .logo{width:48px;height:48px;border-radius:50%;border:3px solid var(--ink);object-fit:cover;background:var(--pink);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.brand h1{margin:0;font-size:30px;line-height:1;letter-spacing:.01em}.brand .tagline{margin:2px 0 0;font-size:13px;font-weight:500;opacity:.75}.token-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;background:var(--yellow-2);border:3px solid var(--ink);border-radius:14px;padding:8px 12px}.token-name{display:flex;flex-direction:column}.token-name .ticker{font-weight:700;font-size:20px}.token-name .chain{font-size:12px;font-weight:500;opacity:.75}.price{display:flex;flex-direction:column;align-items:flex-end}.price .value{font-weight:700;font-size:20px;font-variant-numeric:tabular-nums}.price .meta{font-size:11px;font-weight:500;opacity:.75}.stage-row{display:flex;flex-direction:column;gap:6px}.stage-name{display:flex;justify-content:space-between;align-items:center;gap:6px}.stage-name strong{font-size:22px;margin-left:auto;white-space:nowrap}.stage-index{font-size:13px;font-weight:600;background:var(--pink-2);border:2px solid var(--ink);border-radius:999px;padding:1px 10px}.streak{font-size:12px;font-weight:800;background:var(--yellow-2);border:2px solid var(--ink);border-radius:999px;padding:1px 8px;margin-left:6px}.streak.hot{background:var(--orange);color:#fff;animation:pulse-hot 1.2s ease-in-out infinite}.feed .chip{display:inline-block;font-style:normal;margin-left:6px;padding:0 6px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:10px}.feed .chip.boost{background:var(--yellow)}.event-banner{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 26px 14px;background:var(--paper);border:4px solid var(--ink);border-radius:22px;box-shadow:var(--shadow);text-align:center;animation:banner-in .5s cubic-bezier(.2,1.5,.4,1) both,banner-out .5s ease-in 5.4s both;pointer-events:none;max-width:calc(100vw - 32px)}.event-banner.rain{background:#d9ecff}.event-banner.golden{background:var(--yellow-2)}.event-banner.lightning{background:var(--red-2)}.event-banner .icon{font-size:34px;line-height:1}.event-banner .title{font-size:24px;font-weight:800;letter-spacing:.04em}.event-banner .sub{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.sun.golden{transform:scale(1.45) rotate(6deg);filter:brightness(1.15) drop-shadow(0 0 40px rgba(255,232,115,1))}.sun.golden .sun-rays{animation-duration:18s}.progress{height:16px;border:3px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden}.progress .bar{height:100%;background:repeating-linear-gradient(135deg,var(--green) 0 10px,#6fd65e 10px 20px);transition:width .9s cubic-bezier(.2,.9,.3,1);border-radius:999px}.next{font-size:12px;font-weight:600;opacity:.8}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px}.stats>div{display:flex;flex-direction:column}.stats .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;opacity:.6}.stats .v{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.good{color:#1d8f2c}.bad{color:#c2201c}.actions{display:flex;gap:8px}.btn{flex:1;text-align:center;text-decoration:none;font-weight:700;font-size:15px;padding:8px 10px;background:#fff;border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow-sm);transition:transform .1s,box-shadow .1s}.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.btn.primary{background:var(--green);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.25)}.hud-right{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:3px solid var(--ink);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;box-shadow:var(--shadow-sm);text-transform:uppercase;letter-spacing:.04em}.pill .dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);background:#bbb}.pill.online .dot{background:var(--green);animation:pulse 1.6s ease-in-out infinite}.pill.connecting .dot{background:var(--yellow)}.pill.offline .dot{background:var(--red)}.icon-btn{width:40px;height:40px;border:3px solid var(--ink);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);font-weight:800;font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s,box-shadow .1s}.icon-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.feed{position:absolute;right:16px;top:74px;width:300px;max-height:calc(100vh - 100px);z-index:9;display:flex;flex-direction:column;gap:8px}.feed-title{align-self:flex-end;background:var(--pink);border:3px solid var(--ink);border-radius:999px;padding:4px 12px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;box-shadow:var(--shadow-sm)}.feed ul{list-style:none;margin:0;padding:4px 6px 24px 4px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(20,20,20,.35) transparent;-webkit-mask-image:linear-gradient(to bottom,#000 88%,transparent);mask-image:linear-gradient(to bottom,#000 88%,transparent)}.feed li{display:grid;grid-template-columns:auto 1fr auto auto;grid-template-areas:"side usd when tx" "amount amount tier tier";align-items:center;column-gap:8px;row-gap:2px;background:#fff;border:3px solid var(--ink);border-radius:14px;padding:8px 12px;box-shadow:var(--shadow-sm);animation:slide-in .45s cubic-bezier(.2,1.2,.4,1);font-size:13px}.feed li.empty{display:block;text-align:center;font-weight:600;opacity:.8}.feed li.buy{background:var(--green-2)}.feed li.sell{background:var(--red-2)}.feed li.whale,.feed li.leviathan{border-width:4px;background:var(--yellow-2)}.feed .side{grid-area:side;font-weight:800;letter-spacing:.04em}.feed li.buy .side{color:#1d8f2c}.feed li.sell .side{color:#c2201c}.feed .usd{grid-area:usd;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.feed .amount{grid-area:amount;opacity:.75;font-weight:500}.feed .tier{grid-area:tier;justify-self:end;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.8}.feed .when{grid-area:when;opacity:.7;font-variant-numeric:tabular-nums}.feed .tx{grid-area:tx;text-decoration:none;font-weight:800;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ink);border-radius:8px;background:#fff}.manifesto{position:absolute;left:16px;bottom:16px;z-index:8;margin:0;max-width:340px;background:#fffdf5f0;border:3px solid var(--ink);border-radius:16px;box-shadow:var(--shadow-sm);padding:10px 14px;font-size:13px;line-height:1.45;font-weight:600}.manifesto strong{font-weight:800}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#14141473;display:flex;align-items:center;justify-content:center;padding:16px}.modal{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;animation:slide-in .35s cubic-bezier(.2,1.2,.4,1)}.modal h2{margin:0 0 8px;font-size:28px}.modal h3{margin:16px 0 6px;font-size:18px}.modal p{margin:0 0 10px;line-height:1.45;font-weight:500}.modal .close{position:absolute;top:12px;right:12px}.modal .stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.modal .stages li{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;background:#fff;border:2px solid var(--ink);border-radius:10px;padding:4px 8px;font-weight:600;font-size:14px}.modal .stages .n{grid-row:span 2;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;font-weight:800}.modal .stages .pts{font-size:11px;opacity:.7}.modal .tiers{margin:0;padding-left:18px;columns:2;font-weight:500;line-height:1.6}.modal .fine{margin-top:12px;font-size:12px;opacity:.7}.loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;pointer-events:none}.loading-card{background:#fff;border:4px solid var(--ink);border-radius:999px;padding:12px 22px;font-weight:700;font-size:18px;box-shadow:var(--shadow);animation:bob 1.6s ease-in-out infinite}@keyframes fly{0%{transform:translate(-50%,-50%) rotate(0) scale(.6);opacity:0}15%{opacity:1;transform:translate(-50%,calc(-50% - 10px)) rotate(0) scale(1.1)}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scale(.9);opacity:0}}@keyframes fall{0%{transform:translate(-50%,-50%) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot));opacity:0}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px) scale(.8)}15%{opacity:1;transform:translate(-50%) scale(1.05)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70px) scale(1)}}@keyframes sun-spin{to{transform:rotate(360deg)}}@keyframes sun-blink{0%,93%{opacity:0}94%,97%{opacity:1}98%,to{opacity:0}}@keyframes pulse-hot{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-30px) scale(.8)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes banner-out{to{opacity:0;transform:translate(-50%,-20px) scale(.9)}}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes flash{0%{opacity:1}to{opacity:0}}@keyframes bob-center{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{0%,to{box-shadow:0 0 #4fbf3f99}50%{box-shadow:0 0 0 5px #4fbf3f00}}@keyframes slide-in{0%{opacity:0;transform:translate(30px) scale(.96)}to{opacity:1;transform:none}}@media(max-width:760px){.hud-left{top:12px;left:12px;width:calc(100vw - 24px);padding:10px 12px 12px;gap:8px;border-width:3px;box-shadow:var(--shadow-sm)}.brand .logo{width:36px;height:36px}.manifesto{left:12px;right:12px;bottom:132px;max-width:none;font-size:11px;padding:6px 10px}.pan-hint,.pan-top{bottom:214px}.brand h1{font-size:22px}.brand .tagline{display:none}.stats{grid-template-columns:repeat(5,1fr);gap:4px}.stats .v{font-size:13px;white-space:nowrap}.stats>div:nth-child(5){display:none}.actions .btn{font-size:13px;padding:6px 8px}.hud-right{top:18px;right:22px;gap:6px;z-index:11}.sun{top:25vh;right:-7vw;width:19vh;height:19vh}.pill{font-size:11px;padding:5px 10px}.icon-btn{width:34px;height:34px;font-size:16px}.pan-hint,.pan-top{bottom:128px}.event-banner{top:auto;bottom:150px;padding:8px 16px 10px}.event-banner .title{font-size:18px}.feed{top:auto;bottom:0;left:0;right:0;width:auto;max-height:none;padding:0 12px 10px;gap:6px}.feed-title{align-self:flex-start;font-size:11px}.feed ul{flex-direction:row;overflow-x:auto;padding:4px 0 6px;-webkit-mask-image:linear-gradient(to right,#000 90%,transparent);mask-image:linear-gradient(to right,#000 90%,transparent);scrollbar-width:none}.feed ul::-webkit-scrollbar{display:none}.feed li{flex:0 0 auto;min-width:170px;padding:6px 10px;font-size:12px}.feed .usd{font-size:14px}.float-label .amount{font-size:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
