/* True Bearing Press: the Puzzle Arbor puzzle maker (screen and print). */
.pz-wrap { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 40px; align-items: start; }
@media (max-width: 900px) { .pz-wrap { grid-template-columns: 1fr; gap: 28px; } }

.pz-form fieldset { border: 0; margin: 0 0 22px; padding: 0; }
.pz-form legend { font: 700 1.05rem/1.3 var(--serif-display); color: var(--navy); margin-bottom: 10px; padding: 0; }
.pz-choices { display: grid; gap: 8px; }
.pz-choices.two { grid-template-columns: 1fr 1fr; }
.pz-choice { position: relative; display: block; cursor: pointer; }
.pz-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pz-choice span { display: block; padding: 10px 12px; border: 1.5px solid var(--rule); border-radius: 6px; background: #fff; line-height: 1.25; transition: border-color .15s, background .15s; }
.pz-choice span b { display: block; color: var(--navy); font-weight: 600; }
.pz-choice span small { color: var(--ink-soft); font-size: .86rem; }
.pz-choice input:checked + span { border-color: var(--navy); background: #f1ece0; box-shadow: inset 0 0 0 1px var(--navy); }
.pz-choice input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }
.pz-form select { width: 100%; font: inherit; padding: 10px 12px; border: 1.5px solid var(--rule); border-radius: 6px; background: #fff; color: var(--ink); }
.pz-check { display: flex; gap: 10px; align-items: center; margin: 0 0 18px; }
.pz-check input { width: 18px; height: 18px; accent-color: var(--navy); }
.pz-go { width: 100%; font-size: 1.08rem; }
.pz-go:disabled { opacity: .5; cursor: not-allowed; }
.pz-status { margin: 12px 0 0; color: var(--ink-soft); font-size: .95rem; }
.pz-msg { min-height: 1.4em; margin: 6px 0 0; color: var(--gold-deep); font-size: .95rem; }
.pz-flash { margin: 0 0 22px; padding: 12px 16px; border-radius: 6px; background: #e9f0e4; border-left: 4px solid var(--forest); }
.pz-flash.warn { background: #f7ecd9; border-left-color: var(--gold-deep); }

.pz-side { margin-top: 28px; padding: 18px; border: 1px solid var(--rule); border-radius: 6px; background: var(--cream); }
.pz-side h3 { font-size: 1.05rem; margin: 0 0 6px; }
.pz-side p { font-size: .95rem; margin: 0 0 10px; }
.pz-side form { display: flex; gap: 8px; flex-wrap: wrap; }
.pz-side input[type=email] { flex: 1 1 180px; min-width: 0; font: inherit; padding: 9px 11px; border: 1.5px solid var(--rule); border-radius: 6px; }
.pz-side .btn { padding: 9px 16px; font-size: .95rem; }
.pz-side ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pz-again { width: 100%; text-align: left; font: inherit; font-size: .95rem; padding: 8px 10px; border: 1px solid var(--rule); border-radius: 5px; background: #fff; color: var(--navy); cursor: pointer; }
.pz-again small { color: var(--ink-soft); }
.pz-again:hover { border-color: var(--navy); }
#pz-unlock-msg { margin: 8px 0 0; font-size: .92rem; }

.pz-empty { display: grid; place-items: center; min-height: 420px; padding: 30px; border: 2px dashed var(--rule); border-radius: 8px; text-align: center; color: var(--ink-soft); }
.pz-empty img { width: 110px; height: auto; opacity: .85; margin: 0 auto 10px; }
.pz-tools { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; }
.pz-paper { background: #fff; box-shadow: 0 1px 2px rgba(19,35,59,.12), 0 8px 26px rgba(19,35,59,.12); border-radius: 3px; padding: clamp(18px, 4vw, 42px); }
.pz-peek { margin-top: 18px; }
.pz-peek summary { cursor: pointer; color: var(--navy); font-weight: 600; margin-bottom: 12px; }
#pz-print { display: none; }

/* ---------------------------------------------------------------- the puzzle page itself */
.pz-page { color: #1e2636; font-family: var(--serif); font-size: 1rem; line-height: 1.4; }
.pz-head { display: flex; gap: 16px; align-items: center; padding-bottom: 12px; border-bottom: 2px solid #13233b; margin-bottom: 14px; }
.pz-head img { width: 72px; height: 72px; flex: none; object-fit: contain; }
.pz-head h2 { margin: 0; font: 700 1.7rem/1.15 var(--serif-display); color: #13233b; }
.pz-kind { margin: 0 0 2px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: #8a6420; font-weight: 600; }
.pz-ref { margin: 2px 0 0; color: #4a5263; font-style: italic; }
.pz-name { display: flex; align-items: flex-end; gap: 8px; margin: 0 0 12px; font-weight: 600; }
.pz-name span { flex: 0 1 300px; border-bottom: 1.5px solid #1e2636; height: 1.2em; }
.pz-instr { margin: 0 0 16px; }
.pz-lv-young .pz-instr { font-size: 1.1rem; }
.pz-center { text-align: center; }
.pz-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 20px; padding-top: 10px; border-top: 1px solid #d9cbb0; font-size: .8rem; color: #4a5263; }

.pz-ws { width: 100%; max-width: 560px; height: auto; font-family: "Source Serif 4", Georgia, serif; font-weight: 600; font-size: 22px; fill: #1e2636; }
.pz-ws-9 { max-width: 440px; font-size: 26px; }
.pz-ws-15 { font-size: 21px; }
.pz-wordlist { list-style: none; margin: 18px auto 0; padding: 0; max-width: 560px; columns: 2; column-gap: 24px; font-weight: 600; letter-spacing: .05em; }
.pz-wordlist.pz-cols-3 { columns: 3; }
.pz-wordlist li { padding: 2px 0 2px 24px; position: relative; break-inside: avoid; }
.pz-wordlist li::before { content: ""; position: absolute; left: 0; top: .42em; width: 12px; height: 12px; border: 1.5px solid #4a5263; border-radius: 2px; }
.pz-lv-young .pz-wordlist { font-size: 1.2rem; }

.pz-sc { margin: 0; padding-left: 1.6em; display: grid; gap: 12px; }
.pz-sc li { padding-left: .3em; }
.pz-scr { display: block; font-weight: 700; font-size: 1.2rem; letter-spacing: .12em; color: #13233b; }
.pz-clue { display: block; font-size: .95rem; margin: 1px 0 5px; }
.pz-clue i, .pz-clues i { color: #4a5263; }
.pz-boxes { display: inline-flex; gap: 3px; }
.pz-box { display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; border: 1.5px solid #1e2636; border-radius: 2px; font-weight: 700; color: #13233b; }
.pz-lv-young .pz-scr { font-size: 1.5rem; }
.pz-lv-young .pz-box { width: 1.9em; height: 1.9em; font-size: 1.1rem; }
.pz-lv-adult .pz-sc { grid-template-columns: 1fr 1fr; column-gap: 28px; }
@media (max-width: 560px) { .pz-lv-adult .pz-sc { grid-template-columns: 1fr; } }

.pz-verse { margin: 6px 0 20px; padding: 0; border: 0; font-size: 1.15rem; line-height: 2.3; }
.pz-verse p { margin: 0; }
.pz-verse cite { display: block; margin-top: 6px; font-size: .95rem; line-height: 1.4; font-style: italic; color: #4a5263; }
.pz-verse-young { font-size: 1.45rem; }
.pz-verse-adult { font-size: 1.05rem; line-height: 2.2; }
.pz-blank { display: inline-block; position: relative; border-bottom: 1.5px solid #1e2636; height: 1.1em; vertical-align: baseline; margin: 0 2px; }
.pz-blank sup { position: absolute; left: 0; top: -1.15em; font-size: .6em; line-height: 1; color: #8a6420; font-weight: 700; }
.pz-len { font-size: .7em; color: #4a5263; margin-left: 2px; }
.pz-ans { font-weight: 700; color: #13233b; text-decoration: underline; text-decoration-color: #c9a24a; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.pz-bank { border: 1.5px solid #13233b; border-radius: 6px; padding: 10px 14px; margin: 16px 0 0; }
.pz-bank p { margin: 0 0 6px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: #8a6420; font-weight: 600; }
.pz-bank ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-weight: 600; letter-spacing: .04em; }
.pz-lv-young .pz-bank ul { font-size: 1.25rem; }

.pz-cc { width: 100%; max-width: min(560px, calc(var(--cols) * 40px)); height: auto; max-height: 520px; font-family: "Source Serif 4", Georgia, serif; }
.pz-cc-n { font-size: 10px; fill: #4a5263; font-weight: 600; }
.pz-cc-l { font-size: 18px; font-weight: 700; fill: #13233b; }
.pz-clues { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 26px; margin-top: 16px; font-size: .92rem; }
.pz-clues h4 { margin: 0 0 4px; font: 700 1rem/1.3 var(--serif-display); color: #13233b; }
.pz-clues ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pz-clues b { display: inline-block; min-width: 1.4em; color: #8a6420; }
.pz-keylist { margin: 0; line-height: 1.7; }
.pz-keylist b { min-width: 0; }
@media (max-width: 560px) { .pz-clues { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- printing: only the puzzle pages */
@media print {
  @page { size: letter; margin: .5in; }
  html, body { background: #fff !important; }
  body > *:not(#pz-print) { display: none !important; }
  #pz-print { display: block !important; }
  .pz-page { font-size: 11.5pt; break-after: page; page-break-after: always; }
  .pz-page:last-child { break-after: auto; page-break-after: auto; }
  .pz-head img { width: 62px; height: 62px; }
  .pz-head h2 { font-size: 21pt; }
  .pz-ws { max-width: 5.6in; max-height: 5.6in; }
  .pz-ws-9 { max-width: 5in; }
  .pz-ws-15 { max-width: 6in; max-height: 6in; }
  .pz-wordlist { margin-top: 12px; }
  .pz-sc { gap: 9px; }
  .pz-lv-kids .pz-sc, .pz-lv-adult .pz-sc { grid-template-columns: 1fr 1fr; column-gap: .35in; }
  .pz-cc { max-height: 4.6in; }
  .pz-foot { margin-top: 12px; }
  .pz-head { padding-bottom: 8px; margin-bottom: 10px; }
  .pz-wordlist, .pz-sc li, .pz-clues li, .pz-bank { break-inside: avoid; }
  .pz-foot { font-size: 8.5pt; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.pz-section { padding: 48px 0 64px; }
.pz-tools[hidden], .pz-side[hidden] { display: none; }
