/* Book distillation: warm cloth binding, paper surfaces and brass reading controls. */
.fh-books {
  grid-column:span 5; display:flex; flex-direction:column; gap:12px; padding:20px 22px 14px;
  position:relative; isolation:isolate; overflow:hidden; border:1px solid #d9cdbc; border-radius:17px;
  background:radial-gradient(ellipse at 8% 40%,#eee3d35e,transparent 55%),linear-gradient(120deg,#fffdf8,#faf6ef 80%,#f5efe5);
  box-shadow:inset 0 2px 0 #fff,0 5px 15px -8px #765d3b38;
}
.fh-books::before { position:absolute; z-index:-1; inset:0; opacity:.19; background:url('../books/paper-grain.svg') repeat; mix-blend-mode:multiply; content:""; pointer-events:none; }
.fh-books::after { position:absolute; z-index:-1; right:-15px; bottom:92px; width:46%; height:70%; opacity:.55; background:url('../books/leaf-shadow.svg') right bottom / contain no-repeat; content:""; pointer-events:none; }
.fh-books h2 { color:#3b2d20; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(24px,1.75vw,32px); font-weight:700; letter-spacing:.035em; line-height:1.3; }
.fh-books .fh-heading p { margin-top:8px; color:#897b65; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(12px,.9vw,16px); line-height:1.6; letter-spacing:.015em; }
.fh-books-emblem { display:grid; place-items:center; flex-shrink:0; width:clamp(42px,3.3vw,58px); height:clamp(42px,3.3vw,58px); border:1px solid #cdb18b; border-radius:50%; color:#945c24; background:linear-gradient(140deg,#fffefa,#f0e9dc); box-shadow:inset 0 0 0 2px #fffdf7,inset 0 0 0 3px #ddc9af73,0 3px 5px #8e6a4226; }
.fh-books-emblem svg { width:23px; height:23px; }
.fh-books-desk { flex:0 0 auto; display:grid; grid-template-columns:clamp(132px,10.7vw,182px) minmax(0,1fr); align-items:center; gap:clamp(15px,1.35vw,24px); padding:2px 0 0; }
.fh-books .fh-book-volume {
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  height:clamp(190px,13.5vw,226px); padding:16px 12px 0 18px; isolation:isolate; overflow:hidden;
  border:1px solid #9b7b4f; border-radius:3px 5px 5px 3px; color:#3a2b18;
  background:linear-gradient(90deg,#ac855759,#f9e2b43d 15%,#c9a57526 84%,#765b3738),url('../books/paper-grain.svg'),linear-gradient(130deg,#d7ba93,#b6946b);
  box-shadow:inset 2px 0 2px #fff4d2b3,inset -2px -2px 3px #6e522e80,inset 0 2px 2px #fff1ced9,2px 3px 0 -1px #e3d2b2,5px 7px 9px -4px #75573166,10px 13px 22px -11px #6e522966;
}
.fh-book-volume::before { position:absolute; z-index:1; top:0; bottom:0; left:0; width:11px; background:linear-gradient(90deg,#f6e1b787,#9e774a7d 32%,#e5caa04f 67%,#7055318a 95%,#fae4bc66); border-right:1px solid #8f6e495e; content:""; pointer-events:none; }
.fh-book-volume::after { position:absolute; z-index:-1; inset:4px 4px 4px 13px; border:1px solid #f4e0ba5c; box-shadow:inset 0 0 2px #71533045; content:""; pointer-events:none; }
.fh-book-volume>strong { margin-top:5px; color:#392c1b; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(23px,1.75vw,33px); font-weight:700; line-height:1.36; letter-spacing:.035em; white-space:nowrap; text-align:center; text-shadow:0 1px 0 #f9e8c966; }
.fh-book-feather { display:block; margin:6px 0 5px; color:#d6ad70; filter:drop-shadow(0 1px 1px #72532c80); }
.fh-book-feather svg { width:25px; height:27px; transform:rotate(-6deg); }
.fh-book-subtitle { color:#4f3a24; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(10px,.75vw,13px); line-height:1.6; text-align:center; letter-spacing:.035em; }
.fh-book-foot { align-self:stretch; margin:10px -12px 0 -18px; padding:8px 3px 8px 9px; margin-top:auto; border-top:1px solid #f7e9cc73; color:#6f5331; background:linear-gradient(110deg,#f7e9cba6,#e7d5b39e); font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(9px,.65vw,12px); line-height:1.5; text-align:center; white-space:nowrap; }
.fh-books .fh-book-volume:hover { transform:translateY(-2px); box-shadow:inset 2px 0 2px #fff4d2b3,inset -2px -2px 3px #6e522e80,inset 0 2px 2px #fff1ced9,2px 3px 0 -1px #e3d2b2,5px 9px 12px -4px #75573166,10px 15px 24px -11px #6e522966; }
.fh-book-paths { display:flex; flex-direction:column; min-width:0; }
.fh-books .fh-book-paths a { display:grid; grid-template-columns:clamp(27px,2.05vw,37px) minmax(0,1fr) 17px; align-items:center; gap:clamp(8px,.75vw,14px); min-height:clamp(60px,4.35vw,72px); padding:8px 0; border-bottom:1px solid #cebaa08c; color:#413222; }
.fh-books .fh-book-paths a:last-child { border-bottom:0; }
.fh-book-step { display:grid; place-items:center; align-self:start; margin-top:1px; width:clamp(27px,2.05vw,37px); height:clamp(27px,2.05vw,37px); border:1px solid #bd9973; border-radius:50%; color:#fffdf7; background:linear-gradient(130deg,#d2b18b,#b78e64); box-shadow:inset 0 0 0 1px #ecd4b5,0 1px 2px #b69a7138; font:500 clamp(14px,1.2vw,21px)/1 "Songti SC","STSong",serif; }
.fh-book-paths a>span:nth-child(2) { display:flex; min-width:0; flex-direction:column; gap:4px; }
.fh-book-paths strong { font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(13px,1.02vw,19px); line-height:1.4; letter-spacing:.015em; font-weight:700; }
.fh-book-paths small { color:#89795f; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(10px,.77vw,14px); line-height:1.5; }
.fh-book-paths .zmt-fh-arrow { margin:0; color:#a17a48; transition:transform .18s ease-out; }
.fh-book-paths .zmt-fh-arrow svg { width:18px; height:18px; }
.fh-books .fh-book-paths a:hover { color:#9a652c; background-color:#ead7ba29; }
.fh-book-paths a:hover .zmt-fh-arrow { transform:translateX(3px); }
.fh-books-bottom { margin:0 -22px -14px; padding:5px 22px 9px; border-top:3px double #e5dace9c; background:linear-gradient(115deg,#f4eee473,#fffcf680); box-shadow:inset 0 1px 0 #fffdf8; }
.fh-book-note { display:flex; align-items:center; gap:8px; min-height:22px; color:#996b36; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(12px,.88vw,16px); font-weight:600; }
.fh-book-note i { color:#b3a083; font-style:normal; font-weight:400; }
.fh-book-note small { margin-left:auto; color:#92836b; font-size:clamp(9px,.66vw,12px); font-weight:400; }
.fh-books .fh-books-footer { margin-top:4px; padding-top:6px; border-top:1px solid #ddcdb78f; gap:10px; }
.fh-books .fh-books-open { justify-content:center; gap:7px; min-height:42px; padding:0 clamp(10px,.8vw,15px); border:1px solid #a87d4b; border-radius:7px; color:#fffaf0; background:linear-gradient(120deg,#cba174,#af7c49 62%,#99703f); box-shadow:inset 0 0 0 1px #f5d8af8c,inset 0 2px 3px #fff4d74d,0 3px 6px #85603929; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(12px,.93vw,17px); font-weight:600; white-space:nowrap; }
.fh-books-open>svg { width:20px; height:20px; filter:drop-shadow(0 1px 1px #8660384d); }
.fh-books-open .zmt-fh-arrow { margin:0; }
.fh-books .fh-books-open:hover { color:#fff; background-color:#9b682f; box-shadow:inset 0 0 0 1px #ffe3b9,0 4px 9px #88613938; transform:translateY(-1px); }
.fh-books .fh-books-skills { justify-content:center; gap:5px; min-height:42px; padding:0 clamp(9px,.7vw,14px); border:1px solid #d8c6ae; border-radius:7px; color:#796045; background:#fffdf66b; box-shadow:inset 0 1px 0 #fffefa; font-family:"Songti SC","STSong","SimSun",serif; font-size:clamp(12px,.91vw,16px); font-weight:600; white-space:nowrap; }
.fh-books .fh-books-skills:hover { color:#9c6b32; background-color:#f3e6d3; box-shadow:inset 0 0 0 1px #cbae884f; }
.fh-books a:focus-visible { outline:2px solid #a2763f; outline-offset:4px; }

/* Compact reading desk: preserve the cloth-bound cover and all existing entries. */
.zmt-fh .fh-core > .fh-books { padding:16px 22px 12px; gap:10px; }
.zmt-fh .fh-core > .fh-books h2 { font-size:clamp(22px,1.6vw,28px); }
.zmt-fh .fh-core > .fh-books .fh-heading p { margin-top:4px; }
.zmt-fh .fh-core > .fh-books .fh-books-emblem { width:42px; height:42px; }
.zmt-fh .fh-core > .fh-books .fh-books-desk { flex:0 0 auto; grid-template-columns:clamp(128px,8vw,144px) minmax(0,1fr); gap:clamp(20px,2.2vw,38px); padding:0 4px; }
.zmt-fh .fh-core > .fh-books .fh-book-volume { height:clamp(164px,9.5vw,182px); padding:10px 10px 0 16px; }
.zmt-fh .fh-core > .fh-books .fh-book-volume > strong { margin-top:2px; font-size:clamp(21px,1.45vw,26px); line-height:1.25; }
.zmt-fh .fh-core > .fh-books .fh-book-feather { margin:4px 0; }
.zmt-fh .fh-core > .fh-books .fh-book-feather svg { width:19px; height:20px; }
.zmt-fh .fh-core > .fh-books .fh-book-subtitle { font-size:clamp(10px,.65vw,12px); line-height:1.45; }
.zmt-fh .fh-core > .fh-books .fh-book-foot { margin-left:-16px; margin-right:-10px; padding:5px 3px 5px 9px; font-size:clamp(9px,.6vw,10px); }
.zmt-fh .fh-core > .fh-books .fh-book-paths a { min-height:54px; padding:5px 0; }
.zmt-fh .fh-core > .fh-books .fh-book-paths a > span:nth-child(2) { gap:2px; }
.zmt-fh .fh-core > .fh-books .fh-book-step { width:28px; height:28px; font-size:15px; }
.zmt-fh .fh-core > .fh-books .fh-books-bottom { margin:0 -22px -12px; padding:5px 22px 8px; }
.zmt-fh .fh-core > .fh-books .fh-book-note { min-height:20px; line-height:1.4; }
.zmt-fh .fh-core > .fh-books .fh-books-footer { margin-top:3px; padding-top:5px; }

/* v0.6.84: one paired learning area in the former book position. */
.zmt-fh .fh-core>.fh-learning-pair{grid-column:5/13;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;min-width:0}
.zmt-fh .fh-learning-pair>.fh-module{grid-column:auto;grid-row:auto;min-width:0}
.fh-learning-eyebrow{display:block;color:#9c7b4e;font-size:12px;line-height:1.5;letter-spacing:.14em}
.zmt-fh .fh-learning-pair .fh-books{padding:16px 20px 12px;gap:8px;border:0;border-radius:18px;box-shadow:inset 0 0 0 1px #cbb18caa,inset 0 2px 0 #fff,0 7px 16px -9px #765d3b50}
.fh-learning-pair .fh-books .fh-heading{align-items:flex-start;min-height:68px;position:relative;padding-right:34px}
.zmt-fh .fh-learning-pair .fh-books h2{margin-top:3px;font-size:clamp(20px,1.42vw,28px);line-height:1.25;letter-spacing:.01em}
.zmt-fh .fh-learning-pair .fh-books .fh-heading p{margin:4px -34px 0 0;font-size:12px;line-height:1.4;letter-spacing:0}
.fh-learning-pair .fh-books-emblem{position:absolute;right:0;top:4px;width:34px;height:34px}.fh-learning-pair .fh-books-emblem svg{width:18px;height:18px}
.zmt-fh .fh-learning-pair .fh-books-desk{flex:1;grid-template-columns:minmax(114px,31%) minmax(0,1fr);gap:18px;padding:4px 1px 8px}
.zmt-fh .fh-learning-pair .fh-book-volume{height:clamp(180px,12vw,218px);padding:15px 8px 0 14px}
.fh-learning-pair .fh-book-volume>strong{font-size:clamp(21px,1.6vw,29px);line-height:1.35}
.fh-learning-pair .fh-book-subtitle{font-size:11px;white-space:nowrap}.fh-learning-pair .fh-book-foot{margin-left:-14px;margin-right:-8px;padding:6px 2px 6px 7px;font-size:9px}
.fh-learning-pair .fh-book-step{width:27px;height:27px;font-size:14px}
.fh-learning-pair .fh-books .fh-book-paths a{grid-template-columns:27px minmax(0,1fr) 14px;min-height:60px;gap:9px;padding:6px 0}
.fh-learning-pair .fh-book-paths strong{font-size:14px;line-height:1.4}.fh-learning-pair .fh-book-paths small{font-size:11px;line-height:1.5}
.zmt-fh .fh-learning-pair .fh-books-bottom{margin:auto -20px -12px;padding:4px 20px 10px;border-top:1px solid #ddcdb78f}
.fh-learning-pair .fh-book-note{min-height:16px;line-height:1.3}.fh-learning-pair .fh-book-note small{margin-left:0;font-size:10px}
.zmt-fh .fh-learning-pair .fh-books-footer{border:0;margin-top:3px;padding-top:0;gap:10px}
.zmt-fh .fh-learning-pair .fh-books-footer a{font-size:13px;min-height:40px;padding-inline:10px}
.zmt-fh .fh-learning-pair .fh-books-skills{border:0;background:transparent;box-shadow:none;padding-inline:0}
.zmt-fh .fh-research-row--standalone{grid-template-columns:minmax(0,1fr)}
.fh-research-row--standalone .fh-report-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;gap:12px}
@media(min-width:1700px){.zmt-fh .fh-learning-pair .fh-books .fh-heading p{font-size:14px}.fh-learning-pair .fh-book-paths strong{font-size:17px}.fh-learning-pair .fh-book-paths small{font-size:13px}.fh-learning-pair .fh-book-subtitle{font-size:13px}.fh-learning-pair .fh-book-foot{font-size:11px}.zmt-fh .fh-learning-pair .fh-books-footer a{font-size:15px}}

.zmt-fh .fh-learning-pair>.fh-module{scroll-margin-top:110px}
