*{box-sizing:border-box}body{margin:0;background:#101919;color:#ede9dd;font-family:Arial,sans-serif}.layout{min-height:100svh;display:grid;grid-template-columns:1fr minmax(330px,480px) .78fr;gap:5vw;max-width:1540px;margin:auto;padding:30px 5vw}.intro{display:flex;flex-direction:column;justify-content:space-between;min-width:0}.brand{color:#ede9dd;text-decoration:none;font-size:29px;font-weight:900;letter-spacing:5px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.sigil{color:#d4b778;font-size:38px}.edition{flex-basis:100%;font-size:9px;letter-spacing:2px;color:#7c9290;margin-left:48px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#cfb87e;font-weight:700}.story{padding:40px 0}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(42px,4.3vw,68px);line-height:1.05;letter-spacing:-2px;margin:23px 0}h1 em{color:#d2b77a;font-weight:400}.description{font-size:14px;line-height:1.8;color:#9dafaa}.rule{width:42px;height:1px;background:#63706a;margin:35px 0}.small-title{font-size:10px;letter-spacing:2px;color:#667f79}ol{padding:0;list-style:none}li{font-size:12px;color:#b7c3bd;margin:20px 0;display:flex;gap:14px}li span{font-size:10px;color:#d0b678}.controls{display:flex;align-items:center;gap:7px;margin-top:34px}kbd{border:1px solid #3d5049;border-radius:4px;padding:6px 9px;color:#cfb87e}.controls span{font-size:11px;color:#81978d;margin-left:8px}footer{font-size:8px;letter-spacing:1.5px;color:#71837b;display:flex;justify-content:space-between}footer span{color:#cbb578}.game-shell{height:min(900px,calc(100svh - 60px));min-height:570px;position:relative;border:1px solid #556552;border-radius:20px;overflow:hidden;background:#18272b;box-shadow:0 24px 90px #0006;touch-action:none;user-select:none}canvas{width:100%;height:100%;display:block}.hud{position:absolute;top:22px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:center}.hud-label{font-size:9px;letter-spacing:2px;color:#d3c9a9}.hud-label b{color:#e7c980;margin-left:6px}.hud strong{display:block;font-family:Georgia,serif;font-size:19px;font-weight:400;margin-top:5px}.hud-actions{display:flex;gap:8px}button{cursor:pointer;font:inherit}.hud button{width:34px;height:34px;border:1px solid #d6ca9d44;background:#14231dbb;color:#ede9dd;border-radius:50%;font-size:17px}.progress{position:absolute;top:87px;left:23px;right:23px;background:#0c181899;height:3px}.progress div{height:100%;width:0;background:#d8bd76;transition:width .2s}.stats{position:absolute;top:103px;left:23px;right:23px;display:flex;justify-content:space-between}.stats span{display:block;font-size:8px;letter-spacing:1.4px;color:#b2c4bb}.stats b{display:block;font-size:18px;margin-top:6px}.stats div:nth-child(2){text-align:center}.stats div:last-child{text-align:right}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(#0c20133b,#0b231bc9 45%,#0a211be8);backdrop-filter:blur(2px);padding:25px}.overlay.hidden{display:none}.crest{font-size:54px;color:#e0c487;border:1px solid #cbb57866;width:92px;height:100px;display:grid;place-items:center;border-radius:46px 46px 8px 8px;margin-bottom:22px}.overlay h2{font-family:Georgia,serif;font-size:54px;line-height:1.05;font-weight:400;margin:15px 0;color:#f6efd9}.overlay>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#bac8b5}.primary{background:#d7bf85;color:#1c3027;border:0;border-radius:6px;padding:19px 24px;font-size:11px;font-weight:bold;letter-spacing:1.5px;min-width:250px;margin-top:22px;box-shadow:0 5px 20px #0003}.primary:hover{background:#efdaac}.primary span{float:right;font-size:18px}.overlay .record{font-size:9px!important;letter-spacing:2px;margin-top:26px;color:#829889!important}.record b{color:#d7bf85}.bottom-hint{position:absolute;bottom:18px;text-align:center;width:100%;font-size:10px;color:#eee9c6;letter-spacing:.8px;pointer-events:none}#toast{position:absolute;top:27%;width:100%;text-align:center;color:#fff4c9;font-weight:bold;font-size:18px;text-shadow:0 2px 10px #000;opacity:0;transition:opacity .15s;pointer-events:none}.right{display:flex;flex-direction:column;justify-content:center;gap:65px}.chapter h3{font:36px/1.15 Georgia,serif;margin:20px 0}.chapter p,.tip p{font-size:12px;color:#80978d;line-height:1.9;max-width:215px}.map-art{color:#a9b891;font-size:45px;display:flex;gap:10px;align-items:center;margin-top:35px}.map-art span{font-size:15px;color:#506c5d}.tip{border-top:1px solid #30463a;padding-top:25px}.tip>span{font-size:9px;color:#cbb578;letter-spacing:1px}.version{font-size:8px;letter-spacing:1px;color:#577166}button:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:1100px){.layout{grid-template-columns:1fr minmax(330px,480px);gap:4vw}.right{display:none}}@media(max-width:700px){.layout{display:block;padding:0}.intro{display:none}.game-shell{height:100svh;min-height:0;width:100%;max-width:520px;margin:auto;border:0;border-radius:0}.hud{top:max(22px,env(safe-area-inset-top))}.bottom-hint{bottom:max(18px,env(safe-area-inset-bottom))}}
.experience{position:absolute;top:160px;left:23px;right:23px;font-size:9px;color:#efdfa6;letter-spacing:1px}.experience>div{height:4px;background:#0f302c;margin:6px 0}.experience i{display:block;height:100%;width:0;background:#81ded0}.experience small{font-size:9px;letter-spacing:.4px;color:#d4dbbc}#combo{float:right;color:#ffcc82}.chapter-label{position:absolute;top:193px;text-align:center;width:100%;font-size:8px;letter-spacing:1.5px;color:#eee0b3}.battle-controls{position:absolute;bottom:40px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:8px}#weapons{display:flex;gap:5px}.weapon-btn{border:1px solid #9ab7a866;border-radius:6px;background:#10271fe6;color:#eae6d0;width:34px;height:38px;font-size:22px}.weapon-btn.selected{border-color:#ebcd7c;background:#5b6746}.weapon-btn:disabled{opacity:.3;cursor:default}#skill{border:1px solid #cfb576;background:#c7b47ee6;color:#20342a;border-radius:6px;font-size:9px;font-weight:bold;padding:12px 9px;letter-spacing:.4px}#skill:disabled{color:#b4c4b4;background:#17382ed9;border-color:#718b7b66}#upgrade{z-index:5;background:#0b241df2;backdrop-filter:blur(5px)}#upgrade h2{font-size:38px}#upgrade-cards{width:100%;display:grid;gap:10px;margin-top:18px}.upgrade-card{display:grid;grid-template-columns:40px 1fr;gap:4px 12px;text-align:left;padding:16px;border:1px solid #758d63;background:#244639;color:#f0e9c9;border-radius:8px}.upgrade-card>span{grid-row:span 2;align-self:center;font-size:30px;color:#e4c880}.upgrade-card>b{font-size:15px}.upgrade-card>small{font-size:11px;color:#b4c6b1}.upgrade-card:hover{background:#3e6550}#toast{top:31%}.overlay:not(.hidden)~.bottom-hint{opacity:.6}@media(max-width:380px){.weapon-btn{width:29px}.battle-controls{left:12px;right:12px}#skill{font-size:8px}}
/* Art direction: brass, slate, parchment and warm battlefield light. */
body{background:radial-gradient(ellipse at 50% 20%,#293331,#0c151a 75%);color:#f1e8d1}.brand{color:#ecd6aa}.sigil{color:#e7ba6b}h1 em{color:#ecbc77}.game-shell{border:2px solid #ac8a51;border-radius:18px;box-shadow:0 0 0 5px #192022,0 24px 80px #0009}.overlay{background:linear-gradient(#0b1b2688,#0d1d22d9 55%,#0d1924f0);backdrop-filter:blur(1px)}.crest{width:148px;height:155px;margin-bottom:8px;border:0;border-radius:0;background-image:url('assets/medieval-atlas.png');background-size:200% 200%;background-position:left bottom;filter:drop-shadow(0 8px 8px #0008)}.primary{background:linear-gradient(#f4d598,#cf9c53);border:1px solid #ffe6ae;box-shadow:0 5px 0 #664321,0 12px 24px #0005;border-radius:7px}.primary:hover{background:linear-gradient(#ffe7b6,#e9b263)}.overlay h2{color:#fff0cf;text-shadow:0 3px 14px #0008}.hud{top:14px;left:18px;right:18px}.hud strong{font-size:17px}.progress{top:65px;left:18px;right:18px;background:#070d17bb}.stats{top:76px;left:18px;right:18px}.stats span{color:#f3e1b5;text-shadow:0 1px 2px #000}.stats b{font-size:19px;text-shadow:0 2px 3px #000}.experience{top:126px;left:18px;right:18px;text-shadow:0 2px 3px #000}.experience>div{background:#152030cc;border:1px solid #a69a6b44;height:5px}.experience i{background:linear-gradient(90deg,#77cbb3,#e5d786)}.chapter-label{top:164px;color:#f4e1bb;text-shadow:0 2px 4px #000;font-size:9px}.bottom-hint{font-size:9px;bottom:12px}.battle-controls{bottom:34px;background:#101b24de;border:1px solid #cba56e66;border-radius:9px;padding:8px;left:14px;right:14px;box-shadow:0 4px 12px #0005}.weapon-btn{width:37px;background:linear-gradient(#344552,#16262b);border-color:#bca16f66;height:37px}.weapon-btn.selected{background:linear-gradient(#9f7b3d,#5a472b);border-color:#ffdc8d;box-shadow:0 0 10px #f6c76a44}.weapon-btn:disabled{opacity:.42}#skill{background:linear-gradient(#ead298,#b78b4f);height:37px;padding:6px 9px}.upgrade-card{background:linear-gradient(115deg,#324638,#1b302e);border-color:#c2a16b}.upgrade-card:hover{background:#526348}#upgrade{background:#101e26f2}.hud button{background:#11242bdd;border-color:#bca16f88}.tip{border-color:#81724b66}#toast{font-size:16px;top:27%;padding:0 20px;color:#fff0c9}#build{font-size:8px}.overlay .record{margin-top:18px}.layout{padding-top:24px;padding-bottom:24px}.game-shell{height:min(940px,calc(100svh - 48px))}@media(max-width:700px){.layout{padding:0}.game-shell{height:100svh;border:0;border-radius:0}.battle-controls{bottom:max(33px,env(safe-area-inset-bottom))}.hud{top:max(14px,env(safe-area-inset-top))}}@media(max-width:380px){.weapon-btn{width:29px}#weapons{gap:4px}#skill{font-size:8px}.battle-controls{padding:6px}}
.game-shell:before{content:"";position:absolute;top:0;left:0;right:0;height:210px;background:linear-gradient(#0e1b29df,#102131b8 65%,#10213100);pointer-events:none;z-index:1}.hud,.stats,.experience,.progress,.chapter-label{z-index:2}.overlay{z-index:5}.battle-controls,#toast{z-index:3}.experience small{color:#f4e4c8}.chapter-label{color:#f0d09c}.crest{background-size:200% 200%;height:145px;width:145px}.overlay.hidden{display:none}
#upgrade-cards{grid-template-columns:1fr 1fr;gap:10px}.upgrade-card{grid-template-columns:1fr;gap:8px;padding:13px;min-height:116px}.upgrade-card>span{grid-row:auto;font-size:25px}.upgrade-card>b{font-size:13px}.upgrade-card>small{line-height:1.4}.bottom-hint{bottom:88px;font-size:9px;color:#ffedc5}.experience small{font-size:7px}@media(max-height:650px){#upgrade h2{font-size:27px;margin:8px 0}#upgrade-cards{margin-top:8px}.upgrade-card{min-height:95px;padding:9px}.upgrade-card>span{font-size:20px}.bottom-hint{bottom:93px}}
