@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap');
@font-face {
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/l/font?kit=VdGGAZweH5EbgHY6YExcZfDoj0BA2-ePBjufDW4IIKXO&skey=da53d601dfe33fc6&v=v17) format('truetype');
  unicode-range: U+2015, U+2026, U+FE45;
}
@font-face {
  font-family: 'JP Title Marks';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/l/font?kit=VdGGAZweH5EbgHY6YExcZfDoj0BA2-ePBjufDW4IIKXO&skey=da53d601dfe33fc6&v=v17) format('truetype');
  unicode-range: U+2015, U+FE45;
}

/* 任意の本文ルートにobserve()で付けるクラス。サイトのレイアウトから独立。 */
:root { --jp-font-family: 'Shippori Mincho', 'Zen Maru Gothic', sans-serif; --jp-line-height: 1.75; --jp-title-font-family: 'JP Title Marks', 'Zen Maru Gothic', sans-serif; }
.jp-content { font-family: var(--jp-font-family); }
.jp-content ruby { display: ruby; ruby-position: over; ruby-align: space-around; }
.jp-content rt { font-size: .5em; line-height: 1; font-family: inherit; font-weight: 500; ruby-align: space-around; text-justify: inter-character; letter-spacing: normal; }
.jp-content :is(p, li) {
   line-height: var(--jp-line-height);
   white-space: normal;
   word-break: normal;
   overflow-wrap: normal;
   line-break: strict;
   text-align: justify;
   text-align-last: start;
   text-justify: auto;
   text-autospace: no-autospace;
   text-spacing-trim: space-all;
   font-kerning: none;
   font-feature-settings: "chws" 0, "vchw" 0, "halt" 0, "vhal" 0, "palt" 0, "vpal" 0, "kern" 0;
}
.jp-content blockquote p { white-space: pre-wrap; }
.jp-content mjx-container { text-align-last: initial; }
/* 改行前は全角の幅で禁則を評価し、行頭でだけこの表示上の空きを捨てる。
   生成内容は原稿・DOMの文字列には入らず、選択・コピーには含まれない。 */
.jp-punct.jp-line-start::before {
   content: ' ';
   font-size: 0;
   word-spacing: var(--jp-break-gap);
   white-space: normal;
}

/* 本文だけでJSがアキを管理する。フォント・ブラウザーによる二重詰めを防ぐ。 */
.jp-typeset {
   text-autospace: no-autospace;
   text-spacing-trim: space-all;
   font-feature-settings: "chws" 0, "vchw" 0, "halt" 0, "vhal" 0, "palt" 0, "vpal" 0, "kern" 0;
   text-align: justify;
   text-align-last: start;
}
.jp-typeset.jp-measuring { text-align: start; }
.jp-fixed-punctuation { text-justify: none; letter-spacing: 0; }
.jp-punct {
   display: inline;
   position: relative;
   text-justify: none;
   letter-spacing: 0;
   margin-inline-start: var(--jp-before, 0em);
   margin-inline-end: var(--jp-after, 0em);
   font-feature-settings: "chws" 0, "vchw" 0, "halt" 0, "vhal" 0, "palt" 0, "vpal" 0, "kern" 0;
}
/* 詰めた字の全角選択背景が隣の字面を覆わないようにする。選択文字列は保持。 */
.jp-punct.jp-trimmed::selection { background: transparent; color: inherit; }
.jp-waou { display: inline; margin-inline-start: var(--jp-gap, .125em); }
.jp-typeset .jp-inseparable {
   display: inline-block;
   white-space: nowrap;
   overflow-wrap: normal;
   word-break: normal;
   text-align: start;
   text-align-last: start;
   text-justify: none;
   vertical-align: baseline;
}
.jp-typeset .jp-inseparable,
.jp-typeset .jp-inseparable * { letter-spacing: 0 !important; }
.jp-typeset .jp-inseparable mark { padding-inline: 0; }
.jp-typeset ruby.jp-ruby {
   display: inline-flex;
   position: relative;
   inline-size: var(--jp-ruby-width, auto);
   font-size: 1em;
   line-height: 1;
   text-indent: 0;
   vertical-align: baseline;
   white-space: nowrap;
   text-align: start;
}
.jp-typeset .jp-ruby > .ruby-base {
   display: flex;
   inline-size: 100%;
   justify-content: space-around;
   font-size: 1em;
   letter-spacing: normal;
}
.jp-typeset .jp-ruby > rt {
   display: flex;
   position: absolute;
   inset-block-end: 100%;
   inset-inline-start: calc(-1 * var(--jp-ruby-head, 0px));
   inline-size: var(--jp-reading-width, max-content);
   box-sizing: border-box;
   justify-content: space-between;
   font-size: .5em;
   line-height: 1;
   letter-spacing: normal;
}
.jp-typeset .jp-ruby-char { flex: 0 0 auto; }
.jp-typeset .jp-ruby > rp { display: none; }
