:root{color:var(--ui-primary-text);background:var(--world-background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;min-width:320px;min-height:100vh;height:100svh;overflow:hidden;background:var(--world-background)}button{font:inherit}.app-shell{width:min(100%,680px);height:100svh;min-height:0;margin:0 auto}.game-panel{position:relative;height:100%;min-height:0;overflow:hidden;background:var(--world-background-accent);box-shadow:0 18px 70px var(--ui-shadow-strong)}#game,#ui,.ui-root{position:absolute;top:0;right:0;bottom:0;left:0}#game{isolation:isolate;touch-action:none}.three-world-canvas{position:absolute;z-index:0;display:block;pointer-events:none;touch-action:none}#game>canvas:not(.three-world-canvas){position:relative;z-index:1}#game:before,#game:after{content:"";position:absolute;z-index:2;left:0;right:0;height:17%;pointer-events:none}#game:before{top:0;background:linear-gradient(180deg,rgb(2 14 22 / .32),transparent)}#game:after{bottom:0;background:linear-gradient(0deg,rgb(2 14 22 / .28),transparent)}#ui,.ui-root{pointer-events:none}.ui-root{overflow:clip}canvas{display:block;touch-action:none}.hud-top{position:absolute;z-index:12;top:max(9px,env(safe-area-inset-top));left:10px;right:10px;display:flex;align-items:center;gap:8px;pointer-events:none}.icon-button,.dock-item,#context-action,.sheet-close{border:0;color:var(--ui-primary-text);cursor:pointer;pointer-events:auto}.icon-button{width:30px;height:30px;border-radius:10px;background:var(--ui-surface);border:1px solid var(--ui-border);font-size:1.5rem;line-height:1;pointer-events:auto}.lineage-block{display:grid;gap:1px;min-width:82px;padding:5px 8px;border-radius:10px;background:var(--ui-surface);border:1px solid var(--ui-border)}.lineage-block span,.vital span,.storage-readout span{color:var(--ui-secondary-text);font-size:.48rem;letter-spacing:.13em;font-weight:780}.lineage-block strong{color:var(--ui-primary-text);font-size:.72rem;font-weight:720;max-width:106px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.state-chip,.connection{border:1px solid var(--ui-border);border-radius:999px;padding:5px 7px;background:var(--ui-surface);color:var(--ui-secondary-text);font-size:.58rem;white-space:nowrap}.state-chip{margin-left:auto;text-transform:uppercase;letter-spacing:.07em}.connection{display:none}.connection.live{border-color:var(--ui-accent);color:var(--ui-accent-strong);box-shadow:0 0 14px var(--ui-shadow)}.connection.error{border-color:var(--ui-warning);color:var(--ui-warning)}.connection.pending{border-color:var(--ui-info);color:var(--ui-secondary-text)}.vitals-strip{position:absolute;z-index:12;top:max(48px,calc(env(safe-area-inset-top) + 42px));left:12px;right:12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 82px;gap:6px;pointer-events:none}.vital,.storage-readout{min-width:0;min-height:38px;padding:5px 7px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.vital{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 5px;gap:2px 4px}.vital.stat-help{width:100%;color:inherit;text-align:left;cursor:pointer;pointer-events:auto}.stat-help{border:0;background:transparent;color:inherit;min-width:0;cursor:pointer;pointer-events:auto}.vital.stat-help:active,.storage-readout .stat-help:active{background:var(--ui-surface-strong)}.vital b{color:var(--ui-primary-text);font-size:.67rem;font-variant-numeric:tabular-nums}.vital i,.storage-readout i{display:block;grid-column:1 / -1;height:4px;border-radius:999px;overflow:hidden;background:var(--ui-surface-strong)}.vital em,.storage-readout em{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--ui-accent),var(--ui-accent-strong));transition:width .35s ease}.vital:nth-child(2) em{background:linear-gradient(90deg,var(--ui-energy),var(--ui-accent-strong))}.storage-readout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:3px 5px}.storage-readout .stat-help{color:var(--ui-secondary-text);letter-spacing:.06em;font-size:.5rem;padding:0;text-align:left}.storage-readout b{color:var(--ui-primary-text);font-size:.57rem}.storage-readout em{background:linear-gradient(90deg,var(--ui-energy),var(--ui-accent))}.stat-tip{position:absolute;z-index:18;top:max(94px,calc(env(safe-area-inset-top) + 88px));left:12px;right:12px;max-width:286px;padding:8px 10px;border:1px solid var(--ui-border-bright);border-radius:10px;color:var(--ui-primary-text);background:var(--ui-surface-elevated);box-shadow:0 8px 24px var(--ui-shadow);font-size:.64rem;line-height:1.35;opacity:0;transform:translateY(-5px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.stat-tip.visible{opacity:1;transform:translateY(0)}.world-hint{position:absolute;z-index:16;left:max(12px,env(safe-area-inset-left));top:max(102px,calc(env(safe-area-inset-top) + 94px));max-width:min(230px,calc(100% - 24px));padding:7px 10px;border:1px solid var(--ui-border);border-radius:12px;color:var(--ui-primary-text);background:var(--ui-surface-elevated);box-shadow:0 7px 22px var(--ui-shadow);font-size:.6rem;line-height:1.3;text-align:left;white-space:pre-line;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease}.world-hint.visible{opacity:1;transform:translateY(0)}.resource-callout{position:absolute;z-index:17;display:grid;grid-template-columns:50px minmax(0,1fr) 22px;gap:5px 9px;width:min(254px,calc(100% - 24px));max-width:calc(100% - 24px);padding:9px 8px 9px 9px;border:1px solid color-mix(in srgb,var(--ui-info) 70%,var(--ui-border));border-radius:13px;color:var(--ui-primary-text);background:color-mix(in srgb,var(--ui-surface-elevated) 96%,transparent);box-shadow:0 9px 28px var(--ui-shadow);font-size:.54rem;line-height:1.2;overflow-wrap:anywhere;opacity:0;pointer-events:none;transform:translate(8px,-50%) scale(.96);transform-origin:0 50%;transition:opacity .16s ease,transform .16s ease}.resource-callout:before{content:"";position:absolute;left:-18px;top:50%;width:17px;border-top:1px solid var(--ui-info);opacity:.72}.resource-callout.visible{opacity:1;transform:translate(8px,-50%) scale(1)}.resource-callout__icon{grid-row:1 / span 2;display:block;align-self:center;width:50px;height:58px;border:1px solid var(--ui-info);border-radius:10px;object-fit:contain;background:#05192294;box-shadow:inset 0 0 15px #48d4e021}.resource-callout__icon[data-kind=organic_matter]{border-color:var(--ui-energy)}.resource-callout__icon[data-kind=unknown]{filter:saturate(.45)}.resource-callout__title{align-self:end;font-size:.72rem;letter-spacing:.035em}.resource-callout__close{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;color:var(--ui-secondary-text);background:var(--ui-surface-strong);line-height:1;pointer-events:auto;cursor:pointer}.resource-callout__rows{grid-column:2 / 4;display:grid;gap:3px}.resource-callout__row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:5px}.resource-callout__row span:first-child{color:var(--ui-muted-text);font-size:.48rem;text-transform:lowercase}.resource-callout__row span:last-child{color:var(--ui-primary-text)}.resource-context{position:absolute;z-index:16;left:max(148px,calc(env(safe-area-inset-left) + 144px));bottom:calc(157px + env(safe-area-inset-bottom));width:58px;height:58px;pointer-events:none;opacity:0;transform:translateY(7px) scale(.8);transform-origin:50% 100%;transition:transform .16s ease,opacity .16s ease}.resource-context.visible{opacity:1;transform:scale(1);pointer-events:auto}#context-action{position:relative;display:grid;place-items:center;width:50px;height:50px;margin:0 auto;padding:0;border:1px solid var(--ui-accent);border-radius:50%;background:#051b23cc;color:var(--ui-primary-text);box-shadow:0 0 0 4px var(--ui-shadow),0 7px 20px var(--ui-shadow);touch-action:none}#context-action:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:2px solid transparent;border-top-color:var(--ui-accent-strong);border-right-color:var(--ui-info);border-radius:50%;opacity:0;pointer-events:none}#context-action img{width:43px;height:43px;border-radius:50%;object-fit:contain;pointer-events:none}#context-action span{position:absolute;top:51px;left:50%;padding:2px 5px;border-radius:5px;color:var(--ui-primary-text);background:var(--ui-surface);font-size:.42rem;font-weight:800;letter-spacing:.05em;transform:translate(-50%);white-space:nowrap;pointer-events:none}#context-action.absorbing{background:radial-gradient(circle at 35% 28%,var(--ui-accent),var(--ui-surface-strong) 70%);box-shadow:0 0 0 5px var(--ui-shadow),0 0 18px var(--ui-shadow);animation:absorb-pulse .85s ease-in-out infinite}#context-action.absorbing:before{opacity:.9;animation:absorb-ring .7s linear infinite}#context-action[disabled]{border-color:var(--ui-border);background:var(--ui-surface-strong);color:var(--ui-muted-text)}@keyframes absorb-pulse{50%{transform:scale(.91)}}.movement-control{--thumb-x: 0px;--thumb-y: 0px;position:absolute;z-index:15;left:max(8px,calc(env(safe-area-inset-left) + 4px));bottom:calc(66px + env(safe-area-inset-bottom));width:124px;height:116px;border:0;background:transparent;touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto}.movement-control:before{content:"";position:absolute;left:50%;top:50%;width:88px;height:88px;border:1px solid rgb(142 232 223 / .42);border-radius:50%;background:radial-gradient(circle at 38% 32%,#4ab5b129,#0418217a 72%);box-shadow:0 8px 24px #00080e57,inset 0 0 22px #4adccc0f;transform:translate(-50%,-50%);pointer-events:none}.movement-control:after{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;border:1px solid var(--ui-info);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.72);pointer-events:none}.movement-control.active:after{opacity:.26;animation:control-ripple .38s ease-out}.movement-control__core{position:absolute;left:50%;top:50%;width:24px;height:24px;border:1px solid var(--ui-accent-strong);border-radius:50%;background:radial-gradient(circle at 38% 30%,#a9ffef47,#1e5b5e7a);box-shadow:0 0 14px #60eddb33;transform:translate(calc(-50% + var(--thumb-x)),calc(-50% + var(--thumb-y)));transition:transform .08s ease-out,opacity .1s ease;pointer-events:none;opacity:0}.movement-control.active .movement-control__core,.movement-control.impulsing .movement-control__core{opacity:.82}.movement-control.braking .movement-control__core{border-color:var(--ui-energy);box-shadow:0 0 14px color-mix(in srgb,var(--ui-energy) 46%,transparent)}.movement-control.impulsing .movement-control__core{animation:control-impulse .32s ease-out}.movement-control.hinting:before{box-shadow:0 0 9px color-mix(in srgb,var(--ui-accent) 54%,transparent);animation:control-silhouette .86s ease-out}@keyframes absorb-ring{to{transform:rotate(360deg)}}@keyframes control-ripple{to{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}@keyframes control-impulse{0%{transform:translate(calc(-50% + var(--thumb-x)),calc(-50% + var(--thumb-y))) scale(.78);box-shadow:0 0 4px #60eddb33}45%{transform:translate(calc(-50% + var(--thumb-x)),calc(-50% + var(--thumb-y))) scale(1.16);box-shadow:0 0 20px #60eddb94}to{transform:translate(calc(-50% + var(--thumb-x)),calc(-50% + var(--thumb-y))) scale(1)}}@keyframes control-silhouette{0%,to{opacity:0;transform:scale(.86)}30%,58%{opacity:.62;transform:scale(1)}}.bottom-dock{position:absolute;z-index:14;left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));height:55px;display:grid;grid-template-columns:repeat(var(--dock-count, 4),1fr);padding:4px;border:1px solid var(--ui-border);border-radius:17px;background:var(--ui-surface-elevated);box-shadow:0 8px 26px var(--ui-shadow);pointer-events:auto}.dock-item[hidden]{display:none}.dock-item{display:grid;place-items:center;gap:1px;border-radius:12px;background:transparent;color:var(--ui-secondary-text);font-size:.53rem}.dock-item span{font-size:1rem;line-height:.82;color:var(--ui-info)}.dock-item.active{background:var(--ui-surface-strong);color:var(--ui-primary-text)}.dock-item.active span{color:var(--ui-accent-strong)}.bottom-sheet{position:absolute;z-index:20;left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));min-height:160px;padding:20px 14px 14px;border:1px solid var(--ui-border-bright);border-radius:18px;background:var(--ui-surface-elevated);box-shadow:0 -12px 36px var(--ui-shadow);transform:translateY(calc(100% + 20px));transition:transform .25s ease;pointer-events:auto}.bottom-sheet.open{transform:translateY(0)}.sheet-close{position:absolute;top:5px;right:8px;width:26px;height:26px;border-radius:8px;background:var(--ui-surface-strong);font-size:1.15rem}.sheet-title{margin:0 0 8px;color:var(--ui-primary-text);font-size:.88rem}.sheet-copy{margin:0;color:var(--ui-secondary-text);font-size:.68rem;line-height:1.4}.sheet-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}.sheet-stat{padding:7px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-strong);color:var(--ui-primary-text);font-size:.66rem;text-align:left}button.sheet-stat{cursor:pointer}button.sheet-stat:active{background:var(--ui-border)}.sheet-stat small{display:block;margin-bottom:2px;color:var(--ui-muted-text);font-size:.49rem;text-transform:uppercase;letter-spacing:.07em}.division-readiness{display:grid;gap:6px;margin-top:10px;padding:9px 10px;border:1px solid var(--ui-border);border-radius:11px;background:#03121b6b}.division-readiness.ready{border-color:var(--ui-accent);box-shadow:inset 0 0 16px #63e1c30f}.division-readiness.in_progress{border-color:var(--ui-info)}.division-readiness__title{justify-self:start;padding:0;border:0;background:transparent;color:var(--ui-primary-text);font-size:.59rem;font-weight:820;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}.division-readiness__values{display:grid;grid-template-columns:1fr 1fr;gap:8px}.division-readiness p{display:flex;justify-content:space-between;gap:6px;margin:0;color:var(--ui-secondary-text);font-size:.58rem}.division-readiness b,.division-readiness strong{color:var(--ui-primary-text);font-weight:760}.division-readiness__status{padding-top:5px;border-top:1px solid var(--ui-border)}.division-readiness.ready .division-readiness__status strong{color:var(--ui-accent-strong)}.division-action{width:100%;margin-top:10px;padding:9px 12px;border:1px solid var(--ui-accent);border-radius:10px;background:linear-gradient(90deg,var(--ui-surface-strong),var(--ui-border));color:var(--ui-primary-text);font-size:.68rem;font-weight:800;letter-spacing:.09em;cursor:pointer}.division-action:active{transform:scale(.98);background:var(--ui-border)}.login-error{position:absolute;z-index:30;inset:20% 14px auto;padding:16px;border:1px solid var(--ui-border-bright);border-radius:15px;background:var(--ui-surface-elevated);box-shadow:0 12px 34px var(--ui-shadow);color:var(--ui-primary-text);pointer-events:auto}.login-error h1{margin:0 0 7px;font-size:1rem}.login-error p{margin:0 0 5px;color:var(--ui-secondary-text);font-size:.7rem;line-height:1.4}.extinction-state{position:absolute;z-index:18;left:18px;right:18px;bottom:calc(76px + env(safe-area-inset-bottom));display:grid;gap:7px;padding:13px;border:1px solid color-mix(in srgb,var(--ui-danger) 58%,var(--ui-border));border-radius:14px;background:color-mix(in srgb,var(--ui-surface-elevated) 94%,transparent);box-shadow:0 10px 28px var(--ui-shadow);pointer-events:auto}.extinction-state[hidden]{display:none}.extinction-state strong{color:var(--ui-primary-text);font-size:.7rem;letter-spacing:.09em}.extinction-state span{color:var(--ui-secondary-text);font-size:.64rem}.extinction-action{justify-self:start;padding:8px 10px;border:1px solid var(--ui-accent);border-radius:9px;background:var(--ui-surface-strong);color:var(--ui-primary-text);font-size:.58rem;font-weight:800;letter-spacing:.06em}@media(min-width:700px){.app-shell{height:100svh;padding:10px 0}.game-panel{height:calc(100svh - 20px);border-radius:24px}.bottom-dock{left:16px;right:16px}.resource-context{left:max(164px,calc(env(safe-area-inset-left) + 160px))}.movement-control{left:24px}}@media(max-width:360px){.lineage-block{min-width:64px}.lineage-block strong{max-width:68px}.vitals-strip{grid-template-columns:1fr 1fr}.storage-readout{grid-column:1 / -1;grid-template-columns:auto auto 1fr;min-height:27px}.storage-readout i{grid-column:3}.movement-control{width:116px}.world-hint{top:max(128px,calc(env(safe-area-inset-top) + 120px))}}
