/* Page-specific learning sections. Board and piece appearance use the shared UI. */
.learning-section{margin:48px 0 14px}
.learning-section>h2{margin-top:0}
.rule-quick{font-size:14px;line-height:1.75}
.rule-quick h3{font-size:17px;line-height:1.6;color:#ffd34d;margin:22px 0 10px}
.rule-quick p{margin:10px 0}
.rule-takeaways{padding-left:1.4em;margin:14px 0 20px}
.rule-takeaways li{margin:6px 0}
.rule-case{margin:12px 0;padding:12px;border:1px solid #ffffff2d;border-radius:12px;background:#101b2e;container-type:inline-size}
.rule-case figcaption{font-size:16px;color:#f5f7fb;margin:0 0 12px}
.rule-diagram{--pdc:min(36px,calc((100vw - 120px)/9));--cell:var(--pdc);position:relative;width:calc(var(--pdc)*9 + 6px);max-width:100%;margin:0 auto;isolation:isolate}
.rule-static-board{grid-template-columns:repeat(9,var(--pdc));grid-template-rows:repeat(9,var(--pdc));box-sizing:content-box;margin:0}
.rule-static-board .cell{box-sizing:border-box;cursor:default}
.rule-static-board .pc{cursor:default}
.rule-destination{background:#6fafdf55;box-shadow:inset 0 0 0 2px #195f94}
.rule-target{box-shadow:inset 0 0 0 2px #ad3644}
.rule-origin{position:absolute;left:10%;top:32%;color:#164e78;font-size:calc(var(--pdc)*.35);font-weight:800;line-height:1}
.rule-arrows{position:absolute;left:3px;top:3px;width:calc(var(--pdc)*9);height:calc(var(--pdc)*9);z-index:4;pointer-events:none}
.rule-move,.rule-attack{fill:none;stroke-width:6;stroke-linecap:round}
.rule-move{stroke:#195f94}.rule-move-head{fill:#195f94}
.rule-attack{stroke:#ad3644;stroke-dasharray:7 13}.rule-attack-head{fill:#ad3644}
.rule-legend{display:flex;flex-wrap:wrap;gap:3px 18px;font-size:12px;color:#dce7f5}
.rule-legend span{display:block}
.rule-hand{font-size:13px;color:#dce7f5}
.rule-replays{margin-top:24px;padding-top:2px;border-top:1px solid #ffffff2d}
@supports(width:1cqw){.rule-diagram{--pdc:min(36px,calc((100cqw - 6px)/9))}}
.lvbar .lvb{min-width:0;min-height:64px}
.lvbar .lvc{max-width:100%;white-space:normal;word-break:keep-all;text-wrap:balance}
@media(max-width:479px){.lvbar{gap:6px}.lvbar .lvb{padding:8px 3px;min-height:70px}.lvbar .lvn{font-size:clamp(14px,3.8vw,16px)}.lvbar .lvc{font-size:11px}}

/* Read-only three-ply teaching diagrams. Requires the existing shogi-ui.css and tsumen.css. */
.ht3{margin:28px 0;container-type:inline-size}
.ht3 .ht3-intro{font-size:16px;line-height:1.8}
.ht3 p{line-height:1.8}
.ht3 .ht3-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:5px;align-items:center;margin:18px 0;padding:12px 6px;border:1px solid #ffffff2b;border-radius:12px;background:#142033;font-size:13px;line-height:1.65;text-align:center}
.ht3 .ht3-flow strong{color:#ffe2a3;font-size:clamp(11px,3.1vw,14px)}
.ht3 .ht3-flow-arrow{color:#bbc7d9;font-size:18px}
.ht3 .ht3-steps{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.ht3 .ht3-step{padding:16px;min-width:0;border:1px solid #ffffff29;border-radius:14px;background:#101b2e;container-type:inline-size}
.ht3 .ht3-step h3{margin:0 0 10px;font-size:18px;line-height:1.6;color:#f7e5bf}
.ht3 .ht3-step p,.ht3 .ht3-replies{font-size:14px;line-height:1.8;margin:10px 0;color:#e3e9f2}
.ht3 .ht3-step figure{margin:16px 0}
.ht3 .ht3-step figcaption{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0 0 12px;color:#f5f7fb;line-height:1.6;font-size:17px;text-align:center}
.ht3 .ht3-turn{display:inline-block;border:1px solid #6cb88f80;border-radius:6px;background:#143e2e;padding:2px 10px;color:#c5f5d7;font-size:12px;font-weight:800}
.ht3 .ht3-turn-defense{border-color:#7597d2;background:#233b61;color:#e0ecff}
.ht3 .ht3-notation{font-size:13px;color:#bdc8d9}
.ht3 .ht3-diagram{--pdc:min(34px,calc((100vw - 90px)/9));--cell:var(--pdc);position:relative;width:calc(var(--pdc)*9 + 6px);height:calc(var(--pdc)*9 + 6px);max-width:100%;margin:0 auto;isolation:isolate}
.ht3 .ht3-board{grid-template-columns:repeat(9,var(--pdc));grid-template-rows:repeat(9,var(--pdc));margin:0;box-sizing:content-box}
.ht3 .ht3-board .cell{box-sizing:border-box;cursor:default}
.ht3 .ht3-board .pc{cursor:default}
.ht3 .ht3-board .ht3-destination{background:#67d89670;box-shadow:inset 0 0 0 2px #236a46}
.ht3 .ht3-board .ht3-king-square{box-shadow:inset 0 0 0 2px #a9302c}
.ht3 .ht3-board .ht3-origin{background:#709ade42}
.ht3 .ht3-origin-label,.ht3 .ht3-cross{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;line-height:1;color:#253e65}
.ht3 .ht3-origin-label{font-size:calc(var(--pdc)*.37)}
.ht3 .ht3-cross{font-family:Arial,sans-serif;font-size:calc(var(--pdc)*.74);color:#9b302f}
.ht3 .ht3-board .ht3-noescape{background:#eeb0a938}
.ht3 .ht3-board .ht3-own-blocker{background:#6b604854}
.ht3 .ht3-drop-label{position:absolute;right:-3px;bottom:-3px;z-index:7;display:flex;align-items:center;justify-content:center;width:14px;height:14px;border:1px solid #164a32;border-radius:50%;background:#e6f9ed;color:#164a32;font-family:system-ui,sans-serif;font-size:10px;font-weight:800;line-height:1}
.ht3 .ht3-overlay{position:absolute;left:3px;top:3px;width:calc(var(--pdc)*9);height:calc(var(--pdc)*9);z-index:4;pointer-events:none}
.ht3 .ht3-check-line{fill:none;stroke:#a9302c;stroke-width:7;stroke-dasharray:10 8;stroke-linecap:round}
.ht3 .ht3-check-head{fill:#a9302c}
.ht3 .ht3-move-line{fill:none;stroke:#255eaa;stroke-width:8;stroke-linecap:round}
.ht3 .ht3-move-head{fill:#255eaa}
.ht3 .ht3-support-line{fill:none;stroke:#255eaa;stroke-width:6;stroke-linecap:round}
.ht3 .ht3-support-head{fill:#255eaa}
.ht3 .ht3-step .ht3-legend{font-size:12px;line-height:1.7;color:#cbd6e5;margin:10px auto 0;max-width:330px}
.ht3 .ht3-step .ht3-hands{font-size:13px;text-align:center;margin:6px 0 0}
.ht3 .ht3-cause{padding-top:8px;border-top:1px solid #ffffff24}
.ht3 .ht3-replies{padding-left:20px}
.ht3 .ht3-replies li{margin:7px 0}
.ht3 .ht3-note{font-size:14px;margin:16px 0 0;padding:12px 14px;background:#18283e;border-left:3px solid #e2b66d;border-radius:4px}
@supports(width:1cqw){.ht3 .ht3-diagram{--pdc:min(34px,calc((100cqw - 10px)/9))}}
@container(min-width:900px){.ht3 .ht3-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.ht3 .ht3-step{padding:14px}.ht3 .ht3-step h3{font-size:17px}}
@media(max-width:359px){.ht3 .ht3-step{padding:12px}.ht3 .ht3-flow{font-size:12px}.ht3 .ht3-flow strong{font-size:11px}.ht3 .ht3-flow-arrow{font-size:15px}}
