:root{font-family:Georgia,serif;color:#263e3b;background:#eee9dc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 5%,#fbf5dc,transparent 60%)}main{max-width:1080px;margin:auto;padding:34px 24px}header{margin-bottom:24px}.eyebrow{font:11px system-ui;letter-spacing:3px;color:#826440}h1{font-size:56px;line-height:1;margin:12px 0}h1 span{font-size:23px;font-weight:normal;margin-left:20px;color:#8b6845}p{line-height:1.5}button,select{font:14px system-ui;color:inherit;border:1px solid #b7b7a0;border-radius:9px;background:#fffaf0;padding:10px;cursor:pointer}button:hover{background:#e7eddb}button:focus-visible,select:focus-visible{outline:3px solid #c87631;outline-offset:3px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:15px 0}.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:24px}.mapcard,aside,details{background:#fffcf2;border:1px solid #d6cbb7;border-radius:20px;padding:22px;box-shadow:0 10px 30px #625c4410}#board{position:relative;width:100%;aspect-ratio:1;margin:auto;max-width:550px}.cell{position:absolute;border:1px solid #ffffff88;display:flex;align-items:center;justify-content:center}.cell .dot{width:19px;height:19px;border:2px solid #526f61;border-radius:50%;background:#fffaf0;font:9px system-ui;text-align:center;line-height:15px;z-index:2}.cell.on .dot{background:#345b48;color:white}.cell.bad .dot{background:#ca693e;color:white}.cell .badge{position:absolute;left:4px;top:3px;font:bold 11px system-ui;color:#355042}.edge{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;width:36px;height:36px;border-radius:7px;z-index:4}.edge:before{content:'';position:absolute;background:#7d8b7340;border-radius:5px}.edge.h:before{height:5px;width:100%;left:0;top:15px}.edge.v:before{width:5px;height:100%;top:0;left:15px}.edge.used:before{background:#c27a36;box-shadow:0 0 0 2px #fff1c9}.edge.cross:before{background:transparent}.edge.cross:after{content:'×';font:24px system-ui;color:#8a7d66}.edge.selected{outline:2px dashed #315c51;outline-offset:1px}.edge:hover{background:#ffffff88}#status{min-height:65px;padding:16px 0 8px;line-height:1.45;font:15px/1.5 system-ui}.actions{display:flex;gap:8px;flex-wrap:wrap}.keys{font:12px/1.7 system-ui;color:#6b7166}aside h2{margin-top:0}aside>p{font:13px/1.5 system-ui}.village{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #e3ddce}.village img{width:54px;height:54px;object-fit:cover;border-radius:12px}.village strong{font-size:14px}.village small{display:block;font:12px/1.6 system-ui}.village.done strong{color:#32825a}.village.warn strong{color:#ad522d}details{margin-top:22px;font-size:15px;line-height:1.6}summary{cursor:pointer;font-weight:bold}footer{font:12px/1.6 system-ui;margin-top:25px;color:#73796d}a{color:#3f6f63}li{margin-bottom:7px}@media(max-width:650px){main{padding:22px 12px}h1{font-size:43px}h1 span{display:block;margin:8px 0;font-size:22px}.layout{grid-template-columns:1fr;gap:15px}.mapcard,aside,details{padding:14px}.edge{width:32px;height:32px}.edge.h:before{top:14px}.edge.v:before{left:14px}#passport{display:grid;grid-template-columns:1fr 1fr;gap:5px}.village{gap:6px}.village img{width:42px;height:42px}.cell .badge{font-size:9px;left:2px;top:2px}}
