@font-face{font-family:Stratum2;src:url(/fonts/stratum2/Stratum2WebLight.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Stratum2;src:url(/fonts/stratum2/Stratum2WebRegular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Stratum2;src:url(/fonts/stratum2/Stratum2WebMedium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Stratum2;src:url(/fonts/stratum2/Stratum2WebBold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono/jetbrains-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #070707;--panel: rgba(8, 8, 8, .94);--slot: #121212;--line: #3a3a3a;--text: #f3f3f3;--muted: #9a9a9a;--orange: #e85a1f;--orange-dark: #c45212;--red: #c4452d;--green: #3dba6b;--blue: #6ea8d8;--warn: #e0a23a;--font-display: "Stratum2", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;font-family:var(--font-display)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#2e2e2e #080808}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#080808;border-left:1px solid #1c1c1c}*::-webkit-scrollbar-thumb{background:#242424;border:1px solid #3a3a3a}*::-webkit-scrollbar-thumb:hover{background:#3a3a3a;border-color:#5a5a5a}*::-webkit-scrollbar-button{display:none;width:0;height:0}*::-webkit-scrollbar-corner{background:#080808}html,body,#root{height:100%;overflow:hidden}body{margin:0;color:var(--text);background:radial-gradient(1200px 700px at 50% -20%,#1a120c 0%,transparent 55%),#050505;letter-spacing:.04em;-webkit-font-smoothing:antialiased}button,input{font-family:inherit}button{cursor:pointer}code,.kbd{font-family:var(--font-mono)}.shell{height:100%;display:flex;flex-direction:column}.frame{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid #2a2a2a;box-shadow:0 0 0 1px #000}.topbar{flex:0 0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:.85rem 1rem 0;border-bottom:1px solid #2c2c2c}.brand{margin:0 0 .55rem}.brand h1{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.eyebrow{margin:0;color:var(--orange);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase}.tabs{display:flex;align-items:stretch}.tab{border:0;background:transparent;color:var(--text);text-transform:uppercase;letter-spacing:.12em;font-weight:600;padding:.7rem 1.1rem}.tab.active{background:#d8d8d8;color:#111}.loadbar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.7rem 1rem;border-bottom:1px solid #2c2c2c}.loadbar.over{background:color-mix(in srgb,var(--orange) 18%,transparent)}.status{color:var(--muted);margin:0;font-family:var(--font-mono);font-size:.82rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-btn,.key{display:inline-flex;align-items:center;gap:.45rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:.85rem;cursor:pointer}.file-icon{width:1.15rem;height:1.15rem;color:var(--orange)}.file-btn input{display:none}.save-location-help{position:relative;display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;margin-left:-.65rem;border:1px solid var(--line);padding:0;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;cursor:help}.save-location-help:hover,.save-location-help:focus-visible{border-color:var(--orange);color:var(--text);outline:none}.save-location-tip{position:absolute;z-index:50;top:calc(100% + .55rem);left:0;width:max-content;max-width:min(28rem,calc(100vw - 2rem));padding:.55rem .7rem;border:1px solid #4a4a4a;background:#111;color:var(--text);font-size:.72rem;line-height:1.4;letter-spacing:.02em;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .1s ease}.save-location-help:hover .save-location-tip,.save-location-help:focus-visible .save-location-tip{opacity:1;visibility:visible}.kbd{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .25rem;background:#eee;color:#111;font-size:.75rem;font-weight:700}.toggle{display:flex;align-items:center;gap:.55rem;color:var(--muted);text-transform:uppercase;font-size:.85rem;letter-spacing:.08em}.toggle button{border:1px solid var(--line);background:#1a1a1a;color:var(--muted);min-width:3.2rem;padding:.2rem .45rem;font-weight:700}.toggle button.on{background:#eee;color:#111;border-color:#eee}.body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(260px,380px) minmax(280px,1fr) minmax(260px,360px);overflow:hidden}@media(max-width:1100px){.body{grid-template-columns:1fr;overflow:auto}.col{overflow:visible}}.col{border-right:1px solid #2c2c2c;min-height:0;min-width:0;overflow:auto}.col:last-child{border-right:0}.cat-bar{background:var(--orange);color:#111;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:.38rem .75rem;font-size:.85rem}.pad{padding:.75rem}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}.slot{position:relative;aspect-ratio:1;background:var(--slot);border:1px solid #3d3d3d;color:var(--text);padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.slot.selected{border:2px solid #fff}.slot.has{border-color:#6a6a6a}.slot-qty{position:absolute;top:3px;left:4px;width:2.4rem;background:transparent;border:0;color:var(--blue);font-size:.78rem;font-weight:700;padding:0}.slot-qty::-webkit-outer-spin-button,.slot-qty::-webkit-inner-spin-button{appearance:none}.slot-kg{position:absolute;bottom:2px;right:4px;font-size:.62rem;color:var(--muted)}.slot-name{position:absolute;left:3px;right:3px;bottom:14px;font-size:.58rem;line-height:1.1;text-transform:uppercase;letter-spacing:.02em;text-align:center;overflow:hidden;max-height:2.2em}.canister{width:28px;height:38px;border:1px solid color-mix(in srgb,var(--tint, #888) 70%,#fff);background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 30%),linear-gradient(180deg,#2a2a2a 0 18%,var(--tint, #666) 18% 88%,#222 88%);clip-path:polygon(18% 0,82% 0,100% 14%,100% 100%,0 100%,0 14%)}.mem-icon{width:28px;height:34px;border:1px solid #8a8a8a;background:linear-gradient(180deg,#3a3a3a,#222)}.wiki-icon{width:46px;height:46px;object-fit:contain;pointer-events:none}.wiki-icon.large{width:96px;height:96px;display:block;margin-bottom:.5rem}.canister.large{width:54px;height:72px}.mat-row{display:grid;grid-template-columns:48px 1fr auto;gap:.5rem;align-items:center;padding:.35rem .75rem;border-bottom:1px solid #1c1c1c}.mat-row.ok{color:var(--green)}.mat-row.short{color:var(--red)}.mat-row:nth-child(2n),.setting-row:nth-child(2n){background:#0e0e0e}.mat-row input{width:4.5rem;background:#111;border:1px solid #333;color:var(--text);padding:.2rem .35rem}.bar-track{height:4px;background:#222;margin-top:.2rem}.bar-fill{height:100%;background:var(--green)}.bar-fill.short{background:var(--warn)}.bar-fill.over{background:var(--red)}.bar-fill.mass{background:var(--orange)}.stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.4rem .75rem;border-bottom:1px solid #2a2a2a;color:var(--text)}.stat-need{flex:0 0 auto;font-variant-numeric:tabular-nums;letter-spacing:.04em}.stat-row.ok{color:var(--green)}.stat-row.short{color:var(--red)}.req-list{border-top:0}.search-row{padding:.45rem .75rem;border-bottom:1px solid #1c1c1c}.search-row input{width:100%;background:#111;border:1px solid #333;color:var(--text);padding:.4rem .55rem;letter-spacing:.06em;text-transform:uppercase}.search-row input::placeholder{color:#6a6a6a;text-transform:uppercase}.search-row input::-webkit-search-cancel-button{filter:invert(1)}.human-tabs{display:flex;flex-wrap:wrap}.human-tab{flex:1;min-width:7rem;border:0;border-bottom:1px solid #2c2c2c;background:transparent;color:var(--text);text-transform:uppercase;letter-spacing:.1em;padding:.65rem .5rem;font-weight:600}.human-tab.active{background:#d8d8d8;color:#111}.human-tab small{display:block;font-size:.7rem;letter-spacing:.04em;font-weight:600;opacity:.75}.human-tab.ok small{color:#157a3a}.human-tab.short small{color:var(--red)}.mark-complete{border:0;border-bottom:1px solid #2c2c2c;background:var(--orange);color:#111;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:700;padding:.55rem .45rem}.mark-complete:hover:not(:disabled){background:#f07a3a}.mark-complete:disabled{opacity:.4;cursor:default;background:#3a2418;color:#8a6a58}.mark-complete.saved,.mark-complete.saved:disabled,button.mark-complete.saved:disabled{opacity:1;background:#3dba6b;color:#111;cursor:default}.mark-complete-page{width:100%;border-bottom:0}.stepper{display:flex;align-items:center;justify-content:space-between;padding:.55rem .75rem;border-bottom:1px solid #1c1c1c;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.stepper>span:first-child{color:var(--muted)}.stepper-ctrl{display:flex;align-items:center;gap:.5rem}.stepper-ctrl button{width:1.6rem;height:1.6rem;border:1px solid var(--line);background:transparent;color:var(--text);font-size:1rem}.hint{color:var(--muted);font-size:.88rem;padding:.45rem .75rem .7rem;margin:0}.prof-row{display:flex;flex-wrap:wrap;gap:4px;padding:.45rem .75rem .7rem}.prof{border:1px solid #3a3a3a;background:#101010;color:var(--text);padding:.28rem .5rem;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.prof.active{border-color:#fff;background:#1a1a1a}.prof.other{border-color:var(--orange-dark)}.tier{color:var(--orange);margin-right:.3rem}.actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;border-top:1px solid #2c2c2c}.primary,.ghost{border:0;padding:.55rem .85rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.primary{background:var(--orange);color:#111}.ghost{background:#222;color:var(--text)}button:disabled{opacity:.55;cursor:not-allowed}.detail-name{margin:0;font-size:1.45rem;letter-spacing:.12em;text-transform:uppercase}.detail-cat{margin:.15rem 0 .8rem;color:var(--orange);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem}.pad:has(+.cat-bar) .detail-cat{margin-bottom:0}.stat-list{margin:0 0 .8rem;padding:0;list-style:none}.stat-list li{padding:.15rem 0}.flavor{color:var(--muted);font-size:.92rem}.job-blurb{margin:.55rem 0 0;line-height:1.35;text-transform:none;letter-spacing:0}.warn{color:var(--warn)}.plan-list{margin:0;padding:.4rem .75rem .8rem 1.2rem}.plan-list li{margin:.2rem 0}.cook-list{margin:0;padding:.45rem .75rem .85rem;list-style:none}.cook-list li{margin:.55rem 0}.cook-out,.cook-in{margin:0}.cook-out{font-weight:700}.cook-in{margin-top:.12rem;color:var(--muted);font-size:.88rem}.footer-keys{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 1rem;border-top:1px solid #2c2c2c}.credits{margin:0;min-width:0;color:#6a6a6a;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.footer-calc{display:inline-flex;align-items:center;gap:.45rem;flex:0 0 auto}.modal-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#000000c7}.modal{min-width:18rem;padding:1.35rem 1.5rem 1.15rem;background:#0c0c0c;border:1px solid #3a3a3a;text-align:center}.modal-title{margin:0 0 .85rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700}.modal-bar{height:4px;margin:0 0 .85rem;background:#222;overflow:hidden}.modal-bar:after{content:"";display:block;width:40%;height:100%;background:var(--orange);animation:load-slide 1s linear infinite}@keyframes load-slide{0%{transform:translate(-120%)}to{transform:translate(280%)}}.modal .hint{padding:0 0 .85rem}.modal .ghost{min-width:7rem}.growth-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:stretch;padding:1.1rem;background:#000000b8}.growth-window{min-height:0;display:flex;flex-direction:column;background:#080808;border:1px solid #3a3a3a;box-shadow:0 0 0 1px #000}.growth-banner{flex:0 0 auto;padding:.7rem 1rem;text-align:center}.growth-banner h2{margin:0;font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase}.growth-banner.warn,.growth-banner.ready{background:#3d6a72}.growth-pages{flex:0 0 auto;display:flex;border-bottom:1px solid #2c2c2c}.growth-pages button{flex:1;border:0;border-right:1px solid #2c2c2c;background:transparent;color:var(--text);text-transform:uppercase;letter-spacing:.1em;font-weight:700;padding:.55rem .4rem}.growth-pages button:last-child{border-right:0}.growth-pages button.on{background:#d8d8d8;color:#111}.growth-pages small{display:block;font-size:.68rem;letter-spacing:.04em;opacity:.75;font-weight:600}.growth-pages button.ok small{color:#157a3a}.growth-pages button.short small{color:var(--red)}.growth-pages button.on.ok small,.growth-pages button.on.short small{color:inherit;opacity:.7}.growth-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.15fr) minmax(240px,1fr);overflow:hidden}.growth-col{min-width:0;min-height:0;overflow:auto;border-right:1px solid #2c2c2c}.growth-col:last-child{border-right:0}.growth-grid{padding:.55rem}.rack-slot{border:1px solid #3d3d3d;background:var(--slot);cursor:pointer;color:var(--text)}.rack-slot.picked{border:2px solid var(--green)}.rack-slot.short-slot{border-color:var(--red)}.slot-qty-ro{position:absolute;bottom:2px;right:4px;font-size:.72rem;font-weight:700;color:var(--blue)}.rack-slot .slot-kg{left:4px;right:auto;bottom:2px}.pre-steps{margin:0;padding-left:1.2rem;text-transform:uppercase;letter-spacing:.06em}.pre-steps li{margin:.35rem 0}.trait-block{padding:.35rem .75rem .7rem}.trait-head{margin:0 0 .35rem;color:var(--orange);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.85rem}.trait-row{display:flex;justify-content:space-between;gap:.75rem;padding:.18rem 0;border-bottom:1px solid #1c1c1c}.trait-row.short{color:var(--red)}.bonus{color:var(--green)}.deficit{color:var(--red)}.role-card{margin:.45rem .55rem .7rem}.role-bar{padding:.4rem .55rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#fff}.role-stats{margin:0;padding:.35rem .15rem 0;list-style:none;font-size:.88rem}.role-stats .ok{color:var(--muted)}.role-stats .short{color:var(--red)}.req-warns{padding:.45rem .75rem .8rem;color:var(--red);text-transform:uppercase;letter-spacing:.04em;font-size:.88rem}.req-warns.match-warn{color:var(--warn)}.req-warns.mutation-warn{color:var(--blue)}.req-warns p{margin:.25rem 0}.mutation-stat{color:var(--muted);font-weight:500}.mutation-note{margin:.45rem 0 0}.mass-line{padding:.55rem .75rem .85rem;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.growth-actions{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .85rem;border-top:1px solid #2c2c2c}.growth-hint{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem}.growth-btns{display:flex;gap:.5rem}.growth-begin,.growth-close{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #3a3a3a;padding:.55rem 1rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.growth-begin{background:#d8d8d8;color:#111}.growth-close{background:#151515;color:var(--text)}@media(max-width:1100px){.growth-body{grid-template-columns:1fr}.growth-overlay{padding:0}}.help-overlay{position:absolute;inset:0;z-index:25;display:grid;place-items:center;padding:1.5rem;background:#000000b8}.help-window{width:min(42rem,100%);max-height:100%;display:flex;flex-direction:column;background:#080808;border:1px solid #4a4a4a}.help-title{margin:0;padding:1.1rem 1rem .85rem;text-align:center;color:var(--orange);font-size:1.7rem;letter-spacing:.18em;text-transform:uppercase}.help-list{margin:0 .75rem;padding:0;list-style:none;overflow:auto;border:1px solid #3a3a3a}.help-list li{border-bottom:1px solid #2c2c2c}.help-list li:last-child{border-bottom:0}.help-list li.open{box-shadow:inset 3px 0 #eee}.help-row{width:100%;border:0;background:transparent;color:var(--text);text-align:left;text-transform:uppercase;letter-spacing:.1em;font-weight:700;padding:.7rem .85rem}.help-body{margin:0;padding:0 .85rem .85rem 1.1rem;color:#d4d0c8;font-size:.92rem;line-height:1.45}.help-body p{margin:0 0 .7rem}.help-body p:last-child{margin-bottom:0}.help-actions{display:flex;justify-content:center;padding:.85rem}.review-overlay{position:absolute;inset:0;z-index:26;display:grid;place-items:stretch;padding:1.1rem;background:#000000c7}.review-window{position:relative;min-height:0;display:flex;flex-direction:column;background:#080808;border:1px solid #4a4a4a}.review-lead{margin:0;padding:0 1.1rem .85rem;color:#c4452d;text-align:center;font-size:.92rem}.review-body{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border-top:1px solid #2c2c2c;border-bottom:1px solid #2c2c2c}.review-col{min-width:0;min-height:0;overflow:auto;border-right:1px solid #2c2c2c}.review-col:last-child{border-right:0}.review-col .slot{cursor:text}.review-actions{display:flex;justify-content:space-between;gap:.75rem;padding:.85rem 1rem}@media(max-width:900px){.review-overlay{padding:0}.review-body{grid-template-columns:1fr;overflow:auto}.review-col{overflow:visible;border-right:0;border-bottom:1px solid #2c2c2c}}.help-row small{display:block;margin-top:.2rem;font-size:.72rem;letter-spacing:.04em;font-weight:500;text-transform:none;color:var(--muted)}.completed-overlay{z-index:27}.completed-lead{text-align:center;padding-bottom:.85rem}.completed-body{grid-template-columns:minmax(16rem,22rem) minmax(0,1fr)}.completed-list{margin:0;padding:0;list-style:none}.completed-list li{border-bottom:1px solid #2c2c2c}.completed-list li:last-child{border-bottom:0}.completed-list li.open{box-shadow:inset 3px 0 #eee}.completed-recipe{padding-bottom:.75rem}.completed-grid{padding:.55rem}.completed-confirm{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:1.1rem;background:#000000c7}.completed-confirm-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1rem}.completed-confirm .hint{padding:0}@media(max-width:900px){.completed-body{grid-template-columns:1fr}}
