.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raised);cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--border);border-color:var(--accent-dim)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--md{padding:var(--space-2) var(--space-4)}.btn--sm{padding:2px var(--space-2);font-size:var(--text-sm);min-height:26px}@media (pointer: coarse){.btn--sm{min-height:36px;padding:4px var(--space-3)}}.btn--primary{background:var(--accent-dim);border-color:var(--accent)}.btn--primary:hover:not(:disabled){background:var(--accent);color:var(--bg)}.btn--danger{border-color:var(--danger);color:var(--danger)}.is-guided{box-shadow:0 0 0 2px var(--guide),0 0 16px var(--guide-glow);animation:guide-pulse 1.2s ease-in-out infinite}@keyframes guide-pulse{0%,to{box-shadow:0 0 0 2px var(--guide),0 0 10px var(--guide-glow)}50%{box-shadow:0 0 0 3px var(--guide),0 0 22px var(--guide-glow)}}.progress{width:100%;background:var(--bg-sunken);border-radius:999px;overflow:hidden}.progress__fill{height:100%;border-radius:999px;transition:width .1s linear}.badge{display:inline-block;padding:0 6px;border:1px solid;border-radius:999px;font-size:var(--text-xs);line-height:16px;background:var(--bg-sunken)}.stat{display:flex;flex-direction:column;min-width:0}.stat__label{font-size:var(--text-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.stat__value{font-size:var(--text-lg);font-weight:600}.stat__sub{font-size:var(--text-xs);color:var(--text-dim)}.item-name{cursor:help;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.item-name:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:2px}button .item-name{text-decoration:none;cursor:inherit}.spark{position:relative;display:inline-block;vertical-align:middle;line-height:0}.spark svg{display:block;cursor:crosshair}.spark__base{stroke:var(--border);stroke-width:1}.spark__line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.spark__line--produced{stroke:var(--flow-produced)}.spark__line--consumed{stroke:var(--flow-consumed);stroke-dasharray:4 3}.spark__cross{stroke:var(--text-faint);stroke-width:1}.spark__tip{position:absolute;bottom:calc(100% + 4px);right:0;z-index:5;padding:var(--space-1) var(--space-2);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-size:var(--text-xs);line-height:1.4;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}.world{position:relative;height:100%;min-height:260px;background:var(--arena-sky);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.world__canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent}.world__overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slot{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;font-size:var(--text-xs);line-height:1.15;white-space:nowrap;text-shadow:0 1px 2px var(--bg-sunken),0 0 4px var(--bg-sunken);border-radius:var(--radius);padding:0 2px}.slot--station .slot__name{font-weight:600}.slot--selected{outline:2px solid var(--accent);background:var(--overlay)}.slot__value{color:var(--text)}.slot--pile{flex-direction:row;gap:4px}.enemy{position:absolute;transform:translate(-50%,-100%);width:120px;padding:2px 4px;border-radius:var(--radius);background:var(--overlay);font-size:var(--text-xs);pointer-events:auto;cursor:crosshair;display:flex;flex-direction:column;gap:2px}.enemy--list{position:relative;transform:none;width:auto;background:var(--bg-panel);border:1px solid var(--border);padding:var(--space-2)}.enemy__name{display:flex;justify-content:space-between;gap:4px;color:var(--text)}.enemy__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enemy__statuses{display:flex;gap:2px;flex-wrap:wrap;min-height:16px}.enemy__index{color:var(--text-faint)}.enemy__actions{display:flex;align-items:center;justify-content:space-between;gap:4px}.enemy__stuck{color:var(--warn)}.enemy__dismiss{margin-left:auto;padding:0 6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text-faint);font:inherit;cursor:pointer}.enemy__dismiss:hover,.enemy__dismiss:focus-visible{border-color:var(--danger);color:var(--danger)}.world__hud{position:absolute;left:var(--space-2);right:var(--space-2);top:var(--space-2);display:flex;align-items:center;gap:var(--space-2);pointer-events:none}.world__hud>*{pointer-events:auto}.world__player{flex:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--overlay);border-radius:var(--radius);font-size:var(--text-xs)}.world__label{color:var(--text-faint)}.world__hp{color:var(--text-dim)}.world__notice{padding:var(--space-1) var(--space-3);border-radius:var(--radius);background:var(--overlay);color:var(--text-dim);font-size:var(--text-sm);pointer-events:none;white-space:nowrap}.world__notice--float{position:absolute;transform:translate(-50%,-50%)}.world__notice--retreat{color:var(--danger);border:1px solid var(--danger)}.world__canvas:active{cursor:grabbing}.world__reset{position:absolute;right:var(--space-2);bottom:var(--space-2)}.world--fallback{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);overflow-y:auto}.world--fallback .world__hud{position:static}.world__enemies{display:flex;flex-direction:column;gap:var(--space-2)}.world__table{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3);font-size:var(--text-sm)}.world__col h4{margin:0 0 var(--space-1);color:var(--text-faint);font-weight:500}.world__row{display:flex;justify-content:space-between;gap:var(--space-2)}.float{position:absolute;transform:translate(-50%);font-weight:700;font-size:var(--text-md);text-shadow:0 1px 2px var(--bg-sunken);animation:float-up .9s ease-out forwards;pointer-events:none}.float--impact{color:var(--element-impact)}.float--fire,.float--burning{color:var(--status-burning)}.float--explosion{color:var(--element-fire);font-size:var(--text-lg)}.float--steam{color:var(--element-water);font-size:var(--text-lg)}.float--heal{color:var(--element-heal)}.float--shatter{color:var(--status-frozen);font-size:var(--text-lg)}.float--lightning{color:var(--element-lightning);font-size:var(--text-lg)}@keyframes float-up{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-36px}}.slot--stalled .slot__name:before{content:"■ ";color:var(--danger)}.slot__stall{max-width:140px;overflow:hidden;text-overflow:ellipsis;color:var(--danger);font-size:10px}.slot--compact{font-size:10px}.actor{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:1px 4px;border-radius:var(--radius);background:var(--overlay);font-size:var(--text-xs);line-height:1.15;white-space:nowrap;pointer-events:none}.actor:not(.actor--pitcher){transform:translate(-50%,-100%)}.actor__name{color:var(--accent);font-weight:600}.actor--pitcher .actor__name{color:var(--text-dim);font-weight:500}.actor__sub{color:var(--text-faint);font-size:10px}.actor--pitcher .progress{width:44px}.legend{position:absolute;left:var(--space-2);top:44px;max-width:min(250px,calc(100% - 120px));padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:var(--overlay);font-size:var(--text-xs);color:var(--text-dim)}.legend--closed{padding:0;background:none}.legend__toggle{background:var(--overlay);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:var(--text-xs);padding:2px var(--space-2);cursor:pointer}.legend:not(.legend--closed) .legend__toggle{border:none;background:none;padding:0}.legend__shapes{display:flex;flex-wrap:wrap;gap:2px var(--space-3);margin:var(--space-1) 0;padding:0;list-style:none}.legend__shapes li{display:inline-flex;align-items:center;gap:4px}.legend__shapes svg{width:11px;height:11px;fill:var(--text-dim);stroke:var(--text-dim)}.legend__taps{margin:0;padding-left:1.1em;color:var(--text-faint);line-height:1.4}@media (max-width: 1024px){.slot{font-size:10px;line-height:1.1}.enemy{width:76px;font-size:10px;padding:1px 3px}.enemy__statuses{min-height:0}.world--fallback .enemy{width:auto}.actor{font-size:10px}.legend__taps{display:none}}.tabbar{display:none}@media (max-width: 1024px){.tabbar{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);background:var(--bg-panel);padding-bottom:env(safe-area-inset-bottom)}.tabbar__tab{position:relative;min-height:44px;border:none;background:none;color:var(--text-dim);font-size:var(--text-md);cursor:pointer}.tabbar__tab.is-active{color:var(--text);box-shadow:inset 0 2px 0 var(--accent)}.tabbar__dot{position:absolute;top:8px;margin-left:4px;width:8px;height:8px;border-radius:50%;background:var(--guide);box-shadow:0 0 6px var(--guide-glow)}}.facility{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.facility--selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.facility--locked{border-style:dashed;opacity:.9}.facility__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.facility__title{font-size:var(--text-md)}.facility__level{color:var(--text-faint);font-size:var(--text-sm);font-weight:400}.facility__desc{margin:0;color:var(--text-dim);font-size:var(--text-sm)}.facility__body{display:flex;flex-direction:column;gap:var(--space-2)}.field{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm)}.field__label{color:var(--text-dim)}.field select,.field input[type=number]{background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:var(--radius);padding:2px var(--space-2);min-width:0}.field input[type=number]{width:72px}.facility__rate{margin:0;color:var(--text-dim);font-size:var(--text-xs)}.accordion{border-top:1px solid var(--border)}.accordion__head{width:100%;min-height:40px;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:none;background:none;color:var(--text-faint);font-size:var(--text-sm);letter-spacing:.04em;text-align:left;cursor:pointer}.accordion__head:hover{color:var(--text-dim);background:var(--bg-panel)}.accordion__head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.accordion__marker{display:inline-block;transition:transform .15s ease}.accordion.is-open .accordion__marker{transform:rotate(90deg)}.accordion__title{font-weight:600}.accordion__summary{margin-left:auto;font-size:var(--text-xs);letter-spacing:0}.accordion__body{padding-bottom:var(--space-2)}.program{display:flex;flex-direction:column;gap:var(--space-2)}.program__modes{display:flex;gap:4px}.program__notice,.blocks__hint,.program-code__hint{margin:0;color:var(--text-faint);font-size:var(--text-xs)}.program-code{display:flex;flex-direction:column;gap:var(--space-1)}.program-code__text{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-sm);line-height:1.5;background:var(--bg-sunken);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-2);resize:vertical;-moz-tab-size:4;tab-size:4;white-space:pre;overflow-x:auto}.program-code__diagnostics{margin:0;padding:2px var(--space-2);list-style:none;border-left:2px solid var(--danger);color:var(--danger);font-size:var(--text-xs);background:var(--bg-sunken)}.program-code__bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);font-size:var(--text-xs)}.program-code__link{color:var(--accent);font-size:var(--text-xs)}.program-code__ref{max-height:280px;overflow:auto;font-size:var(--text-xs);color:var(--text-dim);background:var(--bg-sunken);border-radius:var(--radius);padding:var(--space-2)}.program-code__ref ul{margin:2px 0 var(--space-2);padding-left:var(--space-4)}.program-code__type{color:var(--text-faint)}.program code,.blocks pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.blocks{display:flex;flex-direction:column;gap:var(--space-2)}.blocks__rule{display:flex;flex-direction:column;gap:4px;padding:var(--space-2);border-left:3px solid var(--accent-dim);background:var(--bg-sunken);border-radius:var(--radius)}.blocks__rule--else{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px var(--space-2);border-left-color:var(--border-strong)}.blocks__head,.blocks__action,.blocks__cmp,.blocks__pick{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.blocks__tools{margin-left:auto;display:flex;gap:2px}.blocks__kw{color:var(--text-dim);font-size:var(--text-xs)}.blocks select,.blocks input{background:var(--bg-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);padding:2px var(--space-1);font-size:var(--text-sm);min-width:0}.blocks__left{flex:1 1 140px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.blocks__right{width:110px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.blocks__source summary{cursor:pointer;color:var(--text-faint);font-size:var(--text-xs)}.blocks__source pre{margin:4px 0 0;padding:var(--space-2);background:var(--bg-sunken);border-radius:var(--radius);font-size:var(--text-xs);overflow-x:auto}.program__blueprint{display:flex;align-items:center;gap:var(--space-2)}.resources{display:flex;flex-direction:column;gap:var(--space-2)}.resources__top{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.resources__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius);font-size:var(--text-sm)}.row:hover{background:var(--bg-panel)}.row--wrap{grid-template-columns:1fr auto auto}.row__name--dim{color:var(--text-faint)}.row__count{color:var(--text-dim);min-width:36px;text-align:right}.row__actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.row>:first-child{min-width:6em}.row__hint{color:var(--text-faint);font-size:var(--text-xs)}.row__recipe{grid-column:1 / -1;color:var(--text-faint);font-size:var(--text-xs)}.resources__note{margin:0;color:var(--text-faint);font-size:var(--text-xs);padding:0 var(--space-2)}.row__refine{grid-column:1 / -1;color:var(--text-dim);font-size:var(--text-xs)}.row__refine--short{color:var(--danger)}.facilities{display:flex;flex-direction:column;gap:var(--space-2)}.facilities__sub{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-1);border-top:1px dashed var(--border)}.facilities__toggle{display:flex;gap:4px}.field--rule{justify-content:space-between}.facilities__check{display:flex;align-items:center;gap:6px}.facilities__keep{display:flex;align-items:center;gap:4px}.facilities__keep input[type=number]{width:56px;background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:var(--radius);padding:2px var(--space-2)}.facilities__hint{margin:0;color:var(--text-faint);font-size:var(--text-xs)}.facilities__status{margin:0;padding:2px var(--space-2);border-left:2px solid transparent;font-size:var(--text-xs);line-height:18px;height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.facilities__status.is-running{color:var(--text-faint)}.facilities__dot{color:var(--ok)}.facilities__status.is-stalled{border-left-color:var(--warn);color:var(--warn);background:var(--bg-sunken)}.facilities__since{margin-left:var(--space-1);color:var(--text-faint)}.shop__item{justify-content:space-between;gap:var(--space-2)}.shop__tag{font-size:var(--text-xs);font-weight:600}.shop__wants{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.unlocker__order{margin:0;padding-left:var(--space-4);display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.unlocker__order li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.shop__rarity{font-size:.75em;padding:0 .35em;border-radius:.3em;border:1px solid currentColor;white-space:nowrap}.shop__rarity--1{color:var(--text-faint)}.shop__rarity--2{color:var(--accent)}.shop__rarity--3{color:var(--warn)}.shop__item--contract{border-left:2px solid var(--accent)}.shop__contract-note{font-size:.8em;color:var(--text-faint)}.shop__contracts{display:flex;flex-wrap:wrap;gap:.25em .75em}.guide{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-panel);border:1px solid var(--guide);border-radius:var(--radius)}.guide--goal{border-color:var(--border-strong)}.guide__step{color:var(--guide);font-weight:600;white-space:nowrap}.guide--goal .guide__step{color:var(--text-faint)}.guide__text{flex:1;display:flex;flex-direction:column;min-width:0}.guide__text span{color:var(--text-dim);font-size:var(--text-sm)}.guide__done{color:var(--text-faint)}@media (max-width: 1024px){.guide{gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.guide__text span{font-size:var(--text-xs)}}.prestige{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.prestige__head{display:flex;justify-content:space-between;align-items:center}.prestige__gain{color:var(--accent)}.prestige__text,.prestige__desc{margin:0;color:var(--text-dim);font-size:var(--text-sm)}.prestige__row{display:flex;justify-content:flex-end}.prestige__unlocks{display:flex;flex-direction:column;gap:var(--space-1);border-top:1px dashed var(--border);padding-top:var(--space-2)}.prestige__unlock{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.log{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);min-height:0}.log__offline{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg-panel);font-size:var(--text-sm)}.log__toasts{display:flex;gap:var(--space-2);min-height:16px}.log__toast{color:var(--warn)}.log__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;overflow:hidden}.log__entry{display:flex;gap:var(--space-2);color:var(--text-dim)}.log__time{color:var(--text-faint)}.bounty{padding:0 var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.bounty__hint,.bounty__empty{color:var(--text-faint);font-size:var(--text-xs);margin:0}.bounty__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bounty__item{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.bounty__row{display:flex;justify-content:space-between}.bounty__progress{color:var(--text-dim)}.bounty__reward{color:var(--warn);font-size:var(--text-xs)}.scrollpanel{position:relative;min-height:0;display:flex;flex-direction:column}.scrollpanel__scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2)}.scrollpanel__hint{position:absolute;left:50%;transform:translate(-50%);z-index:2;padding:4px var(--space-3);border-radius:999px;border:1px solid currentColor;background:var(--bg-raised);font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px #00000080}.scrollpanel__hint--up{top:var(--space-2)}.scrollpanel__hint--down{bottom:var(--space-2)}.scrollpanel__hint--tutorial{color:var(--guide)}.scrollpanel__hint--warning{color:var(--warn)}.scrollpanel__hint--goal{color:var(--accent)}.scrollpanel__more{font-weight:400;opacity:.8}.facility--goal,.row--goal,.prestige--goal{outline:1px dashed var(--accent);outline-offset:2px}.item-tooltip{position:fixed;z-index:50;max-width:min(280px,calc(100vw - 32px));padding:var(--space-2) var(--space-3);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 4px 16px #00000080;font-size:var(--text-sm);line-height:1.45;pointer-events:auto}.item-tooltip__title{font-weight:600;margin-bottom:var(--space-1)}.item-tooltip__list{margin:0;padding-left:1.1em;color:var(--text-dim)}.item-tooltip__none{margin:0;color:var(--text-faint)}.toasts{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{padding:var(--space-1) var(--space-3);border:1px solid var(--warn);border-radius:var(--radius);background:var(--bg-raised);color:var(--text);font-size:var(--text-sm);box-shadow:0 4px 12px var(--overlay);animation:toast-in .15s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(-4px)}}@media (max-width: 1024px){.toasts{top:46px}}.sound-prompt{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--overlay)}.sound-prompt__panel{width:100%;max-width:360px;padding:var(--space-6) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-panel);display:flex;flex-direction:column;gap:var(--space-3);text-align:center}.sound-prompt__title{font-size:var(--text-lg);margin:0}.sound-prompt__note{color:var(--text-dim);font-size:var(--text-sm);margin:0}.sound-prompt__actions{display:flex;justify-content:center;gap:var(--space-2)}.flow{max-width:1040px;width:100%;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6);overflow-y:auto}.flow h2{font-size:var(--text-lg)}.flow h3{font-size:var(--text-md);margin-bottom:var(--space-2)}.flow__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.flow__note{color:var(--text-dim);font-size:var(--text-sm);margin:var(--space-1) 0 var(--space-2);max-width:64ch}.flow__controls{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.flow__seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.flow__seg button{background:var(--bg-panel);border:none;padding:6px var(--space-3);font-size:var(--text-sm);color:var(--text-dim);cursor:pointer;min-height:32px}.flow__seg button+button{border-left:1px solid var(--border-strong)}.flow__seg button.is-active{background:var(--accent-dim);color:var(--text)}.flow__all{font-size:var(--text-sm);color:var(--text-dim);display:flex;align-items:center;gap:var(--space-1)}.flow__legend{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-dim);margin-bottom:var(--space-2)}.flow__key{display:inline-block;width:18px;height:0;border-top:2px solid;margin-left:var(--space-2)}.flow__key--produced{border-color:var(--flow-produced)}.flow__key--consumed{border-color:var(--flow-consumed);border-top-style:dashed}.flow__scroll{overflow-x:auto}.flow__table{width:100%;min-width:640px;border-collapse:collapse;font-size:var(--text-sm)}.flow__table th,.flow__table td{text-align:left;padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);vertical-align:middle}.flow__table thead th{color:var(--text-faint);font-weight:500;white-space:nowrap}.flow__table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.flow__group th{padding-top:var(--space-3);color:var(--text-faint);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;border-bottom-color:var(--border-strong)}.flow__row.is-open td{background:var(--bg-panel)}.flow__toggle{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;padding:2px 0;cursor:pointer;text-align:left}.flow__toggle:disabled{cursor:default}.flow__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.flow__caret{display:inline-block;width:1em;color:var(--text-faint)}.flow__sub td{background:var(--bg-panel);color:var(--text-dim);font-size:var(--text-xs)}.flow__sub td:first-child{padding-left:calc(var(--space-2) + 1.25em)}.flow__net{display:inline-flex;align-items:center;gap:2px;color:var(--text)}.flow__net span[aria-hidden]{font-size:9px}.flow__net--up span[aria-hidden]{color:var(--flow-produced)}.flow__net--down span[aria-hidden]{color:var(--flow-consumed)}.flow__net--zero{color:var(--text-faint)}.flow__theory{display:inline-flex;gap:var(--space-2);color:var(--text-dim)}.flow__faint{color:var(--text-faint)}.flow__stall{color:var(--warn);font-size:var(--text-xs)}.flow__util-head{width:180px}.flow__util{display:flex;align-items:center;gap:var(--space-2)}.flow__util .progress{flex:1;min-width:80px}.flow__util .num{width:3.5em}@media (max-width: 1024px){.flow{padding:var(--space-2)}.flow__controls{align-items:flex-start}}.game{flex:1;min-height:0;display:grid;grid-template-columns:320px minmax(360px,1fr) 330px;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"guide guide guide" "left world right" "left log right";gap:var(--space-3);padding:var(--space-3)}.game__guide{grid-area:guide}.game__world{grid-area:world;min-height:0}.game__log{grid-area:log;min-height:0}.game__left{grid-area:left}.game__right{grid-area:right}.game__tabs{display:none}@media (max-width: 1200px){.game{grid-template-columns:minmax(240px,280px) minmax(300px,1fr) minmax(250px,300px)}}@media (max-width: 1024px){.game{grid-template-columns:minmax(0,1fr);grid-template-rows:auto clamp(260px,44dvh,520px) minmax(0,1fr) auto;grid-template-areas:"guide" "world" "panel" "tabs";gap:var(--space-2);padding:var(--space-2) var(--space-2) 0}.game__left,.game__right,.game__log{grid-area:panel}.game__log{overflow-y:auto;padding-bottom:var(--space-2)}.game__left .scrollpanel__scroll,.game__right .scrollpanel__scroll{padding-bottom:var(--space-2)}.game[data-tab=resources] .game__right,.game[data-tab=resources] .game__log,.game[data-tab=facilities] .game__left,.game[data-tab=facilities] .game__log,.game[data-tab=log] .game__left,.game[data-tab=log] .game__right{display:none}.game__tabs{display:block;grid-area:tabs;margin:0 calc(-1 * var(--space-2))}}.ref{max-width:960px;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.ref h2{font-size:var(--text-lg);margin-bottom:var(--space-2)}.ref table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ref th,.ref td{text-align:left;padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);vertical-align:top}.ref th{color:var(--text-faint);font-weight:500}.ref__note{color:var(--text-dim);font-size:var(--text-sm);margin:0 0 var(--space-2)}.ref__scroll{overflow-x:auto}.ref__matrix{min-width:640px}.ref__matrix th[scope=row]{white-space:nowrap;color:var(--text-dim)}.ref__sub{color:var(--text-faint);font-size:var(--text-xs);font-weight:400}.ref__rule{color:var(--warn);font-weight:600;background:var(--bg-raised)}.ref__hot{color:var(--text);font-weight:600;background:var(--bg-raised)}.ref__legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--space-1) var(--space-3);margin:var(--space-2) 0;font-size:var(--text-sm)}.ref__legend dt{font-weight:600}.ref__legend dd{margin:0;color:var(--text-dim)}.ref__rules{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-2);font-size:var(--text-sm)}.ref__rules label{display:inline-flex;align-items:center;gap:4px}.script code,.script__code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.script__code{margin:0;padding:var(--space-2);background:var(--bg-sunken);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.5;overflow-x:auto;white-space:pre}.script__list{margin:0;padding-left:var(--space-4);color:var(--text-dim);font-size:var(--text-sm);display:flex;flex-direction:column;gap:var(--space-1)}.script__syntax{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:var(--space-3)}.script__card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0}.script__card h3{margin:0;font-size:var(--text-md)}.script__card .ref__note{margin:0}.script__tag{font-size:var(--text-xs);color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:0 4px;margin-right:4px;vertical-align:middle}.script__type{color:var(--text-faint);white-space:nowrap}.script__paste{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.script__paste select{background:var(--bg-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);padding:2px var(--space-1)}.settings{max-width:640px;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.settings h2{font-size:var(--text-lg);margin-bottom:var(--space-2)}.settings dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-4);margin:0}.settings dt{color:var(--text-faint)}.settings dd{margin:0}.settings p{color:var(--text-dim);font-size:var(--text-sm)}.app{height:100%;height:100dvh;display:flex;flex-direction:column}.app__header{height:48px;flex-shrink:0;display:flex;align-items:center;gap:var(--space-6);padding:0 var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-panel)}.app__title{font-size:var(--text-md);letter-spacing:.02em}.app__nav{display:flex;gap:var(--space-4);font-size:var(--text-sm);min-width:0;overflow-x:auto;scrollbar-width:none}.app__nav a{white-space:nowrap;padding:var(--space-1) 0}.app__nav a{color:var(--text-dim);text-decoration:none}.app__nav a.is-active{color:var(--text);border-bottom:2px solid var(--accent)}@media (max-width: 1024px){.app__header{height:40px;gap:var(--space-4);padding:0 var(--space-2)}.app__title{font-size:var(--text-sm);white-space:nowrap;flex-shrink:0}.app__nav{gap:var(--space-3)}}.app__debug{margin-left:var(--space-2);padding:0 6px;font-size:var(--text-xs);color:var(--bg);background:var(--warn);border-radius:var(--radius);vertical-align:middle}.app__debug--prod{color:var(--text-dim);background:transparent;border:1px solid var(--border-strong)}:root{color-scheme:dark;--bg: #12131a;--bg-panel: #1b1d27;--bg-raised: #242736;--bg-sunken: #0d0e13;--border: #333748;--overlay: rgba(13, 14, 19, .72);--border-strong: #4a4f66;--text: #e8e9f0;--text-dim: #bcc1d4;--text-faint: #969db4;--accent: #7aa2f7;--accent-dim: #3d5a8f;--ok: #9ece6a;--warn: #e0af68;--danger: #f7768e;--guide: #e0af68;--guide-glow: rgba(224, 175, 104, .45);--element-fire: #f7768e;--element-water: #7dcfff;--element-oil: #c0a36e;--element-heal: #9ece6a;--element-impact: #bcc1d4;--element-lightning: #e5d34a;--status-burning: #ff7a45;--status-wet: #4fb4ff;--status-oiled: #3a2f1a;--status-frozen: #b8ecff;--status-charged: #e5d34a;--status-corroded: #9d7cd8;--monster-slime: #6fcf97;--monster-bigSlime: #3fa66f;--monster-kingSlime: #d4a017;--monster-fireSlime: #e8734a;--monster-waterSlime: #4fa3d8;--monster-mimic: #c8a26b;--monster-guardian-mark: #e06c75;--monster-tier-0: #b48ead;--monster-tier-1: #88c0d0;--monster-tier-2: #ebcb8b;--monster-tier-3: #bf616a;--monster-tier-4: #a3be8c;--monster-tier-5: #d08770;--monster-tier-6: #6f8fc7;--monster-tier-7: #c792ea;--material-grass: #7fb069;--material-water: #4a8db3;--material-oil: #9c8656;--material-sand: #d9b06a;--material-fireCrystal: #d4566d;--material-gel: #6fcf97;--material-denseGel: #3fa66f;--material-slimeCore: #d4a017;--station-kiln: #b08968;--station-idle: #4a4f66;--lane-input: #1a1d29;--lane-station: #22263a;--lane-output: #1a1d29;--flow-produced: #5b8def;--flow-consumed: #d2703a;--arena-floor: #1f2230;--arena-sky: #0d0e13;--arena-circle: #7aa2f7;--arena-dungeon: #c678dd;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--radius: 6px;--text-xs: 11px;--text-sm: 12px;--text-md: 14px;--text-lg: 18px;--text-xl: 24px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;font-size:var(--text-md);line-height:1.5}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}h1,h2,h3{margin:0;font-weight:600}.mono{font-variant-numeric:tabular-nums}:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
