*{box-sizing:border-box}.ts-page{color:#fff;-webkit-user-select:none;user-select:none;touch-action:none;background:#2c9ed1;height:100svh;font-family:Nunito,system-ui,sans-serif;overflow:hidden}.ts-page header{height:72px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));z-index:40;background:#112d48;align-items:center;gap:16px;display:flex;position:relative;box-shadow:0 5px #071a2b}.ts-page header a,.ts-page header button{color:#24384b;background:#ffcf58;border:0;border-radius:14px;padding:11px 15px;font-weight:900;text-decoration:none;box-shadow:0 4px #a56c21}.ts-page header div{flex-direction:column;display:flex}.ts-page header div b{letter-spacing:.05em;font-size:21px}.ts-page header div small{color:#9de9ff;font-weight:900}.ts-page header span{color:#ff6f78;margin-left:auto;font-size:20px;font-weight:1000}.ts-page header strong{color:#ffe36c;font-size:18px}.ts-page header strong small{color:#9de9ff;font-size:11px;display:block}.ts-view{background:#2ba9dc;height:calc(100svh - 72px);position:relative;overflow:hidden}.ts-world{will-change:transform;width:5200px;height:3500px;position:absolute}.ts-grass{background-color:#8fce55;background-image:radial-gradient(#6fa948 2px,#0000 2px);background-size:28px 28px;border:30px solid #496e54;position:absolute;inset:0}.ts-river{z-index:2;background:url(/tiny-swords-full/water.png) 0 0/64px;border:12px solid #416f65;width:270px;height:3700px;position:absolute;top:-100px}.ts-river.one{left:1680px;transform:rotate(3deg)}.ts-river.two{left:3460px;transform:rotate(-4deg)}.ts-bridge{z-index:14;background:repeating-linear-gradient(90deg,#c78344 0 35px,#744020 36px 43px);border:10px solid #65371d;width:320px;height:120px;position:absolute;box-shadow:0 12px #24504499}.ts-deco{object-fit:contain;z-index:4;filter:drop-shadow(0 9px 5px #315d4388);pointer-events:none;width:115px;height:140px;position:absolute}.ts-camp{z-index:10;text-align:center;width:390px;height:340px;position:absolute;transform:translate(-50%,-50%)}.ts-camp>img:first-child{object-fit:contain;width:300px;height:280px;image-rendering:pixelated;filter:drop-shadow(0 16px 6px #254b3c99)}.ts-camp>b{background:#173850dd;border:3px solid #ffe58b;border-radius:10px;margin-top:-30px;padding:6px 10px;display:block}.ts-camp .tower{object-fit:contain;width:160px;height:180px;image-rendering:pixelated;position:absolute}.ts-camp .tower.a{top:100px;left:-90px}.ts-camp .tower.b{top:100px;right:-90px}.ts-resource{z-index:11;width:80px;height:80px;animation:1s infinite alternate float;position:absolute;transform:translate(-50%,-50%)}.ts-resource img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.ts-resource b{color:#70450d;background:#ffe15d;border-radius:10px;padding:2px 6px;position:absolute;top:-14px;right:-8px}.ts-unit{z-index:24;filter:drop-shadow(0 10px 5px #193d3388);width:125px;height:125px;position:absolute;transform:translate(-50%,-65%)}.ts-unit i{width:100%;height:100%;image-rendering:pixelated;background-repeat:no-repeat;background-size:auto 125px;display:block}.ts-unit.hero i{background-image:url(/tiny-swords-full/player-idle.png);animation:1.2s steps(8,end) infinite idle}.ts-unit.hero.run i{background-image:url(/tiny-swords-full/player-run.png);animation:.7s steps(6,end) infinite run}.ts-unit.hero.attack i{background-image:url(/tiny-swords-full/player-attack.png);animation:.4s steps(4,end) attack}.ts-unit.foe i{background-image:url(/tiny-swords-full/enemy-run.png);animation:.8s steps(6,end) infinite run}.ts-unit.foe.elite{width:160px;height:160px}.ts-unit.foe.elite i{background-image:url(/tiny-swords-full/elite-idle.png);background-size:auto 160px;animation:1.1s steps(8,end) infinite idle}.ts-unit.foe.archer i{background-image:url(/tiny-swords-full/archer-idle.png);animation:1s steps(6,end) infinite run}.ts-unit em{background:#3a1820;border:2px solid #fff;border-radius:8px;height:9px;position:absolute;top:-4px;left:15%;right:15%;overflow:hidden}.ts-unit em b{background:#f25763;height:100%;display:block}.ts-notice{z-index:33;color:#213a4a;text-align:center;background:#fff8dfee;border:4px solid #f4c456;border-radius:16px;max-width:70vw;padding:10px 21px;font-weight:900;position:absolute;top:15px;left:50%;transform:translate(-50%);box-shadow:0 6px #64432388}.ts-controls{z-index:34;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:170px;height:170px;position:absolute}.ts-controls button{color:#fff;touch-action:none;background:#112d48cc;border:3px solid #fff9;border-radius:20px;width:66px;height:66px;font-size:25px;font-weight:900;position:absolute}.ts-controls .up{left:52px}.ts-controls .left{top:52px}.ts-attack{z-index:34;right:max(25px,env(safe-area-inset-right));bottom:max(27px,env(safe-area-inset-bottom));color:#fff;touch-action:none;background:#e24d58;border:5px solid #ffd766;border-radius:50%;width:105px;height:105px;font-size:40px;font-weight:1000;position:absolute;box-shadow:0 8px #8d2931}.ts-attack small{font-size:11px;display:block}.ts-gate,.ts-map{z-index:60;text-align:center;background:#071f38e8;place-items:center;padding:25px;display:grid;position:absolute;inset:0}.ts-gate h1{color:#ffe269;margin:0;font-size:clamp(30px,5vw,58px)}.ts-gate a{color:#123d43;background:#42d4a7;border-radius:14px;padding:14px 22px;font-weight:900;text-decoration:none}.ts-map{background:linear-gradient(90deg,#0000 31%,#2ba9dc 32% 35%,#0000 36% 65%,#2ba9dc 66% 69%,#0000 70%),#88ca54;border:8px solid #fff;border-radius:24px;display:block;inset:5%;box-shadow:0 0 0 9999px #071a2bbb}.ts-map>button{color:#ed4d59;background:0 0;border:0;font-size:30px;position:absolute;transform:translate(-50%,-50%)}.ts-map>button:first-child{color:#fff;background:#ed5962;border-radius:50%;width:42px;height:42px;top:10px;left:auto;right:10px;transform:none}.ts-map button small{color:#213a4a;white-space:nowrap;background:#fff;border-radius:8px;padding:3px 6px;font-weight:900;display:block}@keyframes idle{to{background-position:-1000px 0}}@keyframes run{to{background-position:-750px 0}}@keyframes attack{to{background-position:-500px 0}}@keyframes float{to{transform:translate(-50%,-60%)}}@media (max-width:700px){.ts-page header{gap:7px;height:62px}.ts-page header a,.ts-page header button{padding:8pxpx;font-size:11px}.ts-page header div b{font-size:15px}.ts-page header div small{display:none}.ts-page header span{font-size:14px}.ts-page header strong{font-size:13px}.ts-view{height:calc(100svh - 62px)}.ts-notice{padding:7px 10px;font-size:12px;top:8px}.ts-controls{transform-origin:0 100%;bottom:12px;left:12px;transform:scale(.84)}.ts-attack{width:86px;height:86px;font-size:32px;bottom:20px;right:18px}.ts-unit{width:112px;height:112px}.ts-unit i{background-size:auto 112px}.ts-unit.foe.elite{width:140px;height:140px}.ts-unit.foe.elite i{background-size:auto 140px}.ts-page header a,.ts-page header button{padding:8px}}.ts-page header{height:0;box-shadow:none;pointer-events:none;background:0 0;padding:0;position:fixed;inset:0 0 auto}.ts-page header>a{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));pointer-events:auto;color:#fff;background:#112d48dd;border:2px solid #fff9;position:fixed;box-shadow:0 4px #071a2baa}.ts-page header>div{display:none}.ts-page header>button{top:max(12px,env(safe-area-inset-top));left:max(145px,calc(env(safe-area-inset-left) + 145px));pointer-events:auto;position:fixed}.ts-page header>span{top:max(14px,env(safe-area-inset-top));right:max(132px,calc(env(safe-area-inset-right) + 132px));background:#112d48d9;border:2px solid #fff7;border-radius:14px;margin:0;padding:9px 13px;position:fixed}.ts-page header>strong{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));background:#112d48d9;border:2px solid #fff7;border-radius:14px;padding:7px 12px;position:fixed}.ts-view{height:100svh}.ts-controls{width:204px;height:164px;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom))}.ts-controls button{-webkit-tap-highlight-color:transparent;background:#102d48a8;border:3px solid #ffffffb8;border-radius:50%;width:74px;height:74px;box-shadow:0 5px #071a2b88}.ts-controls .left{top:45px;left:0}.ts-controls .right{top:45px;right:0}.ts-controls .up{top:0;left:65px}.ts-controls .down{bottom:0;left:65px}.ts-attack{right:max(26px,env(safe-area-inset-right));bottom:max(34px,env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent;width:112px;height:112px}.ts-page button,.ts-page a{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media (max-width:700px){.ts-page header>button{display:none}.ts-page header>a{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));padding:8px 10px;font-size:11px}.ts-page header>span{top:max(8px,env(safe-area-inset-top));right:max(112px,calc(env(safe-area-inset-right) + 112px));padding:7px 9px;font-size:13px}.ts-page header>strong{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));padding:6px 9px}.ts-notice{top:max(54px,calc(env(safe-area-inset-top) + 54px));max-width:82vw}.ts-controls{width:194px;height:154px;left:max(8px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));transform:none}.ts-controls button{width:68px;height:68px}.ts-controls .left,.ts-controls .right{top:43px}.ts-controls .up,.ts-controls .down{left:63px}.ts-attack{right:max(16px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:96px;height:96px}}.ts-canvas-page{color:#fff;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#4fb2b4;width:100vw;height:100dvh;font-family:Nunito,system-ui,sans-serif;position:fixed;inset:0;overflow:hidden}.ts-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.ts-canvas-page header{height:72px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));z-index:40;background:#112d48;align-items:center;gap:16px;display:flex;position:relative;box-shadow:0 5px #071a2b}.ts-canvas-page header a{color:#24384b;background:#ffcf58;border:0;border-radius:14px;padding:11px 15px;font-weight:900;text-decoration:none;box-shadow:0 4px #a56c21}.ts-canvas-page header div{flex-direction:column;display:flex}.ts-canvas-page header div small,.ts-canvas-page header strong small{color:#9de9ff;font-size:11px;display:block}.ts-canvas-page header span{color:#ff6f78;margin-left:auto;font-size:20px;font-weight:1000}.ts-canvas-page header strong{color:#ffe36c;font-size:18px}.ts-canvas-page .ts-notice,.ts-canvas-page .ts-controls,.ts-canvas-page .ts-attack{z-index:45}.ts-canvas-page .ts-gate{z-index:60}.ts-canvas-page header .ts-supplies{color:#fff4c4;margin-left:0;font-size:17px}.ts-sell{z-index:48;color:#103c3b;touch-action:manipulation;background:#35c78e;border:4px solid #fff4b0;border-radius:18px;min-width:190px;padding:12px 20px;font:900 17px Nunito,system-ui,sans-serif;position:absolute;top:92px;left:50%;transform:translate(-50%);box-shadow:0 7px #176d59}.ts-sell small{color:#174c48;margin-top:2px;font-size:12px;display:block}@media (max-width:700px){.ts-canvas-page header{height:0;box-shadow:none;background:0 0;padding:0}.ts-canvas-page header>div{display:none}.ts-canvas-page header>a{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));padding:8px 10px;font-size:11px;position:fixed}.ts-canvas-page header>span{background:#112d48d9;border:2px solid #fff7;border-radius:14px;margin:0;padding:7px 9px;font-size:13px;position:fixed}.ts-canvas-page header>.ts-hearts{top:max(8px,env(safe-area-inset-top));right:max(112px,calc(env(safe-area-inset-right) + 112px))}.ts-canvas-page header>.ts-supplies{top:max(49px,calc(env(safe-area-inset-top) + 49px));right:max(8px,env(safe-area-inset-right));font-size:12px}.ts-canvas-page header>strong{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));background:#112d48d9;border:2px solid #fff7;border-radius:14px;padding:5px 9px;font-size:13px;position:fixed}.ts-canvas-page .ts-notice{top:max(91px,calc(env(safe-area-inset-top) + 91px))}.ts-sell{top:max(137px,calc(env(safe-area-inset-top) + 137px));min-width:170px;padding:9px 15px;font-size:15px}}@media (max-height:500px) and (orientation:landscape){.ts-notice{top:max(48px,calc(env(safe-area-inset-top) + 48px));font-size:11px}.ts-controls{transform-origin:0 100%;transform:scale(.82)}.ts-attack{transform-origin:100% 100%;transform:scale(.84)}}.ts-ocean{background:#51b7ca url(/tiny-swords-full/water.png) 0 0/64px 64px;position:absolute;inset:-700px}.ts-terrain{z-index:1;width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 8px #286b70);background-repeat:no-repeat;background-size:576px 384px;position:absolute}.ts-ocean{filter:saturate(.92)brightness(1.08);background:#4dadad url(/tiny-swords-full/water.png) 0 0/128px 128px;position:absolute;inset:-300px}.ts-cloud-layer{z-index:20;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ts-cloud-layer i{opacity:.2;filter:blur(4px);background:#fff;border-radius:999px;animation:16s ease-in-out infinite alternate cloud-drift;position:absolute;box-shadow:38px -8px 0 5px #fff9,-30px 4px 0 1px #fff7}.ts-house{z-index:9;object-fit:contain;width:150px;height:150px;image-rendering:pixelated;filter:drop-shadow(0 12px 7px #174a4d88);position:absolute;transform:translate(-50%,-58%)}.ts-animal{z-index:12;object-fit:contain;width:54px;height:54px;image-rendering:pixelated;filter:drop-shadow(0 5px 3px #174a4d88);animation:1.3s ease-in-out infinite alternate animal-bob;position:absolute;transform:translate(-50%,-60%)}@keyframes cloud-drift{to{transform:translate(85px)translateY(12px)}}@keyframes animal-bob{to{transform:translate(-50%,-67%)}}@media (max-width:700px){.ts-cloud-layer i{opacity:.14}.ts-house{width:126px;height:126px}.ts-animal{width:46px;height:46px}}.ts-world{width:10400px;height:7000px}.ts-bridge{background:repeating-linear-gradient(90deg,#8d522d 0 8px,#d9964f 9px 39px,#65361f 40px 46px);border:0;border-top:8px solid #5b321f;border-bottom:9px solid #5b321f;border-radius:46% 46% 22px 22px;width:330px;height:118px;animation:2.8s ease-in-out infinite alternate bridge-breathe;box-shadow:0 16px #24504488,0 21px 18px #103d4f77}.ts-bridge:before,.ts-bridge:after{content:"";background:#efd28a;border-radius:99px;height:6px;position:absolute;left:10px;right:10px;box-shadow:0 3px #563521}.ts-bridge:before{top:8px}.ts-bridge:after{bottom:8px}.ts-cloud-layer img{opacity:.62;filter:drop-shadow(0 15px 9px #174a5c55);height:auto;animation:18s ease-in-out infinite alternate cloud-drift;position:absolute}.ts-water-rock{z-index:1;object-fit:contain;width:76px;height:76px;image-rendering:pixelated;filter:drop-shadow(0 6px 4px #15566a66);position:absolute}.ts-fire{z-index:18;object-fit:cover;object-position:left;width:96px;height:96px;image-rendering:pixelated;filter:drop-shadow(0 0 12px #ff9d38);position:absolute;transform:translate(-50%,-65%)}.ts-terrain{filter:drop-shadow(0 9px #2e6f75)drop-shadow(0 14px 4px #174b5e88)}@keyframes bridge-breathe{to{translate:0 2px}}@media (max-width:700px){.ts-cloud-layer img{opacity:.42}.ts-water-rock{width:62px;height:62px}.ts-fire{width:80px;height:80px}}.ts-ocean:after{content:"";opacity:.08;background:url(/tiny-swords-full/water-foam.png) 0 0/768px 128px;animation:18s linear infinite ocean-flow;position:absolute;inset:0}.ts-land-shadow{z-index:0;object-fit:fill;opacity:.42;filter:blur(1px);height:70px;position:absolute;transform:translateY(-12px)}.ts-splash{z-index:13;object-fit:cover;object-position:left;width:110px;height:110px;image-rendering:pixelated;opacity:.72;animation:1.4s steps(4,end) infinite splash-pulse;position:absolute}@keyframes ocean-flow{to{background-position:768px 128px}}@keyframes splash-pulse{50%{opacity:.35;transform:scale(.92)}}
