:root{--bg:#faf9f7;--bg-up:#fff;--border:#1111111a;--border-s:#1111110d;--tx1:#18160f;--tx2:#55504a;--tx3:#8c8780;--green:#4a7c59;--green-l:#e6f0ea;--amber:#f5a50b;--btn:#18160f;--btnx:#faf9f7;--term:#0d0e10;--term-border:#ffffff0f;--font:"Manrope", sans-serif;--mono:"IBM Plex Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--tx1);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button,code{font:inherit}pre{font-family:var(--mono)}.shell{width:100%}.shell-inner{width:min(960px,100% - 56px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;margin-bottom:48px;padding:36px 0 0;animation:.52s both up;display:flex}.brand{letter-spacing:.015em;color:var(--tx1);font-size:.95rem;font-weight:600}.brand:hover{color:var(--green)}.nav-links{align-items:center;gap:22px;display:flex}.nav-npm{font-family:var(--mono);cursor:pointer;background:var(--green);color:#fff;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.72rem;font-weight:500;transition:background .16s,transform .12s;display:inline-flex}.nav-npm svg{width:13px;height:13px}.nav-npm:hover{background:#3d6b4c;transform:translateY(-1px)}.nav-link{color:var(--tx3);font-size:.85rem;transition:color .16s}.nav-link:hover{color:var(--tx1)}.nav-icon{align-items:center;display:flex}.hero{text-align:center;max-width:640px;margin:0 auto 64px;animation:.52s .2s both up}.hero h1{letter-spacing:-.05em;color:var(--tx1);text-wrap:balance;font-size:clamp(3.2rem,6.5vw,5.2rem);font-weight:500;line-height:1.06}.hero-forest{color:var(--green)}.hero-sub{max-width:480px;color:var(--tx2);text-wrap:pretty;margin:22px auto 0;font-size:1.05rem;line-height:1.68}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:28px;display:flex}.hero-btn-primary{background:var(--green);color:#fff;font-size:.92rem;font-weight:600;font-family:var(--font);border-radius:10px;padding:13px 28px;transition:background .16s,transform .12s}.hero-btn-primary:hover{background:#3d6b4c;transform:translateY(-1px)}.hero-btn-secondary{background:var(--bg-up);color:var(--tx1);border:1px solid var(--border);font-size:.92rem;font-weight:600;font-family:var(--font);border-radius:10px;padding:13px 28px;transition:border-color .16s,transform .12s}.hero-btn-secondary:hover{border-color:var(--tx3);transform:translateY(-1px)}.hero-btn-dashboard{background:var(--bg-up);color:var(--tx1);border:1px solid var(--tx1);font-size:.92rem;font-weight:600;font-family:var(--font);cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:13px 28px;transition:background .16s,color .16s,transform .12s;display:inline-flex}.hero-btn-dashboard:hover{background:var(--tx1);color:var(--btnx);transform:translateY(-1px)}.hero-alt{color:var(--tx3);margin-top:16px;font-size:.85rem}.hero-link-btn{cursor:pointer;font:inherit;color:var(--green);background:0 0;border:0;padding:0;font-weight:600}.hero-link-btn:hover{text-decoration:underline}.hero-alt a:hover{color:var(--tx1)}.kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--green);margin-bottom:20px;font-size:.7rem;font-weight:600}.kicker.centered{text-align:center}.hero-terminal{max-width:780px;margin:0 auto 28px;animation:.52s .1s both up}.vsc-frame{background:var(--term);border:1px solid #ffffff12;border-radius:10px;overflow:hidden;box-shadow:0 0 0 1px #0006,0 24px 64px #00000080}.vsc-tabs{scrollbar-width:none;background:#12141a;border-bottom:1px solid #ffffff0d;align-items:center;gap:0;padding:0 14px;display:flex;overflow-x:auto}.vsc-tabs::-webkit-scrollbar{display:none}.vsc-dots{flex-shrink:0;gap:6px;margin-right:16px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dot-r{background:#ff5f57}.dot-y{background:#ffbd2e}.dot-g{background:#28c941}.vsc-tab{font-family:var(--mono);color:#ffffff4d;white-space:nowrap;cursor:pointer;border-bottom:2px solid #0000;flex-shrink:0;padding:9px 14px;font-size:.7rem;transition:color .14s}.vsc-tab:hover{color:#ffffff8c}.vsc-tab-active{color:#ffffffd9;border-bottom-color:var(--green)}.vsc-tab-spacer{flex:1;min-width:8px}.vsc-tab-actions{flex-shrink:0;gap:0;display:flex}.vsc-tab-actions span{font-family:var(--mono);color:#ffffff40;cursor:pointer;white-space:nowrap;padding:6px 7px;font-size:.64rem;transition:color .14s}.vsc-tab-actions span:hover{color:#ffffff80}.vsc-body{background:var(--term);color:#ffffff8c;font-family:var(--mono);padding:16px 20px 14px;font-size:.82rem;line-height:1.5}.tl{margin-bottom:3px}.tl-dim{color:#ffffff47;margin-bottom:2px}.tl-p{color:#5b9a4a;margin-right:7px}.tl-cursor{vertical-align:text-bottom;background:#ffffff8c;width:7px;height:13px;margin-left:3px;animation:1.1s step-start infinite blink;display:inline-block}.forest-wrap{width:calc(100% + 40px);margin:8px -20px;overflow:hidden}.tl-status{font-family:var(--mono);color:#ffffff80;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 7px;font-size:.8rem;display:flex}.st-brand{color:var(--amber);font-weight:500}.st-sep{color:#fff3}.st-text{color:#ffffff80}.st-bar{color:#6cb95e;letter-spacing:-.5px}.st-next{color:#fffc}.st-biome{color:#ffffff40}.quickstart{background:var(--bg-up);border:1px solid var(--border);border-radius:20px;max-width:760px;margin:0 auto 96px;padding:44px 40px 40px;scroll-margin-top:90px;animation:.52s .28s both up;box-shadow:0 1px 2px #11111108,0 24px 60px #1111110f}.quickstart-title{text-align:center;letter-spacing:-.03em;color:var(--tx1);font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:600;line-height:1.1}.quickstart-sub{text-align:center;max-width:520px;color:var(--tx2);margin:14px auto 36px;font-size:1.02rem;line-height:1.6}.quickstart-sub code{font-family:var(--mono);background:var(--green-l);color:var(--green);border-radius:6px;padding:1px 6px;font-size:.9em}.qs-list{gap:12px;list-style:none;display:grid}.qs-item{align-items:center;gap:16px;padding:6px;display:flex}.qs-num{background:var(--green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;font-weight:700;display:flex}.qs-cmd{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.qs-code{background:var(--term);font-family:var(--mono);color:#ffffffeb;white-space:nowrap;scrollbar-width:none;border-radius:11px;padding:15px 18px;font-size:1.02rem;display:block;overflow-x:auto}.qs-code::-webkit-scrollbar{display:none}.qs-prompt{color:#5b9a4a;-webkit-user-select:none;user-select:none;margin-right:8px}.qs-note{color:var(--tx3);padding-left:4px;font-size:.82rem}.qs-btn{border:1px solid var(--border);background:var(--bg-up);min-width:74px;color:var(--tx2);cursor:pointer;border-radius:10px;flex-shrink:0;align-self:flex-start;margin-top:4px;padding:13px 16px;font-size:.84rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.qs-btn:hover{background:var(--btn);color:var(--btnx);border-color:var(--btn)}.qs-oneliner-label{color:var(--tx3);text-align:center;margin:24px 0 10px;font-size:.85rem}.qs-code-sm{font-size:.86rem}@media (max-width:560px){.quickstart{padding:32px 20px}.qs-item{gap:10px}.qs-note{display:none}}.how{padding-top:2px}.how-grid{gap:14px;display:grid}.how-card{border:1px solid var(--border-s);background:var(--bg-up);border-radius:10px;padding:18px 20px}.how-n{font-family:var(--mono);color:var(--green);letter-spacing:.06em;margin-bottom:7px;font-size:.68rem;font-weight:500;display:block}.how-title{color:var(--tx1);letter-spacing:-.015em;margin-bottom:5px;font-size:.92rem;font-weight:600}.how-body{color:var(--tx2);text-wrap:pretty;font-size:.84rem;line-height:1.65}.biomes{margin-bottom:80px;animation:.52s .28s both up}.biomes-sub{text-align:center;color:var(--tx2);text-wrap:pretty;max-width:420px;margin:0 auto 32px;font-size:.96rem;line-height:1.65}.biomes-grid{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.biome-card{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:6px;padding:22px 18px;transition:transform .16s;display:flex}.biome-card:hover{transform:translateY(-2px)}.biome-range{font-family:var(--mono);opacity:.7;font-size:.68rem;font-weight:500}.biome-name{color:#ffffffd9;letter-spacing:-.01em;font-size:.9rem;font-weight:600}.biome-label{color:#ffffff61;font-size:.76rem;line-height:1.4}.biome-prog{gap:4px;margin-top:8px;display:flex}.biome-pip{border-radius:999px;flex:1;height:3px}.species{margin-bottom:80px;animation:.52s .32s both up}.species-grid{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.sp-card{border:1px solid var(--border-s);background:var(--bg-up);border-radius:10px;transition:border-color .16s,box-shadow .16s;overflow:hidden}.sp-card:hover{border-color:var(--border);box-shadow:0 4px 18px #0000000f}.sp-preview{background:#0c0d10;justify-content:center;padding:10px 8px 4px;display:flex}.sp-info{padding:11px 13px 13px}.sp-name{color:var(--tx1);letter-spacing:-.01em;margin-bottom:2px;font-size:.86rem;font-weight:600;display:block}.sp-desc{color:var(--tx3);font-size:.74rem;line-height:1.45;display:block}.footer{border-top:1px solid var(--border-s);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:28px 0 72px;animation:.52s .36s both up;display:flex}.footer-brand{font-size:.85rem;font-weight:600}.footer-sep{color:var(--border);-webkit-user-select:none;user-select:none}.footer-link{color:var(--tx3);font-size:.82rem;transition:color .15s}.footer-link:hover{color:var(--tx1)}.footer-muted{color:var(--tx3);font-size:.82rem}.real-trees{text-align:center;margin-bottom:80px;animation:.52s .34s both up}.real-trees-inner{max-width:560px;margin:0 auto}.real-trees h2{letter-spacing:-.04em;color:var(--tx1);margin-bottom:12px;font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:500}.real-trees-body{color:var(--tx2);text-wrap:pretty;margin-bottom:28px;font-size:.96rem;line-height:1.68}.real-trees-cta{background:var(--green);color:#fff;font-size:.9rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:13px 28px;transition:background .16s,transform .12s;display:inline-flex}.real-trees-cta:hover{background:#3d6b4c;transform:translateY(-1px)}.real-trees-note{color:var(--tx3);margin-top:14px;font-size:.76rem}.device-page{justify-content:center;align-items:center;min-height:80vh;animation:.42s both up;display:flex}.device-card{text-align:center;width:100%;max-width:440px}.device-title{letter-spacing:-.04em;color:var(--tx1);margin-bottom:10px;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:500}.device-sub{color:var(--tx2);margin-bottom:28px;font-size:.94rem;line-height:1.65}.device-form{flex-direction:column;gap:14px;display:flex}.device-input{width:100%;font-family:var(--mono);text-align:center;letter-spacing:.3em;background:var(--bg-up);border:1px solid var(--border);color:var(--tx1);border-radius:10px;outline:none;padding:14px 16px;font-size:1.3rem;transition:border-color .16s}.device-input:focus{border-color:var(--green)}.device-input::placeholder{color:var(--tx3);letter-spacing:.2em;font-size:1.1rem}.device-error{color:#c44;margin:-4px 0;font-size:.84rem}.device-btn{background:var(--btn);color:var(--btnx);font-size:.9rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;padding:13px 20px;transition:opacity .16s}.device-btn:hover{opacity:.85}.device-btn:disabled{opacity:.5;cursor:wait}.device-btn-wide{width:100%;margin-top:18px}.otp-row{justify-content:center;gap:8px;display:flex}.otp-box{text-align:center;width:46px;height:56px;font-family:var(--mono);background:var(--bg-up);border:1px solid var(--border);color:var(--tx1);border-radius:11px;outline:none;font-size:1.5rem;font-weight:500;transition:border-color .14s,box-shadow .14s}.otp-box:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}@media (max-width:420px){.otp-row{gap:6px}.otp-box{width:42px;height:52px;font-size:1.3rem}}.device-steps{border-top:1px solid var(--border-s);text-align:left;margin-top:28px;padding-top:24px}.device-steps-label{color:var(--tx2);margin-bottom:12px;font-size:.82rem;font-weight:600}.device-steps-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.device-step{align-items:center;gap:10px;display:flex}.device-step-num{background:var(--green-l);width:20px;height:20px;color:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex}.device-step-cmd{background:var(--term);font-family:var(--mono);color:#ffffffe6;white-space:nowrap;scrollbar-width:none;border-radius:8px;flex:1;padding:9px 12px;font-size:.82rem;overflow-x:auto}.device-step-cmd::-webkit-scrollbar{display:none}.device-step-prompt{color:#5b9a4a;-webkit-user-select:none;user-select:none;margin-right:6px}.device-steps-note{color:var(--tx3);margin-top:14px;font-size:.8rem;line-height:1.55}.device-steps-note code{font-family:var(--mono);color:var(--tx2);font-size:.92em}.device-copy-btn{border:1px solid var(--border);background:var(--bg-up);color:var(--tx2);cursor:pointer;border-radius:8px;flex-shrink:0;padding:8px 12px;font-size:.76rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.device-copy-btn:hover{background:var(--btn);color:var(--btnx);border-color:var(--btn)}.delete-list{text-align:left;gap:8px;margin:4px 0 8px;padding:0;list-style:none;display:grid}.delete-list li{padding-left:24px;font-size:.88rem;line-height:1.4;position:relative}.delete-keep{color:var(--tx2)}.delete-keep:before{content:"✓";color:var(--green);font-weight:700;position:absolute;left:0}.delete-gone{color:var(--tx1)}.delete-gone:before{content:"✕";color:#c44;font-weight:700;position:absolute;left:0}.delete-btn{color:#fff;width:100%;font-size:.9rem;font-weight:600;font-family:var(--font);cursor:pointer;background:#c0392b;border:none;border-radius:10px;padding:13px 20px;transition:opacity .16s}.delete-btn:hover{opacity:.88}.delete-btn:disabled{opacity:.5;cursor:wait}.delete-cancel{color:var(--tx3);margin-top:14px;font-size:.85rem;display:block}.delete-cancel:hover{color:var(--tx1)}.delete-local{border-top:1px solid var(--border-s);text-align:left;margin-top:28px;padding-top:22px}.delete-local-label{color:var(--tx3);margin-bottom:12px;font-size:.82rem;line-height:1.55}.plant-btn{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:14px 20px;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .16s,transform .12s}.plant-btn:hover{background:#3d6b4c;transform:translateY(-1px)}.plant-btn:disabled{cursor:default;transform:none}.plant-btn-locked{color:#8c8780;background:#ece9e4}.plant-btn-locked:hover{background:#ece9e4}.plant-note{color:#9b9a97;text-align:center;margin-top:10px;font-size:.82rem}.plant-error{color:#c44;text-align:center;margin-top:8px;font-size:.84rem}.ghost-btn{color:#37352f;cursor:pointer;background:#fff;border:1px solid #e5e5e3;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:background .14s,border-color .14s}.ghost-btn:hover{background:#f7f6f4;border-color:#d8d6d2}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14120f73;justify-content:center;align-items:center;padding:24px;animation:.16s fadein;display:flex;position:fixed;inset:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}.modal-card{text-align:center;color:#37352f;background:#fff;border-radius:16px;width:100%;max-width:420px;max-height:88vh;padding:28px 26px;font-family:ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif;animation:.18s cubic-bezier(.175,.885,.32,1.4) pop;overflow-y:auto;box-shadow:0 20px 60px #11111138}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.modal-title{margin:0 0 10px;font-size:19px;font-weight:600}.modal-body{color:#6b6760;margin:0 0 20px;font-size:14px;line-height:1.6}.modal-dismiss{color:#9b9a97;cursor:pointer;background:0 0;border:0;width:100%;margin-top:12px;padding:10px;font-family:inherit;font-size:13px;display:block}.modal-dismiss:hover{color:#37352f}.forest-refresh{color:#9b9a97;cursor:pointer;background:#fff;border:1px solid #e5e5e3;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;line-height:1;transition:color .14s,border-color .14s;display:flex}.forest-refresh:hover{color:#37352f;border-color:#d8d6d2}.forest-refresh.spinning{color:#4a7c59;animation:.7s linear infinite refresh-spin}@keyframes refresh-spin{to{transform:rotate(360deg)}}.forest-pan{cursor:pointer;color:#ffffffbf;background:#ffffff14;border:0;border-radius:8px;justify-content:center;align-items:center;width:28px;height:44px;font-size:20px;line-height:1;transition:background .14s,opacity .14s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.forest-pan:hover{background:#ffffff2e}.forest-pan:disabled{opacity:.25;cursor:default}.forest-pan-left{left:4px}.forest-pan-right{right:4px}.forest-pan-hint{color:#ffffff73;pointer-events:none;font-family:IBM Plex Mono,monospace;font-size:10px;position:absolute;bottom:6px;right:10px}.callback-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:80vh;animation:.42s both up;display:flex}.callback-icon{margin-bottom:16px;font-size:3.6rem}.callback-title{letter-spacing:-.03em;color:var(--tx1);margin-bottom:8px;font-size:1.6rem;font-weight:500}.callback-sub{color:var(--tx2);max-width:360px;font-size:.94rem;line-height:1.65}.nav-user{color:var(--tx3);font-size:.82rem;font-family:var(--mono)}.nav-signout{color:var(--tx3);border:1px solid var(--border);cursor:pointer;font-size:.78rem;font-family:var(--font);background:0 0;border-radius:6px;padding:4px 10px;transition:color .16s,border-color .16s}.nav-signout:hover{color:var(--tx1);border-color:var(--tx3)}.dash-signin{justify-content:center;align-items:center;min-height:75vh;animation:.42s both up;display:flex}.dash-signin-card{text-align:center;width:100%;max-width:420px}.dash-signin-title{letter-spacing:-.04em;color:var(--tx1);margin-bottom:12px;font-size:clamp(2rem,5vw,2.8rem);font-weight:500}.dash-signin-sub{color:var(--tx2);text-wrap:pretty;margin-bottom:32px;font-size:.96rem;line-height:1.65}.dash-github-btn{background:var(--btn);color:var(--btnx);font-size:.94rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:10px;padding:14px 32px;transition:opacity .16s,transform .12s;display:inline-flex}.dash-github-btn:hover{opacity:.85;transform:translateY(-1px)}.dash-signin-note{color:var(--tx3);margin-top:16px;font-size:.76rem}.dash-onboard{max-width:560px;margin:0 auto;padding-top:48px;padding-bottom:80px;animation:.42s both up}.dash-onboard-title{text-align:center;letter-spacing:-.04em;color:var(--tx1);margin-bottom:10px;font-size:clamp(2rem,5vw,2.8rem);font-weight:500}.dash-onboard-sub{text-align:center;color:var(--tx2);margin-bottom:40px;font-size:.96rem;line-height:1.65}.dash-steps{flex-direction:column;gap:0;margin-bottom:40px;display:flex}.dash-step{border-bottom:1px solid var(--border-s);gap:16px;padding:20px 0;display:flex}.dash-step:last-child{border-bottom:none}.dash-step-n{background:var(--green-l);width:28px;height:28px;color:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.78rem;font-weight:700;display:flex}.dash-step-body h3{color:var(--tx1);margin-bottom:6px;font-size:.92rem;font-weight:600}.dash-step-code{background:var(--term);color:#fffc;font-family:var(--mono);border-radius:8px;margin-bottom:6px;padding:10px 14px;font-size:.82rem;display:block}.dash-step-hint{color:var(--tx3);font-size:.82rem;line-height:1.55}.dash-refresh-btn{background:var(--green);color:#fff;font-size:.9rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;margin:0 auto;padding:12px 28px;transition:background .16s,transform .12s;display:block}.dash-refresh-btn:hover{background:#3d6b4c;transform:translateY(-1px)}.dash-link-form{text-align:center;max-width:400px;margin:0 auto}.dash-link-label{color:var(--tx2);margin-bottom:10px;font-size:.82rem;font-weight:600;display:block}.dash-link-row{gap:10px;display:flex}.dash-link-input{font-family:var(--mono);text-align:center;letter-spacing:.25em;background:var(--bg-up);border:1px solid var(--border);color:var(--tx1);border-radius:10px;outline:none;flex:1;padding:13px 16px;font-size:1.2rem;transition:border-color .16s}.dash-link-input:focus{border-color:var(--green)}.dash-link-input::placeholder{color:var(--tx3);letter-spacing:.15em;font-size:1rem}.dash-link-btn{background:var(--btn);color:var(--btnx);font-size:.9rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;padding:13px 24px;transition:opacity .16s}.dash-link-btn:hover{opacity:.85}.dash-link-btn:disabled{opacity:.5;cursor:wait}.dash-link-error{color:#c44;margin-top:10px;font-size:.82rem}.dash-link-success{text-align:center;background:var(--green-l);border:1px solid var(--green);border-radius:12px;margin-bottom:24px;padding:24px}.dash-badges{margin-bottom:56px;animation:.42s .26s both up}.dash-badges-grid{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.dash-badge{text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:20px 16px;transition:transform .16s;display:flex}.dash-badge:hover{transform:translateY(-2px)}.dash-badge-unlocked{background:var(--bg-up);border:1px solid var(--green);box-shadow:0 2px 12px #4a7c5914}.dash-badge-locked{background:var(--bg-up);border:1px solid var(--border-s);opacity:.5}.dash-badge-icon{margin-bottom:4px;font-size:1.8rem}.dash-badge-label{color:var(--tx1);font-size:.86rem;font-weight:600}.dash-badge-desc{color:var(--tx3);font-size:.72rem;line-height:1.4}.dash-badge-threshold{font-family:var(--mono);color:var(--tx3);margin-top:4px;font-size:.68rem}.dash-leaderboard{margin-bottom:80px;animation:.42s .3s both up}.dash-lb-rank{font-family:var(--mono);color:var(--tx3);width:32px;font-size:.78rem}.dash-lb-user{align-items:center;gap:8px;font-weight:500;display:flex}.dash-lb-avatar{border:1px solid var(--border-s);border-radius:50%;width:24px;height:24px}.dash-link-success p{color:var(--green);margin-bottom:14px;font-size:.94rem;font-weight:600}.dash-hero{text-align:center;margin-bottom:56px;padding-top:24px;animation:.42s both up}.dash-title{letter-spacing:-.05em;color:var(--tx1);margin-bottom:12px;font-size:clamp(2.6rem,6vw,4rem);font-weight:500}.dash-sub{color:var(--tx2);max-width:440px;margin:0 auto;font-size:1.08rem;line-height:1.65}.dash-loading,.dash-error{text-align:center;color:var(--tx2);padding:120px 0;font-size:.94rem;animation:.42s both up}.dash-error{color:#c44}.dash-forest-frame{background:#0d0e10;border:1px solid #ffffff12;border-radius:12px;margin-bottom:32px;padding:12px 16px 8px;animation:.42s 80ms both up;overflow:hidden;box-shadow:0 0 0 1px #0006,0 16px 48px #0006}.user-forest-wrap{width:100%;overflow:hidden}.dash-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:48px;animation:.42s .1s both up;display:grid}.dash-stat-card{border:1px solid var(--border-s);background:var(--bg-up);text-align:center;border-radius:14px;padding:36px 24px;box-shadow:0 2px 12px #00000008}.dash-stat-highlight{border-color:var(--green);background:var(--green-l);box-shadow:0 4px 20px #4a7c591a}.dash-stat-value{letter-spacing:-.04em;color:var(--tx1);font-size:3.2rem;font-weight:500;line-height:1;display:block}.dash-stat-highlight .dash-stat-value{color:var(--green)}.dash-stat-label{color:var(--tx3);letter-spacing:.01em;margin-top:10px;font-size:.82rem;display:block}.dash-action{text-align:center;margin-bottom:56px;animation:.42s .16s both up}.dash-plant-btn{background:var(--green);color:#fff;font-size:1.02rem;font-weight:600;font-family:var(--font);cursor:pointer;border:none;border-radius:12px;align-items:center;padding:16px 40px;transition:background .16s,transform .12s,box-shadow .16s;display:inline-flex;box-shadow:0 4px 16px #4a7c5933}.dash-plant-btn:hover{background:#3d6b4c;transform:translateY(-2px);box-shadow:0 6px 24px #4a7c594d}.dash-plant-btn:disabled{opacity:.5;cursor:wait;box-shadow:none;transform:none}.dash-qty-row{align-items:center;gap:10px;margin-bottom:16px;display:inline-flex}.dash-qty-label{color:var(--ink-soft,#5b6b5e);font-size:.92rem;font-weight:500;font-family:var(--font)}.dash-qty-select{appearance:none;color:var(--ink,#2c3a30);font-size:1rem;font-weight:600;font-family:var(--font);cursor:pointer;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%234a7c59' d='M1 1l5 5 5-5'/></svg>") right 12px center no-repeat;border:1px solid #4a7c5959;border-radius:10px;padding:8px 32px 8px 14px;transition:border-color .16s,box-shadow .16s}.dash-qty-select:hover{border-color:var(--green)}.dash-qty-select:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #4a7c5926}.dash-action-note{color:var(--tx3);margin-top:12px;font-size:.78rem}.dash-history{margin-bottom:80px;animation:.42s .22s both up}.dash-table-wrap{border:1px solid var(--border-s);background:var(--bg-up);border-radius:10px;overflow-x:auto}.dash-table{border-collapse:collapse;width:100%;font-size:.84rem}.dash-table th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3);border-bottom:1px solid var(--border-s);padding:12px 16px;font-size:.72rem;font-weight:600}.dash-table td{color:var(--tx2);border-bottom:1px solid var(--border-s);padding:12px 16px}.dash-table tbody tr:last-child td{border-bottom:none}.dash-status{font-family:var(--mono);border-radius:999px;padding:2px 8px;font-size:.74rem}.dash-status-completed{background:var(--green-l);color:var(--green)}.dash-status-pending{color:#92710a;background:#fef3cd}.dash-status-failed{color:#b91c1c;background:#fde8e8}@keyframes up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (max-width:780px){.shell-inner{width:min(100% - 40px,960px)}.topbar{margin-bottom:52px;padding-top:28px}.hero{margin-bottom:48px}.biomes-grid{grid-template-columns:repeat(3,1fr)}.biome-card:nth-child(n+4){display:none}.species-grid{grid-template-columns:repeat(3,1fr)}.vsc-tab-actions{display:none}.dash-stats{grid-template-columns:1fr}.dash-badges-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.hero h1{font-size:2.4rem}.biomes-grid{grid-template-columns:1fr 1fr}.biome-card:nth-child(n+4){display:flex}.biome-card:nth-child(5){display:none}.species-grid{grid-template-columns:repeat(2,1fr)}}
