diff --git a/templates/Japanese sentences (nb)/Production/back.html b/templates/Japanese sentences (nb)/Production/back.html
new file mode 100644
index 0000000..cf2cb41
--- /dev/null
+++ b/templates/Japanese sentences (nb)/Production/back.html
@@ -0,0 +1,42 @@
+
+
+{{FrontSide}}
+
+
+
+
{{SentEng}}
+
{{VocabKanji}}
+
+{{#VocabKanji}}
+
+ {{VocabPitchPattern}}
+ {{^VocabPitchPattern}}{{kana:VocabFurigana}}{{/VocabPitchPattern}}
+ 【{{VocabKanji}}】
+
+{{/VocabKanji}}
+
+{{#VocabDef}}
+
+ {{edit:furigana:VocabDef}}
+
+{{/VocabDef}}
+
+{{#Notes}}
+
+
Notes
+
{{furigana:Notes}}
+
+{{/Notes}}
+
+{{#Source}}
{{Source}}
{{/Source}}
+
+
+
+
+
+
diff --git a/templates/Japanese sentences (nb)/Production/front.html b/templates/Japanese sentences (nb)/Production/front.html
new file mode 100644
index 0000000..2d6c78d
--- /dev/null
+++ b/templates/Japanese sentences (nb)/Production/front.html
@@ -0,0 +1,48 @@
+{{#MakeProductionCard}}
+
+
+
+
{{#Tags}}{{Tags}}
{{/Tags}}
+{{#Image}}
{{Image}}
{{/Image}}
+
+
+ {{edit:furigana:SentFurigana}}
+ {{^SentFurigana}}{{edit:furigana:VocabFurigana}}{{/SentFurigana}}
+
+
{{VocabAudio}}{{SentAudio}}
+
+
+
+
+
+{{/MakeProductionCard}}
diff --git a/templates/Japanese sentences (nb)/README.md b/templates/Japanese sentences (nb)/README.md
new file mode 100644
index 0000000..c243f17
--- /dev/null
+++ b/templates/Japanese sentences (nb)/README.md
@@ -0,0 +1,91 @@
+# Japanese sentences (nb)
+
+This is Tatsumoto's [Japanese sentences][] template which I've altered to my
+liking. I'm not sure why would anyone prefer this one, but in such unlikely
+case it is here for your convenience.
+
+## What's different?
+
+In this document I will only mention the modifications to the original
+template; for general information about it refer to the link above.
+
+### Single template for both targeted sentence cards and word cards
+
+The template was altered to show `VocabKanji`/`VocabFurigana` pair in place of
+`SentKanji`/`SentFurigana` when the former are empty. This makes it suitable
+not only for sentence cards, but for word cards too. In fact, I have converted
+my entire collection (which contains both mined notes and the entirety of
+[Ankidrone Starter Pack][]) to this note type and enjoy the following benefits
+of having single card type for all purposes:
+
+ * Whenever I want to convert a word card to a TSC card or the other way
+ around, I don't have to do a full database upload on the next sync.
+ * If I want to change the appearance of my cards, there is only one place to
+ make edits to, instead of two or more.
+
+### Added fields, removed fields
+
+ * `Source` field was added for sake of recording the origin of a mined
+ sentence. It is displayed in less prominent fashion than the `Notes` field
+ and doesn't distract you from the actual notes that you might have. This
+ feature was shamelessly borrowed from cyphar's [Japanese Mined Sentences][]
+ template.
+ * `MorphManFocus` field was removed together with its related JavaScript and
+ styling, since I don't use MorphMan.
+ * `VocabPitchNum` field was removed together with pitch accent colorizing
+ script. I found the colorization annoying, and apart from machine
+ processing, pitch numbers are superseded by proper pitch accent annotations
+ presented in the `VocabPitchPattern` field.
+
+## Screenshots
+
+Below are the screenshots of *Recognition* cards. *Production* cards are not
+much different.
+
+![Sentence card](sentence_card.webp)
+*A sentence card. Notice the `Source` field below the image.*
+
+![Word card](word_card.webp)
+*A word card.*
+
+## Configuration
+
+Most of the instructions for *Japanese sentences* template apply here as well,
+with few changes.
+
+### *Yomichan* settings
+
+I prefer letting [AJT Pitch Accent][] add-on generate pitch accents instead of
+*Yomichan*, as HTML produced by the former is much cleaner than that of the
+latter. Therefore, *Yomichan*'s card format configuration becomes even
+simpler:
+
+| Field | Value |
+| --------------- | ------------------------------------------------- |
+| `SentKanji` | `{cloze-prefix}{cloze-body}{cloze-suffix}` |
+| `VocabKanji` | `{expression}` |
+| `VocabFurigana` | `{furigana-plain}` |
+| `VocabDef` | `{glossary-brief}` |
+
+### *mpvacious* settings
+
+Make sure that your `subs2srs.conf` contains these lines:
+
+ miscinfo_enable=yes
+ miscinfo_field=Source
+
+## Tips and tricks
+
+ * If you want to try this template out, you don't need to say goodbye to
+ contents of `MorphManFocus` and `VocabPitchNum` fields in your cards.
+ Import the template, then manually add these two fields back. After that,
+ you can convert your notes with no data loss. `antp.sh update` will work
+ safely as well.
+ * *Ankidrone Starter Pack* decks *N2* and *N1* contain item numbers in the
+ `Notes` field. When converting them, you may want to map `Notes` to
+ `Source`.
+
+ [AJT Pitch Accent]: https://ankiweb.net/shared/info/1225470483
+ [Ankidrone Starter Pack]: https://tatsumoto.neocities.org/blog/basic-vocabulary.html#anki-deck
+ [Japanese Mined Sentences]: ../Japanese%20Mined%20Sentences%20(cyphar)
+ [Japanese sentences]: ../Japanese%20sentences
diff --git a/templates/Japanese sentences (nb)/Recognition/back.html b/templates/Japanese sentences (nb)/Recognition/back.html
new file mode 100644
index 0000000..a250714
--- /dev/null
+++ b/templates/Japanese sentences (nb)/Recognition/back.html
@@ -0,0 +1,65 @@
+
+
{{FrontSide}}
+
+
+
+ {{edit:furigana:SentFurigana}}
+ {{^SentFurigana}}
+ {{edit:furigana:SentKanji}}
+ {{^SentKanji}}
+ {{edit:furigana:VocabFurigana}}
+ {{^VocabFurigana}}
+ {{edit:furigana:VocabKanji}}
+ {{/VocabFurigana}}
+ {{/SentKanji}}
+ {{/SentFurigana}}
+
+ {{#SentEng}}
+
{{hint:SentEng}}
+ {{/SentEng}}
+
+
+
+ {{VocabAudio}}{{SentAudio}}{{VocabPitchPattern}}
+ {{^VocabPitchPattern}}{{text:kana:VocabFurigana}}{{/VocabPitchPattern}}
+ {{#VocabKanji}}【{{text:kanji:VocabKanji}}】{{/VocabKanji}}
+
+
+ {{#VocabDef}}
+
{{edit:furigana:VocabDef}}
+ {{/VocabDef}}
+ {{#Notes}}
+
+
Notes
+
{{furigana:Notes}}
+
+ {{/Notes}}
+ {{#Image}}
+
{{Image}}
+ {{/Image}}
+ {{#Source}}
+
{{Source}}
+ {{/Source}}
+
+
+
+
+
+
+
diff --git a/templates/Japanese sentences (nb)/Recognition/front.html b/templates/Japanese sentences (nb)/Recognition/front.html
new file mode 100644
index 0000000..91ca9c5
--- /dev/null
+++ b/templates/Japanese sentences (nb)/Recognition/front.html
@@ -0,0 +1,48 @@
+
+
+
+
+ {{#Tags}}
+ {{Tags}}
+ {{/Tags}}
+
+
+
+
+ {{edit:furigana:SentKanji}}
+ {{^SentKanji}}
+ {{edit:kanji:SentFurigana}}
+ {{^SentFurigana}}
+ {{edit:furigana:VocabKanji}}
+ {{^VocabKanji}}
+ {{edit:kanji:VocabFurigana}}
+ {{/VocabKanji}}
+ {{/SentFurigana}}
+ {{/SentKanji}}
+
+
+
+
+
diff --git a/templates/Japanese sentences (nb)/sentence_card.webp b/templates/Japanese sentences (nb)/sentence_card.webp
new file mode 100644
index 0000000..a59a9c4
Binary files /dev/null and b/templates/Japanese sentences (nb)/sentence_card.webp differ
diff --git a/templates/Japanese sentences (nb)/template.css b/templates/Japanese sentences (nb)/template.css
new file mode 100644
index 0000000..0648778
--- /dev/null
+++ b/templates/Japanese sentences (nb)/template.css
@@ -0,0 +1,395 @@
+@charset "utf-8";
+
+@font-face {
+ font-family: "KanjiStrokeOrders";
+ src: local("KanjiStrokeOrders"), url("_kso.ttf");
+}
+
+@font-face {
+ font-family: "Yu Mincho";
+ src: local("Yu Mincho"), local("游明朝"), url("_yumin.ttf");
+}
+
+@font-face {
+ font-family: "Yu Mincho";
+ src: local("Yu Mincho Demibold"), local("游明朝 Demibold"), url("_yumindb.ttf");
+ font-weight: 600;
+}
+
+* {
+ box-sizing: border-box;
+ padding: 0;
+ margin: 0;
+}
+
+.card {
+ background-color: #fffaf0;
+ color: #2a1b0a;
+ font-family: "Noto Serif", "Noto Serif CJK JP", Yu Mincho, "Liberation Serif", "Times New Roman", Times, Georgia,
+ Serif;
+ font-size: 24px;
+ text-align: left;
+ line-height: 1.4;
+ margin: 0 auto;
+}
+
+.card1 {
+ color: inherit;
+}
+
+.card2 .jpsentence ruby rt {
+ opacity: 0;
+}
+.card2 .jpsentence:hover ruby rt {
+ opacity: 1;
+}
+
+@media screen and (min-width: 820px) {
+ .card {
+ background-color: #e5d7c9;
+ display: flex;
+ justify-content: center;
+ }
+ .wrap {
+ width: 800px;
+ padding: 0 5px 0;
+ background-color: #fffaf0;
+ border-left: 1px solid #c9bcbc;
+ border-right: 1px solid #c9bcbc;
+ min-height: 100vh;
+ }
+ .wrap .wrap {
+ width: auto;
+ padding: 0;
+ min-height: 0;
+ border: 0;
+ }
+}
+
+hr {
+ margin: 2px 0;
+ clear: both;
+ border: 0;
+ border-top: 1px solid #c9bcbc;
+}
+
+b {
+ font-weight: 600;
+}
+
+/* links */
+a {
+ color: #532f2f;
+}
+
+a:hover {
+ color: #722a2a;
+}
+
+a.hint {
+ text-decoration: none;
+ text-align: center;
+ display: block;
+}
+
+/* Hide furigana on front */
+nokana ruby rt {
+ opacity: 0;
+ font-size: 0;
+ display: none;
+}
+
+notext b {
+ background-color: black;
+ color: transparent;
+}
+
+/* Top */
+header {
+ display: flex;
+ clear: both;
+}
+
+header .tags {
+ border-radius: 0px 0px 3px 3px;
+}
+
+header > div:not(:last-child) {
+ margin-right: 3px;
+}
+
+/* Space between elements */
+.images {
+ margin-top: 16px;
+}
+
+.images > img {
+ margin-bottom: 16px;
+}
+
+.sent-center {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-flow: column nowrap;
+}
+
+/* Japanese sentence */
+
+.jpsentence {
+ font-size: 35px;
+}
+
+.jpsentence b { color: Maroon; }
+
+/* Hide front side when the back is shown. */
+
+.fside .jpsentence {
+ display: none;
+}
+
+/* English */
+
+div.ensentence > a.hint {
+ color: #555;
+ font-size: 14px;
+ display: block;
+ border: 1px solid #ccc;
+ border-radius: 2.2px;
+ padding: 2px 10px;
+ margin: 4px 0;
+}
+div.ensentence > a.hint:hover {
+ color: #111;
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+/* Tags */
+
+.tags {
+ font-family: "Noto Sans", "Noto Sans CJK JP", "Liberation Sans", Arial, Sans, sans-serif;
+ text-align: center;
+ display: inline-block;
+ background-color: #333;
+ color: #fffaf0;
+ font-weight: bold;
+ padding: 1px 3px;
+ margin: 0;
+ cursor: pointer;
+ border-radius: 3px;
+ font-size: 12px;
+ line-height: 14px;
+}
+
+/* AnkiDroid replay button */
+
+.replaybutton {
+ margin: 0;
+ margin-right: 3px;
+ text-decoration: none;
+}
+
+.replaybutton span {
+ padding: 0;
+ font-size: 16px;
+}
+
+.replaybutton span svg {
+ fill: #fffaf0;
+ background: #333;
+ border-radius: 3px;
+ vertical-align: top;
+ min-width: 16px;
+ min-height: 16px;
+}
+
+/* PC replay button */
+
+a.replay-button {
+ top: -0.125em;
+ position: relative;
+ margin: 0;
+}
+
+a.replay-button svg {
+ height: 1em;
+ width: 1em;
+}
+
+a.replay-button svg path {
+ fill: #fffaf0;
+}
+
+a.replay-button svg circle {
+ fill: #333;
+}
+
+/* Footer and links */
+
+footer {
+ font-size: 16px;
+ text-align: center;
+}
+
+footer > a {
+ text-decoration: none;
+}
+
+footer > a:after {
+ content: "·";
+ color: brown;
+ display: inline-block;
+ width: 6px;
+}
+
+footer > a:last-child:after {
+ content: "";
+ width: 0;
+}
+
+/* Source */
+
+.source {
+ font-size: 16px;
+ text-align: center;
+}
+
+/* Vocab */
+
+.vocab {
+ margin-top: 16px;
+}
+
+.vocab div {
+ display: inline-block;
+}
+
+.vocab br {
+ display: none;
+}
+
+.vocab > .tags {
+ vertical-align: top;
+}
+
+.notes > .tags {
+ vertical-align: bottom;
+}
+
+/* Images */
+
+.images {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: row;
+ align-items: flex-start;
+ align-content: space-between;
+ justify-content: space-evenly;
+}
+
+.images > img {
+ max-width: 47%;
+ border-radius: 4px;
+ filter: sepia(33%);
+}
+
+.images > img:only-child {
+ max-width: 100%;
+}
+
+/* Production cards */
+
+.production b {
+ visibility: hidden;
+}
+
+.strokeorder {
+ text-align: center;
+ font-size: 150px;
+ font-family: KanjiStrokeOrders;
+}
+
+/* Fix for Yomichan defs */
+
+ul,
+ol {
+ list-style-type: none;
+ display: inline;
+ margin: 0px;
+ padding: 0px;
+}
+
+/* Fix for Yomichan pitch accents */
+
+.vocab ol > li {
+ display: inline;
+}
+
+.vocab ol > li:after {
+ content: "・";
+}
+
+.vocab ol > li:last-child:after {
+ content: "";
+}
+
+/* Night Mode */
+
+.nightMode.card {
+ color: #FFFFFF;
+ background-color: black;
+}
+
+.nightMode .wrap {
+ background-color: #2F2F31;
+}
+
+.nightMode .tags {
+ background-color: #FFFFFF;
+ color: #2F2F31;
+}
+
+.nightMode a.replay-button svg path {
+ fill: #2F2F31;
+}
+
+.nightMode a.replay-button svg circle {
+ fill: #FFFFFF;
+}
+
+.nightMode .replaybutton span svg {
+ fill: #2F2F31;
+ background: #FFFFFF;
+}
+
+.nightMode a {
+ color: #c7493a;
+}
+
+.nightMode a:hover {
+ color: #a33327;
+}
+
+.nightMode .jpsentence b {
+ color: NavajoWhite;
+}
+
+.nightMode .images > img {
+ filter: sepia(0%);
+}
+
+.nightMode div.ensentence > a.hint {
+ color: #FFFFFF;
+ border: 1px solid #FFFFFF;
+}
+
+.nightMode div.ensentence > a.hint:hover {
+ color: gray;
+ background-color: rgba(0, 0, 0, 0.20);
+}
+
+/* Don't select furigana */
+
+.jpsentence ruby rt {
+ user-select: none;
+}
diff --git a/templates/Japanese sentences (nb)/template.json b/templates/Japanese sentences (nb)/template.json
new file mode 100644
index 0000000..5cd0b28
--- /dev/null
+++ b/templates/Japanese sentences (nb)/template.json
@@ -0,0 +1,22 @@
+{
+ "modelName": "Japanese sentences (nb)",
+ "inOrderFields": [
+ "SentKanji",
+ "SentFurigana",
+ "SentEng",
+ "SentAudio",
+ "VocabKanji",
+ "VocabFurigana",
+ "VocabPitchPattern",
+ "VocabDef",
+ "VocabAudio",
+ "Notes",
+ "Image",
+ "Source",
+ "MakeProductionCard"
+ ],
+ "cardTemplates": [
+ "Recognition",
+ "Production"
+ ]
+}
diff --git a/templates/Japanese sentences (nb)/word_card.webp b/templates/Japanese sentences (nb)/word_card.webp
new file mode 100644
index 0000000..341cc2f
Binary files /dev/null and b/templates/Japanese sentences (nb)/word_card.webp differ