.craftWorldBubbleLayer{pointer-events:none;z-index:9;position:fixed;inset:0;overflow:hidden}.craftResourceBubble{transform-origin:50%;will-change:transform;width:128px;height:128px;position:absolute;top:0;left:0}.craftWorldBubbleWobble,.craftWorldBubbleAppearance{transform-origin:50%;width:100%;height:100%;position:relative}.craftResourceBubbleGeometry{transform-origin:50%;width:128px;height:128px;position:relative}.craftResourceBubbleShadow,.craftResourceBubbleShape,.craftResourceBubbleValue{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.craftResourceBubbleShadow{background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.craftResourceBubbleShape--outline{background:#fff}.craftResourceBubbleValue{font-size:0;line-height:0}.craftResourceBubbleGlyphs{display:block;position:relative}.craftResourceBubbleGlyphs>span{background-repeat:no-repeat;display:block;position:absolute}:root{color:#edf6ef;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--glass:#ffffff12;--glass-hover:#ffffff2b;--glass-press:#ffffff40;--float:#fff3;--float-hover:#ffffff57;--float-press:#ffffff70;--float-edge:#ffffff6b;--float-on:#ffffff9e;--float-on-text:#183022;--control:52px;--control-gap:6px;--group-gap:12px;background:#101b18;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit}button:focus-visible,canvas:focus-visible{outline-offset:4px;outline:2px solid #c6efaa}#map{touch-action:none;outline:none;width:100vw;height:100dvh;display:block}.panel{background:var(--float);box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;color:#fff;text-shadow:0 1px 2px #0009;border-radius:14px;position:fixed}:where(button){color:#d6e2d8;background:var(--glass);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:0;border-radius:8px;min-height:44px;padding:12px 15px;font-size:12px;transition:background-color .15s,color .15s,box-shadow .15s}@media (hover:hover){:where(button:not(:disabled):hover){background:var(--glass-hover);color:#fff}}:where(button:not(:disabled):active){background:var(--glass-press)}:where(button:disabled){opacity:.35;cursor:default}.icon-sprite{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.controls{top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));gap:var(--group-gap);align-items:center;max-width:calc(100vw - 24px);display:flex;position:fixed}.camera-views,.camera-zoom{align-items:center;gap:var(--control-gap);flex-shrink:0;display:flex}.controls button,.camera-rotate,.battle-start,.builder-action,.battle-result button{background:var(--float);color:#fff;text-shadow:0 1px 2px #00000080;box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;border-radius:14px}.controls button,.camera-rotate{width:var(--control);height:var(--control);place-items:center;padding:0;display:grid}.controls button{touch-action:manipulation}.controls .icon,.camera-rotate .icon{filter:drop-shadow(0 1px 1.5px #00000080);width:24px;height:24px}.camera-zoom output{text-align:center;color:#fff;text-shadow:0 1px 2px #0009;font-variant-numeric:tabular-nums;min-width:40px;font:600 11px ui-monospace,monospace}@media (hover:hover){.controls button:not(:disabled):hover,.camera-rotate:hover,.battle-start:not(:disabled):hover,.builder-action:not(:disabled):hover,.battle-result button:not(:disabled):hover{background:var(--float-hover)}}.controls button:not(:disabled):active,.battle-start:not(:disabled):active,.builder-action:not(:disabled):active,.battle-result button:not(:disabled):active{background:var(--float-press)}.controls button:disabled{opacity:.45}.camera-views button[aria-pressed=true],.camera-views button[aria-pressed=true]:hover,.controls .view-menu[aria-expanded=true]{background:var(--float-on);color:var(--float-on-text);text-shadow:none}.camera-views button[aria-pressed=true] .icon,.controls .view-menu[aria-expanded=true] .icon{filter:none}.controls .view-menu,#battle-sound .sound-off,#battle-sound[aria-pressed=false] .sound-on{display:none}#battle-sound[aria-pressed=false] .sound-off{display:block}@media (width<=760px),(height<=480px){.controls{top:auto;bottom:calc(max(20px, env(safe-area-inset-bottom)) + var(--control) + var(--group-gap));right:max(20px, env(safe-area-inset-right))}.camera-zoom output{display:none}.controls .view-menu{display:grid}.camera-views{right:0;bottom:calc(100% + var(--control-gap));flex-direction:column-reverse;display:none;position:absolute}.controls.views-open .camera-views{display:flex}#battle-sound{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:fixed}}.camera-rotate{bottom:max(20px, env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed}.camera-rotate-left{right:calc(max(20px, env(safe-area-inset-right)) + var(--control) + var(--control-gap))}.camera-rotate-right{right:max(20px, env(safe-area-inset-right))}.camera-rotate .icon{stroke-width:2px}.camera-rotate[aria-pressed=true]{background:var(--float-on);color:var(--float-on-text)}.camera-rotate[aria-pressed=true] .icon{filter:none}.touch-move,.touch-fire{bottom:max(20px, env(safe-area-inset-bottom));background:var(--float);box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}.touch-move{left:max(20px, env(safe-area-inset-left));width:144px;height:144px}#touch-knob{background:var(--float-on);pointer-events:none;border-radius:50%;width:56px;height:56px}.touch-fire{right:max(20px, env(safe-area-inset-right));width:76px;height:76px}.touch-fire span{pointer-events:none;background:#fff;width:40px;height:40px;-webkit-mask:url(./static/gui/icon_cursor_crosshair.9ebe4e89ceb031965c03.svg) 50%/contain no-repeat;mask:url(./static/gui/icon_cursor_crosshair.9ebe4e89ceb031965c03.svg) 50%/contain no-repeat}.touch-fire[aria-pressed=true]{background:var(--float-on)}.touch-controls-visible .camera-rotate{bottom:calc(max(20px, env(safe-area-inset-bottom)) + 76px + var(--group-gap))}@media (width<=760px),(height<=480px){.touch-controls-visible .controls{bottom:calc(max(20px, env(safe-area-inset-bottom)) + 76px + var(--control) + 2 * var(--group-gap))}}[hidden]{display:none!important}.eyebrow{letter-spacing:4px;color:#c5dfa5;font-size:12px;font-weight:700}.boot{z-index:30;color:#1e1e1e;--tip-u:min(1px, (100vw - 32px) / 736, (45.5dvh - 25px) / 256, 40dvh / 256);--bar-u:min(1px, (100vw - 32px) / 544, 100dvh / 600);background:#eee;position:fixed;inset:0;overflow:hidden}.boot-tip{width:calc(1024 * var(--tip-u));height:calc(512 * var(--tip-u));opacity:0;max-width:none;transition:opacity .125s linear;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.boot-tip[data-loaded]{opacity:1}.boot-tip:not([src]){display:none}.boot-text{font-size:calc(32 * var(--bar-u));white-space:nowrap;margin:0;line-height:0;position:absolute;top:85.5%;left:50%;transform:translate(-50%,-50%)}.boot-text svg{display:block}.boot-bar{width:calc(544 * var(--bar-u));height:calc(32 * var(--bar-u));background:#d2d2d2;position:absolute;top:91%;left:50%;transform:translate(-50%,-50%)}.boot-bar-fill{inset:calc(4 * var(--bar-u));transform-origin:0;background:#fa4517;position:absolute;transform:scaleX(0)}.boot[data-phase=error] .boot-bar-fill{background:#e31819}.boot-error{text-align:center;overflow-wrap:anywhere;width:min(520px,100vw - 32px);font-size:13px;line-height:1.6;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.boot-error p{margin:0 0 14px}#boot-retry{color:#fff;min-height:var(--control);letter-spacing:.4px;background:#e31819;min-width:128px;padding:0 22px;font-size:15px;font-weight:700}@media (hover:hover){#boot-retry:hover{background:#c71516}}.battle-start,.builder-action{--clear:calc(2 * var(--control) + var(--control-gap) + var(--group-gap));left:calc(max(20px, env(safe-area-inset-left)) + var(--clear));right:calc(max(20px, env(safe-area-inset-right)) + var(--clear));bottom:max(20px, env(safe-area-inset-bottom));width:auto;max-width:240px;min-height:var(--control);letter-spacing:.4px;margin:0 auto;font-size:15px;font-weight:700;position:fixed}.builder-action{z-index:5;white-space:normal}.builder-action:disabled{opacity:.7}.building-menu{z-index:10;pointer-events:none;transform-origin:0 0;width:0;height:0;position:fixed;top:0;left:0}.building-move{color:#fff;pointer-events:none;transform-origin:50% 52px;filter:drop-shadow(0 2px 1px #1c2f317a)drop-shadow(0 8px 6px #13201f7a);background:0 0;border:0;border-radius:0;width:200px;height:176px;padding:0;transition:filter .1s;position:absolute;top:0;left:0;transform:translate(-50%,-52px)}.building-move:hover{filter:brightness(1.08)drop-shadow(0 0 8px #41e1db8f)drop-shadow(0 8px 6px #13201f7a);background:0 0}.building-radial-content{transform:scale(calc(var(--building-radial-entrance-scale,1) * var(--building-radial-hover-scale,1)));transform-origin:50% 52px;position:absolute;inset:0}.building-move:hover .building-radial-content{--building-radial-hover-scale:1.075}.building-move:active .building-radial-content{--building-radial-hover-scale:.925}.building-radial-badge-motion,.building-radial-foreground{display:block;position:absolute;inset:0}.building-radial-badge-motion{transform:translate(var(--building-radial-primary-x,0px), var(--building-radial-primary-y,0px))}.building-radial-foreground{transform:translate(var(--building-radial-foreground-x,0px), var(--building-radial-foreground-y,0px))}.building-radial-badge{pointer-events:auto;clip-path:polygon(46.946% 0,99.988% 37.138%,81.316% 94.649%,23.738% 99.996%,.008% 37.796%);width:106px;height:106px;transform:translateX(-50%) rotate(var(--building-radial-primary-angle,0deg));background:#fff;position:absolute;top:-1px;left:50%}.building-radial-badge:before{content:"";clip-path:inherit;background:linear-gradient(145deg,#00a2a7 0 55%,#019398 55% 100%);position:absolute;inset:3px}.building-move-icon{fill:#fff;width:87.5px;height:87.5px;transform:translateX(-50%) rotate(var(--building-radial-foreground-angle,0deg));pointer-events:none;position:absolute;top:8.25px;left:50%}.building-move-label{color:#007f83;clip-path:polygon(0 6.25%,98.55% 0,100% 93.75%,2.325% 100%);width:86.875px;height:45.5px;transform:translateX(-50%) rotate(var(--building-radial-foreground-angle,0deg));pointer-events:auto;background:#fff;justify-content:center;align-items:center;font-size:25px;display:flex;position:absolute;top:81.75px;left:50%}.building-move:focus-visible .building-radial-badge{background:#ffdd78}@media (pointer:coarse){.building-move{pointer-events:auto}}.battle-hud{top:max(20px, env(safe-area-inset-top));left:max(20px, env(safe-area-inset-left));position:fixed}.battle-stats{background:var(--float);width:212px;box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;color:#fff;text-shadow:0 1px 2px #0009;border-radius:10px;padding:9px 14px}.battle-stats p{margin:0 0 4px;font-size:13px;font-weight:600}.battle-counts{font-variant-numeric:tabular-nums;margin:0;font:600 13px/1.55 ui-monospace,monospace}.battle-counts div{justify-content:space-between;gap:12px;display:flex}.battle-counts dt,.battle-counts dd{margin:0}.battle-xp{color:#ff9cef}.hero-respawn{color:#ffe2a3}#boss-health{margin-top:5px}.boss-label{color:#ffc0ae;font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;font:600 13px/1.55 ui-monospace,monospace;display:flex}.boss-label strong{font-weight:inherit}.boss-track{background:#fff;height:6px;margin:4px 0 3px;padding:1px;box-shadow:0 1px 2px #00000059}.boss-track div{height:100%}.building-held .battle-start{display:none}.battle-result{z-index:8;text-align:center;width:min(420px,100vw - 28px);padding:26px;top:38%;left:50%;transform:translate(-50%,-50%)}.battle-result .eyebrow{color:#ffffffd9}.battle-result h2{margin:14px 0;font-size:27px;font-weight:600}.battle-result p{color:#fff;font-size:12px;line-height:1.8}.battle-result button{min-height:var(--control);letter-spacing:.4px;min-width:128px;margin:12px 4px 0;padding:0 22px;font-size:15px;font-weight:700}.battle-world-bars{pointer-events:none;position:fixed;inset:0;overflow:hidden}.enemy-health,.hero-health{background:#fff;width:38px;height:5px;padding:1px;position:absolute;top:0;left:0;box-shadow:0 1px 2px #00000059}.enemy-health div,.hero-health div{height:100%}.enemy-health.boss{width:84px;height:7px}.battle-reticle{background:#fff9;width:96.375px;height:96.375px;position:absolute;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.battle-reticle[data-range=false]{background:#f006}@media (width<=760px),(height<=480px){.battle-hud{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left))}.battle-stats{width:172px;padding:7px 10px}.battle-stats p{font-size:11px}.battle-counts,.boss-label{font-size:11px;line-height:1.5}.boss-track{height:5px}}@media (width<=760px){:where(button){padding:12px 13px}.battle-start,.builder-action{left:max(20px, env(safe-area-inset-left))}}@media (height<=480px){.battle-result{padding:16px;top:50%}}.layout-editor{--editor-actions-height:52px}.editor-entry,.editor-actions button,.editor-compact{background:var(--float);color:#fff;text-shadow:0 1px 2px #00000080;box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;border-radius:14px}.editor-entry{left:max(20px, env(safe-area-inset-left));bottom:max(20px, env(safe-area-inset-bottom));width:var(--control);height:var(--control);place-items:center;padding:0;display:grid;position:fixed}.editor-entry .icon{filter:drop-shadow(0 1px 1.5px #00000080);width:24px;height:24px}.editor-dock{z-index:6;bottom:calc(max(20px, env(safe-area-inset-bottom)) + var(--editor-actions-height) + 14px);pointer-events:none;width:min(384px,100vw - 32px);position:fixed;left:50%;transform:translate(-50%)}.editor-panel{background:var(--float-on);color:var(--float-on-text);box-shadow:inset 0 0 0 1px var(--float-edge), 0 2px 10px #00000024;pointer-events:auto;overscroll-behavior:contain;border-radius:14px;max-height:calc(100dvh - 250px);padding:10px;overflow:auto}.editor-owners,.editor-tools{gap:8px;display:grid}.editor-owners{border-bottom:1px solid #18302226;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px;padding-bottom:10px}.editor-tools{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-tile{aspect-ratio:1;min-width:0;min-height:0;color:var(--float-on-text);white-space:normal;background:#ffffff80;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:3px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #1830221f}.editor-tile img,.editor-compact img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 2px #00000059)}.editor-tile img{width:58%;height:58%}.editor-tile span{font-size:10px;font-weight:700;line-height:1.1}.editor-tile small,.editor-compact small{font-size:9px;font-weight:600;line-height:1.2}.editor-tile:not(:disabled):active{background:#ffffffe6}.editor-tile[aria-pressed=true],.editor-tile[aria-pressed=true]:hover{box-shadow:inset 0 0 0 2px var(--float-on-text);background:#ffffffeb}.editor-tile:disabled{opacity:.45}.editor-tile:disabled img{filter:grayscale()}.editor-tile.is-empty img{opacity:.4}.editor-badge{stroke-width:2.4px;border-radius:50%;width:16px;height:16px;padding:1px;position:absolute;top:6px;right:6px;box-shadow:inset 0 0 0 1.5px}.editor-compact{pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;width:76px;height:76px;margin:0 auto;padding:5px;display:flex}.editor-compact img{width:52px;height:52px}.editor-actions{left:50%;bottom:max(20px, env(safe-area-inset-bottom));gap:8px var(--group-gap);z-index:6;flex-wrap:wrap;display:flex;position:fixed;transform:translate(-50%)}.editor-icon-actions,.editor-commit-actions{gap:8px;display:flex}.editor-actions button{height:var(--control);min-width:76px;font-size:14px;font-weight:700}.editor-actions :is(.editor-delete,.editor-saved){width:var(--control);flex:none;place-items:center;min-width:0;padding:0;display:grid}.editor-icon-actions .icon{filter:drop-shadow(0 1px 1.5px #00000080);width:24px;height:24px}.editor-actions .editor-delete[aria-pressed=true],.editor-actions .editor-delete[aria-pressed=true]:hover{background:var(--float-on);color:var(--float-on-text);text-shadow:none}.editor-delete[aria-pressed=true] .icon{filter:none}.editor-message{color:#fff;z-index:7;background:#973c42;border-radius:10px;width:min(380px,90vw);padding:12px;font-size:13px;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}.editing-layout .battle-start{display:none}@media (hover:hover){.editor-entry:not(:disabled):hover,.editor-actions button:not(:disabled):hover,.editor-compact:hover{background:var(--float-hover)}.editor-tile:not(:disabled):not([aria-pressed=true]):hover{background:#ffffffbf}}@media (width<=760px),(height<=480px){.editor-actions{left:max(12px, env(safe-area-inset-left));gap:6px;right:142px;transform:none}.editor-commit-actions{flex:1;gap:6px;min-width:min(100%,190px)}.editor-actions button{flex:1;min-width:0;padding:0 8px;font-size:12px}}@media (width<=760px){body:has(.editor-entry:not([hidden])) .battle-start{left:calc(max(20px, env(safe-area-inset-left)) + var(--control) + var(--group-gap));white-space:normal;padding:0 8px}}@media (height<=480px){.editor-dock{width:340px;left:45%}.editor-panel{max-height:calc(100dvh - 100px)}.editor-owners .editor-tile{aspect-ratio:auto;height:56px}}.formation-panel{inset:auto 0 calc(max(20px, env(safe-area-inset-bottom)) + var(--editor-actions-height) + 14px);width:min(540px,100vw - 24px);max-height:calc(100dvh - var(--editor-actions-height) - 60px);box-sizing:border-box;overscroll-behavior:contain;color:var(--float-on-text);box-shadow:inset 0 0 0 1px var(--float-edge), 0 4px 24px #0003;background:#f0f5f1f7;border:0;border-radius:14px;margin:0 auto;padding:16px;position:fixed;overflow:auto}.formation-panel::backdrop{background:#0c1e1847}.formation-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.formation-heading h2{margin:0;font-size:17px}.formation-panel button{color:var(--float-on-text);white-space:normal;overflow-wrap:anywhere;background:#ffffff8c;min-height:44px;font-size:13px}.formation-panel button:disabled{opacity:.45}.formation-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.formation-panel .formation-slot{text-align:left;flex-direction:column;align-items:stretch;gap:5px;min-width:0;padding:8px;display:flex}.formation-slot[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--float-on-text);background:#ffffffeb}.formation-slot canvas{aspect-ratio:26/15;border-radius:5px;width:100%}.formation-slot time,.formation-slot small{font-size:10px;line-height:1.4}.formation-placeholder{color:#47675b;place-items:center;min-height:85px;display:grid}.formation-commands{gap:8px;margin-top:12px;display:flex}.formation-commands button{flex:1;padding:10px 6px}.formation-share{border-top:1px solid #274c3926;margin-top:14px;padding-top:12px;font-size:12px}.formation-share h3{margin:0;font-size:14px}.formation-share p{color:#47675b;margin:3px 0 0;line-height:1.4}.formation-panel textarea{box-sizing:border-box;resize:vertical;color:#183427;overflow-wrap:anywhere;background:#ffffffe6;border:1px solid #527366;border-radius:8px;width:100%;min-height:100px;max-height:35dvh;margin-top:8px;padding:10px;font:16px/1.4 ui-monospace,monospace;display:block}.formation-message{margin:12px 0 0;font-size:13px;line-height:1.45}.formation-message.is-error{color:#8d202c}@media (width<=420px){.formation-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
