.rs-wrap{min-height:100vh;padding:24px 14px 46px;background:#080807;color:#d5aa55;background-image:radial-gradient(ellipse at 50% 10%,#342410 0,transparent 65%);font-family:Georgia,serif}.rs-wrap *{box-sizing:border-box}.rs-shell{max-width:1100px;margin:auto;padding:20px clamp(14px,3vw,38px);border:3px double #ac7a28;box-shadow:inset 0 0 0 5px #17120a,0 0 40px #000;border-radius:14px;background:linear-gradient(135deg,#13100b,#070707 65%,#181007)}.rs-heading{text-align:center;margin:0 auto 20px;border-bottom:2px solid #825d24;padding-bottom:12px}.rs-knot{width:clamp(74px,12vw,120px);height:auto;display:block;margin:0 auto -4px}.rs-heading h1{font:normal clamp(26px,4vw,48px)/1.2 'Cinzel',Georgia,serif;letter-spacing:.14em;color:#e3b858;margin:0}.rs-heading p{letter-spacing:.25em;font-size:10px;color:#c29b59;margin:8px 0 0}.rs-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,270px);gap:clamp(16px,3vw,30px);align-items:start}.rs-game-area{min-width:0}.rs-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));aspect-ratio:1;max-width:670px;border:3px solid #d4a444;box-shadow:0 0 0 4px #251a0d,0 0 0 6px #ab7b31;margin:auto;background:#050505}.rs-cell{position:relative;appearance:none;-webkit-appearance:none;min-width:0;min-height:0;padding:0;margin:0;border:0;border-right:1px solid #7e5c27;border-bottom:1px solid #7e5c27;background:#0b0a08;color:#e9bd6e;font:normal clamp(13px,2.5vw,32px)/1 Georgia,serif;cursor:pointer;display:grid;place-items:center;aspect-ratio:1}.rs-cell:nth-child(9n){border-right:0}.rs-cell:nth-child(n+73){border-bottom:0}.rs-cell.rs-block-right{border-right:3px solid #e2ac50}.rs-cell.rs-block-bottom{border-bottom:3px solid #e2ac50}.rs-cell.rs-given{color:#e74a3a;font-weight:bold}.rs-cell.rs-match{background:#594018;box-shadow:inset 0 0 15px #9c722a}.rs-cell.rs-selected{outline:3px solid #ffe3a0;outline-offset:-4px;z-index:2;box-shadow:inset 0 0 15px #f2c268}.rs-cell.rs-conflict:not(.rs-given){text-decoration:underline wavy #e8dfc8;text-underline-offset:3px}.rs-cell:focus-visible{outline:3px solid #fff1b9;outline-offset:-3px;z-index:3}.rs-library{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:clamp(3px,1vw,10px);margin:24px auto 10px;max-width:670px}.rs-num{width:100%;aspect-ratio:1;border-radius:50%;border:2px solid #d5a342;background:#080808;box-shadow:inset 0 0 0 2px #473217,0 1px 7px #000;color:#e7bb66;cursor:pointer;font:normal clamp(13px,2.3vw,26px)/1 Georgia,serif;padding:0}.rs-num:hover,.rs-num:focus-visible{background:#35240e;outline:2px solid #f3d188;outline-offset:2px}.rs-message{text-align:center;min-height:28px;color:#d0b17b;font-size:14px;margin-top:12px}.rs-sidebar{text-align:center}.rs-difficulty{border:1px solid #805922;padding:18px 14px;border-radius:10px;background:#100e0a}.rs-difficulty h2{font:normal 22px 'Cinzel',Georgia,serif;margin:0 0 14px;color:#e8bc64}.rs-difficulty button{display:block;width:100%;padding:12px 5px;background:#0e0c08;border:2px solid #b18744;border-radius:7px;margin:9px 0;color:#e4ba65;font:normal 19px Georgia,serif;cursor:pointer}.rs-difficulty button[aria-pressed=true]{background:#4e3616;box-shadow:0 0 0 2px #dfb76c}.rs-actions{display:grid;gap:13px;margin-top:25px}.rs-art-button{position:relative;background:transparent;border:0;cursor:pointer;padding:0;display:block;width:100%;line-height:0}.rs-art-button img{display:block;width:100%;height:auto}.rs-new span{position:absolute;inset:0;display:grid;place-items:center;font:normal clamp(14px,2vw,24px) Georgia,serif;letter-spacing:.06em;color:#f4c76c;text-shadow:0 1px 2px black}.rs-art-button:hover,.rs-art-button:focus-visible{filter:brightness(1.2);outline:2px solid #d7ae66;border-radius:6px}.rs-erase{border:1px solid #a67c3c;border-radius:6px;background:#161109;color:#ddb46d;padding:12px;cursor:pointer;font:16px Georgia,serif}.rs-help{font:14px/1.65 Georgia,serif;color:#c5ab7d;margin:20px 0}.rs-return{display:block;width:max-content;margin:28px auto 0;color:#e1be7e;text-decoration:none;border:1px solid #a67c3c;padding:10px 18px;border-radius:30px;font:14px 'Cinzel',Georgia,serif}.rs-return:focus-visible,.rs-return:hover{background:#342410}.rs-overlay[hidden]{display:none}.rs-overlay{position:fixed;z-index:99999;inset:0;background:#000b;display:grid;place-items:center;padding:20px}.rs-complete-card{max-width:460px;text-align:center;padding:22px;background:#0f0c09;border:4px double #e5b35d;border-radius:12px;color:#e9c479;box-shadow:0 0 60px #000}.rs-complete-card img{width:115px}.rs-complete-card h2{font:normal 28px 'Cinzel',Georgia,serif}.rs-complete-card p{line-height:1.6}.rs-complete-card button{border:1px solid #d9ad5f;background:#22190d;color:#f0cb86;padding:12px;margin:8px;border-radius:6px;cursor:pointer;font:14px Georgia,serif}@media(max-width:680px){.rs-wrap{padding:10px 6px 26px}.rs-shell{padding:14px 9px}.rs-body{grid-template-columns:1fr}.rs-cell{font-size:clamp(15px,5vw,28px)}.rs-num{font-size:clamp(15px,4.6vw,26px)}.rs-library{gap:4px;margin-top:16px}.rs-sidebar{display:flex;flex-direction:column}.rs-difficulty{padding:10px}.rs-difficulty h2{font-size:16px}.rs-difficulty button{display:inline-block;width:31%;margin:1%;font-size:14px;padding:8px 2px}.rs-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}.rs-erase{grid-column:1/-1;padding:8px}.rs-help{font-size:13px}.rs-new span{font-size:clamp(11px,3vw,17px)}}

/* v0.17.68: Portrait-first Sudoku layout. 1080x1920 is the art reference,
   not a fixed CSS canvas; adjust to each device's available viewport. */
@media (max-width: 960px) {
  .rs-wrap { padding: 12px 10px 32px; }
  .rs-shell { width: 100%; max-width: 760px; padding: 18px clamp(9px, 2.5vw, 23px) 26px; }
  .rs-heading { margin-bottom: 16px; }
  .rs-knot { width: clamp(82px, 18vw, 120px); }
  .rs-body { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
  .rs-game-area, .rs-sidebar { width: 100%; min-width: 0; }
  .rs-board { width: 100%; max-width: 670px; aspect-ratio: 1; }
  .rs-cell { font-size: clamp(16px, 3.6vw, 29px); }
  .rs-library { width: 100%; max-width: 670px; gap: clamp(3px, 0.9vw, 9px); margin: 18px auto 8px; }
  .rs-num { font-size: clamp(15px, 3.1vw, 25px); }
  .rs-message { margin-top: 9px; }
  .rs-sidebar { display: flex; flex-direction: column; gap: 12px; }
  .rs-difficulty { padding: 12px 14px 10px; }
  .rs-difficulty h2 { font-size: 18px; margin-bottom: 9px; }
  .rs-difficulty button { display: inline-block; vertical-align: middle; width: 31.3%; margin: 0 0.6%; font-size: 16px; padding: 10px 4px; }
  .rs-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(5px, 1.2vw, 12px); margin-top: 0; align-items: center; }
  .rs-art-button { min-width: 0; }
  .rs-new span { font-size: clamp(12px, 2.35vw, 19px); }
  .rs-erase { grid-column: 1 / -1; padding: 11px; }
  .rs-help { font-size: 14px; line-height: 1.5; margin: 0 auto 4px; max-width: 540px; }
  .rs-return { margin-top: 14px; }
}
@media (max-width: 480px) {
  .rs-wrap { padding: 7px 4px 24px; }
  .rs-shell { padding: 13px 7px 20px; border-width: 2px; }
  .rs-heading { margin-bottom: 12px; padding-bottom: 9px; }
  .rs-heading h1 { font-size: clamp(24px, 7vw, 34px); letter-spacing: .08em; }
  .rs-heading p { font-size: 9px; letter-spacing: .12em; }
  .rs-knot { width: 78px; }
  .rs-board { border-width: 2px; box-shadow: 0 0 0 2px #251a0d, 0 0 0 3px #ab7b31; }
  .rs-cell { font-size: clamp(16px, 5vw, 24px); }
  .rs-cell.rs-block-right { border-right-width: 2px; }
  .rs-cell.rs-block-bottom { border-bottom-width: 2px; }
  .rs-library { gap: 3px; margin-top: 14px; }
  .rs-num { border-width: 1.5px; font-size: clamp(14px, 4.3vw, 20px); }
  .rs-message { font-size: 12px; min-height: 20px; }
  .rs-difficulty button { font-size: 13px; padding: 9px 3px; }
  .rs-difficulty h2 { font-size: 16px; }
  .rs-actions { gap: 5px; }
  .rs-new span { font-size: clamp(10px, 3vw, 14px); }
  .rs-help { font-size: 12px; }
}
@media (max-width: 350px) {
  .rs-actions { grid-template-columns: 1fr; justify-items: center; }
  .rs-art-button { width: min(100%, 260px); }
  .rs-new span { font-size: 17px; }
  .rs-erase { width: 100%; }
}

/* v0.17.70 — approved Sudoku enhancements; controls below the puzzle at all widths */
.rs-body{display:flex;flex-direction:column;align-items:center;gap:14px}
.rs-game-area,.rs-sidebar{width:100%;max-width:670px}
.rs-sidebar{display:flex;flex-direction:column;gap:12px}
.rs-difficulty{padding:12px 14px}.rs-difficulty h2{font-size:18px;margin-bottom:10px}
.rs-difficulty button{display:inline-block;width:31%;margin:0 1%;font-size:16px;padding:10px 4px}
.rs-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:0;align-items:center}
.rs-erase{grid-column:1/-1}.rs-help{margin:0 auto;text-align:center}
.rs-cell.rs-related{background:#211a10}.rs-cell.rs-match{background:#67502b!important;color:#ffe5a1;text-shadow:0 0 8px #e5bc60;box-shadow:inset 0 0 15px #bb9146}
.rs-cell.rs-match.rs-given{color:#ff8171;text-shadow:0 0 9px #f66}
.rs-cell.rs-selected{background:#594523!important}
.rs-candidates{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center;color:#efc87b;font:normal clamp(8px,1.35vw,15px)/1 Georgia,serif}
.rs-candidates span{display:grid;place-items:center}
.rs-pencil{display:block;margin:15px auto 0;padding:10px 24px;background:#130e08;color:#dfba72;border:2px solid #a17a39;border-radius:8px;font:normal 16px Georgia,serif;cursor:pointer;min-width:190px}
.rs-pencil[aria-pressed=true]{color:#ffe3a5;background:#503315;box-shadow:0 0 0 2px #d6aa52}
.rs-pencil:focus-visible{outline:3px solid #fff1b9}
@media(max-width:480px){.rs-candidates{font-size:clamp(7px,2.35vw,11px)}.rs-pencil{margin-top:12px;padding:9px 15px}.rs-actions{gap:5px}.rs-difficulty button{font-size:13px;padding:9px 3px}}
@media(max-width:350px){.rs-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.rs-art-button{width:100%}.rs-erase{width:100%}}

/* Completed digits: nine non-conflicting full-size placements. */
.rs-num:disabled,.rs-num:disabled:hover,.rs-num:disabled:focus-visible{background:#070605;color:#55452b;border-color:#49391f;box-shadow:inset 0 0 0 2px #20190f;opacity:.57;cursor:not-allowed;outline:none;text-shadow:none;filter:none}
