:root{--ink:#1d1340;--cyan:#19d3ff;--lime:#a6f02a;--yel:#ffd23c;--org:#ff8a1f;--pink:#ff4fa3;--pur:#8b4dff;--paper:#fffdf3;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;background:#58b81c;color:var(--ink);font-family:Nunito,system-ui,sans-serif;font-weight:800;font-size:14px;user-select:none;-webkit-user-select:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
img{-webkit-user-drag:none}
[hidden]{display:none!important}
h2,h3,.btn,.brand b,#loading b,.vh b,#timer,.opt b,#anT,.pill b,.card h2{font-family:"Lilita One",Nunito,sans-serif;font-weight:400;letter-spacing:.02em}
.panel,.pill,#vote,#feed,.prof,.live,.ico,#nav,.card,.cc,.lr,.about,.token,#info,#tip{background:var(--paper);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink)}

#loading{position:fixed;inset:0;z-index:99;display:grid;place-content:center;justify-items:center;gap:12px;background:radial-gradient(circle,#b8f25a,#4fb018);transition:opacity .4s}
#loading.done{opacity:0;pointer-events:none}
#loading img{width:130px;border-radius:30px;border:4px solid var(--ink);animation:bob 1.2s ease-in-out infinite}
#loading b{font-size:38px;color:#fff;-webkit-text-stroke:2px var(--ink);text-shadow:0 4px 0 var(--ink)}
#loading .bar{width:220px;height:14px;border-radius:9px;background:#fff;border:3px solid var(--ink);overflow:hidden}
#loading .bar i{display:block;height:100%;width:0;background:var(--pink);transition:width .2s}
@keyframes bob{50%{transform:translateY(-10px) rotate(3deg)}}

/* top */
#top{position:fixed;z-index:20;left:0;right:0;top:0;display:flex;align-items:center;gap:12px;padding:calc(8px + var(--sat)) 12px 8px;pointer-events:none}
#top>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:9px;text-align:left}
.brand img{width:46px;border-radius:14px;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink)}
.brand b{display:block;font-size:24px;line-height:1;color:#fff;-webkit-text-stroke:1.5px var(--ink);text-shadow:0 3px 0 var(--ink);paint-order:stroke fill}
.brand i{font-style:normal;font-size:9.5px;font-weight:900;letter-spacing:.14em;color:var(--ink);background:var(--yel);padding:1px 6px;border-radius:5px}
#nav{display:flex;gap:3px;margin:0 auto;padding:4px;border-radius:16px}
#nav button{padding:8px 14px;border-radius:11px;font-weight:900;font-size:12px;letter-spacing:.05em;opacity:.6}
#nav button.on{background:var(--pink);color:#fff;opacity:1}
.right{display:flex;align-items:center;gap:8px}
.live{padding:7px 12px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.live::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--org);margin-right:7px;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.3}}
.ico{width:40px;height:40px;border-radius:50%;font-size:16px}
.prof{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 3px;border-radius:999px;text-align:left}
.prof img{width:34px;height:34px;object-fit:contain;border-radius:50%;background:#d9f7a3;padding:2px}
.prof b{display:block;font-size:12px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prof i{font-style:normal;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:900;color:var(--pur)}
.prof u{text-decoration:none}
.prof em,.xp em{display:block;width:50px;height:6px;border-radius:9px;background:#0002;overflow:hidden}
.prof s,.xp s{display:block;height:100%;background:var(--pur);width:0;transition:width .6s}
.ico:active,.prof:active,.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}
#tabs{display:none}

/* screens */
main{position:fixed;inset:0}
.scr{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .25s;overflow:auto;padding:calc(78px + var(--sat)) 20px 24px;background:linear-gradient(#7fd8ff,#b9f06a 60%)}
.scr.on{opacity:1;visibility:visible}
#s-farm{padding:0;overflow:hidden;background:#58b81c}
#scene{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#39b6ff 0,#39b6ff 12%,#6ed022 12.1%,#4fae16)}
#stage{position:absolute;left:0;top:0;width:1672px;height:941px;transform-origin:0 0}
#bg{position:absolute;inset:0;width:100%;height:100%;transition:filter .8s}
#tint{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .8s,background .8s}
body[data-map=night] #bg{filter:brightness(.5) saturate(.85) contrast(1.1)}
body[data-map=night] #tint{opacity:1;background:radial-gradient(circle at 70% 8%,rgba(255,244,190,.35),transparent 18%),linear-gradient(rgba(18,28,120,.55),rgba(10,10,60,.4));mix-blend-mode:multiply}
body[data-map=night] #scene{background:#0b1740}
body[data-map=mutant] #bg{filter:hue-rotate(255deg) saturate(1.35) contrast(1.05)}
body[data-map=mutant] #tint{opacity:1;background:radial-gradient(circle at 50% 55%,rgba(166,240,42,.28),transparent 60%)}
body[data-map=mutant] #scene{background:#5a1f8f}
#plots,#fx{position:absolute;inset:0}
#fx{pointer-events:none;overflow:hidden}

/* plants */
.plot{position:absolute;width:0;height:0}
.plot .hit{position:absolute;left:-110px;top:-150px;width:220px;height:190px;cursor:pointer;border-radius:30px}
.plot .sh{position:absolute;left:-60px;top:-12px;width:120px;height:24px;border-radius:50%;background:rgba(40,20,0,.28);filter:blur(3px);opacity:0;transition:opacity .3s}
.plot.has .sh{opacity:1}
.plot .wrap{position:absolute;left:0;bottom:0;transform-origin:50% 100%;transition:transform .5s cubic-bezier(.3,1.5,.5,1);pointer-events:none}
.plot .spr{position:absolute;bottom:0;transform-origin:50% 100%;animation:breathe var(--d,3.2s) ease-in-out var(--dl,0s) infinite;filter:drop-shadow(0 4px 0 rgba(0,0,0,.18))}
@keyframes breathe{50%{transform:scale(1.03,.965)}}
.plot .spr.pop{animation:pop .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{0%{transform:scale(.3,.2)}55%{transform:scale(1.18,.86)}75%{transform:scale(.93,1.08)}100%{transform:scale(1)}}
.plot .spr.hop{animation:hop .7s ease}
@keyframes hop{0%,100%{transform:translateY(0) scale(1)}20%{transform:scale(1.1,.86)}50%{transform:translateY(-46px) scale(.95,1.07)}80%{transform:scale(1.08,.9)}}
.plot .spr.wig{animation:wig .6s ease}
@keyframes wig{20%{transform:rotate(-7deg)}45%{transform:rotate(6deg)}70%{transform:rotate(-4deg)}}
.plot .spr.shk{animation:shk .5s linear infinite}
@keyframes shk{25%{transform:translateX(-5px) rotate(-2deg)}75%{transform:translateX(5px) rotate(2deg)}}
.plot .spr.look{animation:look 1.4s ease}
@keyframes look{15%,45%{transform:scaleX(-1)}60%{transform:scaleX(1)}}
.plot .spr.dead{filter:grayscale(1) brightness(.75);animation:none;transform:rotate(-14deg)}
.plot .spr.out{animation:out .6s ease forwards}
@keyframes out{to{transform:translateY(-240px) scale(.2) rotate(30deg);opacity:0}}
.plot .aura{position:absolute;left:0;bottom:0;transform:translate(-50%,8%);animation:spin 14s linear infinite;opacity:.95;pointer-events:none}
@keyframes spin{from{transform:translate(-50%,8%) rotate(0)}to{transform:translate(-50%,8%) rotate(360deg)}}
.m-gold .spr{filter:sepia(.9) saturate(2.6) hue-rotate(-12deg) brightness(1.18) drop-shadow(0 0 14px #ffd23c)}
.m-ice .spr{filter:hue-rotate(165deg) saturate(.8) brightness(1.2) drop-shadow(0 0 12px #7fe0ff)}
.m-fire .spr{filter:saturate(1.7) contrast(1.1) hue-rotate(-18deg) drop-shadow(0 0 16px #ff5a1f)}
.m-radio .spr{filter:drop-shadow(0 0 16px #b6ff2a)}
.m-rainbow .spr{animation:breathe 3s ease-in-out infinite,hue 4s linear infinite}
@keyframes hue{from{filter:hue-rotate(0) saturate(1.4) drop-shadow(0 0 12px #fff)}to{filter:hue-rotate(360deg) saturate(1.4) drop-shadow(0 0 12px #fff)}}
.plot .tag{position:absolute;left:34px;top:-150px;width:46px;height:46px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);display:none;place-items:center;animation:bob 1.4s ease-in-out infinite;pointer-events:none}
.plot .tag img{width:30px;height:30px;object-fit:contain}
.plot.thirsty .tag,.plot.ripe .tag{display:grid}
.plot.sel .hit{background:rgba(255,255,255,.22);box-shadow:0 0 0 4px #fff}

/* fx */
.drop{position:absolute;top:-40px;width:5px;height:30px;border-radius:9px;background:#8fe3ff;opacity:.85;animation:fall .7s linear infinite}
@keyframes fall{to{transform:translateY(1040px)}}
.spark{position:absolute;width:14px;height:14px;border-radius:50%;animation:spark 1.2s ease-out forwards}
@keyframes spark{from{transform:translate(0,0) scale(.4);opacity:1}to{transform:translate(var(--x),var(--y)) scale(1.2);opacity:0}}
.seedfx{position:absolute;width:64px;transform:translate(-50%,-700px);animation:seed .8s cubic-bezier(.5,0,.9,.6) forwards}
@keyframes seed{to{transform:translate(-50%,-70px) rotate(300deg)}}
.sunfx{position:absolute;left:50%;top:-60px;width:420px;margin-left:-210px;animation:sun 4s ease forwards;filter:drop-shadow(0 0 80px #ffe36a)}
@keyframes sun{0%{transform:translateY(-300px) rotate(-30deg)}20%,80%{transform:translateY(60px) rotate(10deg)}100%{transform:translateY(-320px) rotate(40deg)}}
.glow{position:absolute;inset:0;animation:glow 4s ease forwards}
@keyframes glow{0%,100%{opacity:0}20%,80%{opacity:1}}
.boltfx{position:absolute;width:150px;animation:bolt .7s ease-out forwards}
@keyframes bolt{0%{transform:translateY(-500px) scale(1.4);opacity:1}40%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(20px) scale(.9);opacity:0}}
.fly{position:absolute;width:70px;animation:fly .9s ease-in forwards}
@keyframes fly{to{transform:translate(var(--x),var(--y)) scale(.3);opacity:0}}
#stage.quake{animation:quake .5s linear 5}
@keyframes quake{25%{margin:-8px 0 0 10px}50%{margin:6px 0 0 -10px}75%{margin:-4px 0 0 6px}}
#stage.thud{animation:quake .3s linear 1}

/* floating panels */
#stats{position:absolute;left:12px;top:calc(76px + var(--sat));display:flex;flex-direction:column;gap:8px;z-index:6}
.pill{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border-radius:16px;text-align:left;position:relative;min-width:168px}
.pill img{width:34px;height:34px;object-fit:contain}
.pill span{font-size:9.5px;font-weight:900;letter-spacing:.08em;line-height:1.1}
.pill b{display:block;font-size:19px;letter-spacing:0}
.pill em{position:absolute;left:48px;right:10px;bottom:4px;height:4px;border-radius:9px;background:#0001;overflow:hidden}
.pill s{display:block;height:100%;width:0;transition:width .6s}
.pill.h b{color:#3c9a0c}.pill.h s{background:var(--lime)}.pill.c b{color:var(--pink)}.pill.c s{background:var(--pink)}.pill.v b{color:var(--org)}
#boosts{display:flex;flex-direction:column;gap:5px}
#boosts span{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:10px;font-weight:900;letter-spacing:.06em}
#feed{position:absolute;right:12px;top:calc(76px + var(--sat));width:250px;border-radius:18px;z-index:6;overflow:hidden}
#feedT{width:100%;display:flex;justify-content:space-between;padding:9px 14px;font-weight:900;font-size:11.5px;letter-spacing:.08em;background:var(--yel)}
#feedL{max-height:230px;overflow:auto;scrollbar-width:thin}
#feed.shut #feedL{display:none}#feed.shut #feedT i{transform:rotate(-90deg)}
#feedT i{font-style:normal;transition:.2s}
.fi{padding:7px 12px;border-top:2px dashed #1d134022;font-size:12px;line-height:1.25;animation:in .3s}
.fi small{display:block;font-size:9.5px;opacity:.5;font-weight:900}
@keyframes in{from{opacity:0;transform:translateY(-6px)}}
#vote{position:absolute;left:50%;bottom:calc(10px + var(--sab));transform:translateX(-50%);width:min(900px,calc(100% - 20px));border-radius:24px;padding:10px 12px 12px;z-index:7}
.vh{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:0 4px}
.vh b{font-size:19px}
.vh span{font-size:11px;font-weight:900;letter-spacing:.08em}
#timer{display:inline-block;text-decoration:none;font-size:21px;color:#fff;background:var(--ink);padding:2px 10px;border-radius:10px;margin-left:6px;min-width:76px;text-align:center}
#timer.low{background:var(--pink);animation:bump .5s infinite}
@keyframes bump{50%{transform:scale(1.1)}}
#opts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.opt{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:16px;border:3px solid var(--ink);background:var(--c,#fff);box-shadow:0 4px 0 var(--ink);text-align:left;overflow:hidden;transition:transform .1s,filter .15s}
.opt:hover{filter:brightness(1.07);transform:translateY(-2px)}
.opt:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.opt img{width:44px;height:44px;object-fit:contain;flex:none;position:relative;filter:drop-shadow(0 2px 0 #0003)}
.opt b{display:block;font-size:14.5px;line-height:1;color:#fff;-webkit-text-stroke:.8px var(--ink);paint-order:stroke fill;text-shadow:0 2px 0 var(--ink);position:relative}
.opt small{position:relative;font-size:10.5px;font-weight:900}
.opt .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(255,255,255,.38);transition:width .4s}
.opt.mine{outline:4px solid #fff;outline-offset:-7px}
.opt.mine::after{content:"YOUR VOTE";position:absolute;right:6px;top:4px;font-size:8.5px;font-weight:900;background:var(--ink);color:#fff;padding:1px 6px;border-radius:6px}
#opts.voted .opt:not(.mine){filter:saturate(.6) brightness(.95)}
#winner{position:absolute;left:50%;bottom:170px;transform:translateX(-50%) scale(.6);z-index:8;padding:10px 22px;border-radius:999px;background:var(--ink);color:#fff;font-family:"Lilita One";font-size:22px;white-space:nowrap;opacity:0;pointer-events:none;transition:.3s cubic-bezier(.3,1.6,.5,1)}
#winner.on{opacity:1;transform:translateX(-50%) scale(1)}
#winner small{font:900 11px Nunito;opacity:.75;margin-left:8px}
#tip{position:absolute;left:50%;bottom:190px;transform:translateX(-50%);z-index:9;padding:12px 16px;border-radius:18px;text-align:center;font-size:14px;animation:bob 2s ease-in-out infinite}
#tip button{display:block;margin:8px auto 0;padding:5px 14px;border-radius:999px;background:var(--pink);color:#fff;font-weight:900;font-size:11px}
#info{position:fixed;z-index:30;width:250px;padding:12px 14px;border-radius:18px;display:none;animation:in .2s}
#info.on{display:block}
#info h3{font-size:19px}
#info .mt{display:inline-block;font-size:9.5px;font-weight:900;letter-spacing:.08em;padding:2px 8px;border-radius:6px;background:var(--ink);color:#fff;margin:2px 4px 6px 0}
#info .ln{display:grid;grid-template-columns:62px 1fr 34px;align-items:center;gap:6px;font-size:10.5px;font-weight:900;margin-top:4px}
#info .ln em{height:8px;border-radius:9px;background:#0001;overflow:hidden}
#info .ln s{display:block;height:100%}
#info p{margin-top:8px;font-size:12px;font-style:italic}
#info small{display:block;margin-top:4px;font-size:10.5px;opacity:.65}
#announce{position:fixed;inset:0;z-index:50;display:none;place-items:center;background:rgba(10,5,40,.72);text-align:center;padding:20px}
#announce.on{display:grid;animation:in .25s}
#announce i{font-style:normal;font-weight:900;letter-spacing:.2em;font-size:13px;color:var(--yel)}
#anT{font-size:clamp(34px,7vw,84px);line-height:.95;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);animation:pop .6s cubic-bezier(.3,1.6,.5,1)}
#anS{color:#fff;font-size:clamp(15px,2vw,22px);margin-top:8px}
#anI{height:min(34vh,280px);margin-top:14px;animation:pop .7s .2s cubic-bezier(.3,1.6,.5,1) both;filter:drop-shadow(0 0 40px #fff8)}

/* collection / leaderboard / about */
.head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;max-width:1120px;margin:0 auto 16px}
.head h2{font-size:42px;color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}
.sub{display:flex;gap:3px;padding:4px;border-radius:14px;background:var(--paper);border:3px solid var(--ink)}
.sub button{padding:7px 12px;border-radius:9px;font-weight:900;font-size:11.5px;opacity:.6}
.sub button.on{background:var(--cyan);opacity:1}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1120px;margin:0 auto}
.cc{position:relative;border-radius:26px;padding:14px;text-align:center;background:linear-gradient(170deg,var(--c1),var(--c2));transition:transform .15s;overflow:hidden}
.cc:hover{transform:translateY(-6px) rotate(-1deg)}
.cc::before{content:"";position:absolute;left:-30%;top:-60%;width:60%;height:200%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:rotate(25deg);transition:left .5s}
.cc:hover::before{left:90%}
.cc .art{height:170px;display:grid;place-items:center}
.cc .art img{max-height:170px;max-width:90%;filter:drop-shadow(0 8px 0 #0003)}
.cc.lock .art img{filter:brightness(0) opacity(.45)}
.cc h3{font-size:24px;color:#fff;-webkit-text-stroke:1.2px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink)}
.cc p{font-size:12px;min-height:32px}
.cc .rar{position:absolute;left:12px;top:12px;font-size:9.5px;font-weight:900;letter-spacing:.1em;padding:3px 8px;border-radius:7px;background:var(--ink);color:#fff}
.cc .q{position:absolute;left:0;right:0;top:66px;font-family:"Lilita One";font-size:70px;color:#fff;-webkit-text-stroke:3px var(--ink)}
.muts{display:flex;justify-content:center;gap:4px;margin:8px 0 6px}
.muts img{width:34px;height:34px;object-fit:contain;background:#fff8;border-radius:50%;border:2px solid var(--ink)}
.muts img.no{filter:brightness(0) opacity(.3)}
.cc .n{font-size:11px;font-weight:900;background:#fff9;border-radius:999px;padding:3px 10px;display:inline-block}
.demo{max-width:820px;margin:0 auto 10px;font-size:12px}
.demo b,.tagdemo{display:inline-block;padding:2px 8px;border-radius:7px;background:var(--pink);color:#fff;font-weight:900;font-size:10px;letter-spacing:.08em;margin-right:6px;font-family:Nunito;-webkit-text-stroke:0}
.lb{max-width:820px;margin:0 auto;display:grid;gap:7px;padding-bottom:8px}
.lr{display:grid;grid-template-columns:40px 40px 1fr 60px 90px;align-items:center;gap:10px;padding:6px 14px;border-radius:14px;box-shadow:0 3px 0 var(--ink)}
.lr .rk{font-family:"Lilita One";font-size:19px;text-align:center}
.lr img{width:36px;height:36px;object-fit:contain}
.lr .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lr .nm small{font-size:9px;font-weight:900;opacity:.5;margin-left:6px;letter-spacing:.08em}
.lr .lv{font-size:11px;font-weight:900;color:var(--pur)}
.lr .s{text-align:right;font-family:"Lilita One";font-size:20px;color:var(--pink)}
.lr.me{background:var(--yel)}
.about{display:flex;gap:24px;align-items:center;max-width:980px;margin:0 auto;padding:20px;border-radius:26px}
.about img{width:300px;border-radius:22px;border:3px solid var(--ink);transform:rotate(-2deg)}
.about h2{font-size:44px;color:var(--pink)}
.about .big{font-family:"Lilita One";font-size:22px;color:var(--pur);margin-bottom:6px}
.about p{margin-bottom:5px;font-size:15px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.btn{padding:12px 20px 9px;border-radius:14px;border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);background:var(--yel);font-size:17px;transition:transform .1s}
.btn.lime{background:var(--lime)}.btn.pink{background:var(--pink);color:#fff}.btn.dark{background:var(--ink);color:#fff}.btn.cyan{background:var(--cyan)}
.btn[disabled]{opacity:.5;pointer-events:none}
.token{max-width:980px;margin:16px auto 0;padding:16px 20px;border-radius:22px}
.token h3{font-size:22px}.token p{font-size:12.5px;margin:6px 0 10px}
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.perks div{padding:10px;border-radius:14px;background:#1d13400f;font-size:12px;text-align:center}
.perks b{display:block;font-size:10px;opacity:.5;letter-spacing:.08em;margin-top:4px}
.fine{max-width:760px;margin:16px auto 0;font-size:11px;text-align:center;opacity:.7}

.ov{position:fixed;inset:0;z-index:40;display:none;place-items:center;padding:16px;background:rgba(10,5,40,.6)}
.ov.on{display:grid}
.card{width:min(470px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:22px 20px 20px;border-radius:26px;animation:pop .35s cubic-bezier(.3,1.6,.5,1);box-shadow:0 8px 0 var(--ink)}
.card h2{font-size:30px;text-align:center;color:var(--pink)}
.card p{font-size:13px;margin-top:8px}
.card input{width:100%;margin-top:10px;padding:11px 14px;border-radius:12px;border:3px solid var(--ink);background:#fff;font:inherit;color:var(--ink);user-select:text;-webkit-user-select:text}
.xp{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:900;margin-top:12px}.xp em{flex:1;height:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.grid2 div{padding:8px 10px;border-radius:10px;background:#1d13400f;font-size:10.5px}
.grid2 b{display:block;font-family:"Lilita One";font-weight:400;font-size:20px}
.ach{display:grid;gap:5px;margin-top:10px}
.ach div{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:10px;background:#1d13400f;font-size:11.5px;opacity:.5}
.ach div.got{opacity:1;background:var(--lime)}
.avs{display:flex;gap:6px;justify-content:center;margin-top:10px}
.avs button{width:46px;height:46px;border-radius:50%;background:#1d13400f;padding:4px}
.avs button.on{box-shadow:0 0 0 3px var(--pink)}
.avs img{width:100%;height:100%;object-fit:contain}
.goal{margin-top:10px;font-size:12px}
.goal em{display:block;height:12px;border-radius:9px;background:#0001;border:2px solid var(--ink);overflow:hidden;margin-top:3px}
.goal s{display:block;height:100%;background:var(--lime)}
.goal.done s{background:var(--yel)}
.mapc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.mapc button{border-radius:14px;border:3px solid var(--ink);overflow:hidden;font-size:11px;font-weight:900;padding-bottom:6px;background:#fff}
.mapc i{display:block;height:64px;background:url(assets/farm.webp) center/cover;margin-bottom:5px}
.mapc .night i{filter:brightness(.45) saturate(.8)}.mapc .mutant i{filter:hue-rotate(255deg) saturate(1.35)}
.mapc button.on{box-shadow:0 0 0 4px var(--pink)}
.mapc button.lk{opacity:.55}
.emos{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:10px}
.emos img{width:100%;aspect-ratio:1;object-fit:contain;background:#1d13400f;border-radius:10px;padding:3px}
#toasts{position:fixed;z-index:60;left:50%;top:calc(70px + var(--sat));transform:translateX(-50%);display:grid;gap:6px;justify-items:center;pointer-events:none}
.toast{padding:9px 16px;border-radius:999px;background:var(--ink);color:#fff;font-size:13px;animation:pop .3s;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}

@media (max-width:1180px){.brand i{display:none}.live{display:none}}
@media (max-width:820px){
  #nav{display:none}
  #top{gap:6px;padding:calc(6px + var(--sat)) 8px 6px;background:linear-gradient(#0003,#0000)}
  .brand img{width:36px;border-radius:11px}.brand b{font-size:17px}
  .right{margin-left:auto;gap:5px}.ico{width:34px;height:34px;font-size:14px}
  .prof span{display:none}.prof{padding:2px}
  #tabs{position:fixed;z-index:20;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:5px 6px calc(5px + var(--sab));background:var(--paper);border-top:3px solid var(--ink)}
  #tabs button{padding:4px 0 2px;border-radius:12px;font-weight:900;font-size:9.5px;letter-spacing:.04em;opacity:.55}
  #tabs img{display:block;width:26px;height:26px;object-fit:contain;margin:0 auto 1px}
  #tabs button.on{background:var(--yel);opacity:1}
  main{bottom:calc(56px + var(--sab))}
  .scr{padding:calc(58px + var(--sat)) 12px 16px}
  #s-farm{display:flex;flex-direction:column}
  #scene{position:relative;inset:auto;flex:1;min-height:0}
  #vote{position:relative;left:auto;bottom:auto;transform:none;width:auto;margin:0;border-radius:20px 20px 0 0;border-width:3px 0 0;box-shadow:none;padding:8px 8px 10px}
  #opts{grid-template-columns:1fr 1fr;gap:7px}
  .vh b{font-size:15px}.vh span{font-size:0}#timer{font-size:17px;min-width:64px}
  .opt{padding:7px 8px}.opt img{width:36px;height:36px}.opt b{font-size:12.5px}
  #stats{left:6px;top:calc(52px + var(--sat));flex-direction:row;gap:4px;right:6px}
  .pill{min-width:0;flex:1;padding:3px 6px 6px 3px;gap:4px;border-radius:12px;box-shadow:0 3px 0 var(--ink)}
  .pill img{width:24px;height:24px}.pill span{font-size:0}.pill b{font-size:14px}
  .pill em{left:30px;right:6px;bottom:3px}
  #boosts{position:absolute;left:0;top:44px}
  #feed{right:6px;top:auto;bottom:6px;width:auto;max-width:74%;border-radius:14px;box-shadow:0 3px 0 var(--ink)}
  #feedT{padding:6px 10px;font-size:10px;gap:8px}#feedL{max-height:120px;width:240px}
  #winner{bottom:14px;font-size:16px}#tip{bottom:60px;font-size:12.5px;white-space:nowrap}
  .cards{grid-template-columns:1fr 1fr;gap:10px}.cc .art{height:110px}.cc .art img{max-height:110px}.cc h3{font-size:17px}.cc p{font-size:10.5px}.muts img{width:22px;height:22px}.cc .q{top:36px;font-size:54px}
  .head h2{font-size:30px}
  .about{flex-direction:column;text-align:center}.about img{width:220px}.row{justify-content:center}
  .perks{grid-template-columns:1fr 1fr}
  .lr{grid-template-columns:28px 32px 1fr 70px;padding:5px 10px}.lr .lv{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01s!important}}
