:root{--bg:#070b10;--panel:#121b22eb;--panel2:#1a262eeb;--line:#b4dcc824;--ink:#dfeee4;--dim:#8ba59a;--moss:#86e6a4;--warm:#ffd7a1;--shard:#9fd0ff;--spore:#ffcf6b;--gauge-room:#86e6a4;--gauge-filling:#f0b429;--gauge-full:#e8663d;--ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--ui);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;font-size:13px;overflow:hidden}#app{flex-direction:column;max-width:520px;margin:0 auto;display:flex;position:fixed;inset:0;overflow:hidden}#top{z-index:5;background:linear-gradient(#070b10e6,#070b1000);flex:0 0 46px;align-items:center;gap:10px;height:46px;padding:0 12px;display:flex;position:relative}#cr{min-width:0;color:var(--moss);letter-spacing:.2px;white-space:nowrap;flex:1;align-items:center;gap:6px;font-size:17px;font-weight:600;display:flex;overflow:hidden}#cr span{text-overflow:ellipsis;overflow:hidden}.cur{color:var(--dim);white-space:nowrap;align-items:center;gap:4px;font-size:11.5px;display:flex}.cur b{font-weight:600}.cur.shards b{color:var(--shard)}.cur.spores b{color:var(--spore)}.cur.biomass b{color:var(--ink)}#top .icon{flex:none;display:block}#stage{flex:1;margin-top:-46px;position:relative;overflow:hidden}#gl{position:absolute;inset:0}#gl canvas{touch-action:none;display:block}#hud{pointer-events:none;flex-direction:column;padding-top:46px;display:flex;position:absolute;inset:0}#speech{text-align:left;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);pointer-events:auto;max-width:94%;font-family:var(--ui);color:var(--ink);opacity:0;border-radius:12px;flex-direction:column;gap:8px;margin:8px 12px 0;padding:9px 11px;transition:opacity .4s;display:flex}#speech.on{opacity:1}.speech-msg{align-items:flex-start;gap:10px;display:flex}.speech-msg.muted{opacity:.5}.speech-msg.muted .portrait{width:26px;height:26px}.portrait{flex:none;width:38px;height:38px}.speech-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.speech-who{color:var(--moss);letter-spacing:.9px;text-transform:uppercase;font-size:10px}.speech-text{font-size:12px;line-height:1.4}.speech-foot{justify-content:flex-end;align-items:center;gap:10px;margin-top:7px;display:flex}.speech-pos{color:var(--dim);letter-spacing:.5px;font-size:10.5px}.speech-next{color:var(--moss);font-family:var(--ui);letter-spacing:.4px;background:#86e6a41a;border:1px solid #86e6a480;border-radius:999px;min-height:32px;padding:7px 15px;font-size:11.5px}.prompt{border:1px dashed var(--moss);color:var(--moss);letter-spacing:.6px;background:var(--panel);border-radius:999px;align-self:flex-start;margin:8px 12px 0;padding:7px 12px;font-size:11.5px}#dock.hidden{visibility:hidden;pointer-events:none}@media (prefers-reduced-motion:no-preference){.portrait-iris{animation:5.5s ease-in-out infinite blink}.portrait-leaf{transform-origin:22px 22px;animation:4s ease-in-out infinite sway}}@keyframes blink{0%,92%,to{opacity:1}95%{opacity:.15}}@keyframes sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}#camera{pointer-events:auto;background:var(--panel);border:1px solid var(--line);width:44px;height:44px;color:var(--dim);font-size:16px;font-family:var(--ui);border-radius:22px;position:absolute;top:56px;right:12px}#meters{margin-top:auto;padding:0 12px}#meters .gauge{padding-left:0;padding-right:0}.bar{background:#ffffff12;border-radius:3px;height:6px;overflow:hidden}.bar i{background:var(--moss);border-radius:3px;width:0;height:100%;transition:width .25s linear;display:block}.bar.room i{background:var(--gauge-room)}.bar.filling i{background:var(--gauge-filling)}.bar.full i{background:var(--gauge-full);background-image:repeating-linear-gradient(115deg,#00000038 0 3px,#0000 3px 7px)}.lbl{color:var(--dim);letter-spacing:.6px;text-transform:uppercase;justify-content:space-between;margin:7px 0 4px;font-size:10.5px;display:flex}#chip{pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;min-height:48px;margin:10px 12px 8px;padding:11px 13px;display:flex}#chip .tag{color:var(--dim);letter-spacing:1.2px;text-transform:uppercase;font-size:9.5px}#chip .portrait{width:34px;height:34px}#chip .portrait-iris,#chip .portrait-leaf{animation:none}#chip .txt{margin-top:2px;font-size:13px}#chip .go{color:var(--dim);margin-left:auto;font-size:16px}#dock{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:5;background:#070b10d9;flex:0 0 66px;gap:6px;padding:6px 8px 10px;display:flex}#dock button{color:var(--dim);font-family:var(--ui);letter-spacing:.4px;background:0 0;border:0;border-radius:12px;flex:1;height:50px;font-size:10.5px}#dock button.on{color:var(--moss);background:#86e6a41a}#sheet{border-top:1px solid var(--line);z-index:20;background:#0d151b;border-radius:18px 18px 0 0;flex-direction:column;display:none;position:absolute;inset:32% 0 0;box-shadow:0 -20px 60px #00000080}#sheet.open{display:flex}#sheet header{border-bottom:1px solid var(--line);flex:0 0 48px;align-items:center;gap:10px;padding:0 14px;display:flex}#sheet header h2{letter-spacing:.8px;font-size:13px;font-weight:600}#sheet header .x{width:44px;height:44px;color:var(--dim);font-family:var(--ui);background:0 0;border:0;margin-left:auto;font-size:18px}#sheet .body{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:16px;overflow-y:auto}.scrim{z-index:22;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#05080cb8;justify-content:center;align-items:center;padding:20px 16px;display:flex;position:absolute;inset:0}#modal{border:1px solid var(--line);background:#0d151b;border-radius:18px;flex-direction:column;width:100%;max-width:340px;max-height:100%;display:flex;overflow:hidden;box-shadow:0 24px 70px #0009}#modal header{border-bottom:1px solid var(--line);flex:0 0 48px;align-items:center;gap:6px;padding:0 6px 0 14px;display:flex}#modal header h2{letter-spacing:.8px;font-size:13px;font-weight:600}#modal header .back{width:32px;height:44px;color:var(--dim);font-family:var(--ui);background:0 0;border:0;margin-left:-8px;font-size:20px}#modal header .x{width:44px;height:44px;color:var(--dim);font-family:var(--ui);background:0 0;border:0;margin-left:auto;font-size:18px}#modal .body{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.art{display:block}.gauge{padding:12px 12px 0}.gauge .lbl{margin-top:0}.slotgrid{grid-template-columns:1fr 1fr;gap:8px;padding:12px;display:grid}.slotcard{background:var(--panel);border:1px solid var(--line);color:var(--ink);font-family:var(--ui);border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-height:112px;padding:12px 8px 11px;display:flex}.slotcard.can{background:#86e6a414;border-color:#86e6a473}.slotcard .n{text-align:center;margin-top:4px;font-size:11.5px}.slotcard .d{color:var(--dim);text-align:center;font-size:10.5px}.slotcard .bar{width:100%;margin-top:7px}.slotcard:disabled .n,.slotcard:disabled .d{opacity:.5}.ladder .item{border-bottom:1px solid #ffffff0d;align-items:center;gap:10px;padding:9px 12px;display:flex}.ladder .item .mid{flex:1;min-width:0}.ladder .item .n{font-size:12.5px}.ladder .item .d{color:var(--dim);margin-top:2px;font-size:10.5px}.ladder .item button{color:var(--dim);font-family:var(--ui);background:#ffffff0f;border:1px solid #0000;border-radius:11px;min-width:76px;min-height:44px;padding:10px 12px;font-size:11.5px}.ladder .item button.can{color:var(--moss);background:#86e6a41a;border-color:#86e6a473}.ladder .item.owned{background:#86e6a40f}.ladder .item.owned button{color:var(--moss)}.ladder .item.far .art,.ladder .item.far .n{opacity:.55}.tabs{gap:6px;padding:10px 12px 4px;display:flex}.tabs button{height:36px;color:var(--dim);font-family:var(--ui);letter-spacing:.5px;background:#ffffff0d;border:0;border-radius:10px;flex:1;font-size:11.5px}.tabs button.on{color:var(--moss);background:#86e6a41f}.multi{color:var(--dim);letter-spacing:.8px;align-items:center;padding:6px 12px 2px;font-size:10.5px;display:flex}.multi button{color:var(--dim);font-family:var(--ui);background:#ffffff0d;border:0;border-radius:8px;margin-left:6px;padding:7px 11px;font-size:11px}.multi button.on{color:var(--moss);background:#86e6a41f}.row{border-bottom:1px solid #ffffff0d;align-items:center;gap:10px;padding:11px 12px;display:flex}.row .n{font-size:13px}.row .d{color:var(--dim);margin-top:3px;font-size:11px;line-height:1.35}.row .mid{flex:1;min-width:0}.row button{color:var(--dim);font-family:var(--ui);background:#ffffff0f;border:1px solid #0000;border-radius:11px;min-width:84px;min-height:44px;padding:10px 12px;font-size:11.5px}.row button.can{color:var(--moss);background:#86e6a41a;border-color:#86e6a473}.row .tier{width:22px;color:var(--dim);font-size:10.5px}.row.unlock{background:var(--panel);border-bottom:0;border-left:2px solid #86e6a48c;border-radius:12px;margin:0 12px 6px}.row.goal .n,.row.goal .d{opacity:.55}.more{width:100%;color:var(--dim);font-family:var(--ui);letter-spacing:1.2px;text-transform:uppercase;text-align:left;background:0 0;border:0;min-height:44px;padding:0 12px;font-size:10px;display:block}.acts{flex-direction:column;gap:8px;padding:4px 12px 8px;display:flex}.sec{color:var(--dim);letter-spacing:1.2px;text-transform:uppercase;padding:12px 12px 6px;font-size:10px}.note{color:var(--dim);padding:8px 12px 12px;font-size:11.5px;line-height:1.5}.ovl{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:40;background:#05080ced;flex-direction:column;justify-content:center;gap:12px;padding:26px 20px;display:none;position:absolute;inset:0;overflow-y:auto}.ovl.open{display:flex}.ovl.clear{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:linear-gradient(#05080c00 58%,#05080cb8);justify-content:flex-end;padding-bottom:40px}.ovl.clear .btn{pointer-events:auto;align-self:center;width:auto;padding:11px 26px}.ovl.clear p{transition:opacity .45s;animation:.45s beat}@keyframes beat{0%{opacity:0}to{opacity:1}}#dock.hidden{visibility:hidden}.ovl h1{letter-spacing:1.2px;color:var(--moss);font-size:16px;font-weight:600}.ovl p{color:var(--ink);font-size:12.5px;line-height:1.55}.ovl .kv{border-bottom:1px solid #ffffff12;justify-content:space-between;padding:8px 0;font-size:12.5px;display:flex}.ovl .kv span:last-child{color:var(--moss)}.btn{color:var(--ink);font-family:var(--ui);background:#ffffff0f;border:1px solid #0000;border-radius:13px;width:100%;padding:15px;font-size:13px}.btn.pri{color:var(--moss);background:#86e6a41a;border-color:#86e6a480}.btn.ghost{color:var(--dim)}.btn.warn{color:var(--warm);background:#ffd7a114;border-color:#ffd7a173}#destinations{flex-direction:column;flex:none;gap:6px;max-height:32vh;display:flex;overflow-y:auto}#destinations .btn{text-align:left;padding:11px 14px;font-size:12.5px}#destinations .btn.on{color:var(--moss);background:#86e6a41a;border-color:#86e6a480}#slide{background:#86e6a412;border:1px solid #86e6a480;border-radius:14px;height:56px;position:relative;overflow:hidden}#slide .fill{background:#86e6a42e;width:0;position:absolute;inset:0}#slide .txt{color:var(--moss);letter-spacing:1px;justify-content:center;align-items:center;font-size:12.5px;display:flex;position:absolute;inset:0}#slide input{opacity:0;width:100%;height:100%;margin:0;position:absolute;inset:0}#const{grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 12px 12px;display:grid}.world{text-align:center;color:var(--dim);font-size:10px}.world canvas{border-radius:50%;width:100%;height:auto;display:block}.world.full canvas{box-shadow:0 0 0 2px var(--spore)}#photo img{border-radius:14px;width:100%}#dev{border-top:1px solid var(--line);z-index:30;background:#0d151b;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:none;position:absolute;bottom:0;left:0;right:0}#dev.open{display:flex}#dev span{color:var(--warm);letter-spacing:1.4px;font-size:9.5px}#dev button{color:var(--dim);font-family:var(--ui);background:#ffffff0f;border:0;border-radius:9px;padding:8px 10px;font-size:10.5px}#dev button.on{color:var(--warm);background:#ffd7a124}.toast{background:var(--panel2);border:1px solid var(--line);z-index:35;opacity:0;pointer-events:none;border-radius:12px;padding:10px 14px;font-size:12px;transition:opacity .3s;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}#boot{z-index:80;background:var(--bg);opacity:1;flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:40px 24px;transition:opacity .4s;display:flex;position:fixed;inset:0}#boot.out{opacity:0;pointer-events:none}#boot .title{text-align:center}#boot h1{letter-spacing:2.4px;color:var(--moss);font-size:23px;font-weight:600}#boot .title p{letter-spacing:2.2px;text-transform:uppercase;color:var(--dim);margin-top:7px;font-size:11px}#boot .bar{background:#ffffff14;border-radius:2px;width:min(210px,62%);height:3px;overflow:hidden}#boot .bar i{background:var(--moss);border-radius:2px;height:100%;transition:width .18s linear;display:block}.lockup{color:var(--dim);flex-direction:column;align-items:center;gap:12px;display:flex}.lockup span{letter-spacing:1.6px;text-transform:uppercase;opacity:.75;font-size:9.5px}.lockup .mark{width:auto;height:28px}.lockup .wordmark{width:auto;height:10px}#boot .by{position:absolute;bottom:46px}#boot .by .mark{height:38px}#boot .by .wordmark{height:13px}.about{flex-direction:column;align-items:center;gap:14px;padding:6px 12px 18px;display:flex}.about .stamp{width:100%;max-width:260px}.about .stamp div{color:var(--dim);border-bottom:1px solid #ffffff0f;justify-content:space-between;padding:7px 0;font-size:11.5px;display:flex}.about .stamp div b{color:var(--ink);font-weight:600}#fatal{text-align:center;color:var(--dim);z-index:60;justify-content:center;align-items:center;padding:30px;font-size:13px;line-height:1.6;display:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
