*{box-sizing:border-box}body{margin:0;background:#f5f3e9;color:#233d34;font:16px/1.5 system-ui,sans-serif}main{max-width:1080px;margin:auto;padding:42px 32px 24px}header{position:relative;margin-bottom:30px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.22em;color:#607967}h1{font:normal clamp(42px,6vw,68px)/1.1 Georgia,serif;margin:12px 0}h1 em{color:#6a845d}header p{margin:10px 0;color:#66746b}button,select{font:inherit;color:inherit;cursor:pointer;border:1px solid #cdd4c6;border-radius:8px;background:#fcfcf6;padding:10px 15px}button:hover{background:#e5ecdc}button:focus-visible,select:focus-visible{outline:3px solid #cb9041;outline-offset:3px}button:disabled{cursor:default;opacity:.5}.primary{background:#284d3e;color:#fff;border-color:#284d3e}.primary:hover{background:#3c614e}.toolbar{display:flex;gap:18px;align-items:flex-end;margin-bottom:24px}.toolbar label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;letter-spacing:.06em}.toolbar select{font-size:14px;min-width:190px}.toolbar button{margin-left:auto}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:30px;align-items:start}.board-wrap{border:1px solid #d6d9cd;border-radius:14px;background:#fffef8;box-shadow:0 10px 35px #32463209;overflow:hidden}.board-top,.board-bottom{display:flex;align-items:center;justify-content:space-between;padding:14px 22px}.board-top{font-size:10px;letter-spacing:.17em;font-weight:750;border-bottom:1px solid #eeeee3}.board-top #timer{font-variant-numeric:tabular-nums;font-size:13px;letter-spacing:.04em}.board-bottom{border-top:1px solid #eeeee3;font-size:12px;min-height:65px}.board-bottom button{font-size:12px;padding:5px 12px}.board-shell{position:relative;padding:18px}#grid{display:grid;gap:3px;touch-action:none;user-select:none}#grid button{padding:0;aspect-ratio:1;border:0;background:transparent;font-size:clamp(14px,2vw,21px);font-weight:650;border-radius:50%;position:relative}#grid button:hover{background:#eaf0e3}#grid button.found{background:#dce9d0;color:#34592b}#grid button.selected{background:#345b47;color:white}#grid button.hinted{box-shadow:inset 0 0 0 3px #d3a251}#veil{position:absolute;inset:0;background:#f8f8ef;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}#veil[hidden]{display:none}#veil strong{font:28px Georgia,serif}aside{padding:16px 0}h2{font:normal 28px Georgia,serif;margin:10px 0}aside p{font-size:13px;color:#68756a}.progress{font-size:11px;display:flex;justify-content:space-between;gap:8px;font-weight:650;margin:24px 0 9px}.track{height:4px;background:#dde3d6;border-radius:5px}#bar{height:100%;background:#668651;transition:width .2s;width:0}ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:9px 10px;margin:24px 0}li{font-size:14px;letter-spacing:.03em;padding:6px 0}li.done{text-decoration:line-through;color:#798970}li:before{content:'○';margin-right:9px;color:#a0ac95}li.done:before{content:'●';color:#779566}#hint{width:100%;font-size:12px;background:#edeedc}#hintcount{font-size:11px;text-align:center}#message{min-height:40px;color:#38533e;font-weight:650}.how{margin-top:30px;max-width:760px;font-size:13px;color:#697768}.how b{color:#365141}.how p{margin:6px 0}footer{border-top:1px solid #d9ddcf;margin-top:28px;padding-top:16px;font-size:11px;color:#82907e}a{color:inherit}dialog{border:1px solid #cdd4c6;border-radius:16px;max-width:90vw;padding:28px;background:#fffef8;color:#233d34}dialog::backdrop{background:#1f3a2e60}@media(max-width:720px){main{padding:26px 16px}header{margin-bottom:22px}header p{font-size:13px}.toolbar{gap:10px;flex-wrap:wrap}.toolbar label{flex:1}.toolbar select{width:100%;min-width:0;font-size:12px;padding:9px}.toolbar button{width:100%;font-size:13px}.layout{grid-template-columns:1fr;gap:12px}.board-shell{padding:10px}#grid{gap:1px}#grid button{font-size:16px}.board-top,.board-bottom{padding:12px 16px}aside{padding:10px 4px}h2{font-size:25px}ul{margin:14px 0;grid-template-columns:repeat(4,1fr);gap:4px}li{font-size:11px;letter-spacing:0}li:before{margin-right:4px}.progress{margin-top:15px}.how{margin-top:18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(min-width:721px){main{max-width:960px;padding-top:28px}h1{font-size:56px}.layout{grid-template-columns:minmax(0,1fr) 260px;gap:26px}header{margin-bottom:22px}.board-shell{padding:12px}}
