
.na-puzzles {
  --ink: #1b1630;
  --muted: #5c5670;
  --paper: #faf6ee;
  --card: #fffdf8;
  --line: #e4dccb;
  --pink: #ff4d8d;
  --teal: #19b3b3;
  --navy: #241b4a;
  --ok: #1a8f5a;
  --bad: #c0392b;
}
.na-puzzles * { box-sizing: border-box; }
.na-puzzles {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
}
.na-puzzles a { color: var(--teal); }
.na-puzzles .wrap { max-width: 980px; margin: 0 auto; padding: 24px 18px 64px; }
.na-puzzles .brand {
  font-weight: 800;
  letter-spacing: .08em;
  font-size: 12px;
  color: var(--pink);
  text-transform: uppercase;
}
.na-puzzles h1 { margin: 6px 0 8px; font-size: 32px; }
.na-puzzles .lede { color: var(--muted); max-width: 46rem; }
.na-puzzles nav.puzzles { display: flex; gap: 10px; flex-wrap: wrap; margin: 22px 0 28px; }
.na-puzzles nav.puzzles a, .na-puzzles .btn {
  display: inline-block;
  border: 2px solid var(--navy);
  background: #fff;
  color: var(--navy);
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 700;
  cursor: pointer;
}
.na-puzzles nav.puzzles a[aria-current="page"], .na-puzzles .btn.primary {
  background: var(--navy);
  color: #fff;
}
.na-puzzles .btn.ghost { background: transparent; }
.na-puzzles .panel {
  background: var(--card);
  border: 2px solid var(--navy);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 6px 6px 0 rgba(36,27,74,.12);
}
.na-puzzles .hint, .na-puzzles .status, .na-puzzles .rationale {
  margin-top: 12px;
  color: var(--muted);
}
.na-puzzles .rationale { color: var(--ok); font-weight: 600; }
.na-puzzles .row { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.na-puzzles .gallows {
  background: var(--navy);
  color: #fff;
  border-radius: 12px;
  padding: 18px 20px;
  min-width: 168px;
  text-align: center;
}
.na-puzzles .lives-label, .na-puzzles .lives-count {
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .8;
}
.na-puzzles .lives { display: flex; gap: 6px; justify-content: center; margin: 12px 0; }
.na-puzzles .life { font-size: 22px; color: #5a5470; }
.na-puzzles .life.on { color: #ff4d8d; }
.na-puzzles .word {
  font-size: 28px;
  letter-spacing: .28em;
  font-weight: 800;
  margin: 10px 0 16px;
}
.na-puzzles .keys { display: flex; flex-wrap: wrap; gap: 6px; max-width: 420px; }
.na-puzzles .keys button {
  width: 36px; height: 36px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  font-weight: 700;
  cursor: pointer;
}
.na-puzzles .keys button.used { opacity: .35; pointer-events: none; }
.na-puzzles .keys button.hit { background: #d7f5e6; border-color: var(--ok); }
.na-puzzles .keys button.miss { background: #fde2df; border-color: var(--bad); }
.na-puzzles .search-grid {
  display: grid;
  gap: 2px;
  user-select: none;
  touch-action: none;
}
.na-puzzles .search-grid span {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 4px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: 13px;
  font-weight: 700;
}
.na-puzzles .search-grid span.on { background: #ffe3ef; border-color: var(--pink); }
.na-puzzles .search-grid span.found { background: #d7f5e6; border-color: var(--ok); }
.na-puzzles .wordlist { list-style: none; padding: 0; margin: 0; }
.na-puzzles .wordlist li { margin: 0 0 6px; }
.na-puzzles .wordlist li.done { text-decoration: line-through; color: var(--ok); }
.na-puzzles .xw {
  border-collapse: collapse;
  margin-right: 18px;
}
.na-puzzles .xw td {
  width: 32px; height: 32px;
  border: 1px solid var(--navy);
  padding: 0;
  position: relative;
  background: #fff;
}
.na-puzzles .xw td.block { background: var(--navy); border-color: var(--navy); }
.na-puzzles .xw td input {
  width: 100%; height: 100%;
  border: 0; text-align: center;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 16px;
  background: transparent;
}
.na-puzzles .xw td .num {
  position: absolute; top: 1px; left: 3px;
  font-size: 9px; color: var(--muted); pointer-events: none;
}
.na-puzzles .xw td.active { outline: 2px solid var(--pink); outline-offset: -2px; }
.na-puzzles .clues { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; min-width: 280px; flex: 1; }
.na-puzzles .clues h3 { margin: 0 0 8px; font-size: 14px; }
.na-puzzles .clues ul { margin: 0; padding-left: 0; list-style: none; }
.na-puzzles .clues li { margin: 0 0 6px; cursor: pointer; }
.na-puzzles .clues li.on { color: var(--pink); font-weight: 700; }
.na-puzzles .disclaimer {
  margin-top: 28px;
  font-size: 12px;
  color: var(--muted);
}
@media (max-width: 700px) {
.na-puzzles .search-grid span { width: 24px; height: 24px; font-size: 12px; }
.na-puzzles .xw td { width: 26px; height: 26px; }
.na-puzzles .clues { grid-template-columns: 1fr; }
}
.na-puzzles .tile-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.na-puzzles .tile-row, .na-puzzles .slots { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.na-puzzles .tile {
  border: 2px solid var(--navy);
  background: #fff;
  border-radius: 10px;
  padding: 12px 8px;
  font-weight: 700;
  cursor: pointer;
  min-height: 48px;
}
.na-puzzles .tile.sel { background: var(--navy); color: #fff; }
.na-puzzles .tile.used { opacity: .35; }
.na-puzzles .tile.slot { min-width: 36px; min-height: 44px; }
.na-puzzles .solved-group {
  border: 2px solid var(--ok);
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 10px;
  background: #eef8f2;
}
.na-puzzles .bridge-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 12px 0; }
.na-puzzles .bridge-end {
  border: 2px solid var(--navy);
  border-radius: 12px;
  padding: 12px 16px;
  font-weight: 800;
}
.na-puzzles .bridge-mid { font-weight: 800; color: var(--pink); }
.na-puzzles input[type="text"] {
  border: 2px solid var(--navy);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 16px;
  min-width: 220px;
}
@media (max-width: 700px) {
.na-puzzles .tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.na-puzzles { --ink:#142b56;--navy:#142b56;--paper:#fff;--card:#fff;--line:#142b56;--pink:#c62983;--teal:#00b5c8;--ok:#126645;--muted:#40506b;max-width:1190px;margin:0 auto;padding:34px 24px 64px;font-size:17px;line-height:1.55;background:#fff; }
.na-puzzles h1 {font-size:clamp(32px,5vw,48px);line-height:1.15;margin:12px 0;color:#8c4bd2;}
.na-puzzles .puzzle-eyebrow {color:#54627b;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;}
.na-puzzles .puzzle-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px;}
.na-puzzles .puzzle-card {display:flex;flex-direction:column;padding:22px;border:1px solid #00b5c8;border-radius:14px;background:#fff;}
.na-puzzles .puzzle-card:nth-child(3n+2){border-color:#b780ff}.na-puzzles .puzzle-card:nth-child(3n){border-color:#f4b442}
.na-puzzles .puzzle-card img {display:block;width:100%;aspect-ratio:1.5;object-fit:contain;background:#fff;border:0;border-radius:0;box-shadow:none;}
.na-puzzles .puzzle-card h2 {font-size:25px;margin:18px 0 6px;line-height:1.2;}
.na-puzzles .puzzle-card p {margin:8px 0 22px;}
.na-puzzles .puzzle-card .btn {margin-top:auto;text-align:center;background:#00b5c8;color:#142b56;border-radius:8px;}
.na-puzzles .puzzle-instructions{max-width:760px;margin:16px 0 24px;}
.na-puzzles .panel{box-shadow:none;border:2px solid #142b56;border-radius:12px;padding:24px;}
.na-puzzles .word{font-size:clamp(17px,2.6vw,26px);letter-spacing:.12em;overflow-wrap:anywhere;}
.na-puzzles .row>div{min-width:0;max-width:100%;}
.na-puzzles .btn{border-radius:8px;min-height:44px;margin:4px 4px 4px 0;}
.na-puzzles .btn.primary{background:#00b5c8;color:#142b56;}
.na-puzzles button:focus-visible,.na-puzzles a:focus-visible{outline:3px solid #8c4bd2;outline-offset:3px;}
.na-puzzles .keys{max-width:520px;margin:14px 0;gap:6px;}.na-puzzles .keys button{width:40px;height:44px;color:#142b56;}
.na-puzzles .keys button.used{opacity:.65;}
.na-puzzles .search-grid{border:2px solid #142b56;padding:4px;gap:2px;width:max-content;max-width:100%;}
.na-puzzles .search-grid span{border-radius:0;width:32px;height:32px;font-size:15px;}
.na-puzzles .search-grid span.on{background:#efc5e6}.na-puzzles .search-grid span.found{background:#c1f0f1;border-color:#126645;}
.na-puzzles .xw {table-layout:fixed;flex:none;width:auto;border:2px solid #142b56;margin:0;}
.na-puzzles .xw td{width:32px;height:32px;min-width:32px;}
.na-puzzles .xw td input{display:block;box-sizing:border-box;width:30px;height:30px;min-width:0;padding:7px 0 0;border-radius:0;}
.na-puzzles .xw td.active{background:#e5d7fa;outline:0;}.na-puzzles .xw td:focus-within{outline:3px solid #00b5c8;outline-offset:-3px;}
.na-puzzles .clues{min-width:240px;}.na-puzzles .clues li{padding:5px 0;}.na-puzzles .tile{color:#142b56;overflow-wrap:anywhere;}.na-puzzles .tile.sel{background:#142b56;color:#fff;}
.na-puzzles .puzzle-sources{margin-top:28px;font-size:14px;}.na-puzzles .puzzle-sources a{overflow-wrap:anywhere;}
@media(max-width:950px){.na-puzzles .puzzle-cards{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.na-puzzles{padding:26px 14px 44px;}.na-puzzles .puzzle-cards{grid-template-columns:1fr;gap:20px;}.na-puzzles .panel{padding:12px;}.na-puzzles .search-grid span{width:clamp(18px,5.8vw,28px);height:clamp(23px,6vw,28px);font-size:12px;}.na-puzzles .xw td{width:clamp(18px,5.8vw,26px);min-width:0;height:28px;}.na-puzzles .xw td input{width:clamp(18px,5.8vw,26px);height:28px;font-size:13px;}.na-puzzles .row{gap:22px;}.na-puzzles .clues{min-width:0;width:100%;grid-template-columns:1fr 1fr;}.na-puzzles .keys button{width:36px;}.na-puzzles .word{letter-spacing:.05em;}.na-puzzles .puzzle-card{padding:22px;}}

.na-puzzles{box-sizing:border-box;width:100%;}.na-puzzles .xw td.cursor{outline:3px solid #00b5c8;outline-offset:-3px;}
@media(max-width:600px){.na-puzzles .clues{flex:1 0 100%;}.na-puzzles .xw{max-width:100%;}}

.na-puzzles .clues button{font:inherit;color:inherit;border:0;background:none;text-align:left;padding:0;cursor:pointer;line-height:1.5;}

/* Questions stay readable after a correct find; do not strike through teaching. */
.na-puzzles .search-questions{flex:1 1 320px;min-width:0;}
.na-puzzles .search-questions h2{font-size:22px;margin:0 0 12px;}
.na-puzzles .search-questions .wordlist{list-style:decimal;padding-left:26px;margin:0;}
.na-puzzles .search-questions li{padding:0 0 14px 5px;margin:0 0 14px;border-bottom:1px solid #cbd5df;}
.na-puzzles .search-questions li.done{text-decoration:none;color:var(--ink);}
.na-puzzles .search-question{margin:0;}
.na-puzzles .search-feedback{margin:8px 0 0;border-left:3px solid var(--teal);padding:8px 10px;background:#ecfafb;font-size:15px;}
