*{box-sizing:border-box}body{color:#f7efd7;background:#12150f;margin:0;font-family:system-ui}button,a,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:#ffe6a3}main,.page{padding:24px}textarea{width:100%;min-height:92px;font-size:20px}#phaser{touch-action:manipulation;background:#162014;border:0;width:100vw;height:100dvh;margin:0;position:fixed;inset:0;overflow:hidden}canvas{touch-action:none;max-width:100%;display:block;height:auto!important}#phaser canvas{max-width:none;width:100%!important;height:100%!important}h1,h2{margin:.5rem 0}.intro{background:linear-gradient(#15190c66,#12150f),url(/art/intro-village-3840x2160.webp) 50%/cover,#24351f;grid-template-rows:auto 1fr auto;min-height:100dvh;animation:18s ease-in-out infinite alternate bg;display:grid;position:relative;overflow:hidden}.intro:before{content:"";background:linear-gradient(90deg,#090b05cc,#0000 38%,#140b08aa);position:absolute;inset:0}.intro:after{content:"";pointer-events:none;background:radial-gradient(circle at 22% 38%,#ffe28a33 0 2px,#0000 5px),radial-gradient(circle at 70% 58%,#89e9ff22 0 2px,#0000 6px),radial-gradient(circle at 55% 22%,#fff4bd26 0 1px,#0000 5px);animation:12s ease-in-out infinite alternate mist;position:absolute;inset:-10%}.top,.hero,.foot{z-index:1;position:relative}.top{justify-content:space-between;align-items:center;gap:18px;width:calc(100% - 64px);margin:24px auto 0;padding:0;display:flex}.brand{object-fit:contain;filter:drop-shadow(0 6px 16px #000);width:180px;height:54px;display:block}.top button,.enter,dialog button,.doc button{color:#1a1005;background:linear-gradient(#ffe28a,#bd7928);border:1px solid #fff0a3;min-height:44px;font-weight:900}.gear{border-radius:50%;place-items:center;width:48px;padding:0;display:grid;box-shadow:0 8px 24px #0009,0 0 20px #f0c85a44}.gear:before{content:"⚙";font-size:24px}.hero{text-align:center;text-shadow:0 4px 20px #000;place-self:center;padding:24px}.hero h1{color:#fff4bd;font-size:88px;line-height:.94}.mark{animation:5.5s ease-in-out infinite float;display:inline-block;position:relative}.mark:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 38%,#fff8 48%,#ffe28aaa 53%,#0000 64%) 0 0/220% 100%;animation:5s ease-in-out infinite shine;position:absolute;inset:0;-webkit-mask:url(/title-logo.png) 50%/contain no-repeat;mask:url(/title-logo.png) 50%/contain no-repeat}.title{filter:drop-shadow(0 10px 24px #000);width:min(760px,80vw);height:auto;display:block}.hero p{clip-path:inset(0 100% 0 0);max-width:760px;margin:18px auto 30px;font-size:24px;line-height:1.5;animation:3.2s steps(42,end) .25s both type;overflow:hidden}.hero p:after{content:"";background:#ffe28a;width:2px;height:1em;margin-left:5px;animation:.8s step-end infinite blink;display:inline-block}.enter{border-radius:8px;padding:17px 30px;font-size:24px;text-decoration:none;transition:all .2s;animation:3.6s ease-in-out infinite glow;display:inline-block;box-shadow:0 0 0 4px #3b251499,0 18px 40px #000b,0 0 34px #f0c85a55}.enter:hover{filter:saturate(1.12);transform:translateY(-2px)}.foot{text-shadow:0 2px 10px #000;justify-content:center;align-items:center;gap:14px;width:min(1180px,100% - 32px);margin:0 auto 18px;padding:0;display:flex}.foot span{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.foot a{color:#ffe6a3cc;font-size:13px;text-decoration:none}.foot a:hover{color:#fff0b4}.foot small{color:#f7efd780}@keyframes type{to{clip-path:inset(0)}}@keyframes blink{50%{opacity:0}}@keyframes bg{to{background-position:50%,52% 48%}}@keyframes mist{to{opacity:.65;transform:translate(2%,-1%)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes shine{0%,55%{opacity:0;background-position:140% 0}70%{opacity:.75}to{opacity:0;background-position:-60% 0}}@keyframes glow{50%{box-shadow:0 0 0 4px #3b251499,0 18px 40px #000b,0 0 48px #f0c85a88}}.shade{z-index:5;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}dialog{color:#f8f0d8;background:#1d2419;border:1px solid #d8b85b;border-radius:8px;width:min(560px,92vw);max-height:calc(100dvh - 32px);padding:24px;overflow:auto}dialog label{gap:6px;margin:12px 0;display:grid}.docpop{background:linear-gradient(160deg,#10140ff0,#22150fe8);width:min(880px,92vw);box-shadow:0 24px 90px #000c}.docpop h1{color:#fff0b4;margin:0 48px 18px 0;font-size:36px}.docart{aspect-ratio:16/9;object-fit:cover;background:linear-gradient(160deg,#15190fcc,#2a211088);border:1px solid #d8b85b66;border-radius:8px;width:100%;margin:0 0 22px;display:block}.docart[hidden]{display:none}.set{background:linear-gradient(160deg,#10140fe8,#25190fd9);border-color:#ffe28a66;position:relative;box-shadow:0 24px 90px #000c,0 0 40px #f0c85a22}.set h2{color:#fff0b4;align-items:center;gap:10px;margin:0 0 16px;display:flex}.set h2 i,.row i,.full i{font-style:normal}.x{border-radius:50%;place-items:center;width:36px;min-height:36px;padding:0;display:grid;position:absolute;top:14px;right:14px}.row{background:#0d120aa8;border:1px solid #ffffff18;border-radius:8px;grid-template-columns:34px 1fr minmax(160px,220px);align-items:center;gap:10px;margin:13px 0;padding:10px;display:grid}.row i{color:#ffe28a;background:#f0c85a22;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.row span{font-weight:800}.row select,.range input{width:100%}.range{padding-top:24px;position:relative}.range input{accent-color:#f0c85a}.range b{right:calc(12px + (220px - 24px)*(100 - var(--v))/100);color:#1a1005;background:#ffe28a;border-radius:999px;padding:2px 7px;font-size:12px;position:absolute;top:2px;transform:translate(50%)}.sw{grid-template-columns:34px 1fr 64px}.tog{appearance:none;cursor:pointer;background:#2f3525;border:1px solid #ffe28a66;border-radius:999px;justify-self:end;width:54px;height:30px;position:relative}.tog:before{content:"";background:#d8b85b;border-radius:50%;width:22px;height:22px;transition:all .2s;position:absolute;top:3px;left:3px}.tog:checked{background:#846021}.tog:checked:before{background:#fff2ad;left:27px}.full{border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:16px;display:flex}.small{font-size:14px}.large{font-size:20px}body:has(.doc){background:linear-gradient(160deg,#12150f,#21162c 52%,#17100b)}.doc{max-width:960px;min-height:100dvh;margin:auto;padding:32px 24px 80px;line-height:1.75}.docnav{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11150ee6;border:1px solid #f6d78a30;border-radius:8px;flex-wrap:wrap;gap:8px;padding:10px;display:flex;position:sticky;top:14px}.docnav a{background:#2a211088;border-radius:8px;padding:9px 12px;text-decoration:none}.doc h1{color:#fff0b4;margin:54px 0 24px;font-size:42px}.doc p{border-left:3px solid #d8b85b;margin:0 0 18px;padding-left:18px;font-size:18px}.doc form{background:#14180fcc;border:1px solid #d8b85b66;border-radius:8px;gap:12px;margin-top:28px;padding:18px;display:grid}.doc input,.doc textarea,.doc select,dialog select{color:#20170c;background:#fff7df;border:1px solid #d8b85b;min-height:44px;padding:10px}.doc button:disabled{opacity:.75}.contact{background:#0d120ab3;border:1px solid #d8b85b55;border-radius:8px;gap:12px;margin-top:24px;padding:16px;display:grid}.contact label{grid-template-columns:34px 1fr;gap:6px 10px;margin:0;display:grid}.contact label i{color:#ffe28a;background:#f0c85a22;border-radius:8px;grid-row:1/3;place-items:center;width:34px;height:34px;font-style:normal;display:grid}.contact span{color:#fff0b4;font-weight:900}.contact input,.contact textarea{color:#20170c;background:#fff8e6;border:1px solid #e6c773;border-radius:8px;grid-column:2;min-height:48px;box-shadow:inset 0 2px 8px #5a3b1433}.contact input:focus,.contact textarea:focus{outline:2px solid #ffe28a}.contact button{border-radius:8px}.game{background:#162014;min-width:0;min-height:100dvh;padding:0;display:block;position:fixed;inset:0;overflow:hidden}.game>*{min-width:0}.game h2{font-size:26px}.play{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(160deg,#10140ff0,#25190fe6);border:1px solid #ffe28a88;border-radius:8px;width:min(720px,100vw - 32px);padding:18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 20px 70px #000c,0 0 34px #f0c85a33}.play p{color:#ffe28a;margin:0 42px 8px 0;font-weight:900}.play h2{color:#fff4bf;margin:0 0 12px;font-size:24px;line-height:1.3}.play textarea{color:#20170c;background:#fff8e6;border:1px solid #e6c773;border-radius:8px;min-height:96px;padding:12px;box-shadow:inset 0 2px 8px #5a3b1433}.play .x{top:12px;right:12px}.battle{gap:12px;width:min(980px,100vw - 32px);display:grid}.battle.hurt{animation:.18s bshake}.bbars{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bbars label{color:#fff4bf;gap:5px;font-weight:900;display:grid}.bbars i{background:#120d08;border:1px solid #ffe28a66;border-radius:99px;height:12px;overflow:hidden}.bbars em{background:linear-gradient(90deg,#58d7ff,#ffe28a);height:100%;display:block}.foe{background:radial-gradient(circle,#5b315788,#080b0ccc 70%);border:1px solid #ffffff18;border-radius:8px;place-items:center;min-height:210px;display:grid;position:relative;overflow:hidden}.foeCore{background:radial-gradient(circle at 50% 36%,#fff2ad,#7c4dff 36%,#24113d 72%);border-radius:46% 54% 48% 52%;width:150px;height:150px;box-shadow:0 0 44px #9f7aff88}.foe img{object-fit:contain;filter:drop-shadow(0 12px 24px #000);max-width:70%;max-height:190px;position:absolute}.foe b{color:#fff0b4;text-shadow:0 4px 16px #000;font-size:34px;animation:.55s both rise;position:absolute;top:34px}.foe span{color:#ffe28a;font-weight:900;position:absolute;bottom:10px}.foe.hit .foeCore,.foe.hit img{animation:.16s hit}.foe.cast:after{content:"";background:linear-gradient(90deg,#0000,#fff7,#ffe28a,#0000);animation:.45s both beam;position:absolute;inset:30% 10%}.line{color:#f8f0d8;flex-wrap:wrap;gap:2px;margin:0;font-size:26px;line-height:1.45;display:flex}.line span{border-radius:5px;min-width:.55em;padding:1px 2px}.line .ok{color:#ffe28a;background:#ffe28a22}.line .cur{color:#fff;outline:2px solid #58d7ff}.line .bad{color:#fff;background:#c73939}.ko{text-align:center;gap:12px;display:grid}.ko button{border-radius:8px;justify-self:center;padding:0 20px}@keyframes bshake{25%{transform:translate(calc(-50% - 6px))}75%{transform:translate(calc(6px - 50%))}}@keyframes hit{50%{filter:brightness(2);transform:translate(8px)scale(1.04)}}@keyframes rise{to{opacity:0;transform:translateY(-28px)scale(1.15)}}@keyframes beam{0%{opacity:0;transform:translate(-40%)}to{opacity:0;transform:translate(40%)}50%{opacity:1}}.hud{z-index:3;color:#fff4bf;text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#10140fe8,#25190fdc);border:1px solid #ffe28a88;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 10px;width:250px;padding:10px 12px;display:grid;position:fixed;top:18px;left:18px;box-shadow:0 12px 34px #000b}.hud b{color:#ffe28a;font-size:18px}.hud span,.hud small{font-weight:900}.hud small{opacity:.82}.hud i{background:#120d08;border:1px solid #ffe28a55;border-radius:99px;grid-column:1/4;height:9px;overflow:hidden}.hud em{background:linear-gradient(90deg,#58d7ff,#ffe28a);border-radius:99px;height:100%;display:block}.statShade{z-index:6;background:#0008;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.stat{color:#f8f0d8;background:linear-gradient(160deg,#10140ff2,#25190fee);border:1px solid #ffe28a88;border-radius:8px;width:min(460px,92vw);padding:22px;position:relative;box-shadow:0 24px 80px #000d}.stat h2{color:#fff0b4;margin:0 48px 14px 0}.stat p{background:#0d120aa8;border:1px solid #ffffff18;border-radius:8px;margin:8px 0;padding:10px;font-weight:800}.tower{z-index:4;text-shadow:0 3px 16px #000;background:radial-gradient(circle at 50% 38%,#6d52ff66,#111827 45%,#08090d);place-items:end center;padding:32px;display:grid;position:fixed;inset:0}.tower:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#05070a22,#0b0c1288);position:absolute;inset:0}.towerbg{z-index:0;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tower div{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#10140fe8,#25190fdc);border:1px solid #ffe28a88;border-radius:8px;width:min(680px,100vw - 32px);padding:22px;position:relative;box-shadow:0 24px 80px #000d,0 0 38px #715cff44}.tower b{color:#ffe28a;font-size:18px;display:inline-block}.tower h1{color:#fff4bf;margin:4px 0;font-size:42px}.tower p{margin:0 0 18px;font-size:19px;line-height:1.5}.tower span{gap:10px;display:flex}.tower button{color:#1a1005;background:linear-gradient(#ffe28a,#bd7928);border:1px solid #fff0a3;border-radius:8px;min-height:46px;padding:0 22px;font-weight:900}body:has(.game){background:#162014;overflow:hidden}@media (max-width:760px){main,.page{padding:12px}.game{padding:0}.top{width:calc(100% - 28px);margin-top:14px}.brand{align-self:center;width:128px;height:40px}.gear{width:42px;min-height:42px}.hero{align-self:end;padding:12px 10px 8dvh}.hero h1{font-size:48px}.title{width:min(320px,86vw)}.hero p{max-width:340px;margin:14px auto 22px;font-size:16px;line-height:1.55}.enter{padding:14px 18px;font-size:17px}.foot{flex-direction:column;gap:6px;margin-bottom:12px}.foot a{font-size:12px}dialog{width:calc(100vw - 24px);padding:16px}.row{grid-template-columns:30px 1fr minmax(120px,150px);gap:8px;margin:8px 0;padding:8px}.row select,.range input{grid-column:auto}.range{padding-top:22px}.sw{grid-template-columns:30px 1fr 60px}.sw .tog{grid-area:1/3}.range b{right:calc(10px + (150px - 24px)*(100 - var(--v))/100);left:auto;transform:translate(50%)}.docpop h1{font-size:28px}.docart{margin-bottom:16px}.doc{padding:16px 14px 56px}.docnav{gap:5px;top:8px}.docnav a{padding:8px 7px;font-size:12px}.doc h1{margin-top:34px;font-size:30px}.doc p{padding-left:13px;font-size:16px}.play{width:auto;padding:12px;bottom:12px;left:12px;right:12px;transform:none}.play p{margin:0 40px 6px 0}.play h2{font-size:18px;line-height:1.25}.play textarea{min-height:108px;font-size:16px}.battle{gap:9px}.bbars{grid-template-columns:1fr}.foe{min-height:150px}.foeCore{width:110px;height:110px}.foe img{max-height:135px}.line{font-size:18px}.battle.hurt{animation:.18s mshake}@keyframes mshake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.hud{width:min(240px,100vw - 20px);padding:9px 10px;top:10px;left:10px}.stat{padding:16px}.stat p{font-size:14px}.tower{place-items:end center;padding:12px}.tower div{padding:16px}.tower h1{font-size:32px}.tower p{font-size:16px}.tower span{display:grid}.tower button{width:100%}}@media (prefers-reduced-motion:reduce){.intro,.intro:after,.mark,.mark:after,.enter{animation:none!important}}
