.oauth-sign-in button{width:100%;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px}.oauth-sign-in img{height:18px;width:auto}.oauth-sign-in-google button{background:#f4efe6;color:#1b140e}.oauth-sign-in-github button{background:#24292e;color:#f4efe6}.oauth-sign-in-discord button{background:#5865f2;color:#fff}.oauth-sign-in .auth-error{color:#e8846f}.auth-screen{max-width:380px;margin:64px auto;padding:0 16px;display:flex;flex-direction:column;gap:12px}.auth-screen h1{margin:0;color:#e2b657}.auth-screen p{margin:0;color:#d8cdbd}.auth-form{display:flex;gap:8px;flex-wrap:wrap}.auth-form input{flex:1 1 200px}.auth-error{flex-basis:100%;color:#e8846f}.auth-sent{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.auth-switch .link{background:none;padding:0;color:#e2b657;text-decoration:underline}.extension-status{margin:0;padding:6px 16px;font-size:13px;background:#2a2118;color:#d8cdbd;border-bottom:1px solid #3a2e22}.extension-status--linked{color:#9fd39a}.extension-status--failed{color:#e8846f}.extension-status__detail{opacity:.7}.toast{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:8px 0 0;padding:8px;border-radius:8px;background:#3d5a3a;color:#f4efe6}.toast-err{background:#6b3030}.toast button{font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:6px;cursor:pointer}.village{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:#100c09}.village-pending{padding:16px 24px 48px}.village-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 14px;background:#1a140f;border-bottom:1px solid #3d2e1e}.village-bar h1{margin:0 auto 0 0;font-size:16px}.village-bar__who{color:#b7aa98;font-size:13px}.village-loading{opacity:.7}.village-error{position:absolute;left:16px;bottom:12px;margin:0}.panel small{display:block;color:#b7aa98}.panel button:disabled{opacity:.45;cursor:default}.equip-pick button,.panel li button{margin-left:4px}.picked button{outline:1px solid #e2b657}.panel{position:fixed;z-index:20;right:16px;top:16px;width:min(420px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:#2a2118;border:1px solid #8a6a3b;border-radius:12px;padding:12px}.panel header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.panel header h2{margin:0 auto 0 0;font-size:18px}.panel ul{list-style:none;padding:0}.panel li{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.action-stack{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.claim-all{margin-left:8px}.crew-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.slot{min-height:64px;border:1px dashed #8a6a3b;border-radius:6px;padding:4px;font-size:12px}.slot-busy{border-color:#e2b657;animation:slot-busy-pulse .9s ease-in-out infinite alternate}@keyframes slot-busy-pulse{to{background:#e2b6571f}}.action-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;width:168px;min-height:36px;overflow:hidden;padding:4px 8px;color:#f4efe6;background:#1b140e;border:1px solid #8a6a3b;border-radius:8px;font:inherit;text-align:left;cursor:pointer}.action-bar i{position:absolute;left:0;top:0;bottom:0;background:#6d5230;transition:width .25s linear}.action-bar span,.action-bar em{position:relative;z-index:1}.action-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-bar em{flex:none;font-style:normal;font-weight:700;font-size:12px}.action-bar.action-bar--run:disabled{opacity:1;cursor:default}.action-bar--ready{color:#1b140e;border-color:#e2b657;animation:action-ready .7s ease-in-out infinite alternate}.action-bar--ready i{background:#e2b657}.action-bar--idle:disabled{cursor:default}@keyframes action-ready{to{box-shadow:0 0 0 3px #e2b65773}}.cost-list{display:flex;flex-wrap:wrap;gap:4px 8px;margin:2px 0 0;padding:0;list-style:none;color:#b7aa98;font-size:12px}.cost-list .short{color:#e07a6a}.loot-floats{position:absolute;top:52px;right:20px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:4px;pointer-events:none}.loot-floats span{color:#e2b657;font-weight:700;text-shadow:0 1px 2px #1b140e;animation:loot-rise 1.3s ease-out forwards}@keyframes loot-rise{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}.town-building{position:absolute;padding:0;border:0;background:none;pointer-events:none}.town-building img{display:block;width:100%;height:auto;pointer-events:none;animation:town-arrive .28s ease-out}.town-building--mirror img{transform:scaleX(-1)}.town-building.is-lit img,.town-building:focus-visible img{filter:drop-shadow(0 0 1px #fff1c9) drop-shadow(0 0 3px #f0c14b) drop-shadow(0 0 12px rgba(226,182,87,.95)) brightness(1.18) saturate(1.12)}.town-building:focus{outline:none}.town-building__name,.town-building__badge{position:absolute;left:50%;transform:translate(-50%);pointer-events:none;white-space:nowrap;border-radius:999px;font-size:13px;line-height:1.2}.town-building__name{bottom:98%;padding:3px 10px;color:#f4efe6;background:#140e0ae6;border:1px solid #e2b657;opacity:0}.town-building.is-lit .town-building__name,.town-building:focus-visible .town-building__name{opacity:1}.town-building__badge{top:6%;padding:2px 8px;color:#2a2118;background:#e2b657;font-weight:600}@keyframes town-arrive{0%{filter:brightness(1.7)}}.upgrade-buildings{position:absolute;top:12px;left:12px;z-index:5;width:min(420px,62%);margin:0;padding:10px 12px 12px;color:#f4efe6;background:#1a120ce0;border:1px solid #8a6a3b;border-radius:12px;box-shadow:0 10px 28px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.upgrade-buildings--collapsed{width:auto;padding:8px 10px}.upgrade-buildings__bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}.upgrade-buildings--collapsed .upgrade-buildings__bar{margin-bottom:0}.upgrade-buildings h2{margin:0;flex:1;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#e2b657}.upgrade-buildings__bar button{padding:2px 8px;font-size:12px}.upgrade-buildings ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.upgrade-buildings li{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center}.upgrade-buildings__name{font-size:14px}.upgrade-buildings__tier{min-width:1.6em;text-align:center;color:#e2b657;font-size:13px}.upgrade-buildings button{padding:4px 8px;font-size:13px}.upgrade-buildings button:disabled{opacity:.55;cursor:default}.town-stage{flex:1;min-height:0;display:grid;place-items:center;background:#100c09;container-type:size}.town-frame{position:relative;aspect-ratio:1672 / 941;width:min(100cqi,calc(100cqb * 1672 / 941));max-height:100%;overflow:hidden;background:#100c09}.town-scene{position:absolute;top:0;right:0;bottom:0;left:0}.town-scene.is-pointing,.town-scene.is-pointing .town-building{cursor:pointer}.town-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none}.town-frame.is-gated{width:100%;height:100%;max-height:none;aspect-ratio:auto}.town-frame.is-gated .town-background{object-fit:cover}.town-frame.is-gated .town-building{visibility:hidden}.town-frame.is-gated .town-scene{filter:blur(16px) brightness(.55);transform:scale(1.06)}.town-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:grid;place-items:center;padding:16px}.town-gate__card{width:min(280px,100%);text-align:center;padding:18px 16px;background:#1a120cf0;border:1px solid #e2b657;border-radius:12px;box-shadow:0 12px 32px #00000073}.town-gate__card h2{margin:0 0 6px;font-size:18px;color:#f4efe6}.town-gate__card p{margin:0;color:#d8cdbd}body{margin:0;background:#1b140e;color:#f4efe6;font:15px/1.4 system-ui,sans-serif}.app-shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,input,select{font:inherit}button{background:#8a6a3b;color:#fff;border:0;border-radius:6px;padding:6px 10px;cursor:pointer}button.secondary{background:transparent;border:1px solid #8a6a3b}input,select{background:#2a2118;color:inherit;border:1px solid #8a6a3b;border-radius:6px;padding:6px}
