*{box-sizing:border-box}body{margin:0;background:#f5f2ea;color:#253745;font:15px/1.6 system-ui,sans-serif}main{max-width:1150px;margin:auto;padding:30px 38px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dcdcd3;padding-bottom:19px;font-size:12px;color:#647482}.brand{font-weight:800;text-decoration:none;color:#213a4e;font-size:21px;letter-spacing:2px}.brand span{font-size:10px;letter-spacing:1.5px;font-weight:500;margin-left:15px}#saved{background:#e5e9e3;padding:6px 13px;border-radius:20px}.intro{padding:34px 0 28px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:750;color:#7a827a;margin:0 0 9px}h1{font:52px/1.1 Georgia,serif;margin:0;color:#19394e}h1 em{color:#b67a29;font-size:42px;font-weight:400}h1 span{display:block;font:italic 21px Georgia,serif;margin-top:12px;color:#77857c}.intro>p:last-child{color:#657580;margin:17px 0 0}.layout{display:grid;grid-template-columns:minmax(0,640px) 280px;gap:50px;align-items:start}.game{background:#fffdf8;border:1px solid #dedfd5;border-radius:18px;box-shadow:0 12px 40px #233a4910;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:18px 23px;border-bottom:1px solid #e7e8de}.toolbar label{font-size:10px;letter-spacing:1.5px;color:#738174;font-weight:750}.toolbar select{max-width:60%;border:0;background:#f0f1e9;border-radius:7px;padding:7px;color:#283f4e;font:inherit;font-size:13px}.toolbar>span{margin-left:auto;color:#8c968f;font-size:12px}.board-wrap{max-width:520px;margin:22px auto 0;padding:0 16px}.board-row{display:flex;align-items:stretch;gap:7px}#board{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:5px;width:100%;padding:8px;background:#e7e9df;border:1px solid #d7dacc;border-radius:12px}button{font:inherit;cursor:pointer}#board button{position:relative;aspect-ratio:1;border:1px solid #d9ddd4;background:#f9faf4;border-radius:7px;padding:0;line-height:1;font-family:Georgia,serif;font-size:clamp(15px,3vw,30px);color:#aeb5a9;transition:background .15s,transform .15s,box-shadow .15s}#board button:hover{transform:translateY(-1px);box-shadow:0 3px 7px #19394e25}#board button.day{background:#f2ce76;border-color:#d8b05b;color:#805417}#board button.night{background:#223e54;border-color:#183449;color:#f9f5d5}#board button.fixed:after{content:'•';position:absolute;bottom:2px;right:5px;font-size:12px;opacity:.6}#board button.bad{box-shadow:inset 0 0 0 3px #d96358}#board button:focus-visible{outline:3px solid #db7353;outline-offset:2px;z-index:1}#cols{display:grid;grid-template-columns:repeat(var(--n),1fr);padding:0 8px;margin:0 35px 5px 0;font-size:9px;color:#738174;text-align:center}#rows{display:grid;grid-template-rows:repeat(var(--n),1fr);width:28px;flex-shrink:0;font-size:9px;color:#738174;padding:8px 0}#rows span{align-self:center;text-align:center}.count-good{color:#43846d!important}.count-bad{color:#bc4f43!important}.legend{display:flex;justify-content:center;gap:8px;align-items:center;margin:14px 0;font-size:11px;color:#7b857d}.sun{color:#ad7e2b;font-size:19px}.moon{color:#263f55;font-size:22px;margin-left:12px}.fixed-dot{font-size:9px;margin-left:12px}#message{margin:0 22px;padding:10px 13px;min-height:45px;font-size:12px;background:#eef1e8;border-radius:8px;color:#566d60}#message.error{background:#f9e9e1;color:#a34a36}#message.win{background:#d9ede1;color:#256545;font-weight:700}.actions{display:flex;gap:8px;padding:17px 22px 22px}.actions button{border:1px solid #d8dfd3;background:#fffdf8;border-radius:7px;padding:8px 12px;font-size:12px;color:#455d4b}.actions button:last-child{margin-left:auto;background:#234b42;color:white;border-color:#234b42}.actions button:disabled{opacity:.4;cursor:default}aside{padding-top:12px}ol{list-style:none;padding:0;margin:0;counter-reset:rules}li{position:relative;padding:6px 0 12px 34px;counter-increment:rules}li:before{content:'0' counter(rules);position:absolute;left:0;top:6px;font:15px Georgia,serif;color:#bc9455}li b{font:20px Georgia,serif;color:#294a53}li p{font-size:13px;color:#748177;line-height:1.6;margin:8px 0}.how{border-top:1px solid #d8ded0;padding-top:20px;margin-top:9px;font-size:12px;color:#6c7f73}.how>b{color:#3e5b4c}.how small{font-size:11px;display:block}kbd{font:10px system-ui;background:#e5e8de;padding:2px 3px;border-radius:3px}footer{border-top:1px solid #dce0d4;margin-top:35px;padding-top:18px;font-size:10px;color:#859087}footer a{color:#687c6b}footer span{display:block;margin-top:4px}@media(max-width:800px){main{padding:20px}.layout{gap:28px;grid-template-columns:1fr}aside{max-width:600px}h1{font-size:44px}.intro{padding:27px 0}.brand span{font-size:8px;margin-left:6px}.toolbar{padding:13px;gap:8px}.toolbar label{font-size:8px}.toolbar select{font-size:11px}#board{gap:3px;padding:5px}#board button{border-radius:4px}.actions{padding:14px 12px;gap:6px}.actions button{padding:8px;font-size:11px}.board-wrap{padding:0 12px}#message{margin:0 12px}#cols{font-size:8px}#rows{font-size:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#board{gap:0;padding:0;border:2px solid #3e6158;border-radius:3px;overflow:hidden;background:#38594e}#board button{aspect-ratio:1;border:1px solid #dfe3d5;border-radius:0;background:#fafbf4;color:#284b43;font:clamp(24px,4vw,37px)/1 Georgia,serif;position:relative;transform:none!important;box-shadow:none;padding-top:10px}#board button .clue{position:absolute;top:5px;left:6px;font:700 clamp(10px,1.2vw,13px)/1 system-ui;color:#405f50}#board button .value{display:block;padding-top:8px}#board button.cage{background:#edf1df}#board button.selected{background:#dce7c5;box-shadow:inset 0 0 0 3px #7e9b55}#board button.bad{color:#bf4c3c;background:#fce4d8}#board button.bad .clue{color:#bf4c3c}#board button.top{border-top:2px solid #3e6158}#board button.bottom{border-bottom:2px solid #3e6158}#board button.left{border-left:2px solid #3e6158}#board button.right{border-right:2px solid #3e6158}#board button:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #b18a43}.board-wrap{max-width:470px;padding:0 22px;margin-top:24px}.legend{min-height:20px;font-size:12px;margin:12px}.intro h1{color:#2b493e}.example{border:1px solid #d9ded1;border-radius:10px;padding:16px;margin-top:22px}.example strong{font:28px Georgia,serif;color:#4a6850}.example span{margin-left:20px;font:20px Georgia,serif;color:#93753e}.example p{font-size:11px;color:#7c887b;margin-bottom:0}#keypad{display:flex;justify-content:center;gap:7px;margin:16px 15px 0}#keypad button{border:1px solid #c9d4bc;border-radius:8px;background:#eef1e4;color:#35583f;font:23px Georgia,serif;min-width:40px;height:43px}#keypad button:last-child{font:12px system-ui;padding:0 9px}#keypad button:hover{background:#dee7cc}@media(max-width:500px){.board-wrap{padding:0 14px}#board button .clue{top:4px;left:4px;font-size:10px}#board button .value{padding-top:6px}#keypad{gap:5px}#keypad button{min-width:34px;height:39px}#keypad button:last-child{padding:0 7px}.brand span{letter-spacing:1px;font-size:7px}}

#city{display:grid;grid-template-columns:28px 1fr 28px;grid-template-rows:28px 1fr 28px;gap:4px}#north{grid-area:1/2}#south{grid-area:3/2}#west{grid-area:2/1}#east{grid-area:2/3}#board{grid-area:2/2;gap:3px;padding:5px;border:1px solid #ced9cf;border-radius:8px;background:#dbe4da}#board button{border:0;border-radius:4px;overflow:hidden;font-size:26px;padding:0;isolation:isolate}#board button .building{position:absolute;bottom:0;left:20%;width:60%;background:repeating-linear-gradient(0deg,#b5c7bd 0px,#b5c7bd 5px,#dce6de 5px,#dce6de 7px);opacity:.6;z-index:-1;min-height:0}#board button .value{padding:0;text-shadow:0 1px 2px #fff;font:700 25px system-ui}#board button.fixed:after{content:'•';position:absolute;bottom:3px;right:4px;font-size:10px}#board button.street{background:#e9efdd}#board button.selected{background:#d8e6bd;box-shadow:inset 0 0 0 2px #749653}#board button.bad{background:#f8dbd1}#board button.selected.bad{box-shadow:inset 0 0 0 2px #b16a53}.board-wrap{padding:0 16px;max-width:510px}#city .edge{display:grid;gap:3px}#city .horizontal{grid-template-columns:repeat(var(--n),1fr);padding:0 5px}#city .vertical{grid-template-rows:repeat(var(--n),1fr);padding:5px 0}.edge button{padding:0;border:0;background:transparent;font:600 13px system-ui;color:#688473;border-radius:5px}.edge button.active{background:#d9e7bd;color:#435e37}.edge button.good{color:#25846b}.edge button.bad{color:#b14f3a;background:#f7dfd3}.view{border:1px solid #d0dcca;background:#edf1e5;border-radius:12px;padding:14px;margin:6px 0 24px}#view-title{font-size:11px;font-weight:700;margin:0;color:#577459}#skyline{height:115px;display:flex;align-items:end;gap:6px;border-bottom:2px solid #98ae9c;padding:0 8px;margin-top:10px}#skyline .tower{flex:1;position:relative;min-height:13px;background:repeating-linear-gradient(0deg,#568477 0px,#568477 10px,#9ab4a2 10px,#9ab4a2 12px);border-radius:3px 3px 0 0;display:flex;justify-content:center;align-items:center;color:white;font:700 13px system-ui}#skyline .tower.hidden{opacity:.25}#skyline .tower.empty{background:#d4ddc9;color:#859782;border:1px dashed #9dad91}#view-note{font-size:10px;color:#788a73;line-height:1.4;margin:10px 0 0}.intro h1 em{font-size:44px}@media(max-width:500px){#city{grid-template-columns:22px 1fr 22px;grid-template-rows:24px 1fr 24px;gap:2px}.edge button{font-size:11px}#board{gap:2px;padding:3px}#board button .value{font-size:20px}.board-wrap{padding:0 10px}.intro h1{font-size:37px}.intro h1 em{font-size:34px}.brand span{font-size:7px}}
