:root{--ink: #2c597e;--focus: #b5eaff;--text: #f4f8fa;--muted: #b9d3da;--box: #313638;--box-edge: #1b1f21;--row: rgba(254, 254, 254, .1);--panel-a: #558891;--panel-b: #407c86;--dark-a: #2d6478;--dark-b: #15495e;--btn-a: #63b0c2;--btn-b: #3f96ad;--btn-c: #2e6c8f;--title: "WMD Blitzkrieg", "Arial Black", Impact, sans-serif;--label: "WMD Serif", "Trebuchet MS", sans-serif;--body: "WMD Ornitons", "Trebuchet MS", system-ui, sans-serif;--arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='9'%3E%3Cpath d='M0 0h17L8.5 9z' fill='%23fff'/%3E%3C/svg%3E")}html{height:100%;background:radial-gradient(ellipse at 50% 30%,var(--dark-a),#0b2534 75%) fixed #0b2534;color:var(--text);font:15px/1.4 var(--body)}body{margin:0;min-height:100%}#app{min-height:100%}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden}.backdrop canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1s ease}.backdrop.ready canvas{opacity:1}.backdrop:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,#04121c00 40%,#04121c99)}.btn{box-sizing:border-box;min-height:36px;padding:9px 16px 7px;font:17px/1 var(--title);color:#fff;text-shadow:0 1px 2px rgba(0,40,60,.85);white-space:nowrap;cursor:pointer;border:2px solid #9ccfde;border-radius:3px;background:linear-gradient(var(--btn-a),var(--btn-b) 65%,var(--btn-c))}html.fe-art .btn{border-color:transparent;border-radius:0;background:none;border-image:var(--art-fe-lobbyaddbutton-01) 14 16 fill / 12px 14px stretch}.btn:hover:not(:disabled),.btn:focus-visible{color:var(--focus)}html.fe-art .btn:hover:not(:disabled),html.fe-art .btn:focus-visible{border-image-source:var(--art-fe-lobbyaddbutton-03)}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;filter:grayscale(1) brightness(.8);opacity:.6}.btn-big{min-height:56px;padding:15px 36px 12px;font-size:27px}html.fe-art .btn-big{border-image:var(--art-fe-lobbybutton-01) 18 20 fill / 16px 18px stretch}html.fe-art .btn-big:hover:not(:disabled),html.fe-art .btn-big:focus-visible{border-image-source:var(--art-fe-lobbybutton-03)}:is(.lobby,.home) :is(input,select){box-sizing:border-box;min-height:34px;padding:6px 9px;font:15px/1.2 var(--body);color:#fff;background-color:var(--box);border:1px solid var(--box-edge);border-radius:2px;box-shadow:inset 0 1px 3px #0000008c}:is(.lobby,.home) select{appearance:none;-webkit-appearance:none;padding-right:30px;cursor:pointer;text-overflow:ellipsis;background-image:var(--art-fe-dropdownarrow-01, var(--arrow));background-repeat:no-repeat;background-position:right 9px center;background-size:14px 8px}:is(.lobby,.home) :is(input,select):focus-visible{outline:2px solid var(--focus);outline-offset:1px}:is(.lobby,.home) :is(input,select):disabled{cursor:not-allowed;color:#d3dcdf;background-color:#3136388c;box-shadow:none}:is(.lobby,.home) select:disabled{background-image:none;padding-right:9px}:is(.lobby,.home) option{color:#fff;background:var(--box)}:is(.lobby,.home) option:disabled{color:#7d8588}input::placeholder{color:#9aa9ae}.panel{position:relative;box-sizing:border-box;padding:12px 16px 16px;border:2px solid rgba(156,207,222,.55);border-radius:4px;background:linear-gradient(var(--panel-a),var(--panel-b));filter:drop-shadow(0 8px 14px rgba(0,12,20,.55))}html.fe-art .panel{border-color:transparent;border-radius:0;background:none;border-image:var(--art-fe-backingbox-05) 26 fill / 22px stretch}.chat-panel{background:linear-gradient(var(--dark-a),var(--dark-b))}html.fe-art .chat-panel{border-image-source:var(--art-hu-bigpaneldark-01)}html.fe-art .teams-panel{border-image-source:var(--art-fe-backingbox-09)}html.fe-art .home-panel,html.fe-art .lobby-wait{border-image-source:var(--art-fe-dialoguepanel-02)}.panel-head{display:flex;align-items:center;gap:10px;margin:0 -6px 12px;padding:8px 14px 5px;font:23px/1.1 var(--title);color:var(--ink);background:#fff;border-radius:2px}html.fe-art .panel-head{background:none;border-radius:0;border-image:var(--art-fe-whiteheaderbox-03) 8 10 fill / 8px 10px stretch}html.fe-art .chat-panel .panel-head{border-image-source:var(--art-fe-globalchat-headerbox-01)}.host-only{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font:bold 15px var(--label);color:#6b4a0e}.host-only:before{content:"";width:18px;height:21px;background:var(--art-fe-padlock-01, linear-gradient(#e2b33c, #b07d16)) center / contain no-repeat;border-radius:3px}.crown{display:inline-block;flex:none;width:24px;height:24px;background:var(--art-hu-crowntiny-01) center / contain no-repeat;vertical-align:middle}html:not(.fe-art) .crown:before{content:"★";color:#ffd84a}.light{display:inline-block;flex:none;width:15px;height:15px;border-radius:50%;background:#c8402e;box-shadow:0 0 6px #c8402e}.light.on{background:#3fc845;box-shadow:0 0 6px #3fc845}html.fe-art .light{width:18px;height:18px;border-radius:0;box-shadow:none;background:var(--art-fe-readylight-01) center / contain no-repeat}html.fe-art .light.on{background-image:var(--art-fe-readylight-02)}.spinner{flex:none;width:26px;height:26px;border:4px solid rgba(255,255,255,.25);border-top-color:var(--focus);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field-row{display:flex;align-items:center;gap:8px}.home{box-sizing:border-box;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px 40px}.home-logo{margin:0;font:64px/1 var(--title);color:#ff9d2e;text-shadow:0 3px 0 #7a1d06,0 6px 14px rgba(0,0,0,.6);text-align:center}html.fe-art .home-logo{height:min(36vh,340px);aspect-ratio:994 / 690;background:var(--art-wormswmd-logo) center / contain no-repeat;filter:drop-shadow(0 8px 14px rgba(0,0,0,.55))}html.fe-art .home-logo span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.home-panel{width:min(760px,100%);background:linear-gradient(#68b0c2,#3691a7)}.home-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.home-tile{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;padding:12px;text-align:center;background:#041e2c47;border-radius:3px;text-shadow:0 1px 2px rgba(0,30,45,.7)}.home-tile p{margin:0}.tile-art{width:100%;max-width:280px;aspect-ratio:2 / 1;background:#041e2c4d center / contain no-repeat;border-radius:6px}.home-tile .field-row{width:100%;justify-content:center}.home-tile input{flex:1 1 auto;min-width:0;max-width:260px}.or label{font:bold 16px var(--label)}.error{color:#ffc1b5;font:bold 15px var(--label)}.error:empty{display:none}.lobby{box-sizing:border-box;max-width:1500px;margin:0 auto;padding:14px 20px 28px}.lobby-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 18px;margin-bottom:14px}.lobby-logo{display:none}html.fe-art .lobby-logo{display:block;grid-row:span 2;width:110px;height:76px;background:var(--art-fe-tinyswitchwmdlogo-01) center / contain no-repeat;filter:drop-shadow(0 3px 6px rgba(0,0,0,.55))}.lobby-head h1{grid-row:span 2;margin:0;font:40px/1 var(--title);color:#fff;text-shadow:0 2px 0 var(--ink),0 4px 12px rgba(0,0,0,.65)}.lobby-head .field-row{grid-column:3;padding:5px 8px 5px 12px;background:#08202cc7;border:1px solid rgba(156,207,222,.4);border-radius:3px}.lobby-head label{min-width:104px;font:bold 15px var(--label);white-space:nowrap}#lobby-link{width:290px;min-width:0;flex:1 1 auto;color:var(--focus)}#my-name{width:170px;min-width:0;flex:1 1 auto}@media(max-width:960px){.lobby-head{grid-template-columns:auto minmax(0,1fr)}.lobby-head h1,html.fe-art .lobby-logo{grid-row:auto}.lobby-head h1{font-size:32px}.lobby-head .field-row{grid-column:1 / -1}}.host-badge{display:inline-flex;align-items:center;gap:4px;font:17px var(--title);color:#ffd84a}.lobby-wait{width:max-content;max-width:calc(100% - 32px);margin:20vh auto 0;display:flex;align-items:center;gap:14px;padding:22px 32px;font:28px var(--title);color:#fff;background:linear-gradient(#68b0c2,#3691a7)}.lobby-grid{display:grid;gap:18px;align-items:start;grid-template-columns:452px minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"settings teams" "chat teams"}.settings-panel{grid-area:settings}.teams-panel{grid-area:teams;container-type:inline-size}.chat-panel{grid-area:chat}@media(min-width:1440px){.lobby-grid{grid-template-columns:452px minmax(0,1fr) 330px;grid-template-rows:auto;grid-template-areas:"settings teams chat"}.chat-panel{align-self:stretch;display:flex;flex-direction:column}.chat-panel .chat{flex:1}.chat-panel .chat-lines{max-height:none}}@media(max-width:960px){.lobby-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"teams" "settings" "chat"}.settings-panel,.chat-panel{justify-self:center;width:min(100%,540px)}}.lobby-preview{position:relative;margin:0 0 12px;line-height:0;border:2px solid rgba(6,24,34,.6);background:#0b1020;box-shadow:0 0 0 1px #9ccfde73}.lobby-preview canvas{display:block;width:100%!important;height:auto!important}.lobby-preview canvas.clickable{cursor:pointer}.lobby-preview:after{content:"";position:absolute;inset:-5px;pointer-events:none;opacity:0;transition:opacity .15s;border:3px solid var(--focus);box-shadow:0 0 12px var(--focus)}html.fe-art .lobby-preview:after{inset:-7px;border:12px solid transparent;box-shadow:none;border-image:var(--art-fe-lobbylandgenhighlight-01) 14 / 12px stretch}.lobby-preview:has(canvas.clickable:hover):after{opacity:1}.settings{display:grid;gap:6px;min-width:0;margin:0;padding:0;border:0}.field{display:grid;grid-template-columns:minmax(104px,34%) minmax(0,1fr);align-items:center;gap:10px;padding:4px 5px 4px 10px;background:var(--row);border-radius:2px}.field>span,.field>label{font:bold 16px var(--label);text-shadow:0 1px 1px rgba(0,0,0,.35)}.field select,.field input[type=number]{width:100%}.field .field-row input{flex:1 1 auto;min-width:0;width:0}.field .btn{min-height:34px;padding:8px 10px 6px;font-size:15px}#seed,.lobby input[type=number]:disabled{appearance:textfield;-moz-appearance:textfield}:is(#seed,.lobby input[type=number]:disabled)::-webkit-inner-spin-button{display:none}.settings:disabled .field{background:#fefefe0d}.slots{display:grid;gap:8px;margin:0;padding:0;list-style:none}.slot{--team: #888;position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:4px 12px;min-height:64px;padding:6px 10px 6px 16px;background:linear-gradient(90deg,color-mix(in srgb,var(--team) 40%,transparent),transparent 60%),var(--row);border-radius:3px}.slot:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:3px 0 0 3px;background:var(--team);box-shadow:0 0 8px var(--team)}.slot.mine{box-shadow:inset 0 0 0 2px #b5eaffcc,0 0 10px #b5eaff59}.slot-open{min-height:52px;background:#041e2c38}.slot-open:before{opacity:.4;box-shadow:none}.slot-avatar{display:grid;place-items:center;width:58px;height:58px}.slot-avatar span{width:56px;height:56px;background:center / contain no-repeat}.slot-ai .slot-avatar{background:linear-gradient(#a7dce0,#63aebd);border:2px solid #9ccfde;border-radius:3px;box-sizing:border-box}html.fe-art .slot-ai .slot-avatar{border:0;border-radius:0;background:var(--art-fe-lobbyplayerbutton-01) center / 100% 100% no-repeat}.slot-ai .slot-avatar span{width:30px;height:40px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.slot-open .slot-avatar span{width:44px;height:44px;opacity:.75}.slot-player{display:flex;align-items:center;gap:6px;min-width:0;font:bold 17px/1.2 var(--label);text-shadow:0 1px 2px rgba(0,0,0,.45)}.slot-player .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-player .tag{font:14px var(--body);color:var(--focus);white-space:nowrap}.slot-player .light{margin-left:2px}.slot-open .slot-player{color:var(--muted)}.slot-fields{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:4px}.slot-field{display:inline-flex;align-items:center;gap:5px}.slot-field select,.slot-field input{min-height:30px!important;padding-top:4px!important;padding-bottom:4px!important}.slot-name input{width:150px}.slot-colour select{width:106px}.slot-speech select,.slot-fort select{width:150px}.slot-extra select{width:126px}.slot-team{color:var(--muted);font-style:italic}.value{box-sizing:border-box;display:inline-block;max-width:180px;min-height:30px;padding:5px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:15px/1.2 var(--body);color:#fff;background:var(--box);border:1px solid var(--box-edge);border-radius:2px}.swatch{flex:none;width:18px;height:18px;background:var(--team);border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 3px #00000080}.speech-icon{flex:none;width:22px;height:20px;background:var(--art-fe-chat-01) center / contain no-repeat}.fort-preview{flex:none;width:40px;height:40px;background:#1d3a44 center / cover no-repeat;border:2px solid #9ccfde;border-radius:2px}.slot-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.slot-actions select{width:152px}@container (max-width: 600px){.slot{grid-template-columns:48px minmax(0,1fr);padding-right:8px}.slot-avatar,.slot-avatar span{width:48px;height:48px}.slot-actions{grid-column:2;justify-content:flex-start}}.lobby-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:14px}.lobby-actions .hint{flex:1 1 220px;margin:0;color:var(--muted);font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.members{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;list-style:none}.members li{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 6px;font:bold 15px var(--label);background:#00000040;border-radius:14px}.members li.offline{opacity:.6}.members .tag{font:13px var(--body);color:var(--focus)}.chat{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0}.chat-lines{box-sizing:border-box;min-height:110px;max-height:220px;overflow:auto;padding:8px 12px;font-size:14px;overflow-wrap:anywhere;background:linear-gradient(#337586,#276879);border:1px solid rgba(156,207,222,.3);border-radius:2px}html.fe-art .chat-lines{border:6px solid transparent;border-radius:0;background:none;border-image:var(--art-fe-globalchat-backingbox-03) 8 fill / 6px stretch}.chat-lines:empty:before{content:"No messages yet.";color:var(--muted);font-style:italic}.lobby .chat input{width:100%;background-color:#29657b;border-color:#1b4b5c}html.fe-art .lobby .chat input{border:4px solid transparent;border-radius:0;box-shadow:none;background:none;border-image:var(--art-fe-globalchat-textbox-01) 6 fill / 4px stretch}.status-line{position:fixed;top:12px;right:12px;z-index:50;box-sizing:border-box;max-width:min(560px,calc(100vw - 24px));padding:8px 16px 6px;font:17px/1.25 var(--title);color:#fff;background:#08202ce6;border:2px solid rgba(156,207,222,.6);border-radius:3px;box-shadow:0 4px 14px #00000080;pointer-events:none}.status-line:empty{display:none}.status-line.error{background:#70160ef0;border-color:#ff8f78}.save-trace{position:fixed;left:8px;bottom:8px;z-index:100;opacity:.7;font-size:12px}.match{position:fixed;inset:0;overflow:hidden;background:#000}.match-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.match-status{position:absolute;top:45%;left:0;right:0;text-align:center;font:30px/1.2 var(--title);text-shadow:0 2px 0 #0b2534,0 0 8px rgba(0,0,0,.9),0 3px 14px rgba(0,0,0,.8);pointer-events:none}.match-hint{display:none;position:absolute;bottom:14px;left:50%;transform:translate(-50%);padding:4px 14px;font:bold 14px var(--label);background:#08202cd1;border:1px solid rgba(156,207,222,.5);border-radius:3px;opacity:.9;pointer-events:none}.hud{position:absolute;inset:0;pointer-events:none;font-family:Trebuchet MS,system-ui,sans-serif}.hud-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.hud-banner{display:none;position:absolute;top:40px;left:50%;transform:translate(-50%);max-width:calc(100% - 80px);padding:11px 44px 8px;font:27px/1.1 var(--title);color:var(--ink);text-align:center;background:#fff;border-radius:2px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}html.fe-art .hud-banner{border:0 solid transparent;border-radius:0;background:none;border-image:var(--art-fe-whiteheaderbox-03) 8 10 fill / 8px 10px stretch}@media(prefers-reduced-motion:reduce){.backdrop canvas,.lobby-preview:after{transition:none}.spinner{animation-duration:3s}}
