.hbtn{font:bold 15px "Trebuchet MS",sans-serif;background:linear-gradient(#f8eed6,#dccfae);color:#213C55;border-radius:9px;padding:10px 16px;text-decoration:none;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
.lmap{max-width:1100px;margin:0 auto;padding:14px}
.lhero{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.lhero .cav{width:64px;height:64px}
.lhero h1{margin:0;font-size:26px}.lhero p{margin:4px 0 0;opacity:.85}.lhero .grow{flex:1;min-width:200px}
.lstat{display:flex;gap:8px;flex-wrap:wrap}.lstat span{background:#0003;border-radius:10px;padding:6px 10px;font-size:14px}
.course{margin:18px 0}.course h2{margin:0 0 4px;color:var(--acc);font-size:21px}.course>p{margin:0 0 10px;opacity:.85}
.path{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.lcard{position:relative;text-align:left;display:flex;flex-direction:column;gap:4px;padding:12px 12px 12px 54px;min-height:86px;background:#fffaf0;color:#213C55;box-shadow:0 4px 0 #0005;border-radius:14px}
.lcard .num{position:absolute;left:10px;top:12px;width:34px;height:34px;border-radius:50%;background:#213C5520;display:flex;align-items:center;justify-content:center;font-size:16px}
.lcard.done .num{background:#2E8B57;color:#fff}.lcard .st{color:#C98E10;letter-spacing:2px;font-size:16px}.lcard .st i{color:#0002;font-style:normal}
.lcard small{font-weight:normal;opacity:.75}
.lgame{display:grid;grid-template-columns:minmax(0,600px) minmax(280px,380px);gap:16px;justify-content:center;padding:12px;max-width:1100px;margin:0 auto}
.boardcol{min-width:0}.boardwrap{position:relative}.ltitle{font-weight:bold;margin:0 0 6px;color:var(--acc)}
.larr{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);pointer-events:none;z-index:5}
.larr line{stroke:#E0B04A;stroke-width:.17;stroke-linecap:round;opacity:.85}
.sq.hl::before{content:"";position:absolute;inset:0;background:#2E8B57;opacity:.45;z-index:1}.sq.bad::before{content:"";position:absolute;inset:0;background:#C0392B;opacity:.5;z-index:1}
.lprog{height:8px;background:#0003;border-radius:6px;margin-top:10px;overflow:hidden}.lprog i{display:block;height:100%;width:0;background:var(--acc);transition:width .3s}
.cbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.cbtns button{flex:1 1 auto}
.cmsg.ok{border-color:#2E8B57}.cmsg.no{border-color:#C0392B}
.qopt{display:block;width:100%;text-align:left;margin:6px 0}.qopt.right{background:linear-gradient(#bfe7c9,#8fd1a2)}.qopt.wrong{background:linear-gradient(#f3c2bb,#e39b90)}
.reps{display:flex;gap:4px;margin-top:6px}.reps i{width:18px;height:6px;border-radius:3px;background:#213C5530}.reps i.on{background:#2E8B57}
@media(max-width:860px){.lgame{grid-template-columns:minmax(0,1fr);padding:8px;gap:10px}.lhero h1{font-size:22px}.path{grid-template-columns:1fr}}
@media(max-width:420px){header .sel span{display:none}.hbtn{padding:8px 10px}header{gap:6px}}

.lcard.locked{background:#efe8da;color:#213C55cc}.lcard .lock,.lcard .free{position:absolute;right:10px;bottom:10px;font-size:12px;font-weight:bold;border-radius:8px;padding:2px 7px;background:#2E5A87;color:#fff}.lcard .free{background:#2E8B57}

.subnote{font-size:14px}.subnote a{color:var(--acc)}
.pwov{position:fixed;inset:0;background:#0b1a2acc;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}
.pwbox{position:relative;max-width:460px;width:100%;max-height:90vh;overflow:auto;background:#fffaf0;color:#213C55;border-radius:18px;padding:22px 22px 16px;box-shadow:0 10px 40px #0008;border-top:6px solid #2E5A87;text-align:center}
.pwbox .cav{width:64px;height:64px;margin:0 auto 6px}.pwbox h2{margin:4px 0 10px;color:#2E5A87;font-size:22px}.pwbox p{line-height:1.45;margin:8px 0;text-align:left}
.pwbox .pwprice,.pwbox .pwthanks,.pwbox p:has(.pwsub),.pwbox p:has(#pwHave){text-align:center}.pwprice b{font-size:22px;color:#2E5A87}
.pwsub{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:10px;text-decoration:none;font-weight:bold;background:#2E5A87!important;color:#fff!important}
.pwthanks{font-style:italic;opacity:.85}.pwx{position:absolute;right:8px;top:8px;min-width:40px;min-height:40px;font-size:22px;background:none;box-shadow:none;color:#213C55}
