:root{--color-bg: #eaf0df;--color-surface: #f4f1e6;--color-surface-alt: #e3ecd0;--color-accent: #cd8a6e;--color-text: #4f4a3c;--color-text-muted: #9a937f;--color-money: #c79a1e;--color-plot-grass: #b3cd88;--color-plot-grass-buyable: #c4dd97;--color-plot-border-buyable: #9a8a6a;--color-plot-fallow: #b89a72;--color-plot-growing: #ab8c64;--color-plot-ready: #c2a878;--color-ready-glow: #e8c27a;--color-plot-border: #d6cfbb;--color-plot-research: #7a9cc4;--color-sheet-bg: #f6f3ea;--color-sheet-overlay: rgba(60, 50, 30, .25);--sheet-max-height: 60vh;--border-radius-tile: 4px;--border-radius-sheet: 16px;--block-gap-size: 5px;--color-block-gap: #ddd3bb;--board-cols: 9;--board-rows: 6;--font-sans: system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;touch-action:manipulation;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text)}@media(orientation:portrait){:root{--board-cols: 6;--board-rows: 9}}#app{display:flex;flex-direction:column;height:100%;width:100%;max-width:480px;margin:0 auto;position:relative}@media(orientation:landscape){#app{max-width:100%}}#title-bar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.35rem .75rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-plot-border);gap:.25rem .5rem;min-width:0}#title-name{color:var(--color-accent);font-size:1rem;font-weight:700;letter-spacing:.02em;flex:0 0 auto;white-space:nowrap}#title-right{display:flex;align-items:center;gap:.4rem;min-width:0;flex:1 1 auto;justify-content:flex-end;overflow:hidden}#rank{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}#money-display{color:var(--color-money);font-family:var(--font-mono);font-size:1.1rem;font-weight:600;white-space:nowrap;flex:0 0 auto}.frontier-display{flex:1 0 100%;font-size:.7rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1em;opacity:.8}.ascension-wall{flex:1 0 100%;font-size:.7rem;color:var(--color-accent);background:none;border:none;padding:0;margin:0;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9;text-decoration:underline dotted}.ascension-wall:hover,.ascension-wall:focus-visible{opacity:1;outline:none;text-decoration:underline}#research-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:.2rem .75rem;background:var(--color-surface);border-bottom:1px solid var(--color-plot-border);min-height:2rem;gap:.5rem;transition:opacity .15s ease}#research-bar.research-bar--idle{opacity:.45}#board-container{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-bg);container-type:size}#sheet-container{position:fixed;inset:0;background:var(--color-sheet-overlay);display:flex;flex-direction:column;justify-content:flex-end;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s ease}#sheet-container:not([aria-hidden=true]){opacity:1;pointer-events:auto}#sheet-inner{background:var(--color-sheet-bg);border-radius:var(--border-radius-sheet) var(--border-radius-sheet) 0 0;max-height:var(--sheet-max-height);overflow-y:auto;padding:.75rem 1rem 2rem}#sheet-inner:before{content:"";display:block;width:2.5rem;height:4px;background:var(--color-text-muted);border-radius:2px;margin:0 auto 1rem}.potato-rate-display{font-family:var(--font-mono);font-size:.8rem;color:var(--color-money);white-space:nowrap;flex:0 0 auto}.rp-display{font-family:var(--font-mono);font-size:.8rem;color:#7a9c6e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.tech-tree-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.2rem .4rem;color:var(--color-text-muted);touch-action:manipulation;transition:color .12s ease;flex:0 0 auto}.tech-tree-btn:hover,.tech-tree-btn:active{color:var(--color-accent)}.board-grid{display:grid;gap:2px;background:var(--color-block-gap);position:relative;width:min(100cqw,calc(100cqh * var(--board-cols) / var(--board-rows)));height:auto;max-height:100cqh;aspect-ratio:var(--board-cols) / var(--board-rows)}.tile{width:100%;height:100%;border-radius:var(--border-radius-tile);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:default;user-select:none;-webkit-tap-highlight-color:transparent}.tile-super{width:auto;height:auto}.tile-fallow{background:var(--color-plot-fallow);cursor:pointer}.tile-fallow:hover,.tile-fallow:active{filter:brightness(1.15)}.tile-growing{background:var(--color-plot-growing);cursor:pointer}.tile-ready{background:var(--color-plot-ready);cursor:pointer;animation:pulse-ready 1.2s ease-in-out infinite;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-ready-glow) 60%,transparent)}.tile-buyable{background:var(--color-plot-grass-buyable);border:1px dashed var(--color-plot-border-buyable);cursor:pointer;font-size:.65rem;color:var(--color-text)}.tile-buyable:hover,.tile-buyable:active{filter:brightness(1.2)}.tile-buyable.tile-unaffordable{opacity:.5;cursor:default}.tile-dim{background:var(--color-plot-grass);opacity:.45}.tile-research{background:var(--color-plot-research);display:flex;align-items:center;justify-content:center}.tile-research-marker,.tile-shop-marker{font-size:1.4rem;line-height:1;pointer-events:none;user-select:none}.tile-super .tile-shop-marker{font-size:2.8rem}.tile-selected{box-shadow:inset 0 0 0 3px var(--color-accent),0 0 0 2px var(--color-accent);filter:brightness(1.15);z-index:2}.tile-sprite{width:80%;height:80%;object-fit:contain;pointer-events:none}.tile-super .tile-sprite{width:70%;height:70%}.tile-progress{position:absolute;bottom:2px;left:2px;right:2px;height:3px;background:#0006;border-radius:2px;overflow:hidden}.tile-progress-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width .5s linear}.tile-ready-label{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:.6rem;font-weight:700;color:#1a1a2e;pointer-events:none}.tile-price{font-size:.6rem;font-weight:600;color:var(--color-text);text-align:center;pointer-events:none}.tile-tooltip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000b3;color:#f0ece0;font-size:.7rem;font-weight:600;border-radius:var(--border-radius-tile);z-index:5;pointer-events:none}.merge-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;padding:0}.merge-btn:hover .merge-badge{background:color-mix(in srgb,var(--color-money) 85%,#fff)}.merge-btn:active .merge-badge{transform:scale(.95)}.merge-badge{background:var(--color-money);color:#fff;font-size:.85rem;font-weight:700;padding:.3em .75em;border-radius:999px;box-shadow:0 2px 8px #00000073,0 0 0 1px #ffffff26;pointer-events:none;animation:merge-badge-pulse 1.5s ease-in-out infinite}@keyframes pulse-ready{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}@keyframes board-ascend{0%{transform:scale(1);opacity:1}40%{transform:scale(.3);opacity:.4}60%{transform:scale(.3);opacity:.4}to{transform:scale(1);opacity:1}}.board-ascend{animation:board-ascend .9s ease-in-out}.sheet-title{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:var(--color-text)}.seed-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.seed-row{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .75rem;border-radius:8px;background:var(--color-surface-alt)}.seed-row.seed-affordable{cursor:pointer}.seed-row.seed-affordable:hover,.seed-row.seed-affordable:active{filter:brightness(1.15)}.seed-row.seed-unaffordable{opacity:.5;cursor:default}.seed-row.seed-locked{opacity:.35;display:flex;flex-direction:row;align-items:center;gap:.5rem;cursor:default}.seed-lock-icon{font-size:1.1rem;color:var(--color-text-muted)}.seed-lock-label{font-size:.8rem;color:var(--color-text-muted);font-style:italic}.seed-name{font-weight:600;font-size:.9rem}.seed-stats{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--color-text-muted)}.seed-cost{color:var(--color-accent);font-weight:600}.seed-yield{color:var(--color-money);font-weight:600}.seed-time{color:var(--color-text-muted)}.seed-arrow{opacity:.5}#fx-layer{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.fx-float{position:absolute;transform:translate(-50%,-50%);font-family:var(--font-mono);font-size:.85rem;font-weight:700;white-space:nowrap;pointer-events:none;animation:fx-rise .9s ease-out forwards}.fx-float-gain{color:#3a8c3a;text-shadow:0 1px 4px rgba(255,255,255,.5)}.fx-float-loss{color:var(--color-accent);text-shadow:0 1px 4px rgba(0,0,0,.6)}@keyframes fx-rise{0%{opacity:1;transform:translate(-50%,-50%)}80%{opacity:.9}to{opacity:0;transform:translate(-50%,-180%)}}@keyframes money-flash-gain{0%{color:var(--color-money);transform:scale(1)}30%{color:#3a8c3a;transform:scale(1.18)}to{color:var(--color-money);transform:scale(1)}}@keyframes money-flash-loss{0%{color:var(--color-money);transform:scale(1)}30%{color:var(--color-accent);transform:scale(1.12)}to{color:var(--color-money);transform:scale(1)}}.money-flash-gain{animation:money-flash-gain .45s ease-out forwards}.money-flash-loss{animation:money-flash-loss .35s ease-out forwards}@keyframes tile-pop{0%{transform:scale(1)}40%{transform:scale(.88)}70%{transform:scale(1.08)}to{transform:scale(1)}}.tile-pop{animation:tile-pop .3s ease-out forwards}.fx-bailout-toast{position:fixed;top:20%;left:50%;transform:translate(-50%);background:#2a6e00;color:#fff;font-family:var(--font-mono);font-size:clamp(1rem,4vw,1.5rem);font-weight:700;padding:.75em 1.5em;border-radius:.5em;white-space:nowrap;pointer-events:none;z-index:1000;animation:bailout-toast 2.4s ease forwards}@keyframes bailout-toast{0%{opacity:0;transform:translate(-50%) translateY(-20px)}15%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}.fx-codex-cue{position:fixed;top:35%;left:50%;transform:translate(-50%);background:#3a2d6e;color:#fff;font-family:var(--font-mono);font-size:clamp(.85rem,3.5vw,1.25rem);font-weight:700;padding:.6em 1.25em;border-radius:.5em;white-space:nowrap;pointer-events:none;z-index:1000;animation:codex-cue 2s ease forwards}@keyframes codex-cue{0%{opacity:0;transform:translate(-50%) translateY(-16px)}12%{opacity:1;transform:translate(-50%) translateY(0)}72%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-8px)}}.tile-ready-badge{position:absolute;top:3px;right:3px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 4px 2px color-mix(in srgb,var(--color-ready-glow) 80%,transparent);pointer-events:none;animation:badge-pulse 1s ease-in-out infinite}@keyframes badge-pulse{0%,to{box-shadow:0 0 3px 1px color-mix(in srgb,var(--color-ready-glow) 60%,transparent);transform:scale(1)}50%{box-shadow:0 0 7px 3px var(--color-ready-glow);transform:scale(1.2)}}@keyframes merge-badge-pulse{0%,to{transform:scale(1);box-shadow:0 2px 8px #00000073,0 0 0 1px #ffffff26}50%{transform:scale(1.08);box-shadow:0 3px 14px #c79a1eb3,0 0 0 1px #ffffff40}}.action-bar{flex:0 0 auto;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-surface);border-top:1px solid var(--color-plot-border);z-index:20;max-height:4rem;overflow:hidden;transition:max-height .18s ease,opacity .15s ease}.action-bar[aria-hidden=true]{max-height:0;opacity:0;padding-top:0;padding-bottom:0;pointer-events:none;border-top-color:transparent}.action-commit{flex:1;padding:.55rem .75rem;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-commit:active{transform:scale(.97)}.action-commit:disabled,.action-commit[aria-disabled=true]{background:var(--color-text-muted);cursor:not-allowed;opacity:.6}.action-research{flex:1;padding:.55rem .75rem;background:#7a9c6e;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-research:active{transform:scale(.97)}.action-research[aria-hidden=true]{display:none}.research-confirm{padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.research-confirm-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0}.research-confirm-desc{font-size:.9rem;color:var(--color-text-muted);margin:0}.research-confirm-actions{display:flex;gap:.5rem}.research-confirm-dedicate{flex:1;padding:.55rem .75rem;background:#7a9c6e;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease}.research-confirm-dedicate:active{transform:scale(.97)}.research-confirm-cancel{flex:1;padding:.55rem .75rem;background:var(--color-surface-alt);color:var(--color-text);border:1px solid var(--color-plot-border);border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease}.research-confirm-cancel:active{transform:scale(.97)}.action-clear{flex:0 0 auto;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-surface-alt);border:1px solid var(--color-plot-border);border-radius:50%;font-size:1rem;color:var(--color-text-muted);cursor:pointer;touch-action:manipulation;transition:background .12s ease,color .12s ease}.action-clear:hover,.action-clear:active{background:var(--color-plot-border);color:var(--color-text)}#techtree-screen{position:fixed;inset:0;background:var(--color-sheet-overlay);display:flex;flex-direction:column;justify-content:flex-end;z-index:110;opacity:0;pointer-events:none;transition:opacity .2s ease}#techtree-screen:not([aria-hidden=true]){opacity:1;pointer-events:auto}#techtree-inner{background:var(--color-sheet-bg);border-radius:var(--border-radius-sheet) var(--border-radius-sheet) 0 0;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column}#techtree-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem;position:sticky;top:0;background:var(--color-sheet-bg);border-bottom:1px solid var(--color-plot-border);z-index:1}.techtree-title{font-size:1.1rem;font-weight:700;color:var(--color-text)}.techtree-close{background:none;border:none;font-size:1.1rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem .4rem;touch-action:manipulation;transition:color .12s ease}.techtree-close:hover,.techtree-close:active{color:var(--color-text)}#techtree-content{padding:.75rem 1rem 2rem}.techtree-era{margin-bottom:1rem}.techtree-era-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.5rem}.techtree-nodes{display:flex;flex-direction:column;gap:.5rem;list-style:none}.techtree-node{padding:.65rem .75rem;border-radius:8px;background:var(--color-surface-alt);border:2px solid transparent}.techtree-node--unlocked{border-color:#7a9c6e;opacity:.75}.techtree-node--eligible{border-color:var(--color-accent);cursor:pointer;transition:background .12s ease,transform .08s ease}.techtree-node--eligible:hover,.techtree-node--eligible:active{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface-alt));transform:scale(.99)}.techtree-node--locked-prereq{opacity:.45;cursor:default}.techtree-node--researching{border-color:#b8860b}.techtree-node--joke{font-style:italic}.techtree-node--capstone{border-color:#c97d2f;background:color-mix(in srgb,#c97d2f 6%,var(--color-surface-alt))}.techtree-node--capstone.techtree-node--unlocked{border-color:#c97d2f}.techtree-node-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.techtree-node-name{font-weight:600;font-size:.9rem}.techtree-node-cost{font-size:.8rem;font-family:var(--font-mono);color:#7a9c6e;white-space:nowrap}.techtree-node-cost--spent{text-decoration:line-through;opacity:.5}.techtree-node-effect{font-size:.78rem;color:var(--color-text-muted);margin-top:.2rem}.techtree-node-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.techtree-node-badge--unlocked{color:#7a9c6e}.techtree-node-badge--eligible{color:var(--color-accent)}.techtree-node-badge--researching{color:#b8860b}.techtree-node-badge--capstone{color:#c97d2f}.techtree-node-badge--ascension-gate{color:#a04cc9}.techtree-branch{margin-bottom:.5rem}.techtree-branch:last-child{margin-bottom:0}.techtree-branch-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);opacity:.7;margin-bottom:.35rem;padding-left:.1rem}.techtree-node-prereqs{font-size:.72rem;color:var(--color-text-muted);margin-top:.2rem;font-style:italic}.techtree-node-progress{height:4px;background:var(--color-plot-border);border-radius:2px;margin-top:.4rem;overflow:hidden}.techtree-node-progress-bar{height:100%;background:#b8860b;border-radius:2px;transition:width .8s linear}.techtree-node-progress-label{font-size:.72rem;font-family:var(--font-mono);color:var(--color-text-muted);margin-top:.2rem}.research-modal{position:fixed;inset:0;background:#000000a6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:120;padding:1rem;opacity:0;pointer-events:none;transition:opacity .18s ease}.research-modal:not([aria-hidden=true]){opacity:1;pointer-events:auto}.research-modal-inner{background:var(--color-sheet-bg);border-radius:var(--border-radius-sheet);width:100%;max-width:24rem;max-height:80vh;overflow-y:auto;padding:1.25rem 1rem 1.5rem}.research-modal-inner--finished{text-align:center}.research-modal-title{font-size:1.1rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem}.research-modal-desc{font-size:.82rem;color:var(--color-text-muted);margin-bottom:.75rem}.research-modal-rate{font-size:.82rem;font-family:var(--font-mono);color:#7a9c6e;margin-bottom:.75rem}.research-modal-options{list-style:none;display:flex;flex-direction:column;gap:.5rem}.research-modal-option{padding:.65rem .75rem;border-radius:8px;background:var(--color-surface-alt);border:2px solid var(--color-accent);cursor:pointer;transition:background .12s ease,transform .08s ease}.research-modal-option:hover,.research-modal-option:active,.research-modal-option:focus{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface-alt));transform:scale(.99);outline:none}.research-modal-option--joke{font-style:italic}.research-modal-option-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.research-modal-option-name{font-weight:600;font-size:.9rem}.research-modal-option-cost{font-size:.8rem;font-family:var(--font-mono);color:#7a9c6e;white-space:nowrap}.research-modal-option-effect{font-size:.78rem;color:var(--color-text-muted);margin-top:.2rem}.research-modal-finished-icon{font-size:2.5rem;color:#7a9c6e;margin-bottom:.5rem}.research-modal-finished-name{font-size:1rem;font-weight:700;color:var(--color-text);margin-bottom:.25rem}.research-modal-finished-effect{font-size:.85rem;color:var(--color-text-muted);margin-bottom:1rem}.research-modal-continue{background:var(--color-accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease}.research-modal-continue:hover,.research-modal-continue:active{background:color-mix(in srgb,var(--color-accent) 85%,#000);transform:scale(.98)}#potatonomicon-screen{position:fixed;inset:0;background:var(--color-sheet-overlay);display:flex;flex-direction:column;justify-content:flex-end;z-index:110;opacity:0;pointer-events:none;transition:opacity .2s ease}#potatonomicon-screen:not([aria-hidden=true]){opacity:1;pointer-events:auto}#potatonomicon-inner{background:var(--color-sheet-bg);border-radius:var(--border-radius-sheet) var(--border-radius-sheet) 0 0;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}#potatonomicon-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem;position:sticky;top:0;background:var(--color-sheet-bg);border-bottom:1px solid var(--color-plot-border);z-index:1;gap:.5rem}.potatonomicon-title{font-size:1.1rem;font-weight:700;color:var(--color-text);flex:1 1 auto}.potatonomicon-counter{font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:12px;padding:.15rem .6rem;white-space:nowrap;flex:0 0 auto}.potatonomicon-close{background:none;border:none;font-size:1.1rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem .4rem;touch-action:manipulation;transition:color .12s ease;flex:0 0 auto}.potatonomicon-close:hover,.potatonomicon-close:active{color:var(--color-text)}#potatonomicon-body{overflow-y:auto;flex:1 1 auto}.potatonomicon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;padding:8px}.potatonomicon-card{border-radius:8px;background:var(--color-surface-alt);padding:.4rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;border:2px solid transparent;position:relative}.potatonomicon-card--locked{opacity:.45;filter:grayscale(100%)}.potatonomicon-card--locked .potatonomicon-lock-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);font-size:1.4rem;font-weight:900;color:var(--color-text-muted);pointer-events:none}.potatonomicon-card--unlocked{cursor:pointer;border-color:transparent;transition:border-color .12s ease,transform .08s ease}.potatonomicon-card--unlocked:hover,.potatonomicon-card--unlocked:active{border-color:var(--color-accent);transform:scale(.97)}.potatonomicon-card-img{width:100%;aspect-ratio:1;object-fit:contain}.potatonomicon-card-name{font-size:.7rem;text-align:center;color:var(--color-text);line-height:1.2}.potatonomicon-card-oneliner{font-size:.6rem;text-align:center;color:var(--color-text-muted);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.potatonomicon-back{background:none;border:none;font-size:.85rem;color:var(--color-accent);cursor:pointer;padding:.75rem 1rem .25rem;touch-action:manipulation;display:block;width:100%;text-align:left}.potatonomicon-back:hover,.potatonomicon-back:active{text-decoration:underline}.potatonomicon-detail{padding:.75rem 1rem 2rem}.potatonomicon-detail-portrait{width:80px;height:80px;object-fit:contain;display:block;margin-bottom:.5rem}.potatonomicon-detail-name{font-size:1.1rem;font-weight:700;color:var(--color-text);margin-bottom:.2rem}.potatonomicon-detail-oneliner{font-size:.85rem;color:var(--color-text-muted);font-style:italic;margin-bottom:.75rem}.potatonomicon-section{margin-top:1rem}.potatonomicon-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.3rem}.potatonomicon-section-body{font-size:.82rem;color:var(--color-text);line-height:1.5}.potatonomicon-section-body p{margin-bottom:.4rem}.potatonomicon-section--flavour .potatonomicon-flavour-line{font-style:italic;color:var(--color-text-muted)}.potatonomicon-section--sources a{color:var(--color-accent);text-decoration:none;font-size:.78rem}.potatonomicon-section--sources a:hover{text-decoration:underline}.tile-shop{background:#a07850;cursor:default}.tile-shop-ready{background:#c8904a;cursor:pointer;animation:pulse-ready 1.2s ease-in-out infinite;box-shadow:0 0 0 2px color-mix(in srgb,#e8a060 60%,transparent)}.shop-progress-bar{position:absolute;bottom:2px;left:2px;right:2px;height:3px;background:#0006;border-radius:2px;overflow:hidden}.shop-progress-fill{height:100%;background:#e8a060;border-radius:2px;transition:width .5s linear}.tile-label{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:.6rem;font-weight:700;color:#1a1a2e;pointer-events:none}.action-build{flex:1;padding:.55rem .75rem;background:#a07850;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-build:active{transform:scale(.97)}.action-build[aria-hidden=true]{display:none}.action-build:disabled,.action-build[aria-disabled=true]{background:var(--color-text-muted);cursor:not-allowed;opacity:.6}.build-picker{padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.build-picker-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0}.build-picker-warning{font-size:.85rem;color:var(--color-text-muted);margin:0}.build-picker-recipes{display:flex;flex-direction:column;gap:.5rem}.build-recipe-item{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .75rem;border-radius:8px;background:var(--color-surface-alt);border:none;cursor:pointer;text-align:left;transition:background .12s ease,transform .08s ease}.build-recipe-item:hover,.build-recipe-item:active{filter:brightness(1.1)}.build-recipe-item--unaffordable{opacity:.5;cursor:default}.build-recipe-name{font-weight:600;font-size:.9rem;text-transform:capitalize}.build-recipe-stats{font-size:.75rem;color:var(--color-text-muted)}.build-picker-cancel{padding:.55rem .75rem;background:var(--color-surface-alt);color:var(--color-text);border:1px solid var(--color-plot-border);border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;touch-action:manipulation;transition:background .12s ease,transform .08s ease}.build-picker-cancel:active{transform:scale(.97)}#recipe-screen{position:fixed;inset:0;background:var(--color-sheet-overlay);display:flex;flex-direction:column;justify-content:flex-end;z-index:110;opacity:0;pointer-events:none;transition:opacity .2s ease}#recipe-screen:not([aria-hidden=true]){opacity:1;pointer-events:auto}#recipe-inner{background:var(--color-sheet-bg);border-radius:var(--border-radius-sheet) var(--border-radius-sheet) 0 0;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column}#recipe-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem;position:sticky;top:0;background:var(--color-sheet-bg);border-bottom:1px solid var(--color-plot-border);z-index:1}.recipe-title{font-size:1.1rem;font-weight:700;color:var(--color-text)}.recipe-close{background:none;border:none;font-size:1.1rem;color:var(--color-text-muted);cursor:pointer;padding:.2rem .4rem;touch-action:manipulation;transition:color .12s ease}.recipe-close:hover,.recipe-close:active{color:var(--color-text)}#recipe-content{padding:.75rem 1rem 2rem}
