html,body{color:#fff;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#0d1016;height:100%;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}:root{--inset-top:env(safe-area-inset-top);--inset-right:env(safe-area-inset-right);--inset-bottom:env(safe-area-inset-bottom);--inset-left:env(safe-area-inset-left)}#stage{left:var(--stage-x,0px);top:var(--stage-y,0px);width:var(--stage-w,100vw);height:var(--stage-h,100vh);background:#1b1f27;position:fixed;overflow:hidden}canvas#game{width:100%;height:100%;display:block}html.sideways{--inset-top:env(safe-area-inset-right);--inset-right:env(safe-area-inset-bottom);--inset-bottom:env(safe-area-inset-left);--inset-left:env(safe-area-inset-top)}html.sideways #stage{transform-origin:0 0;transform:translate(var(--stage-tx), var(--stage-ty)) rotate(90deg);top:0;left:0}#signup{z-index:10;touch-action:pan-y;padding:max(12px, env(safe-area-inset-top)) 12px 12px;background:#0e121ab8;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}#signup[hidden]{display:none}#signup-form{-webkit-user-select:text;user-select:text;background:#1f2531;border:1px solid #ffffff1f;border-radius:16px;gap:10px;width:min(560px,100%);margin:auto 0;padding:14px 16px;display:grid}#signup .who{align-items:center;gap:12px;display:flex}#signup-badge{width:64px;height:64px}#signup h1{margin:0;font-size:22px}#signup-title{opacity:.85;margin:2px 0 0}#signup-note{opacity:.6;margin:2px 0 0;font-size:12px}#signup .field{opacity:.95;gap:6px;font-size:13px;display:grid}#signup input{font:inherit;color:#fff;background:#11151d;border:1px solid #fff3;border-radius:10px;padding:8px 10px;font-size:16px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:34px;height:34px}.swatch.picked{border-color:#fff;box-shadow:0 0 0 2px #ffffff59}.emojis{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;display:grid}.emoji{cursor:pointer;background:#11151d;border:2px solid #0000;border-radius:10px;height:38px;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:22px;line-height:1}.emoji.picked{background:#2d3545;border-color:#fff}#signup .actions{justify-content:flex-end;gap:8px;display:flex}#signup .actions button{font:inherit;color:#fff;cursor:pointer;border:0;border-radius:12px;padding:10px 22px;font-size:16px;font-weight:700}#signup-go{background:#e84a5f}#signup-go:disabled{cursor:default;background:#555b66}#signup-cancel{background:#3a4150}#signup-cancel[hidden]{display:none}@media (orientation:landscape) and (height<=500px){#signup-form{grid-template-columns:1fr 1.3fr;column-gap:16px;width:min(760px,100%);padding:10px 14px}#signup .who{grid-area:1/1}#signup label.field{grid-area:2/1}#signup .colors{grid-area:3/1}#signup .actions{grid-area:4/1;align-self:end}#signup .emblems{grid-area:1/2/span 4}.emoji{height:34px;font-size:20px}.swatch{width:30px;height:30px}}#pigeon{z-index:12;touch-action:pan-y;background:#0e121a73;justify-content:center;align-items:flex-start;padding:96px 12px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}#pigeon[hidden]{display:none}#pigeon .perch{width:min(540px,100%);margin:auto 0;position:relative}#pigeon-bird{z-index:2;width:150px;height:112px;margin-left:-75px;position:absolute;top:-92px;left:50%}#pigeon-bird svg{display:block;transform:scaleX(-1)}#pigeon-bird .scroll{opacity:0;transition:opacity .2s}#pigeon-bird.carrying .scroll{opacity:1}#pigeon-bird.flap .wing{transform-origin:72px 62px;animation:.15s ease-in-out infinite alternate flap}#pigeon-bird.fly-in{animation:.9s cubic-bezier(.2,.8,.3,1) both fly-in}#pigeon-bird.fly-away{animation:.9s cubic-bezier(.6,0,.8,.4) both fly-away}#pigeon-bird.perched{animation:1.6s ease-in-out infinite bob}@keyframes flap{0%{transform:rotate(16deg)}to{transform:rotate(-42deg)}}@keyframes fly-in{0%{transform:translate(110vw,-70vh)rotate(-10deg)}to{transform:none}}@keyframes fly-away{0%{transform:none}to{transform:translate(-115vw,-80vh)rotate(10deg)}}@keyframes bob{50%{transform:translateY(-3px)rotate(-2deg)}}#pigeon-card{color:#2b2622;transform-origin:50% -40px;-webkit-user-select:text;user-select:text;background:#fbf5e6;border-radius:16px;padding:16px 18px;font-size:14px;line-height:1.4;transition:transform .55s ease-in,opacity .55s ease-in;position:relative;box-shadow:0 12px 40px #00000059}#pigeon-card.folding{opacity:0;transform:scale(.08)}#pigeon-card h2{margin:6px 0 2px;font-size:19px}#pigeon-card .sub{opacity:.8;margin:0 0 10px}#pigeon-card .kinds{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}#pigeon-card .kinds button{font:inherit;cursor:pointer;background:#fff;border:2px solid #d9cfb8;border-radius:999px;padding:4px 10px}#pigeon-card .kinds button.picked{color:#fff;background:#2b2622;border-color:#2b2622}#pigeon-card textarea{box-sizing:border-box;width:100%;font:inherit;resize:vertical;background:#fffdf7;border:1px solid #d9cfb8;border-radius:10px;padding:8px 10px;font-size:16px}#pigeon-card .error{color:#b3261e;margin-top:6px}#pigeon-card .error[hidden]{display:none}#pigeon-card .actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}#pigeon-card .actions button{font:inherit;cursor:pointer;border:0;border-radius:12px;padding:9px 16px;font-weight:700}#pigeon-card .go{color:#fff;background:#e84a5f}#pigeon-card .go:disabled{cursor:default;background:#b9b2a3}#pigeon-card .cancel{color:#2b2622;background:#e7dfcd}#pigeon-card .cancel:disabled{opacity:.5;cursor:default}#pigeon-card .letters,#pigeon-card .history ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}#pigeon-card .letters li{background:#fff;border:1px solid #eadfc6;border-radius:10px;padding:8px 10px}#pigeon-card .quote{font-weight:600}#pigeon-card .status{background:#eee6d4;border-radius:999px;margin-top:4px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}#pigeon-card .s-implemented{color:#245b1a;background:#d8f0d2}#pigeon-card .s-planned{color:#1d4a7a;background:#dbe8f8}#pigeon-card .s-declined{color:#7a2a1d;background:#f3dcd8}#pigeon-card .reply{margin-top:4px;font-style:italic}#pigeon-card .reward{margin-top:6px;font-weight:600}#pigeon-card .history{margin-top:10px;font-size:13px}#pigeon-card .history li{border-top:1px dashed #e0d5bd;padding:4px 0}#toast{z-index:13;pointer-events:none;color:#fff;background:#0a0e16e0;border-radius:999px;padding:8px 16px;font-size:14px;position:fixed;bottom:16%;left:50%;transform:translate(-50%)}#toast[hidden]{display:none}.swatch.locked{opacity:.45;cursor:not-allowed;position:relative}.swatch.locked:after{content:"🔒";place-items:center;font-size:13px;display:grid;position:absolute;inset:0}#garage{z-index:10;touch-action:pan-y;padding:max(12px, env(safe-area-inset-top)) 12px 12px;background:#0e121ab8;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}#garage[hidden]{display:none}#garage-form{color:#fff;background:#1f2531;border:1px solid #ffffff1f;border-radius:16px;gap:10px;width:min(560px,100%);margin:auto 0;padding:14px 16px;display:grid}#garage h1{margin:0;font-size:22px}#garage-view{background:linear-gradient(#b7d7e4,#d8e8c8);border-radius:12px;width:100%;height:220px}#garage .field{gap:6px;font-size:13px;display:grid}#garage .field[hidden]{display:none}#garage .picks{flex-wrap:wrap;gap:6px;display:flex}#garage .pick{font:inherit;color:#fff;cursor:pointer;background:#11151d;border:2px solid #0000;border-radius:10px;padding:6px 10px;font-size:14px}#garage .pick.picked{background:#2d3545;border-color:#fff}#garage .file input{margin-top:4px;font-size:14px;display:block}#garage-crop{border-radius:8px;width:100%;max-width:260px}#garage-crop[hidden],#garage label[hidden],#garage button[hidden]{display:none}#garage .slider{grid-template-columns:90px 1fr;align-items:center;gap:8px;display:grid}#garage .consent{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}#garage .consent input{width:20px;height:20px}#garage .note{opacity:.7;margin:0;font-size:12px}#garage-forget{font:inherit;color:#fff;cursor:pointer;background:#3a4150;border:0;border-radius:10px;justify-self:start;padding:6px 12px;font-size:13px}#garage .actions{justify-content:flex-end;gap:8px;display:flex}#garage .actions button{font:inherit;color:#fff;cursor:pointer;border:0;border-radius:12px;padding:10px 22px;font-size:16px;font-weight:700}#garage-go{background:#e84a5f}#garage-cancel{background:#3a4150}@media (orientation:landscape) and (height<=500px){#garage-form{grid-template-columns:1fr 1fr;column-gap:16px;width:min(820px,100%);padding:10px 14px}#garage h1{grid-column:1}#garage-view{grid-area:2/1/span 3;height:100%;min-height:200px}#garage .field,#garage .actions{grid-column:2}}#stage{--ui:22px;--cream:#fff6e6;--navy:#152238;--panel:#152238d1;--rim:calc(var(--ui) * .13);--ring:calc(var(--ui) * .11);--drop:calc(var(--ui) * .2)}#hud,#statusbar,#boardbox,#kit,#ammo,#hint,#fire,#banner{font:900 var(--ui)/1.1 ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Nunito", "Segoe UI", system-ui, sans-serif;color:var(--cream)}.ink{-webkit-text-stroke:.17em var(--navy);paint-order:stroke fill;text-shadow:.06em .08em 0 var(--c,var(--navy))}.emo{filter:drop-shadow(0 .06em 0 var(--navy)) drop-shadow(0 0 .04em var(--navy));font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-weight:400;line-height:1}.sticker{background:var(--panel);border:var(--rim) solid var(--cream);border-radius:calc(var(--ui) * .7);box-shadow:0 0 0 var(--ring) var(--navy), 0 var(--drop) 0 var(--ring) #1522388c}#hud{top:max(12px, var(--inset-top));left:max(14px, var(--inset-left));align-items:flex-start;gap:calc(var(--ui) * .55);pointer-events:none;flex-direction:column;display:flex;position:absolute}#me{box-sizing:border-box;max-width:10.5em;height:2.2em;font:inherit;color:var(--cream);cursor:pointer;pointer-events:auto;text-align:left;align-items:center;gap:.3em;padding:0 .6em 0 .2em;display:flex}#me[hidden]{display:none}#me .emblem{box-sizing:border-box;background:var(--c,#3d8bfd);border:var(--rim) solid var(--cream);width:1.7em;height:1.7em;box-shadow:0 0 0 var(--ring) var(--navy);border-radius:50%;flex:none;place-items:center;font-size:1em;display:grid}#me .who{flex-direction:column;min-width:0;display:flex}#me .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#me .sub{letter-spacing:.04em;opacity:.85;white-space:nowrap;margin-top:.1em;font-size:.45em}#dock{gap:calc(var(--ui) * .5);grid-template-columns:repeat(2,auto);display:grid}.tile{box-sizing:border-box;width:3.6em;height:2.9em;font:inherit;color:var(--cream);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:linear-gradient(180deg, #ffffff4d, #fff0 55%), var(--tile,#3d8bfd);border:var(--rim) solid var(--cream);box-shadow:0 0 0 var(--ring) var(--navy), 0 var(--drop) 0 var(--ring) var(--navy);border-radius:.7em;flex-direction:column;justify-content:center;align-items:center;gap:.06em;padding:0;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:flex;position:relative}.tile[hidden]{display:none}.tile:hover{transform:translateY(-.05em)}.tile:active{transform:translateY(calc(var(--drop) * .8));box-shadow:0 0 0 var(--ring) var(--navy), 0 calc(var(--drop) * .2) 0 var(--ring) var(--navy)}.tile:has(.ft-vol.open){transform:translateY(calc(var(--drop) * .8));box-shadow:0 0 0 var(--ring) var(--navy), 0 calc(var(--drop) * .2) 0 var(--ring) var(--navy)}.tile:disabled{filter:saturate(.35)brightness(.8);cursor:default}.tile .ico{font-size:1.3em}.tile .lbl{letter-spacing:.03em;white-space:nowrap;font-size:.56em}.tile kbd{box-sizing:border-box;min-width:1.15em;height:1.15em;font:inherit;color:var(--navy);background:var(--cream);box-shadow:0 0 0 .12em var(--navy), 0 .18em 0 .12em var(--navy);border-radius:.35em;place-items:center;padding:0 .25em;font-size:.5em;display:grid;position:absolute;top:-.45em;right:-.45em}html.touch .tile kbd{display:none}.tile.red{--tile:#e84a5f}.tile.gold{--tile:#ef9f2f}.tile.blue{--tile:#3d8bfd}.tile.green{--tile:#3fa33a}#volume{padding:0}#volume .ft-vol{border-radius:inherit;width:100%;height:100%;font:inherit;color:inherit;background:0 0;border:0;padding:0;display:block;position:static}#volume .ft-vol-opener{border-radius:inherit;width:100%;height:100%;color:var(--cream);font:inherit;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:.06em;margin:0;display:flex}#volume .ft-vol-opener svg{stroke-width:2.6px;width:1.2em;height:1.2em;filter:drop-shadow(0 .06em 0 var(--navy))}#volume .ft-vol-opener:hover,#volume .muted .ft-vol-opener{background:0 0}#volume .muted .ft-vol-opener .lbl:after{content:" off"}#volume .ft-vol-pop{z-index:5;box-sizing:border-box;border:var(--rim) solid var(--cream);height:44px;box-shadow:0 0 0 var(--ring) var(--navy);background:#152238f2;border-radius:999px;align-items:center;margin-block:auto;padding:0 12px 0 0;font:900 15px/1 Segoe UI,system-ui,sans-serif;display:none;position:absolute;top:0;bottom:0;left:calc(100% + .6em)}#volume .ft-vol.open .ft-vol-pop{display:inline-flex}#minimap{pointer-events:none;margin:calc(var(--rim) + var(--ring)) 0 0 calc(var(--rim) + var(--ring));box-shadow:0 0 0 var(--rim) var(--cream), 0 0 0 calc(var(--rim) + var(--ring)) var(--navy), 0 var(--drop) 0 calc(var(--rim) + var(--ring)) #15223880;border-radius:50%}#statusbar{top:max(12px, var(--inset-top));width:max-content;max-width:max(calc(var(--ui) * 6), calc(100% - 2 * (var(--board-w) + var(--ui) * .6 + 14px)));pointer-events:none;justify-content:center;margin-inline:auto;display:flex;position:absolute;left:0;right:0}#status{box-sizing:border-box;flex-direction:column;align-items:center;max-width:100%;padding:.2em .8em .28em;display:flex}#status:empty{display:none}#status .main{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.95em;overflow:hidden}#status .sub{letter-spacing:.02em;opacity:.92;white-space:nowrap;margin-top:.12em;font-size:.5em}#stage{--board-w:min(calc(var(--ui) * 15), calc(var(--stage-w,100vw) * .34))}html.compact #stage{--board-w:min(calc(var(--ui) * 13.5), calc(var(--stage-w,100vw) * .34))}#boardbox{top:max(12px, var(--inset-top));right:max(14px, var(--inset-right));width:var(--board-w);box-sizing:border-box;pointer-events:none;padding:.3em .4em .35em;position:absolute}#boardbox[hidden]{display:none}#boardbox .head{justify-content:space-between;align-items:center;gap:.4em;padding:0 .15em .1em;display:flex}#boardbox .title{letter-spacing:.03em;white-space:nowrap;font-size:.72em}#players{opacity:.9;white-space:nowrap;font-size:.45em}#board{gap:.12em;display:grid}#board .row{border-radius:.45em;grid-template-columns:1.3em 1.2em minmax(0,1fr) 1.3em 1.3em;align-items:center;column-gap:.25em;height:1.45em;padding:0 .2em;font-size:.82em;display:grid}#board .cols{opacity:.85;height:.8em;font-size:.45em}#board .me{background:#fff6e62e;box-shadow:inset 0 0 0 .1em #fff6e699}#board .down{opacity:.5}#board .rank{box-sizing:border-box;width:1.2em;height:1.2em;color:var(--cream);box-shadow:0 0 0 .1em var(--navy);background:#33466e;border-radius:50%;place-items:center;font-size:.8em;display:grid}#board .r1 .rank{color:var(--navy);background:#f2c14e}#board .r2 .rank{color:var(--navy);background:#d7dee8}#board .r3 .rank{color:var(--navy);background:#e0915a}#board .emo{text-align:center;font-size:1.05em}#board .who{align-items:center;gap:.25em;min-width:0;display:flex}#board .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}#board .tag{letter-spacing:.1em;border:.14em solid var(--navy);border-radius:999px;flex:none;padding:.22em .5em .2em;font-size:.42em;line-height:1}#board .tag.bot{color:var(--navy);background:#d9dde6}#board .tag.you{background:var(--c,var(--cream));color:var(--cream);-webkit-text-stroke:.25em var(--navy);paint-order:stroke fill}#board .k,#board .d{text-align:right;font-variant-numeric:tabular-nums}#ammo{right:max(14px, var(--inset-right));bottom:max(14px, var(--inset-bottom));font-size:calc(var(--ui) * .9);pointer-events:none;align-items:center;gap:.18em;padding:.22em .45em;display:flex;position:absolute}#ammo i{width:.36em;height:.85em;box-shadow:0 0 0 .07em var(--navy);background:#fff6e638;border-radius:.2em .2em .1em .1em}#ammo i.on{box-shadow:0 0 0 .07em var(--navy), 0 0 .3em #ffd66bb3;background:#ffd66b}#ammo .reload{width:1.7em;height:.26em;box-shadow:0 0 0 .06em var(--navy);background:#fff6e633;border-radius:.13em;margin-left:.15em;overflow:hidden}#ammo .reload b{background:var(--cream);height:100%;width:calc((1 - var(--reload,0)) * 100%);display:block}#ammo.empty .reload b{background:#e84a5f}#kit{right:max(14px, var(--inset-right));bottom:calc(max(14px, var(--inset-bottom)) + var(--ui) * 2.1);font-size:calc(var(--ui) * .8);pointer-events:none;flex-direction:column;align-items:flex-end;gap:.45em;display:flex;position:absolute}#kit span{white-space:nowrap;font-variant-numeric:tabular-nums;padding:.12em .55em .16em}#kit span[hidden]{display:none}#kit em,#kit b{font:inherit}#coins{color:#ffe27a;font-size:1.25em}#coins.bump{animation:.35s ease-out bump}@keyframes bump{40%{transform:scale(1.25)}}#armor-slot{--c:#3aa7e0}#weapon-slot{--c:#e84a5f}#fire{right:max(24px, var(--inset-right));bottom:max(24px, var(--inset-bottom));width:calc(var(--ui) * 4.2);height:calc(var(--ui) * 4.2);letter-spacing:.06em;pointer-events:none;opacity:.9;border:var(--rim) solid var(--cream);box-shadow:0 0 0 var(--ring) var(--navy), 0 var(--drop) 0 var(--ring) var(--navy);background:radial-gradient(circle at 35% 30%,#ff8e9c,#e84a5f 58%,#bf3044);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute}html.touch #fire{display:flex}#fire.on{transform:translateY(var(--drop));box-shadow:0 0 0 var(--ring) var(--navy)}html.touch #ammo{bottom:calc(max(24px, var(--inset-bottom)) + var(--ui) * 4.7);right:calc(max(24px, var(--inset-right)) + var(--ui) * .3)}html.touch #kit{bottom:calc(max(24px, var(--inset-bottom)) + var(--ui) * 6.5);right:calc(max(24px, var(--inset-right)) + var(--ui) * .3)}html.compact #kit{flex-direction:row;align-items:center}html.compact #kit em{display:none}#stick{pointer-events:none;background:#15223847;border:3px solid #fff6e6d9;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;display:none;position:absolute;box-shadow:0 0 0 2px #15223899}#stick.on{display:block}#knob{background:var(--cream);width:52px;height:52px;box-shadow:0 0 0 3px var(--navy), 0 4px 0 3px var(--navy);border-radius:50%;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}#hint{width:max-content;left:0;right:0;bottom:max(14px, var(--inset-bottom));font-size:calc(var(--ui) * .7);white-space:nowrap;pointer-events:none;margin-inline:auto;padding:.25em .75em .3em;transition:opacity .6s;position:absolute}#hint.hidden{opacity:0}#hint kbd{box-sizing:border-box;min-width:1.35em;height:1.35em;font:inherit;color:var(--navy);background:var(--cream);-webkit-text-stroke:0;text-shadow:none;box-shadow:0 0 0 .1em var(--navy), 0 .16em 0 .1em var(--navy);border-radius:.3em;place-items:center;margin:0 .08em;padding:0 .3em;font-size:.8em;display:inline-grid}#banner{text-align:center;pointer-events:none;width:max-content;margin-inline:auto;animation:.35s cubic-bezier(.2,1.5,.4,1) banner-in;position:absolute;top:24%;left:0;right:0}#banner[hidden]{display:none}#banner b{font-size:calc(var(--ui) * 1.9);letter-spacing:.04em;-webkit-text-stroke:.16em var(--navy);paint-order:stroke fill;text-shadow:0 .09em 0 var(--navy);display:block}#banner.good b{color:#ffe27a}#banner.bad b{color:#ff8a7a}#banner span{font-size:calc(var(--ui) * .62);background:var(--panel);border:var(--rim) solid var(--cream);box-shadow:0 0 0 var(--ring) var(--navy);-webkit-text-stroke:.14em var(--navy);paint-order:stroke fill;border-radius:999px;margin-top:.25em;padding:.15em .65em .2em;display:inline-block}@keyframes banner-in{0%{opacity:0;transform:translateY(.4em)scale(.6)}}@media (prefers-reduced-motion:reduce){.tile,#banner{transition:none;animation:none}}#minimap[hidden]{display:none}
