*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#fcfaf7;-webkit-font-smoothing:antialiased;background:#0a0f0b;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}#root{min-height:100dvh}:root{--bone:#fcfaf7;--sage:#87a96b;--sage-dim:#87a96b66;--forest:#2d5a27;--forest-deep:#1a3a18;--bamboo-brown:tan;--leaf-green:#4b6f44;--new-growth:#98b06f;--dirt:#5c4033;--dirt-deep:#3e2723;--danger:#c75b5b;--gold:#d4a24e;--glass-bg:#0f1a128c;--glass-border:#ffffff14;--glass-blur:16px;--text:#fcfaf7;--text-dim:#fcfaf780;--text-muted:#fcfaf759;--tile-size:64px}body:before{content:"";z-index:0;background:radial-gradient(120% 40% at 50% 90%,#0f1a12f2,#0000 70%),radial-gradient(80% 35% at 25% 55%,#2d5a2740,#0000),radial-gradient(60% 30% at 70%,#2d5a2733,#0000),radial-gradient(90% 25% at 50% 45%,#1e3c1e4d,#0000),linear-gradient(#0a0f0b 0%,#0f1a12 15%,#132618 30%,#1a3020 42%,#162a1c 55%,#0f1a12 75%,#0a0f0b 100%);position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(150% 20% at 30% 60%,#87a96b0a,#0000),radial-gradient(100% 15% at 75% 55%,#87a96b08,#0000);animation:20s ease-in-out infinite alternate fog-drift;position:fixed;inset:0}@keyframes fog-drift{0%{opacity:.6;transform:translate(-20px)}to{opacity:1;transform:translate(20px)}}.app{z-index:1;max-width:1200px;min-height:100dvh;margin:0 auto;position:relative}.demo-banner{background:#87a96b14;border-bottom:1px solid #87a96b33;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:.8125rem;font-weight:600;display:flex}.demo-banner-text{color:var(--sage);letter-spacing:.5px}.demo-banner-exit{color:var(--text-dim);text-underline-offset:2px;font-weight:500;text-decoration:underline;transition:color .15s}.demo-banner-exit:hover{color:var(--text)}.period-picker{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:80dvh;display:flex}.app-logo{letter-spacing:6px;color:var(--sage);text-shadow:0 2px 12px #87a96b4d;font-size:2.5rem;font-weight:900}.picker-prompt{color:var(--text-dim);font-size:1.25rem;font-weight:600}.period-grid{flex-wrap:wrap;justify-content:center;gap:12px;max-width:400px;display:flex}.period-btn{border:2px solid var(--glass-border);background:var(--glass-bg);width:72px;height:72px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:16px;font-family:inherit;font-size:1.75rem;font-weight:900;transition:border-color .15s,transform .15s,background .15s}.period-btn:hover{border-color:var(--sage);background:#87a96b1a;transform:scale(1.08)}.period-btn:active{transform:scale(.95)}.code-entry{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:80dvh;display:flex}.code-entry-period{color:var(--sage);letter-spacing:2px;text-transform:uppercase;font-size:.875rem;font-weight:700}.code-form{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:300px;display:flex}.code-label{color:var(--text-dim);font-size:.875rem;font-weight:600}.code-input{background:var(--glass-bg);width:100%;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:2px solid var(--glass-border);color:var(--text);text-align:center;letter-spacing:2px;border-radius:12px;outline:none;padding:14px 16px;font-family:inherit;font-size:1.125rem;font-weight:600;transition:border-color .2s}.code-input:focus{border-color:var(--sage)}.code-input::placeholder{color:var(--text-muted);letter-spacing:1px}.code-error{color:var(--danger);font-size:.8125rem;font-weight:600}.code-submit{background:var(--forest);width:100%;color:var(--text);cursor:pointer;border:none;border-radius:12px;padding:14px;font-family:inherit;font-size:1rem;font-weight:700;transition:background .15s,transform .1s}.code-submit:hover{background:var(--sage)}.code-submit:active{transform:scale(.97)}.code-submit:disabled{opacity:.4;cursor:not-allowed}.code-change-period{color:var(--text-muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;font-family:inherit;font-size:.8125rem;text-decoration:underline}.code-change-period:hover{color:var(--text-dim)}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:16px;padding:20px;box-shadow:0 8px 32px #0000004d,inset 0 1px #ffffff0d}.progress-header{flex-shrink:0;align-items:center;gap:16px;padding:16px 28px;display:flex}.progress-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);white-space:nowrap;font-size:11px;font-weight:700}.progress-track{background:#ffffff0f;border-radius:4px;flex:1;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--forest), var(--sage), var(--new-growth));border-radius:4px;height:100%;transition:width .8s cubic-bezier(.22,1,.36,1);position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff40);width:40px;animation:2s ease-in-out infinite shimmer;position:absolute;top:0;bottom:0;right:0}@keyframes shimmer{0%,to{opacity:0}50%{opacity:1}}.progress-pct{color:var(--sage);text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-size:13px;font-weight:800}.forest-app{flex-direction:column;height:100dvh;display:flex}.forest-main{flex:1;justify-content:center;align-items:center;gap:24px;padding:0 24px 24px;display:flex;overflow:hidden}.panel-build{flex-direction:column;flex-shrink:0;gap:8px;width:200px;display:flex}.panel-title{letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);align-items:center;gap:8px;margin-bottom:4px;font-size:11px;font-weight:700;display:flex}.panel-title .icon{font-size:16px}.build-btn{width:100%;color:var(--text);cursor:pointer;text-align:left;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.build-btn:hover{border-color:var(--sage-dim);background:#87a96b1a;transform:translateY(-1px)}.build-btn:active{transform:translateY(0)}.build-btn.selected{border-color:var(--sage);background:#87a96b26;box-shadow:0 0 12px #87a96b26}.build-btn.disabled{opacity:.35;pointer-events:none}.build-btn .build-emoji{font-size:18px;line-height:1}.build-btn .build-info{flex-direction:column;gap:1px;display:flex}.build-btn .build-name{font-size:13px;font-weight:600}.build-btn .build-cost{color:var(--gold);letter-spacing:.5px;font-size:10px;font-weight:700}.build-btn.remove-tool{border-color:#c75b5b33}.build-btn.remove-tool:hover{background:#c75b5b1a;border-color:#c75b5b66}.build-btn.remove-tool.selected{border-color:var(--danger);background:#c75b5b26}.build-divider{background:#ffffff0f;height:1px;margin:4px 0}.grid-container{perspective:900px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.isometric-wrapper{grid-template-columns:repeat(8, var(--tile-size));grid-template-rows:repeat(6, var(--tile-size));transform-style:preserve-3d;gap:2px;display:grid;transform:rotateX(60deg)rotate(-45deg)}.tile{width:var(--tile-size);height:var(--tile-size);cursor:pointer;transform-style:preserve-3d;transition:transform .2s,box-shadow .2s;position:relative}.tile .face-top{background:linear-gradient(135deg,#6a9e4e,#5a8e42);border:1px solid #00000026;border-radius:2px;justify-content:center;align-items:center;font-size:28px;transition:background .3s;display:flex;position:absolute;inset:0}.tile:before{content:"";background:var(--dirt);transform-origin:top;width:100%;height:6px;position:absolute;bottom:-6px;left:0;transform:rotateX(-90deg)}.tile:after{content:"";background:var(--dirt-deep);transform-origin:0;width:6px;height:100%;position:absolute;top:0;right:-6px;transform:rotateY(90deg)}.tile:hover{transform:translateZ(8px)}.tile:hover .face-top{background:linear-gradient(135deg,#7ab85a,#6aa84f)}.tile.planted .face-top{background:linear-gradient(135deg,#5a8e42,#4a7e36)}.tile.water .face-top{background:linear-gradient(135deg,#3a7ca5,#2d6a8f)}.tile.stone .face-top{background:linear-gradient(135deg,#8a8a7a,#6a6a5e)}.tile.path .face-top{background:linear-gradient(135deg,#c4a96a,#b09858)}.tile.lantern .face-top{background:linear-gradient(135deg,#5a7e42,#4a7036)}.tile.flower .face-top{background:linear-gradient(135deg,#5a8e42,#4a7e36)}.tile.preview .face-top{border-color:var(--sage);background:linear-gradient(135deg,#87a96b80,#87a96b4d)}.tile .growth-indicator{color:var(--new-growth);text-shadow:0 1px 3px #00000080;pointer-events:none;opacity:0;font-size:10px;font-weight:800;transition:opacity .3s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.tile:hover .growth-indicator{opacity:1}@keyframes tile-place{0%{transform:translateZ(16px)scale(1.08)}50%{transform:translateZ(4px)scale(1.02)}to{transform:translateZ(0)scale(1)}}.tile.just-placed{animation:.4s tile-place}.panel-stats{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex-direction:column;flex-shrink:0;gap:12px;width:220px;max-height:520px;display:flex;overflow-y:auto}.balance-card{background:#d4a24e0f;border:1px solid #d4a24e26;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.balance-icon{font-size:24px}.balance-info{flex-direction:column;display:flex}.balance-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);font-size:10px;font-weight:700}.balance-amount{color:var(--gold);font-variant-numeric:tabular-nums;font-size:24px;font-weight:900;line-height:1.1}.balance-unit{color:var(--gold);letter-spacing:1px;opacity:.7;font-size:10px;font-weight:700}.stats-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.stat-tile{text-align:center;background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px;padding:8px 10px}.stat-num{color:var(--sage);font-size:18px;font-weight:800;line-height:1.2}.stat-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:9px;font-weight:700}.panda-character{cursor:pointer;background:#87a96b0f;border:1px solid #87a96b1f;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:12px;transition:border-color .2s;display:flex}.panda-character:hover{border-color:var(--sage-dim)}.panda-body{justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.panda-base{font-size:56px;line-height:1}.panda-hat{filter:drop-shadow(0 2px 4px #0006);font-size:24px;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.panda-outfit{filter:drop-shadow(0 2px 4px #0006);font-size:20px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.panda-accessory{filter:drop-shadow(0 2px 4px #0006);font-size:18px;position:absolute;bottom:4px;right:-8px}.panda-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.feed-section{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.feed-title{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:700}.feed-item{background:#ffffff05;border-left:3px solid;border-radius:8px;align-items:flex-start;gap:8px;padding:6px 8px;animation:.4s feed-in;display:flex}.feed-item.positive{border-color:var(--sage)}.feed-item.negative{border-color:var(--danger)}.feed-item.system{border-color:var(--gold)}.feed-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:5px}.feed-item.positive .feed-dot{background:var(--sage)}.feed-item.negative .feed-dot{background:var(--danger)}.feed-item.system .feed-dot{background:var(--gold)}.feed-text{color:var(--text);opacity:.8;font-size:11px;font-weight:500;line-height:1.3}.feed-time{color:var(--text-muted);margin-top:1px;font-size:9px}@keyframes feed-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.wardrobe-btn{width:100%;color:var(--gold);letter-spacing:1px;text-transform:uppercase;cursor:pointer;background:#d4a24e14;border:1px solid #d4a24e33;border-radius:10px;padding:10px;font-family:inherit;font-size:12px;font-weight:700;transition:background .2s,border-color .2s}.wardrobe-btn:hover{border-color:var(--gold);background:#d4a24e26}.wardrobe-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;background:#000000b3;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.wardrobe-modal{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:20px;width:90%;max-width:560px;max-height:80vh;padding:24px;overflow-y:auto;box-shadow:0 16px 64px #00000080}.wardrobe-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.wardrobe-title{color:var(--text);letter-spacing:1px;font-size:18px;font-weight:800}.wardrobe-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:24px;transition:color .15s}.wardrobe-close:hover{color:var(--text)}.wardrobe-tabs{gap:8px;margin-bottom:16px;display:flex}.wardrobe-tab{color:var(--text-dim);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;flex:1;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:all .2s}.wardrobe-tab.active{border-color:var(--sage);color:var(--sage);background:#87a96b26}.wardrobe-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.wardrobe-item{cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;transition:all .2s;display:flex}.wardrobe-item:hover{border-color:var(--sage-dim);background:#87a96b14}.wardrobe-item.equipped{border-color:var(--sage);background:#87a96b1f}.wardrobe-item.owned{border-color:#d4a24e4d}.wardrobe-item-emoji{font-size:32px}.wardrobe-item-name{color:var(--text);text-align:center;font-size:11px;font-weight:700}.wardrobe-item-cost{color:var(--gold);font-size:10px;font-weight:700}.wardrobe-item-status{letter-spacing:.5px;text-transform:uppercase;font-size:9px;font-weight:700}.wardrobe-item-status.equipped-label{color:var(--sage)}.wardrobe-item-status.owned-label{color:var(--text-dim)}.toast{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);color:var(--text);z-index:100;opacity:0;pointer-events:none;border-radius:12px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .4s cubic-bezier(.22,1,.36,1);position:fixed;bottom:32px;left:50%;transform:translate(-50%)translateY(80px);box-shadow:0 8px 32px #0006}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{border-color:#87a96b66}.toast.error{border-color:#c75b5b66}.toast.info{border-color:#d4a24e66}.panda-watermark{color:var(--text-muted);letter-spacing:1px;z-index:1;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex;position:fixed;bottom:16px;right:20px}.loading-state,.error-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner{border:3px solid #87a96b33;border-top-color:var(--sage);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-state p{color:var(--text-dim);font-size:.9375rem}.error-detail{color:var(--danger);font-size:.8125rem}.retry-btn{background:var(--forest);color:var(--text);cursor:pointer;border:none;border-radius:10px;padding:10px 24px;font-family:inherit;font-size:.875rem;font-weight:700}.retry-btn:hover{background:var(--sage)}@media (width<=899px){.forest-main{flex-direction:column;align-items:center;gap:12px;padding:0 16px 16px}.panel-build{flex-direction:row;gap:6px;width:100%;padding-bottom:4px;overflow-x:auto}.panel-build .panel-title{display:none}.build-btn{flex-shrink:0;width:auto;padding:8px 12px}.build-btn .build-info{display:none}.build-btn .build-emoji{font-size:22px}.build-divider{display:none}.panel-stats{flex-flow:wrap;gap:8px;width:100%;max-height:none}.balance-card,.stats-grid{flex:1;min-width:160px}.panda-character{flex:none}.feed-section{width:100%;max-height:100px}}@media (width<=599px){:root{--tile-size:44px}.app-logo{font-size:2rem}.isometric-wrapper{gap:1px}.tile .face-top{font-size:20px}.wardrobe-grid{grid-template-columns:repeat(2,1fr)}.panda-accessory{display:none}}
