#title-container{position:fixed;top:20%;left:0;right:0;display:flex;justify-content:center;align-items:center;pointer-events:none}#title-graphic{width:auto;max-width:1024px;height:auto}#logo-container{position:fixed;bottom:10px;right:10px;pointer-events:auto;transition:all .2s ease-in-out}#logo-graphic{width:50px;height:auto}#logo-container:hover{transform:scale(1.1) rotate(7deg)}#title-graphic{filter:drop-shadow(0px 4px 4px rgba(0,0,0,.5))}#main-menu{position:fixed;top:85%;left:50%;transform:translate(-50%,-50%);display:flex;gap:20px;flex-wrap:wrap;width:100%;max-width:90%;justify-content:center}#main-menu button{transform:skew(-10deg);padding:15px 30px;font-size:24px;font-family:Oswald,sans-serif;text-transform:uppercase;font-weight:400;color:#555;border:2.5px solid #888;background-color:#fff;border-radius:0;position:relative;box-shadow:-4px 4px #888;transition:all .2s ease-in-out;overflow:hidden}.play-button-sheen{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.7) 40%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.7) 60%,transparent 75%);transform:translate(-200%) skew(-10deg);pointer-events:none;z-index:1;animation:button-sheen 2.5s ease-out}#main-menu button.disabled{color:#aaa;background-color:#f0f0f0;border-color:#ccc;cursor:not-allowed;box-shadow:none;pointer-events:none;opacity:.6}#main-menu button:hover{color:#000;font-weight:500;transform:translateY(-3px) skew(-10deg);border:2.5px solid #333;box-shadow:-5px 8px #333}#main-menu button.clicked{animation:play-button-complete 1.3s ease-out forwards;z-index:1000;pointer-events:none}@keyframes play-button-complete{0%{transform:skew(-10deg) scale(1) translateY(0);background:linear-gradient(135deg,#fff,#f0f0f0,#fff);border-color:#888;color:#555;box-shadow:-4px 4px #888;opacity:1}15%{transform:skew(-10deg) scale(1.15) translateY(0);background:linear-gradient(135deg,#4ade80,#22c55e,#16a34a);border-color:#15803d;color:#fff;box-shadow:-6px 6px #15803d,0 0 20px #22c55e99}30%{transform:skew(-10deg) scale(1.12) translateY(0);background:linear-gradient(135deg,#3b82f6,#2563eb,#1d4ed8);border-color:#1e40af;color:#fff;box-shadow:-6px 6px #1e40af,0 0 25px #3b82f6b3}45%{transform:skew(-10deg) scale(1.18) translateY(0);background:linear-gradient(135deg,#8b5cf6,#7c3aed,#6d28d9);border-color:#5b21b6;color:#fff;box-shadow:-6px 6px #5b21b6,0 0 30px #8b5cf6cc}60%{transform:skew(-10deg) scale(1.2) translateY(0);background:linear-gradient(135deg,#8b5cf6,#7c3aed,#6d28d9);border-color:#5b21b6;color:#fff;box-shadow:-6px 6px #5b21b6,0 0 30px #8b5cf6cc}75%{transform:skew(-10deg) scale(1.4) translateY(-8px);opacity:1}90%{transform:skew(-10deg) scale(.8) translateY(12px);opacity:.8}to{transform:skew(-10deg) scale(0) translateY(30px);opacity:0}}@keyframes button-sheen{0%{transform:translate(-200%) skew(-10deg)}to{transform:translate(200%) skew(-10deg)}}#game-menu{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px}#scorecard button,#game-menu button{padding:10px 15px;font-family:Oswald,sans-serif;font-size:24px;font-weight:500;border-radius:2px;border:2px solid #666;background-color:#fff;box-shadow:-0px 2px #888a;text-transform:uppercase;color:#444;cursor:pointer;transition:transform .2s,background-color .2s}#scorecard button:hover,#game-menu button:hover{color:#000;background-color:#bee7f0;transform:scale(1.05)}#scorecard button:disabled,#game-menu button:disabled{opacity:.8;cursor:not-allowed;transform:none;background-color:#eee;border-color:#999;color:#a2a2a2}#scorecard button:disabled:hover,#game-menu button:disabled:hover{background-color:#eee;transform:none}.btn-done-container{position:relative;display:inline-flex;flex-direction:column;align-items:center}.btn-done-warning{position:absolute;bottom:100%;margin-bottom:8px;padding:4px 8px;background-color:#fef2f2;border:1px solid #fee2e2;border-radius:4px;color:#dc2626;font-family:Oswald,sans-serif;font-size:16px;font-weight:400;white-space:nowrap;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s;pointer-events:none;display:flex;align-items:center;gap:4px}.btn-done-warning:before{content:"⚠️";font-size:16px}.btn-done-container:hover .btn-done-warning{opacity:0}.btn-done-container:has(button:disabled) .btn-done-warning{opacity:1;transform:translateY(0)}#toolbar{background-color:#ffffffd9;border-radius:6px;box-shadow:0 4px 6px #0000001a;padding:8px;display:flex;flex-direction:column;gap:20px;backdrop-filter:blur(5px) saturate(2.2) contrast(2);-webkit-backdrop-filter:blur(5px) saturate(2.2) contrast(2)}#toolbar.toolbar--floating{position:fixed;top:25%;left:16px}#toolbar.toolbar--inline{position:static}#toolbar.horizontal{flex-direction:row}.tool-section{display:grid;grid-template-columns:repeat(2,min-content);gap:4px;position:relative}#toolbar.horizontal{gap:14px}#toolbar.horizontal .tool-section{display:grid;grid-template-rows:repeat(2,min-content);grid-auto-flow:column;gap:4px}#toolbar.horizontal .tool-section:not(:last-child):after{position:absolute;top:50%;right:-4px;transform:translateY(-50%);width:1px;height:12px;background:repeating-linear-gradient(180deg,#d1d5db 0px,#d1d5db 2px,transparent 2px,transparent 4px)}#toolbar button{padding:0;border:none;height:30px;width:30px;border-radius:4px;cursor:pointer;transition:background-color .3s;font-size:16px;font-weight:700;outline:none}#toolbar button.active{color:#fff;background-color:color-mix(in srgb,var(--local-player-color, rgb(127, 202, 255)) 65%,rgb(255,255,255))}#toolbar button.active:hover{color:#fff;background-color:color-mix(in srgb,var(--local-player-color, rgb(127, 202, 255)) 90%,rgb(255,255,255))}#toolbar button:not(.active){background-color:#f3f4f6;color:#4b5563}#toolbar button:not(.active):hover{background-color:#c9ccd3}#toolbar button.disabled{background-color:#edeef1;cursor:not-allowed;opacity:.25;pointer-events:none}#toolbar button.disabled img{filter:grayscale(35%) contrast(50%)}#toolbar button.remote-selected:not(.active){background-color:color-mix(in srgb,var(--remote-color, #999) 25%,#f3f4f6)}#toolbar button.remote-selected:not(.active):hover{background-color:color-mix(in srgb,var(--remote-color, #999) 25%,#c9ccd3)}#toolbar button.remote-multiple{filter:grayscale(35%) contrast(70%)}#toolbar button.remote-multiple:not(.active){background-color:#f0f0f0}#toolbar button.remote-multiple:not(.active):hover{background-color:#e0e0e0}.toolbar-drag-ghost{position:fixed;pointer-events:none;z-index:10000;opacity:.6;transform:translate(-50%,-50%);transition:none;width:32px;height:32px}#world-browser{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:100;overflow-y:auto;padding:80px 40px 40px;font-family:Oswald,sans-serif}#world-browser.animate-in{opacity:0;animation:world-browser-fade-in .4s ease-out .8s forwards}@keyframes world-browser-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.world-browser-profile-card{max-width:600px;margin:0 auto 40px;background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border:2px solid rgba(255,255,255,.2);border-radius:20px;padding:16px 20px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;gap:14px;position:relative;isolation:isolate;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.world-browser-profile-card:hover{transform:translateY(-4px) scale(1.02);border-color:#fff6;background:linear-gradient(135deg,#ffffff2e,#ffffff1a);box-shadow:0 8px 24px #0000004d}.world-browser-profile-card.pressed{transform:scale(.97) translateY(0);transition:transform .1s ease-out}.profile-card-avatar{width:48px;height:48px;border-radius:50%;border:3px solid rgba(255,255,255,.5);box-shadow:0 2px 8px #0000004d,inset 0 2px 4px #ffffff4d;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.world-browser-profile-card:hover .profile-card-avatar{transform:rotate(5deg) scale(1.1)}.profile-card-avatar-icon{font-size:36px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4));position:relative;z-index:1}.world-browser-avatar-emoji{filter:drop-shadow(-.5px -2px 0px rgba(255,255,255,.4)) drop-shadow(.5px 2px 1px rgba(0,0,0,.5))}.player-badge-emoji{font-size:12px;margin-right:5px;filter:none}.profile-card-avatar:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:inherit;opacity:.4;animation:avatar-pulse 2s ease-in-out infinite}@keyframes avatar-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.15);opacity:0}}.profile-card-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.profile-card-name{font-size:18px;font-weight:600;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-card-status{font-size:12px;color:#ffffffbf;text-transform:uppercase;letter-spacing:.8px;font-weight:500;display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.profile-card-status.guest .status-dot{background:linear-gradient(135deg,#ffc107,#ff9800);box-shadow:0 0 8px #ffc10799;animation:status-glow 2s ease-in-out infinite}.profile-card-status.signed-in .status-dot{background:linear-gradient(135deg,#4caf50,#66bb6a);box-shadow:0 0 8px #4caf5099}@keyframes status-glow{0%,to{box-shadow:0 0 8px #ffc10799}50%{box-shadow:0 0 16px #ffc107e6}}.profile-card-action{font-size:20px;color:#fff6;transition:all .3s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}.world-browser-profile-card:hover .profile-card-action{color:#ffffffe6;transform:translate(6px) scale(1.2)}@media(max-width:640px){.world-browser-profile-card{max-width:100%;margin:0 16px 32px;padding:14px 18px}.profile-card-avatar{width:42px;height:42px}.profile-card-name{font-size:16px}}.world-browser-section{margin-bottom:40px;max-width:1200px;margin-left:auto;margin-right:auto}.world-browser-section-header{display:flex;align-items:center;margin-bottom:16px}.world-browser-section-title{font-size:28px;font-weight:500;color:#fff;text-transform:uppercase;letter-spacing:1px;margin:0}.world-browser-section-divider{flex-grow:1;height:2px;background:#ffffff4d;margin-left:16px}.world-browser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px;max-width:1200px;margin:0 auto}.world-browser-card{aspect-ratio:16/9;background:#aeb9c6;border-radius:8px;overflow:hidden;transition:all .2s ease-out;box-shadow:0 4px 6px #0003;position:relative;isolation:isolate}.world-browser-card.create-new{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff1a;border:6px dashed rgba(255,255,255,.4)}.world-browser-card.create-new .create-icon{font-size:150px;color:#fff}.world-browser-card.create-new .create-text{color:#fff;font-size:24px;font-weight:500;text-align:center}.world-browser-card.create-new .create-icon:before{content:"+"}.world-browser-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 12px #0000004d}.world-browser-card:hover .world-browser-thumb{background-size:115%}.world-browser-card.pressed{transform:scale(.97);transition:transform .1s ease-out}.world-browser-card.pressed .world-browser-thumb{background-size:100%}@keyframes sheen{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sheen-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.5) 50%,transparent 60%);transform:translate(-150%);animation:sheen .4s ease-out;pointer-events:none;z-index:10;border-radius:inherit}@keyframes nintendo-bounce{0%{transform:scale(1) rotate(0)}20%{transform:scale(1.15) rotate(-2deg)}40%{transform:scale(1.12) rotate(1deg)}60%{transform:scale(1.18) rotate(-1deg)}80%{transform:scale(1.15) rotate(.5deg)}to{transform:scale(1.2) rotate(0)}}@keyframes golden-glow{0%,to{box-shadow:0 0 20px #ffdc6499,0 0 40px #ffdc644d,0 0 60px #ffdc6426,0 8px 16px #0000004d}50%{box-shadow:0 0 25px #ffdc64cc,0 0 50px #ffdc6466,0 0 70px #ffdc6433,0 8px 20px #0006}}.world-browser-card.clicked{animation:nintendo-bounce .6s ease-out forwards,golden-glow .6s ease-in-out;z-index:50;pointer-events:none}.world-browser-card.clicked .world-browser-thumb{filter:brightness(1.15) saturate(1.1)}@keyframes rainbow-sheen{0%{transform:translate(-200%)}to{transform:translate(200%)}}.rainbow-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 25%,rgba(255,100,100,.4) 40%,rgba(255,200,100,.4) 43%,rgba(255,255,100,.4) 46%,rgba(100,255,100,.4) 50%,rgba(100,200,255,.4) 54%,rgba(200,100,255,.4) 57%,transparent 80%);transform:translate(-200%);animation:rainbow-sheen 1.2s ease-out;pointer-events:none;z-index:10;border-radius:inherit;mix-blend-mode:add}#world-browser:has(.world-browser-card.clicked) .world-browser-card:not(.clicked){opacity:.8;filter:brightness(.8) saturate(.5);transition:all .3s ease-out}.world-browser-card.loading{pointer-events:none;opacity:.8}.world-browser-card.loading .world-browser-thumb:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes subtle-bop{0%,to{transform:translateY(0) translate(0)}25%{transform:translateY(-1px) translate(.5px)}50%{transform:translateY(0) translate(0)}75%{transform:translateY(-1px) translate(-.5px)}}@keyframes hover-bop{0%,to{transform:translateY(-4px) translate(0) scale(1.02)}25%{transform:translateY(-6px) translate(1px) scale(1.02)}50%{transform:translateY(-4px) translate(0) scale(1.02)}75%{transform:translateY(-6px) translate(-1px) scale(1.02)}}@keyframes live-shimmy{0%{transform:translate(0)}20%{transform:translate(-2px)}40%{transform:translate(2px)}60%{transform:translate(-1px)}80%{transform:translate(1px)}to{transform:translate(0)}}.world-browser-card.just-became-live:not(.clicked){animation:live-shimmy .4s ease-out!important}.world-browser-card.just-became-not-live{animation:live-shimmy .4s ease-out!important}.world-browser-thumb{width:100%;height:100%;background-size:100%;background-position:center;position:relative;overflow:hidden;transition:background-size .4s cubic-bezier(.4,0,.2,1)}.world-browser-info{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,#0000000d 30%,#0000001f 50%,#0003 90%,#00000040);color:#fff}.world-browser-info h3{margin:0 0 8px;font-size:24px;font-weight:500;line-height:1.2;text-shadow:0 2px 4px rgba(0,0,0,.15)}.world-browser-info p{margin:8px 0;font-size:14px;opacity:.9;line-height:1.4}.world-browser-info .difficulty{position:absolute;top:-24px;right:16px;font-size:16px;text-shadow:0 2px 4px rgba(0,0,0,.5)}.world-browser-info .owner{font-size:13px;opacity:.85;font-style:italic;margin:4px 0}.world-browser-info .owner.loading{color:#ffffff80}.world-browser-info .system-owner{color:#e1d7a9;font-weight:500;letter-spacing:.2px;background:#00000026;display:inline-block;padding:1px 6px;border-radius:10px}.world-browser-info .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.world-browser-info .tag{background:#fff3;color:#fff;padding:2px 8px;border-radius:12px;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.world-browser-card[data-type=campaign]{border:2px solid rgb(84,182,252)}.world-browser-card[data-type=versus]{border:2px solid rgb(255,149,0)}.world-browser-card[data-type=sandbox]{border:2px solid rgb(128,128,128)}#world-browser{scrollbar-gutter:stable}#world-browser::-webkit-scrollbar{width:8px}#world-browser::-webkit-scrollbar-track{background:#ffffff1a}#world-browser::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}#world-browser::-webkit-scrollbar-thumb:hover{background:#fff6}.world-browser-info .play-mode-tag{background:#3b82f633;color:#93c5fde6;border:1px solid rgba(59,130,246,.3)}.world-browser-info .game-state-tag{background:#f59e0b33;color:#fbbf24e6;border:1px solid rgba(245,158,11,.3)}.player-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.player-badge{font-size:12px;padding:2px 6px;border-radius:8px;font-weight:500;font-family:Oswald,sans-serif;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3);display:inline-flex;align-items:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.player-badge:not(.cursor-name-badge){background:#0006;color:#e2e8f0;border:1px solid rgba(255,255,255,.2)}.player-badge:not(.cursor-name-badge):hover{background:#0009;border-color:#fff6}.world-browser-card.has-instances:before{content:"";position:absolute;top:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;z-index:1}.world-browser-card.has-instances:after{content:"⚑";position:absolute;top:6px;right:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;z-index:2;pointer-events:none}.world-browser-card.live-instances{border:2px solid rgba(59,130,246,.8)}.world-browser-card.live-instances .player-badges{margin-top:8px}.world-browser-card.live-world{border:2px solid rgba(34,197,94,.5)}.online-players-grid{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;margin-bottom:16px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.online-players-empty{color:#ffffff80;font-size:14px;font-style:italic}@keyframes live-card-enter{0%{opacity:0;transform:scale(.6) scaleY(.02);filter:saturate(0) brightness(2)}30%{opacity:1;transform:scale(.85) scaleY(1);filter:saturate(.3) brightness(1.5)}60%{transform:scale(1.04);filter:saturate(1.8) brightness(1.1)}80%{transform:scale(.98);filter:saturate(1.3) brightness(1.02)}to{opacity:1;transform:scale(1);filter:saturate(1) brightness(1)}}@keyframes live-card-exit{0%{opacity:1;transform:scale(1);filter:saturate(1) brightness(1)}30%{opacity:.9;transform:scale(1.02);filter:saturate(.5) brightness(1.3)}70%{opacity:.6;transform:scale(.85) scaleY(.8);filter:saturate(.2) brightness(1.5)}to{opacity:0;transform:scale(.7) scaleY(.02);filter:saturate(0) brightness(2)}}.live-card-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows .35s ease-out}.live-card-wrapper.entering{grid-template-rows:0fr;animation:wrapper-expand .4s ease-out forwards}.live-card-wrapper.exiting{animation:wrapper-collapse .3s ease-out forwards}@keyframes wrapper-expand{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes wrapper-collapse{0%{grid-template-rows:1fr}to{grid-template-rows:0fr}}.live-card-wrapper>.world-browser-card{min-height:0;overflow:hidden}#section-live .world-browser-card.live-card-entering{animation:live-card-enter .4s ease-out forwards}#section-live .world-browser-card.live-card-exiting,#section-live .world-browser-card.live-card-exiting.just-became-not-live{animation:live-card-exit .3s ease-out forwards!important;pointer-events:none}#section-live .world-browser-card.live-card-entering:hover,#section-live .world-browser-card.live-card-exiting:hover{transform:none}#section-live .world-browser-card.live-card-entering:hover .world-browser-thumb,#section-live .world-browser-card.live-card-exiting:hover .world-browser-thumb{background-size:100%}#budget{position:fixed;bottom:16px;left:16px;background-color:#ffffffe6;border-radius:6px;box-shadow:0 4px 6px #0000001a;padding:8px 12px;font-family:Oswald,sans-serif;min-width:140px}#budget .budget-row{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:14px;margin:2px 0}#budget .budget-row img{width:16px;height:16px;opacity:.7}#budget .label{text-transform:uppercase;font-weight:500}#budget .value{margin-left:auto;font-variant-numeric:tabular-nums}#budget .budget-separator{height:1px;background:#e5e7eb;margin:4px 0}#budget .budget-row:nth-child(2) .value{color:#d97706}#budget .budget-row:last-child{font-weight:500}#budget .budget-row:last-child.negative{color:#dc2626}#budget .budget-row:last-child.positive{color:#059669}#budget .alert{margin-left:4px;font-size:16px}.remote-cursor{position:fixed;width:20px;height:20px;pointer-events:none;transform:translate(-2px,-2px);transition:all .05s linear;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.remote-cursor-container{position:fixed;pointer-events:none;transition:all .05s linear}#remote-cursors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.presence--remnant{opacity:.6}.remote-cursor-name--remnant{opacity:.5}.cursor-name-badge{padding:2px 6px;border-radius:8px;font-size:12px;font-weight:500;font-family:Oswald,sans-serif;color:#fff;pointer-events:none;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3)}.remote-cursor-name{position:absolute;top:15px;left:25px;z-index:1000}.local-cursor-name{position:fixed;z-index:1001;display:none;transition:opacity .2s ease}.remote-cursor-name,.local-cursor-name{padding:2px 6px;border-radius:8px;font-size:12px;font-weight:500;font-family:Oswald,sans-serif;color:#fff;pointer-events:none;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3)}.local-cursor-pointer{cursor:auto}.remote-cursor,.remote-cursor-name{transition:all .05s linear}.remote-cursor.presence--fogged.presence--opponent,.remote-cursor-name.presence--fogged,.remote-cursor-name.presence--fogged.presence--opponent{opacity:.5}.remote-cursor-name.presence--fogged.presence--opponent{animation:enemy-fog-pulse-name 2s ease-in-out infinite}.remote-cursor.presence--fogged.presence--opponent{animation:enemy-fog-pulse-cursor 2s ease-in-out infinite}@keyframes enemy-fog-pulse-cursor{0%{opacity:.3;filter:blur(1px) saturate(.7)}50%{opacity:.6;filter:blur(0px) saturate(.7)}to{opacity:.3;filter:blur(1px) saturate(.7)}}@keyframes enemy-fog-pulse-name{0%{opacity:.3;filter:blur(1px) saturate(.05)}50%{opacity:.6;filter:blur(0px) saturate(.05)}to{opacity:.3;filter:blur(1px) saturate(.05)}}.modifier-keys{margin-left:.25em;opacity:.85;font-weight:500}.modifier-key{display:inline;font-family:inherit}.platform-mac .modifier-key--shift:after{content:"⇧"}.platform-mac .modifier-key--meta:after{content:"⌘"}.platform-mac .modifier-key--ctrl:after{content:"⌃"}.platform-mac .modifier-key--alt:after{content:"⌥"}.platform-windows .modifier-key--shift:after{content:"⇧"}.platform-windows .modifier-key--meta:after{content:"⊞"}.platform-windows .modifier-key--ctrl:after{content:"Ctrl"}.platform-windows .modifier-key--alt:after{content:"Alt"}.platform-linux .modifier-key--shift:after{content:"⇧"}.platform-linux .modifier-key--meta:after{content:"◆"}.platform-linux .modifier-key--ctrl:after{content:"Ctrl"}.platform-linux .modifier-key--alt:after{content:"Alt"}.modifier-key--shift:after{content:"SHIFT"}.modifier-key--meta:after{content:"CMD"}.modifier-key--ctrl:after{content:"CTRL"}.modifier-key--alt:after{content:"ALT"}.modifier-key--shift:after,.modifier-key--meta:after,.modifier-key--ctrl:after,.modifier-key--alt:after{font-size:.7em;font-weight:600;margin-right:.15em;padding:.1em .2em;background-color:#ffffff1a;border-radius:2px;border:1px solid rgba(255,255,255,.2)}.platform-mac .modifier-key--shift:after,.platform-mac .modifier-key--meta:after,.platform-mac .modifier-key--ctrl:after,.platform-mac .modifier-key--alt:after,.platform-windows .modifier-key--shift:after,.platform-windows .modifier-key--meta:after,.platform-linux .modifier-key--shift:after,.platform-linux .modifier-key--meta:after{font-size:1em;font-weight:500;padding:0;background:none;border:none;margin-right:.1em}.platform-windows .modifier-key--ctrl:after,.platform-windows .modifier-key--alt:after,.platform-linux .modifier-key--ctrl:after,.platform-linux .modifier-key--alt:after{font-size:.75em;font-weight:600;margin-right:.2em;padding:0;background:none;border:none}#end-banner{width:100%;font-size:48px;font-weight:700;text-transform:uppercase;font-family:Oswald,sans-serif;color:#fff;background-color:#3f8e1b80;padding:15px 0;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.2);box-shadow:inset 0 4px 8px #0003;border-radius:8px 8px 0 0;margin-bottom:10px}#end-banner.victory{background-color:#3f8e1bcc}#end-banner.defeat{background-color:#c0392bcc}#end-banner.standalone{position:fixed;top:47%;left:50%;transform:translate(-50%,-50%);border-radius:10px;padding:20px 40px;rotate:-3deg}#objective-title{position:fixed;top:10px;left:16px;font-size:20px;font-weight:500;font-family:Oswald,sans-serif;color:#333;background-color:#ffffff73;padding:8px 12px;border-radius:4px;box-shadow:0 2px 4px #0000001a}#objective-title.complete{text-decoration:line-through;color:#999;animation:fadeOut .5s forwards}#castle-progress{position:fixed;top:10px;left:50%;transform:translate(-50%);text-align:center;font-family:Oswald,sans-serif;pointer-events:none}.castle-progress-title{font-size:20px;font-weight:500;color:#333;margin-bottom:6px;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:4px;pointer-events:auto;-webkit-user-select:none;user-select:none}.castle-progress-strongpoints{display:flex;justify-content:center;gap:4px;transform:skew(-20deg);background-color:#fff3;border-radius:4px;padding:4px 6px;transition:all .5s ease;pointer-events:auto;-webkit-user-select:none;user-select:none}.strongpoint:after{content:"⚑";color:#fff;font-size:18px;position:absolute;align-items:center;justify-content:center;left:15px;bottom:-1.5px}.strongpoint{width:40px;height:20px;box-shadow:2px 2px #0003;transition:all .3s ease;position:relative}.strongpoint.destroyed{opacity:.7}.destroyed-mark{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:16px;color:#333}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.strongpoint.team-changed{animation:pulse .5s ease}@keyframes destroyed{0%{transform:scale(1);opacity:1}10%{transform:scale(1.2);opacity:.9}20%{transform:scale(.9);opacity:.8}to{transform:scale(1);opacity:.7}}.strongpoint.just-destroyed{animation:destroyed .7s ease forwards}@keyframes created{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.strongpoint.just-created{animation:created .5s ease forwards}@keyframes removed{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}.strongpoint.being-removed{animation:removed .5s ease forwards}.scorecard{font-family:Oswald,sans-serif;max-width:800px;margin:0 auto;background-color:#f5f5f5;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;display:flex;flex-direction:column;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:16}.scorecard-banner{width:100%;font-size:48px;font-weight:700;text-transform:uppercase;font-family:Oswald,sans-serif;color:#fff;background-color:#3f8e1b80;padding:15px 0;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.2);box-shadow:inset 0 4px 8px #0003;border-radius:8px 8px 0 0}.scorecard-banner.draw{background-color:#be9e28cc}.scorecard-banner.victory{background-color:#3f8e1bcc}.scorecard-banner.defeat{background-color:#c0392bcc}.score-content{display:grid;grid-template-columns:20% 40% 40%}.score-header-container,.score-row{display:contents}#scorecard .team-header{margin:0;padding:15px 0;font-size:32px;text-transform:uppercase;text-align:center;width:100%}.attacker-header{border-bottom:3px #ffcb81 solid;color:#ff9500}.defender-header{border-bottom:3px #8bcfff solid;color:#54b6fc}.crown-row .team-column{padding-top:0;padding-bottom:0;height:45px}.crown-cell{display:flex;justify-content:center;align-items:flex-end}.victory-crown{font-size:32px;position:relative;bottom:-10px}.score-label-column,.team-column{padding:15px;display:flex;align-items:center}.score-label-column{background-color:#f9f9f9;font-weight:500;justify-content:flex-start}.team-column{justify-content:flex-end;padding-right:40px}.attacker-column{background-color:#fffaf0}.defender-column{background-color:#f0f8ff}.row-label{font-size:24px;font-weight:500;color:#444}.row-label-child{font-size:12px;color:#666;font-style:italic;padding-left:10px}.destroyed-row .score-label-column,.destroyed-row .team-column,.surrendered-row .score-label-column,.surrendered-row .team-column,.surviving-row .score-label-column,.surviving-row .team-column,.captured-row .score-label-column,.captured-row .team-column{padding-top:5px;padding-bottom:5px}.surrendered-row .score-label-column,.surrendered-row .team-column,.surviving-row .score-label-column,.surviving-row .team-column{background-color:#00000003}.destroyed-row .score-label-column,.destroyed-row .team-column,.captured-row .score-label-column,.captured-row .team-column{background-color:#00000008}.count-display{font-size:16px;font-weight:500;color:#666}.attacker-text{color:#ff9500}.defender-text{color:#54b6fc}.points-container{display:flex;align-items:baseline;gap:5px;justify-content:flex-end}.points{font-size:36px;font-weight:700;line-height:1;text-align:right;position:relative}.points-suffix{font-size:16px;font-weight:500;opacity:.7;margin-left:3px}.victory-points{font-size:36px}.victory-points .points-suffix{font-size:18px}.total-points{font-size:56px;font-weight:900}.total-points .points-suffix{font-size:20px}.total-row .score-label-column,.total-row .team-column{background-color:#f0f0f0;border-top:2px solid #ddd;font-weight:700}.scorecard-footer{display:flex;justify-content:center;gap:20px;padding:15px 0;border-top:1px solid #ddd;background-color:#f0f0f0}.scorecard-footer button{font-family:Oswald,sans-serif;font-size:16px;font-weight:500;padding:8px 16px;border-radius:4px;border:1px solid #ddd;background-color:#fff;cursor:pointer;transition:all .2s}.scorecard-footer button:hover{background-color:#eee}.scorecard-footer button:disabled{opacity:.5;cursor:not-allowed}.points-container.player-team-emphasize{position:relative}.points-container.player-team-emphasize:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border:4px solid #cc2eaf79;border-radius:50%;padding:10px;z-index:0;animation:pulse 2s infinite}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.7}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:.7}}.total-row .points-container.player-team-emphasize:before{border-width:5px;width:120%;height:120%}#team-rosters{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.team-roster{position:absolute;font-family:Oswald,sans-serif;color:#333;width:200px}.team-roster-top-left{top:16px;left:16px}.team-roster-top-right{top:16px;right:16px}.team-roster-bottom-right{bottom:16px;right:16px}.team-roster-header{display:flex;flex-direction:column;margin-bottom:0}.team-roster-title{font-size:20px;font-weight:500;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0 8px;pointer-events:auto;-webkit-user-select:none;user-select:none}.team-roster-color-bar{height:4px;width:100%;transform:skew(-60deg);box-shadow:2px 2px #0003;margin-top:-4px}.team-roster-players{border-radius:8px;padding:0;pointer-events:auto}.team-roster-player{display:flex;align-items:center;gap:10px;padding:4px 8px;margin:4px 0;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;user-select:none;pointer-events:none}.team-roster-player-interactive{pointer-events:auto}.team-roster-player-interactive:hover{background:#ffffff80;box-shadow:0 2px 2px #0003;cursor:pointer}.team-roster-player-icon{width:18px;height:18px;border-radius:50%;box-shadow:0 2px 4px #0000004d;outline:.5px solid white;display:flex;align-items:center;justify-content:center;font-size:10px;overflow:hidden}.team-roster-player-icon:hover{outline:thick double #32a1ce}.team-roster-avatar-emoji{font-size:14px}.team-roster-player-name{font-size:14px;color:#444;display:flex;align-items:center;gap:6px}.team-roster-self-indicator{display:inline-flex;align-items:center;justify-content:center;background-color:#e0e0e0;color:#666;font-size:10px;font-weight:500;padding:2px 4px;border-radius:8px 2px;text-transform:uppercase;letter-spacing:.5px;height:14px;line-height:14px;box-shadow:#0003 0 1px 1px}.team-roster-self-indicator:before{content:"me"}.team-roster-winner .team-roster-title{color:#b8860b;font-weight:600;cursor:pointer;transition:transform .2s ease,text-shadow .2s ease;position:relative;z-index:10}.team-roster-winner .team-roster-title:after{content:"👑";display:inline-block;margin-left:8px;transition:transform .2s ease,filter .2s ease}.team-roster-winner .team-roster-title:hover:after{transform:scale(1.9) rotate(5deg);filter:drop-shadow(0 0 16px rgba(255,215,0,.6))}.team-roster-winner .team-roster-color-bar{background:linear-gradient(to right,gold,#fff8dc)!important;background-size:200% 100%;animation:team-roster-winner-pulse 2s ease-in-out infinite}@keyframes team-roster-winner-pulse{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.team-roster-player-entering{animation:team-roster-player-enter .5s ease-out forwards}@keyframes team-roster-player-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.team-roster-player-removing{animation:team-roster-player-remove .5s ease-in forwards}@keyframes team-roster-player-remove{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.team-roster-player-team-changed{animation:team-roster-player-team-change .5s ease}@keyframes team-roster-player-team-change{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.team-roster-player[draggable=true]{cursor:grab}.team-roster-player[draggable=true]:active{cursor:grabbing}.team-roster-player-dragging{opacity:.15;transform:rotate(2.5deg);z-index:1000}.team-roster-drop-target{background:#32a1ce33;border:2px dashed #ffffff;border-radius:8px}.team-roster-drop-target:after{content:"Assign to Team";display:block;text-align:center;color:#fff;font-size:12px;font-weight:500;padding:8px;margin:4px 0}.team-roster-players:empty:before{content:"No players";display:block;color:#00000053;font-size:12px;font-style:italic;padding:4px}.in-game-menu__world-name-badge{background-color:#000;color:#fff;padding:6px 12px 6px 8px;font-family:Oswald,sans-serif;font-size:14px;font-weight:350;cursor:pointer;transform:skew(-16deg);-webkit-user-select:none;user-select:none;margin-left:-5px;transition:background-color .2s;box-shadow:2px 2px #00000059}.in-game-menu__world-name-badge:hover{background-color:#333}.in-game-menu__world-name-badge--editing{background-color:#333;cursor:text;border:2px solid #666;box-shadow:0 0 4px #66666680}.in-game-menu__world-name-text{background:transparent;color:#fff;border:none;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0 0 0 15px;margin:0;outline:none;width:100%;min-width:80px;cursor:pointer}.in-game-menu__world-name-text::placeholder{color:#ccc}.in-game-menu__action-menu{position:absolute;bottom:100%;left:8px;margin-bottom:-5px;background-color:#000;border-radius:0 6px 6px 0;padding:2px 4px;min-width:120px;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s;pointer-events:none}.in-game-menu__action-menu--visible{opacity:1;transform:translateY(0);pointer-events:auto}.in-game-menu__action-button{display:flex;align-items:center;width:100%;padding:4px 32px 4px 2px;margin:4px 0;background-color:#333;color:#fff;border:none;border-radius:4px;font-family:Oswald,sans-serif;font-size:14px;font-weight:450;cursor:pointer;transition:background-color .2s;gap:8px}.in-game-menu__action-button:hover{background-color:#555}.in-game-menu__action-button:active{background-color:#666}.in-game-menu__action-icon{width:16px;height:16px;flex-shrink:0;opacity:.8}.in-game-menu__action-text{flex:1;text-align:left}.in-game-menu--hidden{display:none!important}@media(max-width:768px){.in-game-menu__world-name-badge{font-size:12px;padding:4px 8px 4px 6px}.in-game-menu__action-button{padding:10px 12px;font-size:16px}}.in-game-menu__action-button--dev-only{font-style:italic;font-weight:200;opacity:.85}.entity-menu{position:fixed;bottom:4px;right:0;z-index:1000}.entity-menu__name-badge{background-color:#000;color:#fff;padding:6px 12px 6px 8px;font-family:Oswald,sans-serif;font-size:14px;font-weight:350;cursor:pointer;transform:skew(-16deg);-webkit-user-select:none;user-select:none;margin-right:-5px;transition:background-color .2s}.entity-menu__name-badge--hover{background-color:#22222281}.entity-menu__name-badge:hover{background-color:#333}.entity-menu__name-badge--editing{background-color:#333;cursor:text;border:2px solid #666;box-shadow:0 0 4px #66666680}.entity-menu__name-text{background:transparent;color:#fff;border:none;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0 15px 0 0;margin:0;outline:none;width:100%;min-width:80px;cursor:pointer}.entity-menu__name-text::placeholder{color:#ccc}.entity-menu__action-menu{position:absolute;bottom:100%;right:0;margin-bottom:4px;background-color:#000;border-radius:6px 0 0 6px;padding:2px 4px;min-width:120px;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s;pointer-events:none}.entity-menu__action-menu--visible{opacity:1;transform:translateY(0);pointer-events:auto}.entity-menu__action-button{display:flex;align-items:center;width:100%;padding:4px 8px;margin:4px 0;background-color:#333;color:#fff;border:none;border-radius:4px;font-family:Oswald,sans-serif;font-size:14px;font-weight:450;cursor:pointer;transition:background-color .2s;gap:8px}.entity-menu__action-button:hover{background-color:#555}.entity-menu__action-button:active{background-color:#666}.entity-menu__action-icon{width:16px;height:16px;flex-shrink:0;opacity:.8}.entity-menu__action-text{flex:1;text-align:left}.entity-menu--hidden{display:none!important}@media(max-width:768px){.entity-menu__name-badge{font-size:12px;padding:4px 8px 4px 6px}.entity-menu__action-button{padding:10px 12px;font-size:16px}}.entity-menu__action-button--dev-only{font-style:italic;font-weight:200;opacity:.85}.team-entity-census{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;padding:4px 8px;margin:4px 0}.census-item{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;background:#ffffff4d;box-shadow:0 1px 2px #0000001a;transition:all .2s ease;pointer-events:auto}.census-icon{font-size:12px;line-height:1}.census-count{font-size:11px;font-weight:500;color:#333;min-width:12px;text-align:center}.census-damage{animation:census-flash-damage .25s ease-out,census-flash-shake .3s ease-out}@keyframes census-flash-shake{0%{transform:translate(0) rotate(0)}20%{transform:translate(1px) rotate(2deg)}40%{transform:translate(2px,1px) rotate(2deg)}60%{transform:translate(-2px,-1px) rotate(-4deg)}80%{transform:translate(2px,1px) rotate(3deg)}to{transform:translate(0) rotate(0)}}@keyframes census-flash-damage{0%{background-color:#ffffff4d}50%{background-color:#dc354559;transform:scale(.9)}to{background-color:#ffffff4d}}.census-death{animation:census-death-effect 1s ease-out}@keyframes census-death-effect{0%{background-color:#ffffff4d;transform:scale(1)}5%{background-color:#bd0a0ae6;transform:scale(1.3) rotate(5deg)}50%{background-color:#dc3545e6;transform:scale(1.1) rotate(-5deg)}60%{background-color:#6c757dcc;transform:scale(.9)}70%{background-color:#d2154e;transform:scale(1)}85%{background-color:#6c757d99;transform:scale(1.05)}to{background-color:#ffffff4d;transform:scale(1)}}.census-add{animation:census-add-effect .6s ease-out}@keyframes census-add-effect{0%{background-color:#ffffff4d;transform:scale(.3);opacity:0}30%{background-color:#28a745cc;transform:scale(1.3);opacity:1}60%{background-color:#28a74599;transform:scale(.95)}to{background-color:#ffffff4d;transform:scale(1);opacity:1}}.game-banner{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:30;font-family:Oswald,sans-serif}.game-banner-backdrop{position:absolute;background:linear-gradient(135deg,#1f2937,#111827 30%,#000);transform:translate(-50%,-50%) skew(-10deg) scale(0);transform-origin:center;box-shadow:0 4px #374151,0 8px #4b5563;border:2px solid #6b7280}.game-banner-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;text-align:center;text-transform:uppercase;letter-spacing:4px;font-weight:400;text-shadow:0 2px 0px rgba(0,0,0,.8),0 4px 12px rgba(0,0,0,.4);white-space:nowrap;opacity:0;z-index:1}.game-banner-sheen{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.8) 40%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.8) 60%,transparent 75%);transform:translate(-200%) skew(-10deg);pointer-events:none;z-index:2;border-radius:inherit}.game-banner.animate-in .game-banner-backdrop{animation:banner-backdrop-in .6s cubic-bezier(.4,0,.2,1) forwards,banner-backdrop-hold 3s ease-in-out .6s infinite}.game-banner.animate-in .game-banner-text{animation:banner-text-in .6s cubic-bezier(.4,0,.2,1) forwards,banner-text-hold 4s ease-in-out .6s infinite}.game-banner.animate-in .game-banner-sheen{animation:banner-sheen .8s ease-out .3s}.game-banner.animate-out .game-banner-backdrop{animation:banner-backdrop-out .4s cubic-bezier(.7,0,.3,1) forwards}.game-banner.animate-out .game-banner-text{animation:banner-text-out .4s cubic-bezier(.7,0,.3,1) forwards}@keyframes banner-backdrop-in{0%{transform:translate(-50%,-50%) skew(-10deg) scale(0);opacity:0}30%{transform:translate(-50%,-50%) skew(-10deg) scale(1.5);opacity:1}to{transform:translate(-50%,-50%) skew(-10deg) scale(3,1.5);opacity:1}}@keyframes banner-backdrop-out{0%{transform:translate(-50%,-50%) skew(-10deg) scale(3,1.5);opacity:1}70%{transform:translate(-50%,-50%) skew(-10deg) scale(0,1.5);opacity:1}to{transform:translate(-50%,-50%) skew(-10deg) scale(0,1.5);opacity:0}}@keyframes banner-backdrop-hold{0%,to{transform:translate(-50%,-50%) skew(-10deg) scale(3,1.5)}50%{transform:translate(-50%,-50%) skew(-10deg) scale(3.02,1.51)}}@keyframes banner-text-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.8);letter-spacing:8px}to{opacity:1;transform:translate(-50%,-50%) scale(1);letter-spacing:2px}}@keyframes banner-text-out{0%{opacity:1;transform:translate(-50%,-50%) scaleX(1) scaleY(1);letter-spacing:2px}70%{opacity:1;transform:translate(-50%,-50%) scaleX(0) scaleY(1);letter-spacing:0px}to{opacity:0;transform:translate(-50%,-50%) scaleX(0) scaleY(1);letter-spacing:0px}}@keyframes banner-text-hold{0%,to{letter-spacing:2px;transform:translate(-50%,-50%) scale(1)}50%{letter-spacing:2.5px;transform:translate(-50%,-50%) scale(1.005)}}@keyframes banner-sheen{0%{transform:translate(-200%) skew(-10deg)}to{transform:translate(200%) skew(-10deg)}}.game-banner.style-victory .game-banner-backdrop{background:linear-gradient(135deg,#fbbf24,#f59e0b 15%,#d97706 45%,#92400e 70%,#451a03 90%,#1c0701);border-color:#92400e;box-shadow:0 4px #92400e,0 8px #451a03,0 0 20px #f59e0b66}.game-banner.style-defeat .game-banner-backdrop{background:linear-gradient(135deg,#c084fc,#a855f7 15%,#9333ea 45%,#7c2d12 70%,#4c1d95 90%,#1e1b4b);border-color:#7c2d12;box-shadow:0 4px #7c2d12,0 8px #4c1d95,0 0 20px #a855f766}.game-banner.style-game-start .game-banner-backdrop{background:linear-gradient(135deg,#06b6d4,#0891b2 15%,#0e7490 45%,#155e75 70%,#164e63 90%,#083344);border-color:#155e75;box-shadow:0 4px #155e75,0 8px #164e63,0 0 20px #0891b266}.game-banner.style-default .game-banner-backdrop{background:linear-gradient(135deg,#9ca3af,#6b7280 15%,#4b5563 45%,#374151 70%,#1f2937 90%,#111827);border-color:#374151;box-shadow:0 4px #374151,0 8px #1f2937,0 0 20px #6b728033}.game-banner.style-info .game-banner-backdrop{display:none}.game-banner-text.size-large{font-size:64px;font-weight:600}.game-banner-text.size-medium{font-size:48px;font-weight:500}.game-banner-text.size-small{font-size:36px;font-weight:400}@media(max-width:768px){.game-banner-text.size-large{font-size:36px}.game-banner-text.size-medium{font-size:24px}.game-banner-text.size-small{font-size:18px}}.tray{position:fixed;bottom:20px;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.tray--center{left:50%;transform:translate(-50%)}.tray--left{left:0;bottom:0%;flex-direction:row}.tray--right{right:0;left:auto;bottom:0%;flex-direction:row}.tray--offset.tray--left{left:var(--tray-offset, 0px)}.tray--offset.tray--right{right:var(--tray-offset, 0px)}.tray--offset.tray--center{bottom:calc(20px + var(--tray-offset, 0px))}.tray--hidden,.tray--collapsed .tray__item--collapsible,.tray__item--expand-indicator{display:none}.tray--collapsible .tray__item--expand-indicator,.tray--collapsible.tray--collapsed .tray__item--expand-indicator{display:flex}.tray__expand-indicator-item:before{content:"‹";color:#fff;font-size:20px;font-weight:700;padding:5px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;transform:skew(-16deg);opacity:.8;transition:opacity .2s,transform .2s;background-color:#717171b3;border-radius:2px;min-width:24px;text-align:center;display:inline-block}.tray--collapsed .tray__expand-indicator-item:before{content:"›"}.tray__expand-indicator-item:hover:before{opacity:1;transform:skew(-16deg) scale(1.1)}.tray--debug{outline:2px dashed red;outline-offset:2px}.tray--debug .tray__background{outline:2px dashed blue;outline-offset:-4px}.tray--debug .tray__item{outline:2px dashed green;outline-offset:-2px}.tray__background{position:absolute;width:calc(100% + -0px);height:30px;bottom:0;background:#8c8c8c;z-index:-1;transform:skew(-16deg) translateY(-2px);pointer-events:auto}.tray__items{display:flex;flex-direction:row;gap:10px;padding:0 7px 7px;align-items:flex-end;justify-content:center;pointer-events:none;position:relative}.tray--left .tray__items,.tray--right .tray__items{flex-direction:row}.tray__item{display:flex;align-items:center;justify-content:center;pointer-events:auto}.tray__item>*{pointer-events:auto}.tray__button{background-color:#717171;color:#fff;padding:8px 24px 26px;font-family:Oswald,sans-serif;font-size:14px;font-weight:450;height:32px;border:none;cursor:pointer;transform:skew(-16deg);transition:background-color .2s,transform .1s;-webkit-user-select:none;user-select:none;margin:0 2px;text-align:center;box-shadow:3px 3px #00000026,inset 1px 1px #ffffff80,inset -1px -1px 2px #0000004d}.tray__button--primary{background-color:#0097e7}.tray__button--primary:hover{background-color:#ff7aa2;transform:skew(-8deg) translateY(-4px) scale(1.1)}.tray__button:hover:not(.tray__button--primary){background-color:#555;transform:skew(-8deg) translateY(-4px) scale(1.1)}.tray__button:active{background-color:#666;transform:skew(-8deg) translateY(0)}.tray__button-icon{display:inline-block;transform:skew(16deg)}.tray__button:hover .tray__button-icon{transform:skew(8deg)}.tray__button-spacer{display:inline-block;width:.5em}.tray__button-text{display:inline-block}.world-tray-game-state__container{color:#ffffffe6;padding:8px 4px 6px;transform:translateY(6px);font-family:Oswald,sans-serif;font-size:14px;font-weight:350;border-radius:4px;-webkit-user-select:none;user-select:none;margin:0;text-align:center;min-width:80px}.world-tray-game-state__icon{padding-right:.4em;display:inline-block;color:#fff9}.world-tray-game-state__text{display:inline-block}#scene-transition-layer{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}.loading-screen #title-container,.loading-screen #logo-container,.loading-screen #main-menu,.loading-screen #team-rosters,.loading-screen #remote-cursors{opacity:0!important}.loading-complete #logo-container,.loading-complete #main-menu,.loading-screen #team-rosters,.loading-complete #remote-cursors{opacity:1!important;transition:opacity .4s ease-in}.loading-complete #title-container{position:relative;animation:title-fade-in-with-scale 1.2s cubic-bezier(.4,0,.2,1) .3s both}.loading-complete #title-container:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.6) 40%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.6) 60%,transparent 75%);transform:translate(-200%) skew(-10deg);pointer-events:none;z-index:1;animation:title-sheen .8s ease-out .9s}.loading-curtain-half{position:fixed;background:#fff;width:100vw;height:50vh;left:0;pointer-events:none;z-index:9999;transform-origin:center}.loading-curtain-top{top:0;transform:translateY(0)}.loading-curtain-bottom{bottom:0;transform:translateY(0)}.loading-curtain-half.reveal{animation:curtain-split-reveal 1.2s cubic-bezier(.4,0,.2,1) forwards}@keyframes curtain-split-reveal{0%{transform:translateY(0);opacity:1}70%{opacity:1}to{transform:translateY(var(--slide-direction));opacity:0}}.loading-curtain-top{--slide-direction: -100vh}.loading-curtain-bottom{--slide-direction: 100vh}.play-button-sweep{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.8) 40%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.8) 60%,transparent 75%);transform:translate(-200%) skew(-10deg);animation:play-button-sweep .6s ease-out;pointer-events:none;z-index:10;border-radius:inherit}@keyframes play-button-sweep{0%{transform:translate(-200%) skew(-10deg)}to{transform:translate(200%) skew(-10deg)}}.play-background-trapezoid{position:fixed;background:#000;transform:translate(-50%,-50%) skew(-10deg) scale(0);transform-origin:center;pointer-events:none}.play-background-trapezoid.animate{animation:trapezoid-expand 1.2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes trapezoid-expand{0%{transform:translate(-50%,-50%) skew(-10deg) scale(0);opacity:0}15%{transform:translate(-50%,-50%) skew(-10deg) scale(1.5);opacity:1}30%{transform:translate(-50%,-30%) skew(-10deg) scale(1.8,2.5)}50%{transform:translate(-50%,-30%) skew(-10deg) scale(20,2.5)}70%{transform:translate(-50%,-25%) skew(-10deg) scale(20,15)}to{transform:translate(-50%,-50%) skew(-10deg) scale(60);opacity:.95;left:50%!important;top:50%!important}}@keyframes title-fade-in-with-scale{0%{opacity:0;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes title-sheen{0%{transform:translate(-200%) skew(-10deg)}to{transform:translate(200%) skew(-10deg)}}body{margin:0}canvas{display:block}#game-container{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden}#threejs-container{position:absolute;width:100%;height:100%}html,body{margin:0;padding:0;height:100%;overflow:hidden}#threejs-container{z-index:1}.remote-cursor,.remote-cursor-name{z-index:3}#title-container{z-index:10}#objective-title{z-index:12}#end-banner{z-index:13}#toolbar,#budget,#castle-progress,#team-rosters,.in-game-menu,.tray{z-index:15}#scorecard{z-index:16}#logo-container{z-index:19}#scene-transition-layer{z-index:20}#main-menu,#game-menu{z-index:21}#world-browser{z-index:22}.profile-panel-overlay{z-index:23}.auth-panel-overlay{z-index:24}.identity-container{z-index:25}#game-container button,#game-container a,#game-container [role=button],#game-container input,#game-container select,#game-container textarea,#game-container label,#game-container [onclick]{cursor:inherit}.hidden{display:none!important}.auth-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);display:flex;align-items:center;justify-content:center;transition:background .2s ease,backdrop-filter .2s ease;will-change:background,backdrop-filter;cursor:inherit}.auth-panel-overlay-visible{background:#0000001f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-panel{background:linear-gradient(180deg,#f6f6f6,#e8e8e8);border-radius:12px;box-shadow:0 0 0 1px #0000001a,0 8px 32px #00000040,inset 0 1px #fffc;min-width:320px;max-width:400px;width:90vw;overflow:hidden;position:fixed;top:50%;left:50%;opacity:0;transform:translate(calc(-50% + 40px),calc(-50% + 40px)) scale(.95) translateY(-10px);transition:opacity .2s ease,transform .2s ease;will-change:transform,opacity}.auth-panel-visible{opacity:1;transform:translate(calc(-50% + 40px),calc(-50% + 40px)) scale(1) translateY(0)}.auth-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(180deg,#fafafa,#ececec);border-bottom:1px solid rgba(0,0,0,.12)}.auth-panel-title{margin:0;font-family:Oswald,system-ui,-apple-system,sans-serif;font-size:16px;font-weight:500;color:#333;letter-spacing:.5px}.auth-panel-body{padding:20px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form-field{display:flex;flex-direction:column;gap:6px}.auth-form-label{font-family:Oswald,system-ui,sans-serif;font-size:12px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px}.auth-form-input{padding:10px 12px;font-family:Oswald,system-ui,sans-serif;font-size:16px;color:#333;background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:inset 0 1px 3px #00000014,0 1px #ffffff80;transition:border-color .15s ease,box-shadow .15s ease}.auth-form-input:focus{outline:none;border-color:#5c9ee6;box-shadow:inset 0 1px 3px #00000014,0 0 0 3px #5c9ee640}.auth-form-input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.auth-form-error{font-family:Oswald,system-ui,sans-serif;font-size:11px;font-weight:400;color:#c33;text-transform:uppercase;letter-spacing:.3px;min-height:16px;line-height:16px}.auth-form-banner{padding:12px;border-radius:8px;font-size:14px;font-family:Oswald,system-ui,sans-serif;display:none}.auth-form-banner-error{display:block;background:#fee;border:1px solid #fcc;color:#d14}.auth-panel-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(180deg,#e8e8e8,#d8d8d8);border-top:1px solid rgba(0,0,0,.1)}.auth-footer-left,.auth-footer-right{display:flex;gap:10px}.auth-btn{font-family:Oswald,system-ui,sans-serif;font-size:13px;font-weight:500;padding:8px 20px;border-radius:6px;cursor:inherit;transition:all .15s ease;text-transform:uppercase;letter-spacing:.5px}.auth-btn-secondary{background:linear-gradient(180deg,#f5f5f5,#e0e0e0);border:1px solid #bbb;color:#555;box-shadow:inset 0 1px #fffc,0 1px 2px #0000001a}.auth-btn-secondary:hover{background:linear-gradient(180deg,#fafafa,#eaeaea);border-color:#aaa}.auth-btn-secondary:active{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);box-shadow:inset 0 1px 3px #0000001a}.auth-btn-primary{background:linear-gradient(180deg,#5c9ee6,#4a8ad4);border:1px solid #3a7ac4;color:#fff;box-shadow:inset 0 1px #ffffff4d,0 2px 4px #4a8ad466}.auth-btn-primary:hover{background:linear-gradient(180deg,#6aace6,#5898e0);box-shadow:inset 0 1px #ffffff4d,0 3px 8px #4a8ad480}.auth-btn-primary:active{background:linear-gradient(180deg,#4a8ad4,#3a7ac4);box-shadow:inset 0 1px 3px #0003}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn:disabled:hover{transform:none;box-shadow:none}@media(max-width:400px){.auth-panel{min-width:auto;margin:16px}}.profile-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);display:flex;align-items:center;justify-content:center;transition:background .2s ease,backdrop-filter .2s ease;will-change:background,backdrop-filter;cursor:inherit}.profile-panel-overlay-visible{background:#00000040;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.profile-panel{background:linear-gradient(180deg,#f6f6f6,#e8e8e8);border-radius:12px;box-shadow:0 0 0 1px #0000001a,0 8px 32px #00000040,inset 0 1px #fffc;min-width:320px;max-width:400px;width:90vw;overflow:hidden;opacity:0;transform:scale(.95) translateY(-10px);transition:opacity .2s ease,transform .2s ease;will-change:transform,opacity}.profile-panel-visible{opacity:1;transform:scale(1) translateY(0)}.profile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(180deg,#fafafa,#ececec);border-bottom:1px solid rgba(0,0,0,.12)}.profile-panel-title{margin:0;font-family:Oswald,system-ui,-apple-system,sans-serif;font-size:16px;font-weight:500;color:#333;letter-spacing:.5px}.profile-panel-close{width:24px;height:24px;border:none;background:#e0e0e0;border-radius:50%;cursor:inherit;font-size:18px;line-height:1;color:#666;display:flex;align-items:center;justify-content:center;transition:all .15s ease;box-shadow:inset 0 1px #ffffff80,0 1px 2px #0000001a}.profile-panel-close:hover{background:#ff5f57;color:#7a0000;box-shadow:inset 0 1px #ffffff4d,0 2px 4px #ff5f5766}.profile-panel-close:active{transform:scale(.95)}.profile-panel-body{padding:20px}.profile-content{display:flex;flex-direction:column;gap:20px}.profile-section{display:flex;flex-direction:column;gap:8px}.profile-label{font-family:Oswald,system-ui,sans-serif;font-size:12px;font-weight:500;color:#666;text-transform:uppercase;letter-spacing:.5px}.profile-user-id-section{padding-bottom:16px;border-bottom:1px solid rgba(0,0,0,.08)}.profile-user-id{font-family:SF Mono,Menlo,monospace;font-size:13px;color:#888;background:#0000000a;padding:6px 10px;border-radius:6px;border:1px solid rgba(0,0,0,.06)}.profile-input-wrapper{display:flex;align-items:center;background:#fff;border:1px solid #ccc;border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 3px #00000014,0 1px #ffffff80;transition:border-color .15s ease,box-shadow .15s ease}.profile-input-wrapper:focus-within{border-color:#5c9ee6;box-shadow:inset 0 1px 3px #00000014,0 0 0 3px #5c9ee640}.profile-guest-prefix{padding:8px 8px 8px 12px;font-family:Oswald,system-ui,sans-serif;font-size:14px;color:#888;background:#f0f0f0;border-right:1px solid #ddd;-webkit-user-select:none;user-select:none}.profile-display-name-input{flex:1;border:none;outline:none;padding:10px 12px;font-family:Oswald,system-ui,sans-serif;font-size:16px;color:#333;background:transparent}.profile-display-name-input::placeholder{color:#aaa;font-style:italic}.profile-random-name-btn{padding:6px 10px;background:transparent;border:none;border-left:1px solid #ddd;cursor:inherit;font-size:16px;transition:all .15s ease;opacity:.6}.profile-random-name-btn:hover{opacity:1;background:#0000000d;transform:rotate(15deg)}.profile-random-name-btn:active{transform:rotate(180deg)}.profile-color-swatches{display:flex;flex-wrap:wrap;gap:10px}.profile-color-swatch{width:36px;height:36px;border:none;border-radius:8px;cursor:inherit;transition:all .15s ease;box-shadow:0 2px 4px #0003,inset 0 1px #ffffff4d;position:relative}.profile-color-swatch:hover{transform:scale(1.1);box-shadow:0 4px 8px #00000040,inset 0 1px #ffffff4d}.profile-color-swatch:active{transform:scale(.95)}.profile-color-swatch-selected,.profile-color-swatch-selected:hover{box-shadow:0 0 0 3px #fff,0 0 0 5px #333,0 4px 8px #00000040}.profile-color-picker-wrapper{position:relative}.profile-color-picker-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.profile-color-swatch-custom{position:relative}.profile-color-swatch-custom:after{content:"◐";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);opacity:.8}.profile-color-swatch-custom.profile-color-swatch-selected:after{content:"✓"}.profile-avatar-emoji{filter:drop-shadow(-.5px -1px 0px rgba(255,255,255,.4)) drop-shadow(.5px 1.5px 0px rgba(0,0,0,.5))}.profile-panel-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(180deg,#e8e8e8,#d8d8d8);border-top:1px solid rgba(0,0,0,.1)}.profile-footer-left,.profile-footer-right{display:flex;gap:10px}.profile-btn{font-family:Oswald,system-ui,sans-serif;font-size:13px;font-weight:500;padding:8px 20px;border-radius:6px;cursor:inherit;transition:all .15s ease;text-transform:uppercase;letter-spacing:.5px}.profile-btn-secondary{background:linear-gradient(180deg,#f5f5f5,#e0e0e0);border:1px solid #bbb;color:#555;box-shadow:inset 0 1px #fffc,0 1px 2px #0000001a}.profile-btn-secondary:hover{background:linear-gradient(180deg,#fafafa,#eaeaea);border-color:#aaa}.profile-btn-secondary:active{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);box-shadow:inset 0 1px 3px #0000001a}.profile-btn-primary{background:linear-gradient(180deg,#5c9ee6,#4a8ad4);border:1px solid #3a7ac4;color:#fff;box-shadow:inset 0 1px #ffffff4d,0 2px 4px #4a8ad466}.profile-btn-primary:hover{background:linear-gradient(180deg,#6aace6,#5898e0);box-shadow:inset 0 1px #ffffff4d,0 3px 8px #4a8ad480}.profile-btn-primary:active{background:linear-gradient(180deg,#4a8ad4,#3a7ac4);box-shadow:inset 0 1px 3px #0003}@media(max-width:400px){.profile-panel{min-width:auto;margin:16px}.profile-color-swatch{width:32px;height:32px}}
