*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0;font-weight:normal}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}ul,ol{list-style:none}img{display:block}a{color:black;text-decoration:none}:root{--link-color: #b1002e;--size-1: 12px;--size-2: calc(var(--size-1) * 2);--size-3: calc(var(--size-1) * 3);--size-4: calc(var(--size-1) * 4);--font-scale: 1.25;--font-base: 16px;--font-s: calc(var(--font-base) * 0.8);--font-2: calc(var(--font-base) * pow(var(--font-scale), 1));--font-3: calc(var(--font-base) * pow(var(--font-scale), 3));--font-4: calc(var(--font-base) * pow(var(--font-scale), 4))}html{max-width:100%;max-height:100%}body{font-family:"Times", "Times New Roman", serif;font-weight:normal;font-size:var(--font-base);line-height:var(--size-2)}.layout-common{min-height:100vh;display:flex;flex-direction:column}.layout-common .post-list,.layout-common article{max-width:900px;margin-right:auto;margin-left:auto}.layout-common>nav.top-nav{box-shadow:0 -1px 0 #000 inset}.layout-common>nav.bottom-nav{border-top:1px solid #000;display:flex;flex-direction:row;text-align:center}.layout-common>nav.bottom-nav ul{margin:0 auto}.layout-common>nav.top-nav,.layout-common>nav.bottom-nav{padding:var(--size-1)}.layout-common>nav.top-nav ul li,.layout-common>nav.bottom-nav ul li{display:inline-block}.layout-common>nav.top-nav ul li a,.layout-common>nav.bottom-nav ul li a{color:black;text-decoration:none}.layout-common>nav.top-nav ul li a,.layout-common>nav.top-nav ul li .sep,.layout-common>nav.bottom-nav ul li a,.layout-common>nav.bottom-nav ul li .sep{margin-right:var(--size-1)}.layout-common>main{width:100%;flex:1;display:flex;flex-direction:column}.layout-common>footer{padding:var(--size-1);border-top:1px solid black}.layout-common>footer a{color:var(--link-color)}.home-page{padding:var(--size-4)}.home-page h1{font-size:var(--font-4);line-height:var(--size-4);margin-bottom:var(--size-4)}nav.media-nav>ul{margin-right:0}nav.media-nav>ul>li{margin-bottom:var(--size-2)}nav.media-nav>ul>li>a{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;text-align:left;hyphens:none}nav.media-nav>ul>li>a>.frame{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:96px;max-height:96px}nav.media-nav>ul>li>a>.frame>.shadow{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;width:96px;height:96px}nav.media-nav>ul>li>a>.frame>.shadow>img{max-width:192px;max-height:192px}nav.media-nav>ul>li>a>span{display:block;font-size:var(--font-3);line-height:var(--size-4);margin-left:var(--size-2)}nav.media-nav>ul>li>a:hover>.frame>.shadow{z-index:1;transition:width 0.3s ease-out, height 0.3s ease-out;max-width:192px;max-height:192px;width:192px;height:192px}nav.media-nav ul{margin-left:0}nav.media-nav ul li{list-style-type:none}nav.media-nav ul li a{color:black}.post-list{padding:var(--size-2)}.post-list>p{margin-bottom:var(--size-2)}.post-list>p a{color:var(--link-color)}.post-list>h2{font-size:var(--font-2);line-height:var(--size-3);margin-bottom:var(--size-1);border-bottom:1px solid #c6c6c6;font-weight:bold}.post-list>ul.posts>li{margin-bottom:var(--size-2)}.post-list>ul.posts>li>a{display:block;font-size:var(--font-2);line-height:var(--size-2);color:black;transition:color 0.3s linear;border-bottom:1px solid transparent}.post-list>ul.posts>li>a:hover{color:var(--link-color);transition:color 0.3s linear;border-color:#bbb}.post-list>ul.posts>li>.info{font-size:var(--font-s);line-height:var(--size-2)}.post-list>ul.posts>li>.info>.date{color:#474747}.layout-article,.layout-fiction{width:100%;flex:1;display:flex;flex-direction:column}.layout-article header,.layout-fiction header{display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 -1px 0 #000 inset}.layout-article header h1,.layout-fiction header h1{font-size:var(--font-4);line-height:var(--size-4);margin:var(--size-2) var(--size-1);text-align:center}article{width:100%;flex:1;padding:var(--size-2)}article h1{font-size:var(--font-3);line-height:var(--size-4);margin-bottom:var(--size-2);border-bottom:1px solid #8a8a8a;font-weight:normal}article h2{font-size:var(--font-2);line-height:var(--size-3);margin-bottom:var(--size-1);border-bottom:1px solid #c6c6c6;font-weight:bold}article h3{font-size:var(--font-base);line-height:var(--size-3);font-weight:bold}article sup[role="doc-noteref"]{font-size:var(--font-base);vertical-align:0}article sup[role="doc-noteref"]:before{content:"["}article sup[role="doc-noteref"]:after{content:"]"}article p,article blockquote,article table,article ul,article ol,article dl,article h1,article h2,article h3,article hr{margin-bottom:var(--size-1)}article .highlighter-rouge,article pre{margin-bottom:var(--size-1)}article p,article li{text-align:justify}article img{max-width:40%;padding:var(--size-1); margin:auto;}article blockquote{margin:var(--size-2);font-style:italic}article :not(pre)>code{font-family:"Courier", monospace}article pre{border:1px solid #f2f2f2;background:#fcfcfc;overflow-x:auto;padding:var(--size-1);line-height:15px}article pre>code{font-size:12px;line-height:15px}article ul{list-style-type:disc}article ol{list-style-type:decimal}article ul:last-child,article ol:last-child{margin-bottom:0}article ul,article ol,article dl{margin-left:var(--size-2);margin-right:var(--size-2)}article dl dt{font-weight:bold}article dl dd{margin-left:var(--size-2)}article hr{border:none;text-align:center}article hr:after{content:"❧";color:black}article .cite{text-align:right;font-style:normal}article table{margin-left:auto;margin-right:auto;border-collapse:collapse}article table td,article table th{border:1px solid black;padding:2px 4px}article table th{font-weight:bold}article a{color:var(--link-color);text-decoration:none}article b,article strong{font-weight:bold}.post-metadata{border-top:1px solid black;padding:var(--size-1);display:flex;flex-direction:row;justify-content:center}.post-metadata table td{padding:3px 12px}.post-metadata table .key{text-align:right;font-weight:bold}.post-metadata table .value a{color:var(--link-color)}.highlight .c{color:#999988;font-style:italic}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .ch{color:#999988;font-style:italic}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .cpf{color:#999988;font-style:italic}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .gd{color:#000000;background-color:#ffdddd}.highlight .ge{font-style:italic}.highlight .gr{color:#aa0000}.highlight .gh{color:#999999}.highlight .gi{color:#000000;background-color:#ddffdd}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaaaaa}.highlight .gt{color:#aa0000}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kn{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .m{color:#009999}.highlight .s{color:#bb8844}.highlight .na{color:#008080}.highlight .nb{color:#999999}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:#008080}.highlight .ni{color:#800080}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nn{color:#555555}.highlight .nt{color:#000080}.highlight .nv{color:#008080}.highlight .ow{font-weight:bold}.highlight .w{color:#bbbbbb}.highlight .mb{color:#009999}.highlight .mf{color:#009999}.highlight .mh{color:#009999}.highlight .mi{color:#009999}.highlight .mo{color:#009999}.highlight .sa{color:#bb8844}.highlight .sb{color:#bb8844}.highlight .sc{color:#bb8844}.highlight .dl{color:#bb8844}.highlight .sd{color:#bb8844}.highlight .s2{color:#bb8844}.highlight .se{color:#bb8844}.highlight .sh{color:#bb8844}.highlight .si{color:#bb8844}.highlight .sx{color:#bb8844}.highlight .sr{color:#808000}.highlight .s1{color:#bb8844}.highlight .ss{color:#bb8844}.highlight .bp{color:#999999}.highlight .fm{color:#990000;font-weight:bold}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .vm{color:#008080}.highlight .il{color:#009999}.chapter-start{margin:var(--size-2) 0}.chapter-start p{text-align:center}nav.chapter-nav{margin-top:var(--size-2)}nav.chapter-nav ul{margin:0;list-style-type:none;display:flex;flex-direction:row;justify-content:center;align-items:center}nav.chapter-nav li{font-style:italic;margin:0 20px}.epigraph{padding:var(--size-2)}.nameplate p{text-align:center;font-variant:small-caps}.center p{text-align:center}.two-columns{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.two-columns .column{width:50%}.prompt p{text-align:center;font-size:1.2em;margin:1.2em 0}.gallery{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap}.gallery>.gallery-entry{flex-basis:33%}@media (min-width: 501px) and (max-width: 768px){.gallery>.gallery-entry{flex-basis:50%}}@media (max-width: 500px){.gallery>.gallery-entry{flex-basis:100%}}.border-box{max-width:90%;margin-left:auto;margin-right:auto;border:1px solid black;padding:var(--size-2);margin-bottom:var(--size-1);box-shadow:0px 3px 15px rgba(0,0,0,0.2)}.katex{font-size:1.1em !important}

/* NOOK additions */

/* Let the post list use more of the viewport instead of the narrow 900px cap */
.layout-common .post-list {
    max-width: 1400px;
    width: 80%;
    padding: var(--size-1) var(--size-2);
}

.post-list > h2 {
    margin-bottom: var(--size-1);
}

.post-list > ul.posts > li {
    margin-bottom: var(--size-1);
}

/* Compact book grid that spreads across the available width */
nav.media-nav > ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--size-1);
}

nav.media-nav > ul > li {
    margin-bottom: 0;
}

nav.media-nav > ul > li > a > .frame,
nav.media-nav > ul > li > a > .frame > .shadow {
    width: 64px;
    height: 64px;
    max-width: 64px;
    max-height: 64px;
}

nav.media-nav > ul > li > a > .frame > .shadow > img {
    max-width: 128px;
    max-height: 128px;
}

nav.media-nav > ul > li > a:hover > .frame > .shadow {
    max-width: 128px;
    max-height: 128px;
    width: 128px;
    height: 128px;
}

nav.media-nav > ul > li > a > span {
    font-size: var(--font-2);
    line-height: var(--size-2);
    margin-left: var(--size-1);
}

.cover-placeholder {
    width: 64px;
    height: 64px;
    font-size: var(--font-2);
}

/* Tighten overall spacing for a more compact layout */
.home-page {
    padding: var(--size-2);
}

.home-page h1 {
    margin-bottom: var(--size-2);
}

.browse-links {
    margin-bottom: var(--size-2);
}

.layout-article header .subtitle {
    font-style: italic;
    margin-bottom: var(--size-2);
}

.cover-placeholder {
    width: 96px;
    height: 96px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #8a8a8a;
    font-size: var(--font-3);
    background: #f8f8f8;
}

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--size-1);
    align-items: flex-end;
    margin-bottom: var(--size-2);
    padding-bottom: var(--size-1);
    border-bottom: 1px solid #c6c6c6;
}

.filter-bar label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: var(--font-s);
}

.filter-bar select,
.book-form input,
.book-form select,
.book-form textarea,
.inline-form input,
.inline-form textarea {
    font-family: inherit;
    font-size: var(--font-base);
    padding: 4px 6px;
    border: 1px solid #8a8a8a;
    background: #fff;
}

.filter-bar button,
.book-form button,
.inline-form button,
.action-bar button {
    font-family: inherit;
    font-size: var(--font-base);
    padding: 4px 12px;
    border: 1px solid #000;
    background: #fff;
    cursor: pointer;
}

.filter-bar button:hover,
.book-form button:hover,
.inline-form button:hover,
.action-bar button:hover {
    background: #f2f2f2;
}

.clear-filter {
    color: var(--link-color);
    align-self: center;
}

.book-form fieldset {
    border: 1px solid #c6c6c6;
    padding: var(--size-2);
    margin-bottom: var(--size-2);
}

.book-form legend {
    font-weight: bold;
    padding: 0 var(--size-1);
}

.book-form label {
    display: block;
    margin-bottom: var(--size-2);
}

.book-form input[type="text"],
.book-form input[type="url"],
.book-form input[type="number"],
.book-form select,
.book-form textarea,
.inline-form input,
.inline-form textarea {
    display: block;
    width: 100%;
    max-width: 600px;
    margin-top: 4px;
}

.checkbox-list {
    list-style: none;
    margin-left: 0;
}

.checkbox-list li {
    margin-bottom: var(--size-1);
}

.checkbox-list label {
    display: flex;
    align-items: center;
    gap: var(--size-1);
    margin-bottom: 0;
}

.action-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--size-2);
    align-items: center;
    margin-top: var(--size-3);
}

.action-bar a {
    color: var(--link-color);
}

.action-bar button.danger,
button.danger {
    color: var(--link-color);
    border-color: var(--link-color);
}

.form-error {
    color: var(--link-color);
    margin-bottom: var(--size-2);
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: var(--size-2);
}

.data-table th,
.data-table td {
    border: 1px solid #000;
    padding: 4px 8px;
    text-align: left;
}

.data-table th {
    font-weight: bold;
}

.data-table a {
    color: var(--link-color);
}

.status-badge {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid #8a8a8a;
    font-size: var(--font-s);
}

.status-read {
    border-color: #2d6a2d;
}

.status-to_buy {
    border-color: #8a6d00;
}

.status-bought {
    border-color: #004080;
}

.rating .star {
    color: #c6c6c6;
}

.rating .star.filled {
    color: var(--link-color);
}

.rating-empty {
    color: #474747;
}

.log-action {
    text-transform: capitalize;
    font-variant: small-caps;
}

.log-added {
    color: #2d6a2d;
}

.log-edited {
    color: #004080;
}

.log-deleted {
    color: var(--link-color);
}

.empty-note {
    font-style: italic;
    color: #474747;
}

.browse-links {
    margin-bottom: var(--size-4);
}

.inline-form h3 {
    font-weight: bold;
    margin-bottom: var(--size-2);
}

.preserved-text {
    white-space: pre-wrap;
}

.field-hint {
    margin-bottom: var(--size-2);
    color: #474747;
    font-size: var(--font-s);
}

.external-links-list {
    margin-bottom: var(--size-2);
}

.external-link-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--size-2);
    align-items: flex-end;
    padding: var(--size-1) 0;
    border-bottom: 1px solid #e0e0e0;
}

.external-link-row:last-child {
    border-bottom: none;
}

.external-link-row label {
    flex: 1 1 220px;
    margin-bottom: 0;
}

.external-link-row .remove-external-link {
    flex: 0 0 auto;
    margin-bottom: 4px;
}

.external-links-value {
    line-height: var(--size-3);
}

.bracketed-link {
    color: var(--link-color);
    text-decoration: none;
    white-space: nowrap;
}

.bracketed-link .bracket {
    color: inherit;
}

.bracketed-link .link-label {
    text-decoration: underline;
}

.bare-link {
    color: var(--link-color);
    text-decoration: underline;
    word-break: break-all;
}
