@font-face { font-family: 'Vazirmatn'; src: url('/fonts/Vazirmatn-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; } @font-face { font-family: 'Vazirmatn'; src: url('/fonts/Vazirmatn-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; } @font-face { font-family: 'Vazirmatn'; src: url('/fonts/Vazirmatn-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; } @font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; src: url('/css/Material-Icons.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'IranNastaliq'; src: url('/fonts/IranNastaliq-Web.woff2?v=1.5') format('woff2'); ascent-override: 120%; descent-override: 40%; line-gap-override: 20%; font-display: swap; } :root { color-scheme: light; --bg-page: #fbf6ea; --card-paper: #fffdf7; --card-poem: #f6edd6; --card-inner: #f6efe3; --card-nested: #eee3d0; --ink-black: #17130f; --text-muted: #635543; --lapis: #0d1d30; --lapis-hover: #163252; --gold: #b88828; --gold-light: #dfcd9f; --brand: #bf3f2a; --gold-subtle: #f5edd8; --border-gold: #b8a78c; --accent-bg: var(--card-inner); --accent-border: var(--border-gold); --accent-text: var(--lapis); } @media (prefers-color-scheme: dark) { :root { color-scheme: dark; --bg-page: #14120f; --card-paper: #181510; --card-poem: #1c1916; --card-inner: #242019; --card-nested: #2d2620; --ink-black: #e7ded0; --text-muted: #9e9185; --lapis: #f0f6fc; --lapis-hover: #78b7ff; --gold: #c9a050; --gold-light: #3a322b; --brand: #d4553a; --gold-subtle: #2a2418; --border-gold: #9b7332; --accent-bg: var(--card-inner); --accent-border: var(--border-gold); --accent-text: var(--lapis); } } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Vazirmatn'; } body { margin: 0; padding: 0; text-align: center; background-color: var(--bg-page); color: var(--ink-black); } #hdr, #hdr2 { max-width: 752px; margin: auto; display: block; text-align: center; direction: rtl; clear: both } #hdr { padding: 16px; } #hdr2 { margin-bottom: 3px; } h1 { text-align: center; margin-left: auto; margin-right: auto; } #hdr2 h1 { float: right; height: 100px; } .home-logo { width: auto; margin: auto; border-radius: 12px; padding: 6px; transition: all 0.2s ease; } h1 a img { border: none; display: block; padding: 6px; } a { text-decoration: none; } .bk-background { } #fa { direction: rtl; font-family: 'Vazirmatn'; font-weight: 300; font-size: 1em; padding-bottom: 50px; } #fa a { color: var(--lapis); } h2 { font-family: 'Vazirmatn'; font-weight: bold; font-size: 1.2em; margin: 3px auto; color: var(--accent-text) } form:after, form div:after { content: "."; display: block; visibility: hidden; clear: both; height: 0 } .actionbox { position: relative; margin: auto; line-height: normal; text-align: center; display: flex; justify-content: center; } #hdr2 .actionbox { margin: 0; float: left; font-family: 'Vazirmatn'; font-weight: 300; font-size: 1em; } #main, .sitem, .poem { max-width: 752px; margin: 18px auto; display: block; border: 2px solid var(--accent-border); border-radius: 18px; padding: 0; background-color: var(--card-poem); box-shadow: 0 12px 35px rgba(0, 0, 0, 0.16); } @media (max-width: 700px) { #main, .poem, .sitem { margin: 16px auto; padding: 24px 16px; border-radius: 12px; } } .sitem, .poem { margin: 16px auto; padding: 0; } .poem { background-color: #f3e9d0; } .poem p { text-indent: 20px; text-align: justify; margin-left: 16px; margin-right: 16px; } @media (prefers-color-scheme: dark) { .poem { background-color: var(--card-poem); } #main, .sitem, .poem { border-width: 1px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 16px 36px -14px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(201, 160, 80, 0.08); } } .poem-excerpt a { color: var(--brand); -webkit-text-fill-color: var(--brand); transition: color 0.2s ease, -webkit-text-fill-color 0.2s ease; } .poem-excerpt a:hover { color: var(--lapis); -webkit-text-fill-color: var(--lapis); text-decoration: underline; } form { margin: 0; padding: 0; font-size: 100%; } label { font-size: 100%; color: var(--ink-black) } input, select, textarea { font-family: 'Vazirmatn'; font-weight: 300; font-size: 0.8em; padding: 2px; text-align: right; color: var(--text-muted); border: 2px solid var(--accent-border); background-color: var(--card-paper) } select { width: 190px; margin-top: 3px; } .inputText { margin-top: 3px; } .linputText { margin-top: 3px; direction: ltr; text-align: left } /* #searchhorm input, #searchhorm select, #searchhorm label (further below in this file) float them all right, which is how the search box's input/combo/button end up in the right order in this RTL layout - each one floats to the right of the one before it. Wrapping the text input in this span for the clear button moved it out from under that rule (a plain, non-floated span isn't selected by "#searchhorm input"), which is what reshuffled the search box the first time this shipped. Floating the wrapper itself the same way, and cancelling the float that still lands on the nested input, restores the original left-to-right float order. */ #searchhorm .home-search-input-wrap { position: relative; float: right; margin: 1px; } #searchhorm .home-search-input-wrap input { float: none; margin: 0; } #searchhorm .home-search-input-wrap .inputText { padding-inline-end: 20px; } .home-search-clear { position: absolute; inset-inline-end: 4px; top: 50%; transform: translateY(-50%); cursor: pointer; font-size: 1.1em; line-height: 1; color: var(--text-muted); padding: 0 3px; user-select: none; } .home-search-clear:hover { color: var(--ink-black); } /* Home page "مرور کتابها" book shelf - see initHomeBooksShelf()/buildBookSpine() in bk.js. */ #books-shelf-outer { position: relative; } #books-shelf-wrap { max-width: 100%; overflow-x: auto; overflow-y: hidden; -ms-overflow-style: none; scrollbar-width: none; padding: 10px 34px 26px; } #books-shelf-wrap::-webkit-scrollbar { display: none; } .books-shelf-handle { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--accent-border); background-color: var(--card-paper); color: var(--ink-black); font-size: 1.2rem; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); } .books-shelf-handle:hover { background-color: var(--brand); color: #fff; } .books-shelf-handle-right { right: 0; } .books-shelf-handle-left { left: 0; } #books-shelf { display: flex; align-items: flex-end; gap: 14px; width: max-content; min-width: 100%; padding: 0 10px; } .book-spine { position: relative; flex: 0 0 auto; width: 56px; height: 230px; border-radius: 4px 4px 3px 3px; cursor: pointer; box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.28); transition: transform 0.25s ease, box-shadow 0.25s ease, width 0.3s ease, height 0.3s ease; outline-offset: 3px; } .book-spine:hover, .book-spine:focus-visible { transform: translateY(-12px); box-shadow: 4px 12px 20px rgba(0, 0, 0, 0.4); } .book-spine.expanded { width: 170px; height: 262px; } .book-spine.expanded:hover { transform: translateY(-6px); } .spine-compact { position: absolute; inset: 0; } .book-spine.expanded .spine-compact { display: none; } .spine-title, .spine-poet { position: absolute; left: 50%; transform-origin: center center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; color: #fdf8ee; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); pointer-events: none; } .spine-title { top: 95px; width: 150px; transform: translate(-50%, -50%) rotate(-90deg); font-family: 'IranNastaliq', serif; font-size: 1.2rem; } .spine-poet { top: 200px; width: 50px; transform: translate(-50%, -50%) rotate(-90deg); font-size: 0.68rem; opacity: 0.85; } .spine-cover { display: none; position: absolute; inset: 0; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 18px 12px; text-align: center; color: #fdf8ee; } .book-spine.expanded .spine-cover { display: flex; } .spine-cover-title { font-family: 'IranNastaliq', serif; font-size: 1.7rem; line-height: 1.5; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); } .spine-cover-poet { font-size: 0.85rem; opacity: 0.9; } .spine-cover-close { position: absolute; top: 6px; inset-inline-end: 6px; width: 22px; height: 22px; border-radius: 50%; border: none; background: rgba(0, 0, 0, 0.25); color: #fdf8ee; font-size: 1rem; line-height: 1; cursor: pointer; } .spine-cover-close:hover { background: rgba(0, 0, 0, 0.4); } #guides { max-width: 860px; display: block; text-align: center; margin: 15px auto; padding: 0 10px; width: 100%; } #guides p { text-indent: 0; margin: 5px; font-family: 'Vazirmatn'; font-weight: 300; font-size: 1em; line-height: 24px } .spacer .poet { display: flex; flex-direction: column; align-items: center; width: 110px; margin: 0 0 10px 0; transition: transform 0.25s ease, box-shadow 0.25s ease; } .spacer .poet:hover { transform: translateY(-5px); } .spacer .poet > a { display: block; width: 76px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--card-paper); box-shadow: 0 0 0 2px var(--gold), 0 0 0 5px var(--bg-page), 0 0 0 7px var(--border-gold), 0 4px 12px rgba(0, 0, 0, 0.15); transition: box-shadow 0.25s ease; } .spacer .poet:hover > a { box-shadow: 0 0 0 2px var(--brand), 0 0 0 5px var(--bg-page), 0 0 0 7px var(--brand), 0 6px 18px rgba(0, 0, 0, 0.22); } .spacer .poet > a img { width: 100%; height: 100%; object-fit: cover; image-rendering: auto; filter: contrast(1.08) saturate(1.12) brightness(1.02); } .spacer .poet > a[href="/map"] { width: 86px; height: 86px; box-shadow: none; } .sitem .poet { display: flex; flex-direction: column; align-items: center; gap: 4px; width: auto; margin: 8px 0; } .sitem .poet > img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--gold), 0 0 0 4px var(--bg-page), 0 0 0 5px var(--border-gold); } .sitem .poet > a { width: auto; height: auto; border-radius: 50%; box-shadow: none; background: none; color: var(--text-muted); display: inline-flex; align-items: center; justify-content: center; padding: 2px; } .poemtab { border-top: 1px dashed var(--border-gold); display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 0 6px 0; justify-content: center; } #tab-items { border: none !important; } .poemtablinks { display: inline-table; transition: all 0.2s ease; } .spacer .poet .caption { display: block; width: 100%; font-family: 'Vazirmatn'; font-weight: 300; font-size: 0.8em; text-align: center; margin-top: 6px; margin-bottom: 12px; } .spacer .poet .caption a { border-radius: 12px; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); padding: 6px 12px; background-color: var(--card-inner); border: 1px solid var(--border-gold); margin: 5px 0 8px 0; font-size: 0.85rem; font-weight: 600; color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; transition: all 0.2s ease; } .spacer .poet:hover .caption a { background-color: var(--gold-subtle); border-color: var(--brand); transform: translateY(-1px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12); } .spacer .poet .caption a:hover { background-color: var(--gold-subtle); border-color: var(--brand); transform: translateY(-1px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12); } .poemtablinks a { border-radius: 10px; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04); padding: 6px 12px; background-color: var(--card-inner); border: 1px solid var(--border-gold); margin-top: 5px; font-size: 0.76rem; font-weight: 600; color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; transition: all 0.2s ease; } .poemtablinks a:hover { background-color: var(--gold-subtle) !important; border-color: var(--brand) !important; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; } .poemtablinks { max-height: 20px; font-size: 0.8em; } #fa .spacer .poet .caption a { color: var(--brand); -webkit-text-fill-color: var(--brand); } #fa .poemtablinks a { color: var(--lapis); -webkit-text-fill-color: var(--lapis); } #fa .spacer .poet .caption a:hover, #fa .poemtablinks a:hover { font-weight: bold; background-color: var(--gold-subtle); } #fa .active a { font-weight: bold; background-color: var(--gold-subtle) !important; border-color: var(--brand) !important; color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; } .width-100per { width: 100% !important; } .text-align-center { text-align: center; } a img { border: none; width: 100%; display: block } .ganjoor-comment img { max-width: 100%; } .hilite { color: var(--ink-black); background-color: var(--gold) } .hilite1 { color: var(--ink-black); background-color: var(--gold-light) } .hilite2 { color: var(--ink-black); background-color: var(--gold-light) } .hilite3 { color: var(--ink-black); background-color: var(--gold-subtle) } div.spacer, .item, .b2, .c { clear: both; } .spacer:has(.poet) { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 14px 28px; margin: 15px auto 25px auto; padding: 0; clear: both; } div.n, div.l { clear: both; } .navigation { display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: 820px; margin: 0 auto; } .navleft, .navright { float: none; padding: 0; text-align: center; flex: 1; } .navleft a, .navright a { color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; font-weight: 600; font-size: 0.9rem; text-decoration: none; border-bottom: 1px dashed var(--border-gold); padding-bottom: 2px; transition: all 0.2s ease; } .navleft a:hover, .navright a:hover { color: var(--gold) !important; -webkit-text-fill-color: var(--gold) !important; border-bottom-color: var(--gold); } .navleft span, .navright span { color: var(--border-gold); } .b { margin: auto; margin-bottom: 6px; text-align: center; clear: both; } .b:hover { background: linear-gradient(90deg, transparent, var(--gold-subtle) 15%, var(--gold-subtle) 85%, transparent); border-radius: 6px; } .b:hover .bnum { opacity: 1; } .b::after { content: "✤"; color: var(--brand); font-size: 0.72rem; opacity: 0.75; } .m1 { width: 45%; float: right; } .m2 { width: 45%; float: left; } .m1 p, .m2 p { font-family: 'Vazirmatn'; font-weight: 300; font-size: 0.9em; font-style: normal; text-indent: 0; margin: 0; line-height: 26px; } .m1 p { text-align: left; padding-left: 4px; } .m2 p { text-align: right; padding-right: 4px; } .b2 p { text-align: center; } .m1 p, .m2 p, .b2 p, .n p { color: inherit; } @media (max-width: 950px) { .b { padding: 8px 0; border-bottom: 1px dashed var(--gold-light); } .b::after { display: none; } .b > .bnum { display: block; float: none; margin: 0 auto 4px auto; width: 36px; height: 22px; } .m1 .bnum, .m2 .bnum, .n .bnum, .l .bnum { display: none; } .m1, .m2 { width: 100%; max-width: 100%; float: none; white-space: normal; overflow: visible; } .m1 p, .m2 p { text-align: center; font-size: 1.38rem; line-height: 2.2; padding: 0; white-space: normal; } } .item { padding-top: 20px; } #summaries { margin-top: 20px; } #summaries > .century { font-size: 1.1rem; padding: 6px 32px; } .coupletsummary { border-radius: 8px; } nav#nav { margin: 16px 0; } .ganjoor-comment, .inlinesimi, .audio-player { margin-right: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); transition: all 0.25s ease; margin-top: 16px; border-radius: 12px; padding: 6px; overflow-x: hidden; } .inlinesimi, .audio-player { margin-left: 20px; } .audio-player { padding: 16px; text-indent: 0; } .ganjoor-comment { background: var(--card-paper); border: 1px solid var(--border-gold); border-radius: 12px; padding: 16px 20px; margin: 14px 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); direction: rtl; text-align: right; transition: all 0.25s ease; } .ganjoor-comment:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1); border-color: var(--gold); } .ganjoor-comment .ganjoor-comment { background: var(--card-inner); border: none; border-right: 3px solid var(--gold); border-radius: 0 10px 10px 0; margin-top: 14px; margin-right: 16px; margin-left: 0; padding: 12px 16px; box-shadow: none; } .ganjoor-comment .ganjoor-comment:hover { background: var(--card-nested); } .comment-author { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; gap: 4px 8px; color: var(--brand); -webkit-text-fill-color: var(--brand); font-weight: 700; font-size: 0.92rem; border-bottom: 1px solid var(--border-gold); padding: 0 4px 6px 4px; margin-bottom: 10px; background: transparent; } .comment-author a { color: var(--brand); -webkit-text-fill-color: var(--brand); font-weight: 700; } .comment-author a:hover { color: var(--lapis); -webkit-text-fill-color: var(--lapis); } .comments-link { color: var(--brand); -webkit-text-fill-color: var(--brand); font-weight: 700; } .comments-link:hover { color: var(--lapis); -webkit-text-fill-color: var(--lapis); } .comment-author small { color: var(--text-muted); -webkit-text-fill-color: var(--text-muted); font-weight: normal; font-size: 0.72rem; } .ganjoor-comment blockquote { background: transparent; border: none; margin: 0; padding: 0; quotes: none; } .ganjoor-comment blockquote:before { display: none; } .ganjoor-comment blockquote p { color: var(--ink-black); -webkit-text-fill-color: var(--ink-black); line-height: 2; font-size: 0.95rem; text-align: justify; margin: 6px 0; word-break: break-word; } .ganjoor-comment p a { display: inline-flex; align-items: center; justify-content: center; padding: 4px; margin: 0 1px; border-radius: 6px; background-color: var(--card-inner); border: 1px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } .ganjoor-comment p a:hover { background-color: var(--brand); border-color: var(--brand); color: var(--card-paper) !important; -webkit-text-fill-color: var(--card-paper) !important; transform: translateY(-1px); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12); } .ganjoor-comment p a .pageicons { font-size: 16px; color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } .ganjoor-comment p a:hover .pageicons { color: var(--card-paper); -webkit-text-fill-color: var(--card-paper); } .ganjoor-comment blockquote a { color: var(--lapis); -webkit-text-fill-color: var(--lapis); text-decoration: underline; font-weight: 600; } /* --- Poem-page comment thread only (_CommentPartial.cshtml) --- The rules above are shared by every page that reuses the plain ".ganjoor-comment" class for layout (FAQ answers, bookmark private notes, photo captions, etc.) and are left exactly as they were so none of those pages change. The two classes below are new and are applied only inside _CommentPartial.cshtml, so they can't affect anything else even by accident: - ".comment-actions" on the action-icon
(reply/edit/delete/like/...): unchanged from before, just given its own name instead of relying on the generic "p a" match. - ".comment-body" on the
that holds a commenter's own sanitized HTML: the sanitizer allowsin comment content, so a link a commenter pasted inside their own
was ALSO matching ".ganjoor-comment p a" above and coming out as a boxed icon-button instead of plain text - that's the bug being fixed here. Both selectors below combine two classes on the same element (.ganjoor-comment plus the new class), which makes them more specific than the shared single-class rules above, so they win only where the new class is actually present. */ .ganjoor-comment .comment-actions a { display: inline-flex; align-items: center; justify-content: center; padding: 4px; margin: 0 1px; border-radius: 6px; background-color: var(--card-inner); border: 1px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } .ganjoor-comment .comment-actions a:hover { background-color: var(--brand); border-color: var(--brand); color: var(--card-paper) !important; -webkit-text-fill-color: var(--card-paper) !important; transform: translateY(-1px); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12); } .ganjoor-comment .comment-actions a .pageicons { font-size: 16px; color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } .ganjoor-comment .comment-actions a:hover .pageicons { color: var(--card-paper); -webkit-text-fill-color: var(--card-paper); } /* Links a commenter typed/pasted into their own comment text: plain text, no box, no underline, no font-size/weight change - just a color that reads as "clickable", same convention as .comments-link/.comment-author a. */ .ganjoor-comment .comment-body a { color: var(--brand); -webkit-text-fill-color: var(--brand); } .ganjoor-comment .comment-body a:hover { color: var(--lapis); -webkit-text-fill-color: var(--lapis); } .sit { display: block; float: right; max-width: 508px } #comments { border-top: 2px solid var(--border-gold); margin-top: 20px; padding-top: 16px; } #comments, #profile, .comments-like-div, .bnumdiv { margin: 16px auto 6px; display: block; padding: 3px; clear: both; border-top: 1px solid var(--border-gold); } .loadingcontainer { margin: 14px; display: block; padding: 3px; clear: both; } .notice, .c p { width: 90%; margin: 14px auto; display: block; background-color: var(--card-inner); padding: 16px; clear: both; border: 1.5px solid var(--border-gold); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.04); max-width: 680px; } .c p { font-size: 0.8em; } #commentsp h3, #comments h3 { font-family: 'Vazirmatn'; font-weight: 700; font-size: 0.9em; margin: 3px auto; color: var(--lapis); -webkit-text-fill-color: var(--lapis); text-align: center; } #comments h3 { font-size: 1.3rem; color: var(--lapis); -webkit-text-fill-color: var(--lapis); border-bottom: 2px solid var(--brand); display: inline-block; padding: 0 24px 6px; margin: 8px auto 16px; } #commentsp p, #comments p { text-indent: 20px; text-align: justify; color: var(--ink-black); margin-left: 10px; margin-right: 10px; } #comments p { color: var(--ink-black) } #commentsp label { color: var(--ink-black) } .actionlink { cursor: pointer } textarea { background-color: var(--gold-subtle) } form div.notes p.last { margin: 0; } form div.required label, label.required { color: var(--brand) } form div.optional label, label.optional { font-weight: normal } form div label { clear: both; display: block; float: right; width: 120px; padding: 3px 5px; margin: 0 0 5px 0; text-align: left } .inputText { margin-top: 3px; height: 13px } .linputText { margin-top: 3px; height: 13px; direction: ltr; text-align: left } form div.submit { text-align: center } .lft { direction: ltr; unicode-bidi: bidi-override } table { font-family: 'Vazirmatn'; font-weight: 300; font-size: 0.8em; border-collapse: collapse; max-width: 600px; margin: auto; margin-top: 10px; text-align: center; } td { border: 1px solid var(--accent-border); } .noborder { border: none; } tr { background: var(--card-inner); } tr.h td { border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold); background: var(--gold-subtle); } tr.e { background: var(--card-paper); } td.c1 { width: 50px; } td.c3, td.c4 { width: 100px; } td.c2 { width: 350px; } #selection-image { background: url('/image/loghatname.png') 0 0 no-repeat; width: 25px; height: 29px; position: absolute; top: -50px; left: -50px; } #vajje { background: url('/image/vajje.png') 0 0 no-repeat; width: 25px; height: 29px; position: absolute; top: 20px; left: -50px; } #abjad { background: url('/image/abjad.png') 0 0 no-repeat; width: 28px; height: 29px; position: absolute; top: 20px; left: -50px; } #vazn { background: url('/image/vazn.png') 0 0 no-repeat; width: 41px; height: 25px; position: absolute; top: 0px; left: 100px; } .poet-pic-wrap { width: 82px; margin: auto; } .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } #searchhorm { margin: auto; max-width: 500px; } #searchform { float: left; max-width: 150px; } #searchform input, #searchform select, #searchhorm input, #searchhorm select { width: 150px; margin: 3px 0; padding: 4px; float: left; height: 30px; } #searchhorm input, #searchhorm select, #searchhorm label { float: right; margin: 1px; } #searchhorm input[type="submit"] { width: 50px; } .bnum { width: 50px !important; height: 28px; clear: right; margin-left: -50px; cursor: pointer; background-repeat: no-repeat; background-size: contain; background-position: center; opacity: 0.85; } .n .bnum, .l .bnum { margin-left: 0px; } .b, .b1, .n { scroll-margin-top: 43px; } .normalbnum { float: right; position: relative; } .bandnum { margin: auto; } #pretab, .poempretab { margin-bottom: 60px; } #days-placeholder{ margin-top: 1em; } .stats-section { border-radius: 8px; padding: 16px; margin-bottom: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; text-align: center; } .stats-section-no-grid { border-radius: 8px; padding: 16px; margin-bottom: 16px; display: grid; gap: 15px; text-align: center; } .stat-item { padding: 15px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } pagination-controls { margin: 20px 0; gap: 10px; display: flex; align-items: center; justify-content: center; } @media(max-width: 768px) { .b { margin-bottom: 15px; } .b p { text-align: center; font-size: 1.1em; } .b > div:not(.bnum) { width: 100%; float: none; } .tooltip { font-size: 1.1em; } .bnum, .n .bnum, .l .bnum { margin: auto; } .normalbnum { position: unset; right: unset; } } .tooltip { font-family: 'Vazirmatn'; } .tooltip a { border-radius: 10px; height: 100%; padding: 0.5em; cursor: pointer; color: white; text-decoration: none; } .tooltip a:hover { background: rgba(255, 255, 255, 0.12); color: white; } .tooltip::before { content: ''; display: block; border-left: 0.5em solid transparent; border-right: 0.5em solid transparent; border-bottom: 0.5em solid rgba(14, 17, 17, 0.9); position: absolute; top: 0; margin-top: -0.5em; left: 50%; /* Position the pointer at the center of the tooltip */ transform: translateX(-50%); /* Center-align the pointer */ } .jp-video-270p { width: 100%; } ol { list-style-type: persian; } ol li { margin-right: 2em; float: right; } #login { height: 100%; width: 100%; margin: 0; } #login-container { display: flex; } #login-container form { margin: auto; /* nice thing of auto margin if display:flex; it center both horizontal and vertical :) */ } #login-container td { border: 0; } #login-container input { direction: ltr; text-align: left; } .alert-text { color: var(--gold); } /* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1000; /* Sit on top */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: var(--ink-black); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* w/ opacity */ padding-top: 60px; } /* Modal Content/Box */ .modal-content { background-color: var(--card-inner); margin: 5px auto; /* 15% from the top and centered */ border: 1px solid var(--border-gold); font-size: 1.25em; padding: 6px; } .modal-content td { border: none } /* The Close Button */ .close { /* Position it in the top right corner outside of the modal */ position: absolute; right: 25px; top: 0; color: var(--ink-black); font-size: 35px; font-weight: bold; } /* Close button on hover */ .close:hover, .close:focus { color: var(--lapis); cursor: pointer; } /* Changelog modal */ .changelog-modal-content { max-width: 640px; max-height: 80vh; display: flex; flex-direction: column; } .changelog-title { color: var(--accent-text); margin: 4px 0 10px 0; font-size: 1.1em; border-bottom: 1px dashed var(--border-gold); padding-bottom: 8px; } .changelog-list { overflow-y: auto; font-size: 0.75em; } .changelog-loading { text-align: center; color: var(--accent-text); padding: 20px 0; } .changelog-item { display: flex; align-items: baseline; gap: 10px; padding: 8px 4px; border-bottom: 1px dashed var(--border-gold); } .changelog-item:last-child { border-bottom: none; } .changelog-date { flex: 0 0 auto; color: var(--lapis); font-weight: bold; white-space: nowrap; direction: ltr; } .changelog-desc { flex: 1 1 auto; color: var(--accent-text); line-height: 1.7; } /* Add Zoom Animation */ .animate { -webkit-animation: animatezoom 0.6s; animation: animatezoom 0.6s } @-webkit-keyframes animatezoom { from { -webkit-transform: scale(0) } to { -webkit-transform: scale(1) } } @keyframes animatezoom { from { transform: scale(0) } to { transform: scale(1) } } @keyframes logo-spin { from { transform: rotate(325deg); } to { transform: rotate(0deg); } } .spinnerIcon { animation: logo-spin 1s 5 cubic-bezier(.6,-0.28,.74,.05); } /* Change styles for span and cancel button on extra small screens */ @media screen and (max-width: 300px) { span.psw { display: block; float: none; } } .loginImgContainer { } .refComment { width: 90% } .commentquote { background: var(--card-inner); border-right: 4px solid var(--gold); border-radius: 0 8px 8px 0; margin: 12px 0; padding: 10px 16px; quotes: "\201C""\201D""\2018""\2019"; text-align: right; } .commentquote:before { color: var(--brand); content: open-quote; font-size: 3em; line-height: 0.1em; margin-left: 0.25em; vertical-align: -0.4em; } .commentquote p { display: inline; } .material-icons, .pageicons, .inlinebutton, .info-buttons, .recitation-icons, .noindent-info-button { font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; word-wrap: normal; direction: ltr; -moz-font-feature-settings: 'liga'; -moz-osx-font-smoothing: grayscale; fill: var(--accent-text); } .footer-contents .material-icons { font-size: 10px; } .info-buttons { direction: rtl; vertical-align: middle; text-indent: 5px; } .noindent-info-button { direction: rtl; vertical-align: middle; } .pageicons { font-size: 14px; direction: rtl; text-indent: 0; color: var(--accent-text); } .inlineanchor { display: inline; cursor: pointer; } .inlinebutton { color: var(--lapis); } .submitCommentButton, form div input.inputSubmit, #postcomment.inputSubmit, input[type="submit"] { padding: 0px; text-align: center; background-color: var(--accent-bg); border-radius: 5px; color: var(--accent-text); height: 30px; font-family: 'Vazirmatn'; cursor: pointer; } .submitCommentButton:hover, form div input.inputSubmit:hover, #postcomment.inputSubmit:hover, input[type="submit"]:hover { background-color: var(--card-nested); color: var(--lapis-hover); -webkit-text-fill-color: var(--lapis-hover); transform: translateY(-1px); } .textualbutton, .pagebutton, .recitation-button { cursor: pointer; color: var(--accent-text) !important; background-color: var(--accent-bg); display: block; text-align: center; border-color: var(--accent-border); border-radius: 5px; box-shadow: 0 5px 0.3rem rgba(0, 0, 0, 0.3); } .textualbutton { width: 100%; } .pagebutton { background: var(--card-inner); border: 2px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); border-radius: 20px; padding: 7px 20px; font-weight: 600; font-size: 0.85rem; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15); transition: all 0.25s ease; display: inline-block; margin: 5px; } .pagebutton:hover { background: var(--card-nested); color: var(--lapis-hover); -webkit-text-fill-color: var(--lapis-hover); transform: translateY(-1px); } .pagebutton svg { fill: var(--lapis); vertical-align: middle; } .pagebutton:hover svg { fill: var(--lapis-hover); } .century, .century-alt, .part-title-block, .part-title-block-alt { clear: both; font-family: 'Vazirmatn'; font-weight: 700; font-size: 1em; text-align: center; color: var(--accent-text); background-color: var(--gold-subtle); display: block; margin: 8px auto; border-radius: 10px; border: 1.5px solid var(--border-gold); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 4px 8px; margin: 20px; transition: all 0.2s ease; } .part-title-block:hover, .part-title-block-alt:hover { background-color: var(--gold-light); border-color: var(--brand); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14); transform: translateY(-1px); } .century a, .century-alt a, .part-title-block a, .part-title-block-alt a { color: var(--text-muted) !important; -webkit-text-fill-color: var(--text-muted) !important; } #fa .century a, #fa .century-alt a, #fa .part-title-block a, #fa .part-title-block-alt a { color: var(--text-muted) !important; -webkit-text-fill-color: var(--text-muted) !important; } #fa .part-title-block a, #fa .part-title-block-alt a { display: block; } .century-alt, .part-title-block-alt { background-color: var(--card-nested); } #comments .poem-info p { text-align: center; text-indent: 0; } .poem-actions { display: flex; justify-content: space-evenly; width: 100%; flex-wrap: wrap; } .related-songs, .related-images-frame, .comment-author, .inlinesimi-poem-more { border-width: 3px; box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); display: block; width: 95%; border-radius: 20px; margin-left: auto; margin-right: auto; margin-top: 5px; margin-bottom: 5px; padding: 6px; } .related-songs { background: transparent url('/image/note.png') top center repeat scroll; } .related-song { text-align: right; margin: 10px; background: rgba(0,0,0,0.2); border-radius: 20px; color: var(--ink-black); padding: 6px; } .related-song a { color: var(--ink-black) !important; } .related-images { display: flex; clear: both; width: auto; margin: auto; flex-flow: wrap; text-align: center; } .related-images a { text-align: center; margin: auto } .related-image-container, .related-image-container-main { text-align: center; margin-top: 2px; margin-bottom: 2px; margin-left: auto; margin-right: auto; width: 200px; } .related-image-container-main { width: 300px; } .related-image, .related-image-main { width: 200px; float: right; padding: 6px; } .related-image-main { width: 300px; } .related-image-is-text-source { background-color: var(--card-nested); border-radius: 5px; color: var(--ink-black); font-size: small; padding: 6px; } .related-image-is-text-source a { color: var(--lapis) !important; -webkit-text-fill-color: var(--lapis) !important; } .comment-author, inlinesimi-poem-more { background: var(--card-nested); } #map { position: absolute; top: 0px; bottom: 0px; width: 100%; } #map-guide { position: absolute; height: 180px; bottom: 0px; width: 90%; left: 5%; z-index: 1000; text-align: center; font-family: 'Vazirmatn'; font-size: 1em; background: transparent url('/image/pbk-b.jpg') top center repeat scroll; display: block; background-color: var(--gold-light); border: 2px solid var(--accent-border); border-radius: 20px; padding: 16px; } #map-guide div p, #map-guide div p a { color: var(--gold-subtle); } #rangeInput { width: 100%; } #comments .simitext p { text-align: center; text-indent: 0; } .footer-contents { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 50px; margin-top: 5px; margin-bottom: 5px; } .link-list-internals { grid-column: 1/2; grid-row: 1/1; } .link-list-tools { grid-column: 2/3; grid-row: 1/1; } .link-list-about { grid-column: 3/4; grid-row: 1/1; } @media (max-width: 768px) { .footer-contents { grid-template-columns: 1fr 1fr; grid-gap: 20px; } .link-list-internals { grid-column: 1/2; grid-row: auto; } .link-list-tools { grid-column: 2/3; grid-row: auto; } .link-list-about { grid-column: 1/3; grid-row: auto; column-count: 2; column-gap: 20px; } .link-list-about li { break-inside: avoid; } } #footer { background: var(--card-inner); border: 1.5px solid var(--border-gold); border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.06); padding: 24px 20px; max-width: 860px; margin: 20px auto; text-align: center; display: block; clear: both; font-size: 0.8em; } #footer ul { list-style: none; } #footer li { text-align: right; padding-right: 20px; margin-top: 5px; } #footer li a { color: var(--accent-text); } #footer li a:hover { border-bottom: 2px solid var(--accent-border); } @media (min-width: 769px) { #footer .link-list-tools li { padding-right: 50px; } } .recitaion-info { } .display-none { display: none; } .hidden-recitation { display: none; } .bnum-partial-table { width: 100%; margin-bottom: 10px; } .bnum-partial-narrators { flex: 1 1 180px; min-width: 150px; height: 36px; padding: 4px 10px; border: 1px solid var(--border-gold); border-radius: 6px; background: var(--card-paper); } .bnum-partial-narrate-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 6px 14px; background: var(--lapis); border: 1px solid var(--lapis); border-radius: 6px; color: var(--card-paper); -webkit-text-fill-color: var(--card-paper); cursor: pointer; font-weight: 700; } .bnum-partial-action-box { background: var(--card-inner); border: 1px solid var(--border-gold); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px; margin: 8px 0 10px; padding: 4px 8px; border-top: 1px solid var(--gold-light); border-bottom: 1px solid var(--gold-light); width: 100%; clear: both; } .cursor-pointer { cursor: pointer; } #footer .footer-icon { fill: var(--lapis); vertical-align: middle; margin-left: 6px; transition: fill 0.2s ease; } #footer li a:hover .footer-icon { fill: var(--lapis-hover); } .color-white { color: var(--lapis) !important; fill: var(--lapis) !important; } .color-gray { color: var(--text-muted) !important; } .color-yellow { color: var(--gold) !important; } .color-disabled { color: var(--text-muted) !important; fill: var(--text-muted) !important; } .clear-both { clear: both; } .audio-partial-action-box { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 10px 0; } .recitation-button { display: inline-flex; padding: 8px; border-radius: 10px; font-size: 0.8em; background-color: var(--card-inner); border: 1px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } .recitation-button:hover { background-color: var(--brand); border-color: var(--brand); color: var(--card-paper) !important; -webkit-text-fill-color: var(--card-paper) !important; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12); } .recitation-button:hover .recitation-icons { color: var(--card-paper); -webkit-text-fill-color: var(--card-paper); } .recitation-icons { font-size: 22px; color: var(--lapis); -webkit-text-fill-color: var(--lapis); transition: all 0.2s ease; } audio { width: 100%; } .recitaion-mistakes-header { clear: both; font-size: 0.8em; text-align: center; color: var(--accent-text); background-color: var(--accent-bg); display: block; text-align: center; margin: 14px; border-radius: 20px; border-color: var(--accent-border); border-style: solid; border-width: 3px; } .recitaion-mistake { font-size: 0.8em; width: 90%; margin: auto; text-align: center; border-style: dotted; } #cat { width: 150px; } .display-block { display: block; } .margin-auto { margin: auto; } .pinterest_suggest { background-color: var(--brand); color: var(--card-paper); font-family: 'Vazirmatn'; font-size: 1.5em; width: 100%; cursor: pointer; } #poets, #page-hierarchy { width: 100%; text-align: center; margin: 4px 0 6px 0; } #page-hierarchy a, #page-hierarchy span { color: var(--text-muted); -webkit-text-fill-color: var(--text-muted); font-size: 0.95rem; font-weight: 500; } #page-hierarchy h2 { margin: 4px 0 8px 0; } #page-hierarchy h2 a { color: var(--lapis); -webkit-text-fill-color: var(--lapis); font-family: 'IranNastaliq', serif; font-size: 2.1rem; line-height: 2.4; display: inline-block; padding: 5px 20px; border-bottom: 2px solid var(--brand); text-shadow: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; max-width: 575px; } .poets-poet { width: auto; float: right; } #poet-image { width: 82px; margin: 0 auto 4px auto; } #poet-image img { width: 82px; height: 104px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--border-gold), 0 0 0 4px var(--card-paper), 0 0 0 6px var(--border-gold), 0 4px 12px rgba(0, 0, 0, 0.15); } .rotate-180 { transform: rotate(180deg); } .spotify-track-icon { display: inline; width: 16px; } .comment-table { max-width: 100%; width: 100%; margin: 0; } .red-color { color: var(--brand) !important; } .green-color { color: #2e7d32 !important; } .max-width-100per { max-width: 100%; } .max-width-none { max-width: none; } .circled-number-container { width: 100%; direction: ltr; display: inline-flex; justify-content: center; flex-wrap: wrap; row-gap: 4px; column-gap: 8px; } .circled-number-container a { text-decoration: none; display: inline-flex; } .circled-number-container .circled-number { width: 38px; height: 38px; border-radius: 50%; background: var(--card-inner); border: 1.5px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); font-family: 'Vazirmatn', sans-serif; font-size: 0.95rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; } .circled-number-container a:hover .circled-number { background: var(--card-nested); border-color: var(--border-gold); color: var(--lapis-hover); -webkit-text-fill-color: var(--lapis-hover); transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); } .circled-number, .circled-number-diff, .navbar-help-button { border-radius: 50%; width: 34px; height: 34px; padding: 2px; background-color: var(--card-paper); border: 1px solid var(--border-gold); color: var(--lapis); -webkit-text-fill-color: var(--lapis); text-align: center; display: inline-flex; align-items: center; justify-content: center; margin: 2px; } .circled-number:hover { background: var(--card-nested); border-color: var(--lapis); transform: translateY(-1px); } .circled-number-diff { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--card-nested); border: 1.5px solid var(--border-gold); padding: 0; margin: 8px auto; box-shadow: 0 2px 6px rgba(0,0,0,0.15); cursor: pointer; } .navbar-help-button { background-color: var(--card-inner); border-radius: 0; } #navbarhelp { background: var(--card-inner) none repeat scroll 0; opacity: .95; border-radius: 10px; } #findpoet { text-align: center; } .visible-notification-badge { position: absolute; padding: 1px; border-radius: 100%; background: var(--brand); width: 14px; height: 14px; margin-top: -8px; margin-right: -5px; } fieldset { padding: 6px; border: none; border-radius: 20px; } .margin-top-5px { margin-top: 5px; } .padding-20px { padding: 16px; } .td-button-container { padding: 4px; } .editor-button { cursor: pointer; color: var(--accent-text) !important; display: block; text-align: center; border-color: var(--accent-border); border-radius: 5px; box-shadow: 0 5px 0.3rem rgba(0, 0, 0, 0.3); width: 100%; padding: 3px; } .background-green { background-color: #2e7d32 !important; } .background-red { background-color: var(--gold-subtle) !important; } .background-gray { background-color: var(--text-muted) !important; } .background-white { background-color: var(--card-paper) !important; } .background-darkgreen { background-color: var(--gold) !important; } .nobackground { background: none !important; } .signupemail { text-align: left; direction: ltr; width: 100%; } .font-size-1em { font-size: 1em !important; } .font-size-2em { font-size: 2em !important; } .padding-bottom-50px { padding-bottom: 50px !important; } .rtl-right { direction: rtl; text-align: right; } #main-navbar, .sticky, .utilbar { max-width: 752px; margin: auto; margin-top: 2px; margin-bottom: 2px; display: block; background-color: var(--accent-bg); border-radius: 20px; border: 2px solid var(--accent-border); overflow: hidden; } #main-navbar .pagebutton { display: inline-table; border: 3px solid var(--accent-border); padding-top: 0; padding-bottom: 0; padding-left: 10px; padding-right: 10px; background-color: var(--accent-bg); } #main-navbar .circled-number { background-color: var(--accent-bg); } #main-navbar a[role="button"]:hover .noborder-btn, #main-navbar a[role="button"]:hover .circled-number, #main-navbar a[role="button"]:hover .pagebutton { background: var(--card-nested); transform: translateY(-1px); } #main-navbar a[role="button"]:hover svg { fill: var(--lapis-hover); } .utilbar { background: none; border: none; } /* The sticky class is added to the navbar with JS when it reaches its scroll position */ .sticky { position: sticky !important; top: 0; z-index: 2; border-radius: 0px !important; } .mouse-icon::after { content: '\e323'; /* mouse */ font-family: 'Material Icons'; } .format_list_numbered_rtl::after { content: '\e267'; /* format_list_numbered_rtl */ font-family: 'Material Icons'; } .copylink-icon::after { content: '\e157'; /* link */ font-family: 'Material Icons'; } .copytext-icon::after { content: '\e14d'; /* content_copy */ font-family: 'Material Icons'; } .share-icon::after { content: '\e80d'; /* share */ font-family: 'Material Icons'; } .rhyming-poems::after { content: '\e8b6'; /* search */ font-family: 'Material Icons'; } .translate-button::after { content: '\e8e2'; /* translate */ font-family: 'Material Icons'; } .edit-poem-button::after { content: '\e3c9'; /* edit */ font-family: 'Material Icons'; } .edit-note-poem-button::after { content: '\e745'; /* edit_note */ font-family: 'Material Icons'; } .autorenew::after { content: '\e863'; /* autorenew */ font-family: 'Material Icons'; } .queue_music::after { content: '\e03d'; /* queue_music */ font-family: 'Material Icons'; } .music_note::after { content: '\e405'; /* music_note */ font-family: 'Material Icons'; } .photo_camera::after { content: '\e412'; /* photo_camera */ font-family: 'Material Icons'; } .help-button::after { content: '\e887'; /* help */ font-family: 'Material Icons'; } .close-button::after { content: '\e5cd'; /* close */ font-family: 'Material Icons'; } .next-inline-result::after { content: '\e5db'; /* arrow_downward */ font-family: 'Material Icons'; } .prev-inline-result::after { content: '\e5d8'; /* arrow_upward */ font-family: 'Material Icons'; } .recitation-download::after { content: '\f090'; /* download */ font-family: 'Material Icons'; } .recitation-play::after { content: '\e037'; /* play_arrow */ font-family: 'Material Icons'; } .recitation-report::after { content: '\e153'; /* flag */ font-family: 'Material Icons'; } .recitation-scrollunlock::after { content: '\e641'; /* no_encryption */ font-family: 'Material Icons'; } .recitation-scrolllock::after { content: '\e897'; /* lock */ font-family: 'Material Icons'; } .recitation-novote::after { content: '\e9f3'; /* thumb_up_off_alt */ font-family: 'Material Icons'; } .recitation-vote::after { content: '\e817'; /* thumb_up_alt */ font-family: 'Material Icons'; } .recitation-score::after { content: '\ea5f'; /* calculate */ font-family: 'Material Icons'; } .recitation-website::after { content: '\e80b'; /* public */ font-family: 'Material Icons'; } .recitation-listen::after { content: '\e023'; /* hearing */ font-family: 'Material Icons'; } .commentary-listen::after { content: '\ebe8'; /* spatial_audio_off */ font-family: 'Material Icons'; } .recitation-comments::after { content: '\e8af'; /* question_answer */ font-family: 'Material Icons'; } .recitation-explore::after { content: '\e2db'; /* travel_explore */ font-family: 'Material Icons'; } .recitation-music::after { content: '\e063'; /* music_video */ font-family: 'Material Icons'; } .recitation-manuscripts::after { content: '\e666'; /* auto_stories */ font-family: 'Material Icons'; } .recitation-navigation::after { content: '\e5c3'; /*apps */ font-family: 'Material Icons'; } .quoted-poems::after { content: '\e244'; /* format_quote */ font-family: 'Material Icons'; } .face-photo::after { content: '\f8dd'; /* face_5 */ font-family: 'Material Icons'; } .map-icon::after { content: '\e80b'; /* public */ font-family: 'Material Icons'; } .query_stats::after { content: '\e4fc'; /* query_stats */ font-family: 'Material Icons'; } .percent::after { content: '\eb58'; /* percent */ font-family: 'Material Icons'; } .expand_circle_down::after, .collapse_circle_down::after { content: '\e7cd'; /* expand_circle_down */ font-family: 'Material Icons'; } .expand_circle_down { transform: rotate(180deg); } .collapse_circle_down { transform: none; } .bookmarks-icon::after { content: '\e743'; /* hotel_class */ font-family: 'Material Icons'; } .bookmarking-icon::after { content: '\e838'; /* star */ font-family: 'Material Icons'; } .menu-icon::after { content: '\e5d2'; /* menu */ font-family: 'Material Icons'; } .notifications-icon::after { content: '\e7f4'; /* notifications */ font-family: 'Material Icons'; } .home-icon::after { content: '\e88a'; /* home */ font-family: 'Material Icons'; } .user-home-icon::after { content: '\f02e'; /* manage_accounts */ font-family: 'Material Icons'; } .history-icon::after { content: '\e889'; /* history */ font-family: 'Material Icons'; } .done-icon::after { content: '\e876'; /* done */ font-family: 'Material Icons'; } .delete-icon::after { content: '\e872'; /* delete */ font-family: 'Material Icons'; } .menu-book::after { content: '\ea19'; /* menu_book */ font-family: 'Material Icons'; } .print::after { content: '\e8ad'; /* print */ font-family: 'Material Icons'; } .logout-icon::after { content: '\ef6f'; /* run_circle */ font-family: 'Material Icons'; } .account-icon::after { content: '\e853'; /* account_circle */ font-family: 'Material Icons'; } .pin-button::after { content: '\f10d'; /* push_pin */ font-family: 'Material Icons'; } .up-btn::after { content: '\f182'; /* arrow_circle_up */ font-family: 'Material Icons'; } .down-btn::after { content: '\f181'; /* arrow_circle_down */ font-family: 'Material Icons'; } .left-btn::after { content: '\eaa7'; /* arrow_circle_left */ font-family: 'Material Icons'; } .right-btn::after { content: '\eaaa'; /* arrow_circle_right */ font-family: 'Material Icons'; } .balance::after { content: '\eaf6'; /* balance */ font-family: 'Material Icons'; } .float-right { float: right; } .float-left { float: left; } .width-76px { width: 76px; } .display-inline-flex { display: inline-flex; } .noborder-btn { width: 34px; height: 34px; padding: 2px; background-color: var(--accent-bg); border: 3px solid var(--accent-border); color: var(--accent-text); text-align: center; display: inline-table; margin: 2px; border: none; background: unset; padding: 6px; } .mirror { -moz-transform: scale(-1, 1); -webkit-transform: scale(-1, 1); -o-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } #catmap, .inline-map { margin-top: 50px; height: 300px; } .w3-sidebar { height: 100%; width: 300px; top: 0px; background-color: var(--accent-bg); position: fixed !important; z-index: 1; overflow: auto } .w3-bar-block .w3-dropdown-hover, .w3-bar-block .w3-dropdown-click { width: 100% } .w3-bar-block .w3-dropdown-hover .w3-dropdown-content, .w3-bar-block .w3-dropdown-click .w3-dropdown-content { min-width: 100% } .w3-bar-block .w3-dropdown-hover .w3-button, .w3-bar-block .w3-dropdown-click .w3-button { width: 100%; padding: 8px 16px } .w3-bar .w3-bar-item { padding: 8px 16px; float: left; width: auto; border: none; display: block; outline: 0; } .w3-bar-block .w3-bar-item { width: 90%; display: block; border: none; white-space: normal; float: none; outline: 0; text-align: right; background-color: var(--accent-bg); margin: 14px; border-radius: 20px; color: var(--accent-text); } .w3-bar-block.w3-center .w3-bar-item { text-align: center } .w3-bar-item a { color: var(--accent-text) !important; } .w3-block { display: block; width: 100% } .w3-btn, .w3-button { border: none; display: inline-block; padding: 8px 16px; vertical-align: middle; overflow: hidden; text-decoration: none; color: inherit; background-color: inherit; text-align: center; cursor: pointer; white-space: nowrap } .w3-btn:hover { box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19) } .w3-btn, .w3-button { -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none } .w3-disabled, .w3-btn:disabled, .w3-button:disabled { cursor: not-allowed; opacity: 0.3 } .w3-disabled *, :disabled * { pointer-events: none } .w3-dropdown-hover:hover > .w3-button:first-child, .w3-dropdown-click:hover > .w3-button:first-child { background-color: var(--card-nested); color: var(--ink-black) } .w3-bar-block .w3-dropdown-hover .w3-button, .w3-bar-block .w3-dropdown-click .w3-button { width: 100%; padding: 8px 16px } .w3-bar .w3-button { white-space: normal } .w3-dropdown-hover.w3-mobile, .w3-dropdown-hover.w3-mobile .w3-btn, .w3-dropdown-hover.w3-mobile .w3-button, .w3-dropdown-click.w3-mobile, .w3-dropdown-click.w3-mobile .w3-btn, .w3-dropdown-click.w3-mobile .w3-button { width: 100% } .sidebar-close { border: 1px solid var(--card-paper) !important; } .book { width: 150px !important; } .book img { border: 1px solid var(--accent-border); } #icon-sun { width: 1.5rem; height: 1.5rem; display: none; } #icon-sun svg { fill: var(--gold); } #icon-moon { width: 1.5rem; height: 1.5rem; display: none; } #icon-moon svg { fill: var(--lapis); } #theme-toggle, a:has(#icon-sun) { position: fixed; bottom: 20px; left: 20px; z-index: 999; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--card-inner); border: 1.5px solid var(--border-gold); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); cursor: pointer; transition: all 0.25s ease; } #theme-toggle:hover, a:has(#icon-sun):hover { background: var(--card-nested); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .charContainer { display: flex; flex-wrap: wrap; flex-direction: row; } .charCell { border: 1px solid var(--accent-border); padding: 8px; margin: 4px; cursor: pointer; } .margin-15px { margin: 15px !important; } .inline-small { display: inline; font-size: small; color: var(--brand); } mark { background: var(--brand); } mark.currentInlineResult { background: var(--brand); } .ribbon-parent { overflow: hidden; /* required */ position: relative; /* required for demo*/ } .ribbon { margin: 0; padding: 0; background: var(--accent-bg); color: var(--accent-text); padding: 0.5em 0; position: absolute; top: 0; right: 0; transform: translateX(30%) translateY(0%) rotate(45deg); transform-origin: top left; } .ribbon:before, .ribbon:after { content: ''; position: absolute; top: 0; margin: 0 -1px; /* tweak */ width: 100%; height: 100%; background: var(--accent-bg); } .ribbon:before { right: 100%; } .ribbon:after { left: 100%; } .ribbon a { color: var(--accent-text) !important; } .main-image-container { position: relative; display: inline-block; /* Changed to inline-block for better control */ width: fit-content; border: 5px solid var(--border-gold); } .main-image-ribbon { position: absolute; /* Changed to absolute for precise positioning */ top: 0; /* Align to the top edge of the container */ right: 0; /* Align to the right edge of the container */ background-color: var(--brand); color: var(--card-paper); padding: 5px 20px; font-size: 16px; font-weight: bold; /* Clip the corners */ clip-path: polygon(0 0, 100% 0%, 100% 100%, 0% 100%, 10% 50%); z-index: 10; } .main-image-source { display: block; max-width: 100%; height: auto; } .footer-icon { fill: var(--accent-text); } .tabcontent { display: none; } .tab button { background-color: inherit; border: none; outline: none; cursor: pointer; transition: 0.3s; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px 0px; padding: 6px; margin: 1px; background-color: var(--accent-bg); color: var(--accent-text); } .tab button:hover { font-weight: bold; background-color: var(--accent-bg); } .tab button.active { background-color: var(--brand); } .expandable-container-wrapper { position: relative; } .expandable-content { width: 100%; overflow: hidden; transition: height 0.3s ease-out; position: relative; } /* Blurred bottom overlay effect */ .expandable-blur-overlay { position: absolute; bottom: 0; left: 0; width: 100%; height: 200px; /* Height of the blur effect */ background: linear-gradient(to bottom, transparent, var(--card-poem)); pointer-events: none; /* Prevents interaction */ transition: opacity 0.3s ease-out; } /* ---------- poet/category bio text links - same size as body text, just a distinguishing color (matches the .poem-excerpt TOC-link look) ---------- */ .ganjoor-bio-text a { color: var(--brand); -webkit-text-fill-color: var(--brand); transition: color 0.2s ease, -webkit-text-fill-color 0.2s ease; } .ganjoor-bio-text a:hover { color: var(--lapis); -webkit-text-fill-color: var(--lapis); text-decoration: underline; } /* leaves room above #after-bio so the sticky/pinned #main-navbar (~60-70px, 38px circled icon buttons + padding/border) doesn't cover the target when jumping there via the menu-icon button - harmless when the navbar isn't pinned too, just a bit of extra breathing room above the content */ #after-bio { scroll-margin-top: 50px; } /* ---------- sticky mini audio-player (recitation seek controls stay reachable while scrolling the poem text) ---------- */ .up-sticky-player { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; gap: 10px; padding: 8px 14px; background: var(--card-inner); border-top: 1px solid var(--border-gold); box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15); } .up-sticky-player__narrator { font-weight: 600; white-space: nowrap; color: var(--lapis); flex-shrink: 0; } .up-sticky-player__audio-slot { flex: 1; min-width: 0; } .up-sticky-player__audio-slot audio { width: 100%; display: block; } .up-sticky-player__lock { display: inline-flex; align-items: center; cursor: pointer; color: var(--lapis); padding: 4px 6px; flex-shrink: 0; } .up-sticky-player__lock:hover { color: var(--brand); } .up-sticky-player__jump { display: inline-flex; align-items: center; cursor: pointer; color: var(--lapis); padding: 4px 6px; flex-shrink: 0; } .up-sticky-player__jump:hover { color: var(--brand); } .up-sticky-player__close { display: inline-flex; align-items: center; cursor: pointer; color: var(--lapis); padding: 4px 6px; flex-shrink: 0; } .up-sticky-player__close:hover { color: var(--brand); } @media (max-width: 600px) { .up-sticky-player__narrator { display: none; } }