/* ============================================= f0ckm.css - Unified Stylesheet Merged: f0ck.css + w0bm.css + view styles ============================================= */ /* f0ckwork omega */ /* written by sirx for f0ck.me */ /* use whatever you like */ /* once upon a time this was a stiefelstrapse! but no more! */ /* Licensed under wtfpl */ html[theme='f0ck'] { --accent: #9f0; --accent-rgb: 153, 255, 0; --bg: #111; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #2b2b2b; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --navigation-links-bg: #2b2b2b; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #2b2b2b; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #2b2b2b; --badge-bg: #171717; --posts-meta-bg: #000000b8; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #090909; --scrollbar-color: #555; --scroller-bg: #424242; --footbar-color: #9f0; --loading-indicator-color: #9f0; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #9f0; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); /* appearance */ background: black; } html[theme="f0ck"] .admin-search button { color: var(--black) !important; } html[theme="f0ck"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="f0ck"] .pagination>span { border-radius: 3px; } html[theme="f0ck"] span#favs { border: 1px solid var(--black); } html[theme='p1nk'] { --accent: #ff00d0; --accent-rgb: 255, 0, 208; --bg: #111; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #201f1f; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --navigation-links-bg: #201f1f; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #201f1f; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); ; --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --badge-bg: #171717; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #090909; --metadata-bg: #2b2b2b; --posts-meta-bg: #000000b8; --scrollbar-color: #555; --scroller-bg: #424242; --footbar-color: #ff00d0; --loading-indicator-color: #ff00d0; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #ff00d0; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); /* appearance */ background: black; --motd-bg: #111; } html[theme="p1nk"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="p1nk"] .pagination>span { border-radius: 3px; } html[theme="p1nk"] span#favs { border: 1px solid var(--black); } html[theme='orange'] { --accent: #ff6f00; --accent-rgb: 255, 111, 0; --bg: #111; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #2b2b2b; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --navigation-links-bg: #2b2b2b; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --dropdown-bg: #232323; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #2b2b2b; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #2b2b2b; --badge-bg: #151515; --posts-meta-bg: #000000b8; --badge-tag: #090909; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --scrollbar-color: #555; --scroller-bg: #424242; --footbar-color: #ff6f00; --loading-indicator-color: #ff6f00; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #ff6f00; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); /* appearance */ background: black; --motd-bg: #111; } html[theme="orange"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="orange"] .pagination>span { border-radius: 3px; } html[theme="orange"] span#favs { border: 1px solid var(--black); user-select: none; } html[theme='amoled'] { --accent: #fff; --accent-rgb: 255, 255, 255; --bg: #000; --black: #000; --white: #fff; --gray: #2f2d2d; --nav-bg: #000; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #000; --navigation-links-bg: #000; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgb(92, 92, 92), inset 0 1px rgb(92, 92, 92), inset 0 -1px rgb(92, 92, 92), 0 1px 1px rgba(92, 92, 92, 0); --nav-link-hover-bg: #6a6a6a70; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #000; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0), inset 0 0px rgba(255, 255, 255, 0), inset 0 0px rgba(248, 248, 248, 0), 0 0px 0px rgba(255, 255, 255, 0); --pagination-anchor-box-shadow: inset 0 0 0 1px rgb(92, 92, 92), inset 0 1px rgb(92, 92, 92), inset 0 -1px rgb(92, 92, 92), 0 1px 1px rgba(92, 92, 92, 0); --pagination-background-hover: #6a6a6a70; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #000; --badge-bg: #000; --posts-meta-bg: #000000b8; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #1a1a1a; --scrollbar-color: #444; --scroller-bg: #424242; --footbar-color: #fff; --loading-indicator-color: #fff; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #fff; --bg-gradient: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 100%); background: black; } html[theme="amoled"] a.active { color: var(--black) !important; } html[theme="amoled"] .metadata { border: none; } html[theme="amoled"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="amoled"] .pagination>span { border-radius: 3px; } html[theme="amoled"] span#favs { border: 1px solid var(--black); } html[theme="amoled"] .admin-search button { color: var(--black) !important; } html[theme="amoled"] table.table tbody tr:nth-of-type(2n+1) a { color: var(--white) !important; text-decoration: underline; } html[theme="amoled"] table.table tbody tr:nth-of-type(2n+1) { color: var(--white) !important; } html[theme="amoled"] table.table a { text-decoration: underline; } html[theme="paper"] { --accent: #000; --accent-rgb: 0, 0, 0; --bg: #fff; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #fff; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #fff; --navigation-links-bg: #fff; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #3939354a; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #fff; --dropdown-item-hover: #3939354a; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #fff; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #3939354a; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #fff; --badge-bg: #fff; --posts-meta-bg: #000000db; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #000000; --scrollbar-color: #6c6c6c; --scroller-bg: #424242; --footbar-color: #000; --loading-indicator-color: #000; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #fff; } html[theme="paper"] .err { background: black; color: white; } html[theme="paper"] ._204863 { color: white; } html[theme="paper"] svg.iconset { background: black; } html[theme="paper"] svg.iconset:hover { background: rgb(31, 30, 30); } html[theme="paper"] .iconset#a_favo { fill: var(--white); } html[theme="paper"] .iconset#a_delete { stroke: var(--white); } html[theme="paper"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="paper"] .pagination>span { border-radius: 3px; } html[theme="paper"] span#favs { border: 1px solid var(--black); } html[theme="paper"] body { color: var(--black); } html[theme="paper"] a#next { color: var(--white) !important; -webkit-text-stroke: 1px var(--black); font-size: 40px; } html[theme="paper"] a#prev { color: var(--white) !important; -webkit-text-stroke: 1px var(--black); font-size: 40px; } html[theme="paper"] .about { color: var(--black); } html[theme="paper"] .about a:hover { text-decoration: underline; } html[theme="paper"] div.posts>a::after { color: var(--white); border-top-left-radius: 5px; border-top-right-radius: 5px; } html[theme="paper"] .v0ck_player_controls>input[type="range"][name="volume"]::-webkit-slider-thumb { background: var(--white); box-shadow: -100vw 0 0 100vw var(--white); } html[theme="paper"] .v0ck_player_controls>input[type="range"][name="volume"]::-moz-range-thumb { background: var(--white); box-shadow: -100vw 0 0 100vw var(--white); } html[theme="paper"] div.posts>a { box-shadow: 1px 1px 1px black; border-radius: 5px; } html[theme="paper"] .v0ck_progress_filled { background: var(--white); } html[theme="paper"] .metadata { color: var(--black); border: none; } html[theme="paper"] .navbar-brand { background: var(--black); color: var(--white) !important; } html[theme="paper"] a.removetag { color: var(--white) !important; } html[theme="paper"] .navbar { border-bottom: 1px solid var(--black); } html[theme="paper"] .embed-responsive-image { background: var(--white); } html[theme="paper"] .v0ck_player_button svg:hover { fill: var(--black); stroke: var(--white); } html[theme="paper"] .badge-dark, #themeselector { box-shadow: 1px 1px 0px 0px var(--black); } html[theme="paper"] span#favs { border: 1px solid var(--white); } html[theme="paper"] .admin-search button { color: var(--white) !important; opacity: 0.9; } html[theme="paper"] table.table tbody tr:nth-of-type(2n+1) a { color: var(--white) !important; text-decoration: underline; } html[theme="paper"] table.table tbody tr:nth-of-type(2n+1) { color: var(--white) !important; } html[theme="paper"] table.table a { text-decoration: underline; } html[theme="paper"] a { color: var(--black); } html[theme="paper"] .login-form { background: white; } html[theme="paper"] .login-form input { color: black; } html[theme="paper"] .login-form button[type="submit"] { color: black; } html[theme="atmos"] { --accent: #1fb2b0; --accent-rgb: 31, 178, 176; --bg: #111; --black: #000; --white: #fff; --gray: #262626; --nav-bg: rgb(32, 32, 32); --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --navigation-links-bg: rgb(32, 32, 32); --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: rgb(32, 32, 32); --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: rgba(34, 34, 34, 0.8); --badge-bg: #131313; --posts-meta-bg: #000000b8; --badge-sfw: #68a728; --badge-nsfw: #a72828; --badge-nsfl: #660000; --badge-tag: #353535; --scrollbar-color: #555; --footbar-color: #1fb2b0; --loading-indicator-color: #1fb2b0; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #1fb2b0; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); /* appearance */ background: black; --motd-bg: #111; } html[theme="atmos"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="atmos"] .pagination>span { border-radius: 3px; } html[theme="atmos"] span#favs { border: 1px solid var(--black); } html[theme="term"] { --accent: #00DF00; --accent-rgb: 0, 223, 0; --bg: #000; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #040404; --nav-brand-border: inset 1px #111111; --nav-brand-bg: #040404; --navigation-links-bg: #040404; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #282828; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #040404; --dropdown-item-hover: #282828; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #040404; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #282828; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #000; --badge-bg: #060606; --posts-meta-bg: #000000b8; --badge-sfw: #076a19; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #131212; --scrollbar-color: #555; --scroller-bg: #424242; --tooltip-bg: #131212; --footbar-color: #00DF00; --loading-indicator-color: #00DF00; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #00DF00; --bg-gradient: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 100%); /* appearance */ background: black; } html[theme="term"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="term"] .pagination>span { border-radius: 3px; } html[theme="term"] span#favs { box-shadow: var(--pagination-anchor-box-shadow); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); border: 1px solid var(--black); } html[theme="term"] .metadata { text-shadow: 0px 0px 1px var(--accent), 1px 0px 2px var(--accent), 0px 0px 5px var(--black); } html[theme="term"] .metadata>.badge-dark, #themeselector { box-shadow: var(--pagination-anchor-box-shadow); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); } html[theme="term"] .navbar-brand:hover { background: #0a2008; } html[theme="iced"] { --accent: #0084ff; --accent-rgb: 0, 132, 255; --bg: #031c35; --black: #000; --white: #fff; --gray: rgba(255, 255, 255, .05); --nav-bg: #111d37; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #000; --navigation-links-bg: #111d37; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #0a3f53; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #111d37; --dropdown-item-hover: #0a3f53; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #111d37; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #0a3f53; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #000e1a; --badge-bg: #091f39; --posts-meta-bg: #000000b8; --badge-sfw: #07866e; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #22083c; --scrollbar-color: #555; --scroller-bg: #424242; --tooltip-bg: #0a3f53; --footbar-color: #0084ff; --loading-indicator-color: #0084ff; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #0084ff; --bg-gradient: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 10%, #062631 100%); /* appearance */ background: black; } html[theme="iced"] ._204863 { background: -webkit-linear-gradient(left, #102c5e, #111d37); } html[theme="iced"] svg.iconset { background: #111d37; } html[theme="iced"] svg.iconset#subscribe-btn { background: #111d37; } html[theme="iced"] svg.iconset:hover { background: #1b2f5a; } html[theme="iced"] .pagination>a, .pagination>span { border-radius: 3px; border: 1px solid var(--black); } html[theme="iced"] .pagination>span { border-radius: 3px; } html[theme="iced"] span#favs { border: 1px solid var(--black); } html[theme="iced"] .navbar-brand:hover { background: #1d2941; } /* f0ck95 */ html[theme='f0ck95'] { --accent: silver; --accent-rgb: 192, 192, 192; --bg: teal; --black: #000; --white: #fff; --gray: rgba(255, 255, 255, .05); ; --nav-bg: silver; --nav-brand-border: inset 1px black; --nav-brand-bg: silver; --navigation-links-bg: silver; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #8a8989; --nav-border-color: #282727; --dropdown-bg: silver; --dropdown-item-hover: #8a8989; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: silver; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #8a8989; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: silver; --badge-bg: #a8a5a5; --posts-meta-bg: #000000b8; --badge-sfw: #339f72; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #959393; --scrollbar-color: #555; --scroller-bg: #424242; --footbar-color: #000; --loading-indicator-color: #000; --img-border-width: 0; --img-border-color: #808080; --maximize_button: #000; --bg-gradient: linear-gradient(0deg, rgba(0, 128, 128, 0.514), rgba(0, 0, 0, 0) 10%, rgba(0, 128, 128, 0.363) 100%); /* appearance */ background: teal; } html[theme="f0ck95"] html, body { color: var(--black); } html[theme="f0ck95"] a { color: var(--black); } html[theme="f0ck95"] span#favs { border: inset 1px gray; } html[theme="f0ck95"] .embed-responsive-image { border: none; } html[theme="f0ck95"] .nav-link, .pagination>a, .pagination>span { border-radius: 0; border-left: inset 1px silver; border-bottom: outset 1px silver; border-right: outset 1px silver; border-top: 1px outset gray; box-shadow: var(--pagination-anchor-box-shadow); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); } html[theme="f0ck95"] .pagination>a:active, .pagination>span { color: black; } html[theme="f0ck95"] .pagination>a, .pagination>span { border-radius: 0; border-left: inset 1px silver; border-bottom: outset 1px silver; border-right: outset 1px silver; border-top: 1px outset gray; } html[theme="f0ck95"] .metadata { border-left: inset 2px silver; border-bottom: outset 2px silver; border-right: outset 2px silver; border-top: 2px outset #8c8888; color: var(--black); } html[theme="f0ck95"] .media-object { border-left: inset 2px silver; border-right: outset 2px silver; } html[theme="f0ck95"] .embed-responsive.embed-responsive-16by9 { background: black; } html[theme="f0ck95"] .embed-responsive-image { background: #0000; } html[theme="f0ck95"] span.placeholder { border-left: 1px solid var(--black); } html[theme="f0ck95"] #prev { color: white !important; } html[theme="f0ck95"] #next { color: white !important; } html[theme="4d"] { --accent: #f2ef0b; --accent-rgb: 31, 178, 176; --bg: #242424; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #171717; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --motd-bg: #252424; --navigation-links-bg: rgb(32, 32, 32); --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --nav-border-color: rgba(255, 255, 255, .05); --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #171717; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: rgba(34, 34, 34, 0.8); --badge-bg: #131313; --posts-meta-bg: #000000b8; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #353535; --scrollbar-color: #555; --footbar-color: #1fb2b0; --loading-indicator-color: #1fb2b0; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #1fb2b0; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); background: black; } html[theme="4d"] #my-video { background: var(--black); } /* xd */ html[theme="xd"] { --accent: #17786a; --accent-rgb: 31, 178, 176; --bg: #0c0c0c; --black: #000; --white: #fff; --gray: #262626; --nav-bg: #101010; --nav-brand-border: inset 1px #242424; --nav-brand-bg: #171717; --motd-bg: #101010; --navigation-links-bg: rgb(32, 32, 32); --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333; --nav-border-color: #3b3b3c; --dropdown-bg: #232323; --dropdown-item-hover: #0d0d0d; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #171717; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #333; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: rgba(34, 34, 34, 0.8); --badge-bg: #131313; --posts-meta-bg: #000000b8; --badge-sfw: #68a728; --badge-nsfw: #E10DC3; --badge-nsfl: #660000; --badge-tag: #353535; --scrollbar-color: #555; --footbar-color: #1fb2b0; --loading-indicator-color: #1fb2b0; --img-border-width: 0; --img-border-color: #363636; --maximize_button: #1fb2b0; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); } html[theme="xd"] .motd-container { border-top: 2px solid var(--nav-border-color); border-bottom: 1px solid var(--nav-border-color); } html[theme="xd"] .item-sidebar-right, html[theme="xd"] .index-sidebar-right, html[theme="xd"] .global-sidebar-right { background: #131313 !important; border-left: 2px solid var(--nav-border-color) !important; } html[theme="xd"] #my-video { background: var(--black); } /* f0ck95 - v2 (theme '95') */ html[theme='95'] { --accent: #000080; --accent-rgb: 0, 0, 128; --bg: #008080; --black: #000; --white: #fff; --gray: #808080; --silver: #c0c0c0; --nav-bg: #c0c0c0; --nav-brand-border: outset 2px #dfdfdf; --nav-brand-bg: #c0c0c0; --navigation-links-bg: #c0c0c0; --navigation-links-background-linear-gradient: none; --navigation-links-border-color: #dfdfdf #808080 #808080 #dfdfdf; --navigation-links-box-shadow: none; --nav-link-background-linear-gradient: none; --nav-link-box-shadow: none; --nav-link-hover-bg: #000080; --nav-border-color: #808080; --dropdown-bg: #c0c0c0; --dropdown-item-hover: #000080; --nav-brand-font: 'Tahoma', 'MS Sans Serif', sans-serif; --font: 'Tahoma', 'MS Sans Serif', sans-serif; --pagination-background: #c0c0c0; --pagination-box-shadow: none; --pagination-anchor-box-shadow: none; --pagination-background-hover: #000080; --pagination-border-color: #808080; --metadata-bg: #c0c0c0; --badge-bg: #c0c0c0; --posts-meta-bg: #c0c0c0cc; --badge-sfw: #008000; --badge-nsfw: #800000; --badge-nsfl: #000; --badge-tag: #808080; --scrollbar-color: #c0c0c0; --scroller-bg: #008080; --footbar-color: #000; --loading-indicator-color: #000080; --img-border-width: 2px; --img-border-color: #808080; --maximize_button: #000; --bg-gradient: none; background: #008080; } html[theme='95'] body { color: #000; background: var(--bg); } html[theme='95'] a { color: #0000ee; } html[theme='95'] a:hover { text-decoration: underline; } html[theme='95'] .navbar { border-bottom: 2px outset #dfdfdf; background: #c0c0c0; } html[theme='95'] .navbar-brand { background: #000080; color: #fff !important; padding: 2px 10px; font-family: var(--nav-brand-font); box-shadow: inset 1px 1px #dfdfdf, inset -1px -1px #808080; } html[theme='95'] .nav-link, html[theme='95'] .pagination>a, html[theme='95'] .pagination>span, html[theme='95'] button, html[theme='95'] .btn { border: 2px outset #dfdfdf !important; background: #c0c0c0 !important; color: #000 !important; padding: 4px 8px !important; border-radius: 0 !important; text-decoration: none !important; box-shadow: none !important; } html[theme='95'] .nav-link:hover, html[theme='95'] .pagination>a:hover, html[theme='95'] button:hover, html[theme='95'] .btn:hover { background: #c0c0c0 !important; } html[theme='95'] .nav-link:active, html[theme='95'] .pagination>a:active, html[theme='95'] button:active, html[theme='95'] .btn:active { border: 2px inset #dfdfdf !important; } html[theme='95'] .dropdown-menu { background: #c0c0c0; border: 2px outset #dfdfdf; border-radius: 0; } html[theme='95'] .dropdown-item { color: #000; } html[theme='95'] .dropdown-item:hover { background: #000080; color: #fff; } html[theme='95'] .metadata, html[theme='95'] .comment, html[theme='95'] .login-form, html[theme='95'] .user-infobox-block { border: 2px inset #dfdfdf !important; background: #c0c0c0 !important; color: #000 !important; padding: 10px !important; border-radius: 0 !important; } html[theme='95'] input, html[theme='95'] textarea, html[theme='95'] select { border: 2px inset #dfdfdf !important; background: #fff !important; color: #000 !important; border-radius: 0 !important; padding: 2px 4px !important; } html[theme='95'] .badge { border-radius: 0 !important; border: 1px solid #000 !important; } html[theme='95'] .posts>a { border: 2px outset #dfdfdf !important; background: #c0c0c0 !important; } html[theme='95'] .v0ck_player_controls { background: #c0c0c0 !important; border-top: 2px outset #dfdfdf !important; padding: 2px !important; display: flex !important; align-items: center !important; } html[theme='95'] .v0ck_player_button { background: #c0c0c0 !important; border: 2px outset #dfdfdf !important; border-radius: 0 !important; margin: 0 2px !important; padding: 2px !important; } html[theme='95'] .v0ck_player_button:active { border: 2px inset #dfdfdf !important; } html[theme='95'] .v0ck_player_button svg, html[theme='95'] .v0ck_player_controls svg { fill: #000 !important; color: #000 !important; } html[theme='95'] .v0ck_progress { background: #fff !important; border: 2px inset #dfdfdf !important; height: 14px !important; border-radius: 0 !important; } html[theme='95'] .v0ck_progress_filled { background: #000080 !important; } html[theme='95'] .about { color: #000; } html[theme='95'] .gchat-online-inner { background: #c0c0c0 !important; border-bottom: 2px outset #dfdfdf !important; color: #000 !important; } html[theme='95'] .gchat-online-count { color: #000 !important; } html[theme='95'] .global-sidebar-right-footer, html[theme='95'] .item-sidebar-right-footer, html[theme='95'] .index-sidebar-right-footer { background: #c0c0c0 !important; border-top: 2px outset #dfdfdf !important; color: #000 !important; } html[theme='95'] .global-sidebar-right-footer>a { border-right: 2px outset #dfdfdf !important; color: #000 !important; opacity: 1 !important; } html[theme='95'] #sidebar-activity-container { background: #fff !important; border: 2px inset #dfdfdf !important; color: #000 !important; } html[theme='95'] .linear-view .comment { border: 2px inset #dfdfdf !important; background: #fff !important; margin-bottom: 8px !important; color: #000 !important; } html[theme='95'] .sidebar-activity-header { background: #000080 !important; color: #fff !important; padding: 4px 10px !important; border-bottom: 2px outset #dfdfdf !important; } html[theme='95'] #comments-container { background: #fff !important; border: 2px inset #dfdfdf !important; color: #000 !important; } html[theme='95'] .item-main-content { background: transparent !important; border: none !important; padding: 20px !important; } html[theme='95'] .item-main-content ._204863 { background: linear-gradient(90deg, #000080, #1084d0) !important; color: #fff !important; font-family: var(--font) !important; font-weight: bold !important; font-size: 13px !important; padding: 2px 4px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; margin: 0 !important; width: 100% !important; height: 24px !important; border-top: 2px outset #dfdfdf !important; border-left: 2px outset #dfdfdf !important; border-right: 2px outset #dfdfdf !important; box-sizing: border-box !important; } html[theme='95'] .item-main-content ._204863::after { content: " _ ❐ ✕ "; font-family: 'Arial', sans-serif; font-size: 10px; background: #c0c0c0; color: #000; border: 2px outset #dfdfdf; padding: 0 4px; line-height: 14px; height: 16px; display: flex; align-items: center; } html[theme='95'] .item-main-content .content { background: #c0c0c0 !important; border-bottom: 2px outset #dfdfdf !important; border-left: 2px outset #dfdfdf !important; border-right: 2px outset #dfdfdf !important; padding: 4px !important; flex: none !important; display: flex !important; box-sizing: border-box !important; } html[theme='95'] .item-main-content .media-object { background: #000 !important; border: 2px inset #dfdfdf !important; display: flex !important; align-items: center !important; justify-content: center !important; } html[theme='95'] .item-main-content .metadata { border: 2px inset #dfdfdf !important; background: #c0c0c0 !important; padding: 10px !important; margin-top: 10px !important; color: #000 !important; } /* removing in favor of new appearance */ /* /* Notifications */ .nav-item-rel { position: relative; display: inline-block; } .notif-count { position: absolute; top: 0px; right: -5px; background: var(--badge-nsfw); color: white; font-size: 10px; padding: 2px 2px; border-radius: 3px; line-height: 1; } .flash-error { color: #ff4444; text-align: center; margin-bottom: 10px; font-weight: bold; } .flash-success { color: #000; background: var(--accent); padding: 10px; border-radius: 4px; margin-bottom: 10px; text-align: center; font-weight: bold; } .notif-dropdown { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 320px; background: var(--dropdown-bg); border: 1px solid var(--nav-border-color); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45); z-index: 1000; margin-top: 6px; border-radius: 6px; } /* Arrow caret pointing up toward the icon */ .notif-dropdown::before { content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid var(--nav-border-color); } .notif-dropdown::after { content: ''; position: absolute; top: -5px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid var(--dropdown-bg); } .notif-dropdown.visible { display: block; } @media (max-width: 768px) { .notif-dropdown { position: fixed; transform: none; width: 320px; max-width: calc(100vw - 16px); margin-top: 0; } /* Hide arrow on mobile — bell position varies */ .notif-dropdown::before, .notif-dropdown::after { display: none; } } .notif-header { padding: 8px 10px 6px; border-bottom: 1px solid var(--nav-border-color); display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 0.9rem; color: var(--white); background: var(--nav-bg); } .notif-header button#mark-all-read { background: none; border: none; color: var(--accent); cursor: pointer; font-size: 0.7rem; padding: 0; white-space: nowrap; flex-shrink: 0; } /* Notification Tabs (dropdown) */ .notif-tabs { display: flex; gap: 2px; flex: 1; min-width: 0; } .notif-tab { background: none; border: none; color: #888; font-size: 0.78rem; font-weight: 600; padding: 4px 10px; cursor: pointer; border-radius: 4px; transition: all 0.15s ease; text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap; position: relative; } .notif-tab:hover { color: #ccc; background: rgba(255, 255, 255, 0.05); } .notif-tab.active { color: var(--accent); background: rgba(var(--accent-rgb, 31, 178, 176), 0.1); } .notif-tab-badge { display: inline-block; background: var(--badge-nsfw); color: #fff; font-size: 9px; min-width: 14px; height: 14px; line-height: 14px; text-align: center; border-radius: 7px; padding: 0 3px; margin-left: 3px; font-weight: 700; vertical-align: middle; } /* Notification Page Tabs */ .notif-page-tabs { display: flex; gap: 0; margin-bottom: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); background: rgba(0, 0, 0, 0.15); border-radius: 4px 4px 0 0; overflow: hidden; } .notif-page-tab { flex: 1; background: none; border: none; color: #888; font-size: 0.9rem; font-weight: 600; padding: 10px 20px; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; transition: all 0.2s ease; border-bottom: 2px solid transparent; position: relative; } .notif-page-tab:hover { color: #ccc; background: rgba(255, 255, 255, 0.03); } .notif-page-tab.active { color: var(--accent); border-bottom-color: var(--accent); background: rgba(var(--accent-rgb, 31, 178, 176), 0.05); } .notif-list { max-height: 300px; overflow-y: auto; } .notif-item { padding: 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); background: var(--dropdown-bg); cursor: pointer; transition: background 0.2s; font-size: 0.85rem; color: var(--white); display: block; text-decoration: none; } .notif-item:hover { background: var(--dropdown-item-hover); text-decoration: none; color: var(--white); } .notif-item.unread { border-left: 3px solid var(--accent); background: rgba(255, 255, 255, 0.02); } .notif-item.notif-with-thumb { display: flex; align-items: flex-start; gap: 12px; } .notif-with-thumb .notif-thumb { flex-shrink: 0; width: 70px; height: 70px; border-radius: 4px; overflow: hidden; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); } .notif-with-thumb .notif-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.2s; } .notif-item:hover .notif-thumb img { transform: scale(1.1); } .notif-with-thumb .notif-content { flex: 1; min-width: 0; } .notif-with-thumb .notif-info { font-weight: bold; color: var(--accent); font-size: 0.9em; margin-bottom: 2px; } .notif-with-thumb .notif-msg { color: #ccc; font-size: 0.85em; line-height: 1.2; } .notif-time { font-size: 0.75rem; color: #888; margin-top: 3px; display: block; } .notif-expandable:hover .notif-reason-preview { text-decoration: underline; color: #ffcccc; } .notif-reason-full { animation: slideDown 0.2s ease-out; } .notif-empty { text-align: center; font-size: smaller; } @keyframes slideDown { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } } .notif-fade-out { opacity: 0 !important; transform: translateX(20px); max-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin: 0 !important; border: 0 !important; transition: all 0.3s ease-in-out; pointer-events: none; overflow: hidden; } @keyframes notif-pulse { 0% { box-shadow: 0 0 0 0 var(--accent, #e91e63); background: rgba(233, 30, 99, .18); } 50% { box-shadow: 0 0 0 6px rgba(233, 30, 99, .0); background: rgba(233, 30, 99, .1); } 100% { box-shadow: none; background: transparent; } } .notif-highlight { animation: notif-pulse 1.2s ease-out 2; border-radius: 6px; } /* Base style for all right sidebars */ .item-sidebar-right, .index-sidebar-right, .global-sidebar-right { display: flex !important; flex-direction: column !important; position: fixed !important; top: var(--navbar-h, 50px) !important; bottom: 0 !important; right: 0; width: 300px; max-width: 85%; height: auto !important; max-height: none !important; background: var(--bg); border-left: 1px solid var(--nav-border-color); z-index: 900 !important; /* below navbar dropdowns (1000+) but above page content */ transition: right 0.3s ease-in-out, visibility 0.3s !important; box-shadow: -5px 0 15px rgba(0, 0, 0, 0.5) !important; overflow: visible !important; /* iOS Safari: allow vertical scroll but let JS handle horizontal swipe-to-close */ touch-action: pan-y; } body.sidebar-right-hidden .global-sidebar-right { right: -300px !important; } /* Prevent native image drag from hijacking the sidebar mouse-drag gesture */ .global-sidebar-right img, .item-sidebar-right img, .index-sidebar-right img { -webkit-user-drag: none; user-select: none; } /* Edge zone drag handle — simple centered vertical pill */ #sidebar-drag-zone { display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; } #sidebar-drag-zone::after { content: ''; display: block; width: 4px; height: 40px; border-radius: 2px; background: var(--accent, #888); transition: height 0.2s ease, opacity 0.2s ease; } #sidebar-drag-zone:hover { opacity: 1; } /* Always show the handle on touch devices (no hover state available) */ @media (pointer: coarse) { #sidebar-drag-zone { opacity: 0.7; justify-content: flex-end; padding-right: 6px; } } #sidebar-drag-zone:hover::after { height: 56px; } /* Ensure intermediate tablet screens also hide correctly */ @media (max-width: 1199px) { body.sidebar-right-hidden .item-sidebar-right, body.sidebar-right-hidden .index-sidebar-right, body.sidebar-right-hidden .global-sidebar-right { right: -100% !important; /* Fallback for variable width sidebars */ right: -300px !important; } } /* ============================================================ ITEM PAGE LAYOUTS — Desktop (min-width: 1000px) Two layouts, clearly scoped to body class. body.layout-modern = 3-column (guests + use_new_layout members) body.layout-legacy = 2-column scrolling (!use_new_layout members) ============================================================ */ @media (min-width: 1000px) { /* ---------------------------------------------------------- LAYOUT: MODERN — 3-column viewport-locked grid ---------------------------------------------------------- */ body.layout-modern .item-layout-container { display: grid; grid-template-columns: 400px minmax(0, 1fr) 300px; grid-template-rows: auto; flex: 1; height: calc(100vh - var(--navbar-h, 50px)); width: 100%; overflow: hidden; transition: grid-template-columns 0.3s ease; } /* Collapsed right sidebar — grid track shrinks to 0 */ body.layout-modern.sidebar-right-hidden .item-layout-container { grid-template-columns: 400px minmax(0, 1fr) 0px; } body.layout-modern .item-sidebar-left { grid-column: 1; height: calc(100vh - var(--navbar-h, 50px)); position: sticky; top: var(--navbar-h, 50px); display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; border-right: 1px solid var(--nav-border-color); z-index: 1; } body.layout-modern .item-layout-container .item-main-content { grid-column: 2; height: calc(100vh - var(--navbar-h, 50px)); display: grid; grid-template-rows: auto auto 1fr; justify-items: center; overflow: hidden; padding: 20px; min-height: 0; min-width: 0; gap: 0; overflow-y: scroll; } body.layout-modern .item-layout-container .item-main-content ._204863 { align-self: start; } body.layout-modern .item-layout-container .item-main-content .content { align-self: start; } body.layout-modern .item-layout-container .item-main-content .metadata { align-self: start; overflow: auto; } /* Sidebar toggle: hide left sidebar (e.g. keybind toggle) */ body.layout-modern .item-layout-container.sidebar-hidden { grid-template-columns: minmax(0, 1fr) 300px; } body.layout-modern.sidebar-right-hidden .item-layout-container.sidebar-hidden { grid-template-columns: 1fr; } body.layout-modern .item-layout-container.sidebar-hidden .item-sidebar-left { display: none; } body.layout-modern .item-layout-container.sidebar-hidden .item-main-content { grid-column: 1; } body.layout-modern .item-sidebar-right, body.layout-modern .global-sidebar-right { grid-column: 3; /* Inheritance from universal .item-sidebar-right (fixed, right: 0) */ } body.layout-modern.sidebar-right-hidden .item-sidebar-right, body.layout-modern.sidebar-right-hidden .global-sidebar-right { /* Inheritance from universal body.sidebar-right-hidden .item-sidebar-right (right: -300px) */ min-width: 0; } /* Toggle tab button — positioned absolutely inside sidebar, pokes out left edge */ .item-sidebar-left { position: relative; } /* Removed local sidebar and toggle overrides — now using universal rules */ /* Collapse right sidebar on narrower screens in modern view */ @media (max-width: 1400px) { body.layout-modern .item-layout-container { grid-template-columns: 400px minmax(0, 1fr); } /* Uses universal fixed slide-out logic; no need for display: none at this breakpoint */ } /* ---------------------------------------------------------- LAYOUT: LEGACY — 2-column, natural page scroll Right sidebar is fixed to viewport. ---------------------------------------------------------- */ body.layout-legacy .item-layout-container { display: grid; grid-template-columns: minmax(0, 1fr) 300px; height: auto !important; overflow: visible !important; } body.layout-legacy.sidebar-right-hidden .item-layout-container { grid-template-columns: 1fr; } body.layout-legacy .item-layout-container .item-main-content { grid-column: 1; display: flex !important; flex-direction: column; align-items: center; height: auto !important; max-height: none !important; overflow: visible !important; gap: 0; padding: 20px; } body.layout-legacy .item-layout-container .item-main-content ._204863 { align-self: center; width: 100%; } body.layout-legacy .item-layout-container .item-main-content .content { align-self: center; width: 100%; } body.layout-legacy .item-layout-container .item-main-content .metadata { align-self: center; width: 800px; max-width: 100%; } body.layout-legacy .item-layout-container #comments-container { width: 800px; max-width: 100%; align-self: center; flex: 0 0 auto !important; z-index: 1; } body.layout-legacy .item-layout-container .user-infobox-block { width: 800px; max-width: 100%; } body.layout-legacy .item-layout-container .item-sidebar-right, body.layout-legacy .item-layout-container .global-sidebar-right { /* Inheritance from universal .item-sidebar-right (fixed, right: 0) */ grid-column: 2; grid-row: 1 / span 10; } /* Slide the legacy sidebar off-screen — handled by universal rule */ } .sidebar-activity { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; touch-action: pan-y; /* iOS Safari: keep horizontal swipe-to-close claimable by JS */ } .sidebar-activity-header { padding: 15px; font-weight: bold; color: var(--accent); border-bottom: 1px solid var(--nav-border-color); font-family: 'VCR'; font-size: 0.9em; letter-spacing: 1px; } #sidebar-activity-container.sidebar-comments-list { flex: 1; overflow-y: auto; padding: 5px; touch-action: pan-y; } #sidebar-activity-container.sidebar-comments-list .comment { margin-bottom: 5px; padding: 5px; font-size: 0.9em; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .sidebar-activity .comment-content-inner { display: block; max-height: 80px; /* Roughly 4-5 lines */ overflow: hidden; position: relative; white-space: pre-wrap; } /* Subtle fade to indicate more content */ .sidebar-activity .comment-content.has-overflow:not(.expanded) .comment-content-inner::after { content: ""; position: absolute; bottom: 0; right: 0; width: 100%; height: 20px; background: linear-gradient(to bottom, transparent, rgba(28, 27, 27, 0.8)); pointer-events: none; } .sidebar-activity .comment-content.expanded .comment-content-inner { max-height: unset; overflow: visible; } .sidebar-activity .read-more-btn, .sidebar-activity .see-less-btn { background: none; border: none; color: var(--accent); cursor: pointer; padding: 0; margin-top: 5px; font-size: 0.85em; display: none; /* Hidden by default, shown via JS if overflow detected */ } .item-comment-truncated-notice { display: block; margin-top: 8px; font-size: 0.85em; color: #666; } .load-full-comment-btn, .collapse-comment-btn { background: none; border: none; padding: 0; color: var(--accent); font-size: inherit; font-family: inherit; cursor: pointer; opacity: 0.85; text-decoration: underline; text-underline-offset: 2px; transition: opacity 0.15s; } .load-full-comment-btn:hover, .collapse-comment-btn:hover { opacity: 1; } /* Avatar in sidebar activity */ .sidebar-avatar-link { flex-shrink: 0; display: flex; } .sidebar-avatar { width: 24px; height: 24px; object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.1); } .read-more-btn, .see-less-btn { display: inline; padding: 0; background: none; border: none; color: var(--accent); font-size: inherit; cursor: pointer; opacity: 0.8; text-decoration: underline; text-underline-offset: 2px; } .read-more-btn:hover, .see-less-btn:hover { opacity: 1; } #sidebar-activity-container.sidebar-comments-list .comment:last-child { border-bottom: none; } #sidebar-activity-container.sidebar-comments-list .comment-header { margin-bottom: 4px; } /* ─── Sidebar Skeleton Loader ─────────────────────────────────────────────── */ @keyframes skeleton-shimmer { 0% { background-position: -300px 0; } 100% { background-position: 300px 0; } } .sidebar-skeleton-item { padding: 8px 5px 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .sidebar-skeleton-item:last-child { border-bottom: none; } .skeleton-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .skeleton-meta { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 0; } /* Shared shimmer base */ .skeleton-avatar, .skeleton-line { background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.10) 40%, rgba(255, 255, 255, 0.04) 80%); background-size: 600px 100%; animation: skeleton-shimmer 1.6s ease-in-out infinite; border-radius: 3px; } .skeleton-avatar { width: 24px; height: 24px; flex-shrink: 0; border-radius: 2px; } .skeleton-line { height: 10px; } .skeleton-name { width: 55%; } .skeleton-time { width: 35%; height: 8px; opacity: 0.65; } .skeleton-text-long { width: 90%; margin-bottom: 6px; } .skeleton-text-medium { width: 70%; margin-bottom: 6px; } .skeleton-text-short { width: 45%; margin-bottom: 0; } /* Stagger the shimmer phase so each item feels alive individually (cycles every 5) */ .sidebar-skeleton-item:nth-child(5n+2) .skeleton-avatar, .sidebar-skeleton-item:nth-child(5n+2) .skeleton-line { animation-delay: 0.2s; } .sidebar-skeleton-item:nth-child(5n+3) .skeleton-avatar, .sidebar-skeleton-item:nth-child(5n+3) .skeleton-line { animation-delay: 0.4s; } .sidebar-skeleton-item:nth-child(5n+4) .skeleton-avatar, .sidebar-skeleton-item:nth-child(5n+4) .skeleton-line { animation-delay: 0.6s; } .sidebar-skeleton-item:nth-child(5n+5) .skeleton-avatar, .sidebar-skeleton-item:nth-child(5n+5) .skeleton-line { animation-delay: 0.8s; } /* Mobile Stacking for Legacy Mode (max-width: 999px) */ @media (max-width: 999px) { .item-layout-container { display: flex; flex-direction: column; width: 100%; padding: 5px; } .item-layout-container .item-main-content { order: 1; /* Main content (video) on top */ /* padding: 10px; */ } .item-sidebar-left { order: 2; /* Comments/Tags on bottom */ /* padding: 10px; */ z-index: 1; } /* Mobile Overrides if necessary — most styles now universal */ .item-sidebar-right, .index-sidebar-right, .global-sidebar-right { width: 280px !important; } body.sidebar-right-hidden .item-sidebar-right, body.sidebar-right-hidden .index-sidebar-right, body.sidebar-right-hidden .global-sidebar-right { right: -280px !important; } #sidebar-right-toggle { top: 80% !important; transform: none !important; } } /* Common sizing for the Legacy content area */ .item-layout-container .item-main-content>._204863, .item-layout-container .item-main-content>.content, .item-layout-container .item-main-content>.metadata, .item-layout-container .item-main-content #comments-container { width: 100%; max-width: 1100px; /* Optional cap to prevent excessive width on huge screens */ min-height: 0; min-width: 0; } .item-layout-container .item-main-content>.content { display: flex; flex-direction: row; justify-content: center; align-items: center; } .item-layout-container .item-main-content .media-object { height: auto; width: 100%; max-width: 100%; min-height: 0; min-width: 0; display: flex; align-items: center; justify-content: center; position: relative; } .item-layout-container .item-main-content .embed-responsive { width: 100%; /*max-width: calc((100vh - 180px) * (16 / 9));*/ /* Cap width based on viewport height to fit vertically */ margin: 0 auto; } .item-main-content video, .item-main-content img { /*max-height: calc(100vh - 180px);*/ /* Leave space for ID and Metadata bars */ object-fit: contain; } #comments-container { color: var(--white); width: 100%; box-sizing: border-box; display: flex; flex-direction: column; } /* Modern: comments fill all remaining left-sidebar space; list scrolls internally */ body.layout-modern .item-sidebar-left #comments-container { display: flex !important; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; } body.layout-modern #comments-container .main-input { order: -1; } /* Legacy: comments sit in the page flow, no forced height */ body.layout-legacy #comments-container { display: flex !important; flex-direction: column; flex: 0 0 auto !important; min-height: 0; overflow: visible; } /* Pin tags + controls to the bottom of the left sidebar */ body.layout-modern .item-sidebar-left .sidebar-tags-container, body.layout-modern .item-sidebar-left .tag-controls { flex-shrink: 0; } #comments-container.faded-out { opacity: 0; pointer-events: none; } .comments-controls { display: flex; align-items: center; gap: 5px; } .comments-controls button, .comments-controls select { background: rgba(255, 255, 255, 0.1); border: 1px solid var(--nav-border-color); color: var(--white); padding: 0 10px; height: 24px; font-size: 11px; text-transform: uppercase; font-weight: 600; border-radius: 3px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s; } .comments-controls button:hover { background: rgba(255, 255, 255, 0.2); } .admin-pin-btn, .admin-edit-btn, .admin-delete-btn, .delete-btn { background: none; border: none; padding: 0; margin: 0; color: #888; cursor: pointer; text-decoration: underline; } .admin-delete-btn:hover, .delete-btn:hover { color: #ff4444; } .admin-pin-btn:hover, .admin-edit-btn:hover { color: var(--accent); } .comment-input { margin-bottom: 5px; background: rgba(255, 255, 255, 0.05); padding: 5px; border: 1px solid var(--nav-border-color); border-radius: 0; ; margin: 5px; } .comment-input textarea { width: 100%; background: rgba(0, 0, 0, 0.2); border: none; color: var(--white); padding: 10px; min-height: 80px; resize: vertical; border-radius: 0; /* No rounded corners */ } .input-actions { margin-top: 10px; display: flex; justify-content: flex-end; align-items: center; gap: 5px; flex-wrap: wrap; } .submit-comment { background: var(--accent); color: var(--black); border: none; padding: 5px 15px; font-weight: bold; cursor: pointer; border-radius: 0; /* No rounded corners */ } .submit-comment.loading { pointer-events: none; opacity: 0.7; cursor: wait; } .submit-comment.loading .fa-spinner { font-size: 11px; vertical-align: middle; } .submit-comment.uploading { pointer-events: none; opacity: 0.5; cursor: wait; } .cancel-reply { background: transparent; color: var(--white); border: 1px solid var(--nav-border-color); margin-left: 10px; padding: 5px 10px; cursor: pointer; border-radius: 0; } .char-counter { font-size: 11px; color: rgba(255, 255, 255, 0.35); font-family: monospace; margin-right: auto; align-self: center; transition: color 0.2s ease, font-weight 0.2s ease; user-select: none; } .char-counter.near-limit { color: #e6a817; font-weight: bold; } .char-counter.at-limit { color: #e84040; font-weight: bold; } /* ─── Comment File Upload ─────────────────────────────────────────────────── */ .comment-attach-btn { background: none; border: none; color: var(--white); cursor: pointer; padding: 4px 8px; display: flex; align-items: center; justify-content: center; transition: color 0.15s, border-color 0.15s; font-size: 14px; } .comment-file-preview { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; } .comment-file-preview:empty { display: none; } .cf-preview-item { position: relative; display: flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); padding: 4px 6px; max-width: 220px; } .cf-preview-item img, .cf-preview-item video { width: 48px; height: 48px; object-fit: cover; flex-shrink: 0; } .cf-preview-item i.fa-music { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.05); color: var(--accent); font-size: 20px; flex-shrink: 0; } .cf-filename { font-size: 0.75em; color: #aaa; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 110px; } .cf-remove-btn { background: none; border: none; color: #888; cursor: pointer; padding: 2px; font-size: 12px; flex-shrink: 0; transition: color 0.15s; } .cf-remove-btn:hover { color: #ff4444; } .cf-preview-item.cf-uploading { opacity: 0.6; } .cf-preview-item.cf-uploading .fa-spinner { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--accent); } /* ─── Comment Attachments (rendered below comment content) ────────────────── */ .comment-attachments { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } .cf-attachment { display: inline-block; max-width: 100%; } .cf-attachment.cf-image img { max-width: 300px; max-height: 220px; object-fit: contain; border: 1px solid rgba(255, 255, 255, 0.08); cursor: pointer; transition: opacity 0.15s; } .cf-attachment.cf-image img:hover { opacity: 0.85; } .cf-attachment.cf-video video { max-width: 400px; max-height: 280px; border: 1px solid rgba(255, 255, 255, 0.08); } .cf-attachment.cf-audio audio { width: 100%; max-width: 350px; } .comments-list { display: flex; flex-direction: column; gap: 5px; padding-right: 5px; padding-left: 5px; padding-top: 5px; } body.layout-modern .comments-list { position: relative; display: flex; flex-direction: column; gap: 5px; flex: 1 1 auto; /* Grow to fill #comments-container */ overflow-y: auto; /* Scroll comments here, not on the container */ overflow-x: hidden; min-height: 0; } body.layout-legacy .comments-list { position: relative; display: flex; flex-direction: column; gap: 5px; flex: 0 0 auto; /* Natural height */ overflow: visible; /* Unified scrolling */ min-height: 0; } body.layout-legacy .scroll-nav-wrapper { position: absolute; top: -30px; bottom: 0; right: -50px; width: 40px; pointer-events: none; z-index: 1000; } body.layout-legacy .scroll-to-bottom { position: sticky; top: calc(100vh - 80px); width: 40px; height: 40px; background: var(--nav-bg); border: 1px solid var(--nav-border-color); color: var(--accent); display: flex; align-items: center; justify-content: center; cursor: pointer; pointer-events: auto; border-radius: 50%; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0.8; } body.layout-legacy .scroll-to-bottom:hover { background: var(--nav-link-hover-bg); opacity: 1; transform: translateY(-2px); } body.layout-legacy .scroll-to-bottom .icon-up { display: none; } body.layout-legacy .scroll-to-bottom.is-at-bottom .icon-up { display: block; } body.layout-legacy .scroll-to-bottom.is-at-bottom .icon-down { display: none; } body.layout-legacy .scroll-to-bottom svg { width: 20px; height: 20px; } .comments-list { scrollbar-width: thin; } .comment { display: flex; gap: 15px; padding: 10px; background: rgba(255, 255, 255, 0.03); /* Very light seethrough */ border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 0; /* No rounded corners */ position: relative; padding-bottom: 25px; /* Room for absolute permalink */ } .comment.deleted { opacity: 0.5; } .comment-avatar img { width: 40px; height: 40px; object-fit: cover; border-radius: 0; /* Square avatars */ } .comment-avatar::after { content: ""; display: block; height: 20px; } .comment-body { flex: 1; min-width: 0; } .comment-body { flex: 1; min-width: 0; } .comment-content p { margin: 0; } .comment-header { margin-bottom: 8px; font-size: 0.85em; color: #888; display: flex; justify-content: space-between; align-items: flex-end; line-height: normal; flex-wrap: wrap; gap: 2px 10px; } .comment-header-left { display: flex; align-items: center; gap: 5px; } .pinned-badge { background: var(--accent); color: var(--nav-bg); font-size: 0.8em; padding: 1px 6px; border-radius: 2px; font-weight: bold; display: inline-flex; align-items: center; gap: 3px; line-height: 1; margin-right: 5px; } .comment-header-left .pinned-badge { padding: 2px 3px; } .pinned-badge svg { width: 10px; height: 10px; display: block; stroke-width: 3; } .comment-footer { margin-top: 8px; font-size: 0.85em; color: #888; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 2px 10px; } .comment-footer-left, .comment-footer-right { display: flex; align-items: center; min-width: 0; } .comment-footer-right { flex-grow: 1; justify-content: flex-end; } .comment-actions { display: flex; align-items: center; gap: 5px; } .comment-header button, .comment-header a, .comment-header span, .comment-footer button, .comment-footer a, .comment-footer span { padding: 0; margin: 0; line-height: 1; font-family: inherit; font-size: inherit; vertical-align: top; } .comment-meta button, .comment-meta a { background: none; border: none; cursor: pointer; color: #888; padding-right: 8px; display: flex; align-items: center; transition: color 0.1s; text-decoration: none; } .comment-meta button svg, .comment-meta a svg { width: 14px; height: 14px; display: block; margin-right: 2px; } .comment-header button:hover, .comment-header a:hover, .comment-footer button:hover, .comment-footer a:hover { color: var(--white); } .report-comment-btn:hover { opacity: 1 !important; color: var(--accent, #e91e63) !important; } .comment-permalink { position: absolute; bottom: 5px; left: 10px; font-size: 0.7em !important; color: #555 !important; white-space: nowrap; font-family: 'VCR'; } .comment-permalink:hover { color: #888 !important; } .comment-author { font-weight: bold; color: var(--accent); margin-right: 8px; padding-right: 0 !important; } .comment-time { margin-right: 5px; font-size: 0.8em; color: #777; margin-bottom: 1px; text-decoration: none; align-self: baseline; } .comment-time:hover { color: #aaa; text-decoration: underline; } .admin-delete-btn:hover, .delete-btn:hover { color: #ff4444 !important; } .admin-pin-btn.active { color: var(--accent) !important; } .comment-permalink { color: #666; text-decoration: none; } .comment-permalink:hover { text-decoration: underline; } .reply-btn, .quote-btn { background: none; border: none; color: #888; cursor: pointer; text-decoration: underline; padding: 0; margin: 0; } .comment-context-link { color: var(--accent); text-decoration: none; font-family: 'VCR', monospace; font-size: 0.9em; opacity: 1; } .comment-context-link:hover { opacity: 1; text-decoration: underline; } .linear-view .comment { margin-left: 0 !important; } .linear-view .comment-replies { display: none !important; } @keyframes comment-highlight { 0% { background: rgba(var(--accent-rgb, 255, 255, 255), 0.3); } 100% { background: rgba(255, 255, 255, 0.03); } } .highlight-comment { animation: comment-highlight 2s ease-out; border-color: var(--accent) !important; } .comment-preview-popup { background: #000000 !important; /* Absolute solid black */ border: 1px solid var(--accent); box-shadow: 0 20px 50px #000000; /* Fully opaque black shadow */ padding: 15px; max-width: 600px; max-height: 500px; overflow-y: auto; pointer-events: auto; opacity: 1 !important; transform: translateY(5px); animation: preview-fade-in 0.1s forwards ease-out; /* Faster animation */ z-index: 1000001; } .comment-preview-popup .comment { border: none !important; background: transparent !important; padding: 0 !important; margin: 0 !important; } @keyframes preview-fade-in { to { transform: translateY(0); } } .comment-backlinks { display: inline-block; font-size: 0.85em; opacity: 0.8; margin-left: 10px; } .comments-header-actions { display: flex; justify-content: flex-end; margin-bottom: 15px; padding: 0 5px; } .display-mode-selector { display: flex; background: rgba(255, 255, 255, 0.05); border-radius: 8px; padding: 4px; gap: 4px; } .mode-btn { background: transparent; border: none; color: #888; padding: 6px 14px; cursor: pointer; font-size: 0.8em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; transition: all 0.2s ease; display: flex; align-items: center; gap: 8px; } .mode-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.05); } .mode-btn.active { background: var(--accent); color: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); } .mode-btn i { font-size: 1.1em; } .comment-backlinks a { margin-left: 4px; text-decoration: none; color: var(--accent); } .comment-backlinks a:hover { text-decoration: underline; } .comment-content { line-height: 1.4; word-break: break-word; white-space: pre-wrap; } .spoiler { background-color: #000 !important; color: #000 !important; cursor: pointer !important; transition: color 0.1s; border-radius: 4px; pointer-events: auto !important; /* Ensure interaction even if parent has pointer-events: none */ } /* Ensure spoilers properly envelope media */ .spoiler:has(img, video, iframe, audio) { display: inline-block; max-width: 100%; } .spoiler:has(.vocaroo-embed-wrap, .video-embed-wrap, .yt-embed-wrap, .audio-embed-wrap, img, video, iframe, audio) { display: inline-grid; grid-auto-flow: column; max-width: 100%; vertical-align: middle; } .spoiler .vocaroo-embed-wrap, .spoiler .video-embed-wrap, .spoiler .yt-embed-wrap, .spoiler .audio-embed-wrap { display: inline-block; vertical-align: middle; width: auto; max-width: 100%; margin: 4px 2px; } .spoiler .yt-embed-wrap { width: 480px; /* YouTube needs a base width for the aspect ratio padding trick */ } .spoiler img, .spoiler video, .spoiler iframe, .spoiler audio, .spoiler .sidebar-video-link { display: inline-block; vertical-align: middle; filter: brightness(0); background-color: #000 !important; color: #000 !important; pointer-events: none; transition: filter 0.1s; } .spoiler .mention, .spoiler a { filter: brightness(0); background-color: #000 !important; color: #000 !important; pointer-events: none; transition: filter 0.1s; } .spoiler:hover { color: #fff !important; } .spoiler:hover img, .spoiler:hover video, .spoiler:hover iframe, .spoiler:hover audio, .spoiler:hover .sidebar-video-link, .spoiler:hover .mention, .spoiler:hover a { filter: none; background-color: transparent !important; color: inherit !important; pointer-events: auto; } .spoiler.revealed { color: #fff !important; } .spoiler.revealed img, .spoiler.revealed video, .spoiler.revealed iframe, .spoiler.revealed audio, .spoiler.revealed .sidebar-video-link, .spoiler.revealed .mention, .spoiler.revealed a { filter: none; background-color: transparent !important; color: inherit !important; pointer-events: auto; } .blur-text { filter: blur(10px); cursor: pointer !important; transition: filter 0.2s ease; pointer-events: auto !important; display: inline-block; max-width: 100%; } .blur-text:hover, .blur-text.revealed { filter: blur(0); } .blur-text img, .blur-text video, .blur-text iframe, .blur-text audio, .blur-text .vocaroo-embed-wrap, .blur-text .video-embed-wrap, .blur-text .yt-embed-wrap, .blur-text .audio-embed-wrap { filter: blur(10px); transition: filter 0.2s ease; } .blur-text:hover img, .blur-text:hover video, .blur-text:hover iframe, .blur-text:hover audio, .blur-text:hover .vocaroo-embed-wrap, .blur-text:hover .video-embed-wrap, .blur-text:hover .yt-embed-wrap, .blur-text:hover .audio-embed-wrap, .blur-text.revealed img, .blur-text.revealed video, .blur-text.revealed iframe, .blur-text.revealed audio, .blur-text.revealed .vocaroo-embed-wrap, .blur-text.revealed .video-embed-wrap, .blur-text.revealed .yt-embed-wrap, .blur-text.revealed .audio-embed-wrap { filter: none; } .comment-children { margin-top: 15px; margin-left: 10px; border-left: 1px solid var(--nav-border-color); padding-left: 15px; } @media screen and (max-width: 600px) { .comment-children { margin-left: 5px; padding-left: 8px; } } .loading, .error { text-align: center; padding: 20px; color: #888; } .deleted-msg { color: #666; font-style: italic; } html[theme="f0ck95"] #tags .badge>a:first-child { text-shadow: 1px 1px #8080805e; } html[theme="f0ck95"] .badge.badge-greentext.badge-light.mr-2 { color: #b5bd68; } html[theme="f0ck95"] .pagination>span { border: 1px dashed grey !important; color: black; text-shadow: none; } html[theme="f0ck95"] .dropdown-menu { border-color: gray; } html[theme="f0ck95"] .err span { text-shadow: 0px 0px transparent; } html[theme="f0ck95"] .err { background: silver; border: outset 2px gray; } html[theme="f0ck95"] div.posts>a::after { color: var(--white); } html[theme="f0ck95"] .about { color: black; } html[theme="f0ck95"] .badge-dark, #themeselector { border: inset 1px gray; background: #a8a5a5; } html[theme="f0ck95"] .badge-light { color: #000; text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95"] .badge-success { color: #000; text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95"] .badge-danger { color: #000; text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95"] img.avatar { border-top-left-radius: 0; } html[theme="f0ck95"] ._204863 { content: " "; background: -webkit-linear-gradient(left, #08216b, #a5cef7); text-align: left; width: 100%; color: white; height: auto; border-left: inset 2px silver; border-top: inset 2px silver; border-right: outset 2px silver; border-bottom: outset 2px silver; line-height: 1.7; } html[theme="f0ck95"] .iconset#a_delete { stroke: var(--black); } html[theme="f0ck95"] .iconset#a_favo { fill: var(--black); } html[theme="f0ck95"] .gapD { height: 16px; background: #08f; width: max-content; display: flex; } html[theme="f0ck95"] svg.iconset { display: inline-block; height: 18px; cursor: pointer; width: 21px; background: silver; margin: 1px; padding: 1px; border: 1px outset silver; position: relative; right: 2px; } html[theme="f0ck95"] .gapRight { display: flex; align-items: center; } html[theme="f0ck95"] input { color: #000; } html[theme="f0ck95"] .embed-responsive-image { left: 2px; right: 2px; } html[theme="f0ck95"] ._error_message { color: black; text-shadow: none; } html[theme="f0ck95"] ._error_topbar { background: -webkit-linear-gradient(left, #08216b, #a5cef7); } html[theme="f0ck95"] .f0ckgle { color: black; } html[theme="f0ck95"] .admin-search button { color: black; } /* f0ck95dARK */ html[theme='f0ck95d'] { --accent: #fff; --bg: #0e0f0f; --black: #000; --white: #fff; --gray: silver; --nav-bg: #0b0a0a; --nav-brand-border: inset 1px black; --nav-brand-bg: #0000; --navigation-links-bg: #0b0b0b; --navigation-links-background-linear-gradient: rgba(0, 0, 0, .12), rgba(0, 0, 0, 0); --navigation-links-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --navigation-links-box-shadow: rgba(255, 255, 255, .05); --nav-link-background-linear-gradient: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); --nav-link-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --nav-link-hover-bg: #333131; --nav-border-color: #282727; --dropdown-bg: #333131; --dropdown-item-hover: #444242; --nav-brand-font: 'VCR'; --font: monospace; --pagination-background: #0b0a0a; --pagination-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 0px rgba(255, 255, 255, .04), inset 0 0px rgba(0, 0, 0, .15), 0 0px 0px rgba(0, 0, 0, .1); --pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04), inset 0 1px rgba(255, 255, 255, .04), inset 0 -1px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .1); --pagination-background-hover: #8a8989; --pagination-border-color: rgba(0, 0, 0, .8) rgba(0, 0, 0, .65) rgba(0, 0, 0, .5); --metadata-bg: #0b0a0a; --badge-bg: #0f0e0e; --posts-meta-bg: #000000b8; --badge-sfw: teal; --badge-nsfw: #a72828; --badge-tag: #2f2f2f; --scrollbar-color: #555; --scroller-bg: #424242; --footbar-color: #fff; --loading-indicator-color: #fff; --img-border-width: 0; --img-border-color: #808080; --maximize_button: #fff; --bg-gradient: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgb(6, 6, 6) 10%, rgb(43, 43, 43) 100%); /* appearance */ background: black; --motd-bg: #111; } html[theme="f0ck95d"] .err { background: #4c4c4c; border: 2px outset gray; } html[theme="f0ck95d"] ._error_topbar { background: #081f3e; } html[theme="f0ck95d"] ._204863 { content: " "; background: -webkit-linear-gradient(left, #0e111a, #073c71); text-align: left; width: 100%; color: white; height: auto; border-left: inset 2px silver; border-top: inset 2px silver; border-right: outset 2px silver; border-bottom: outset 2px silver; line-height: 1.7; } html[theme="f0ck95d"] .embed-responsive-image { left: 2px; right: 2px; } html[theme="f0ck95d"] .media-object { border-left: inset 2px silver; border-right: outset 2px silver; } html[theme="f0ck95d"] .embed-responsive.embed-responsive-16by9 { background: black; border-left: inset 1px silver; border-right: outset 1px silver; } html[theme="f0ck95d"] .embed-responsive-image { border: none; } html[theme="f0ck95d"] .embed-responsive-image { background: #0000; } html[theme="f0ck95d"] html, body { color: var(--white); } html[theme="f0ck95d"] a { color: var(--white); } html[theme="f0ck95d"] span#favs { border: inset 1px gray; background: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); } html[theme="f0ck95d"] .nav-link, .pagination>a, .pagination>span { border-radius: 0; border-left: inset 1px black; border-bottom: outset 1px black; border-right: outset 1px black; border-top: 1px inset black; } html[theme="f0ck95d"] .metadata { border-left: inset 1px silver; border-bottom: outset 1px silver; border-right: outset 1px silver; border-top: inset 2px silver; color: var(--accent); } html[theme="f0ck95d"] .media-object { border-left: inset 1px silver; border-right: outset 1px silver; } html[theme="f0ck95d"] span.placeholder { border-left: 1px solid var(--gray); opacity: 0.5; } html[theme="f0ck95d"] #prev { color: white; } html[theme="f0ck95d"] #next { color: white; } /* same */ /* html[theme="f0ck95d"] .navbar-brand:hover { background: transparent; } */ html[theme="f0ck95d"] .pagination>span { border: 1px dashed var(--accent) !important; color: white; text-shadow: none; } html[theme="f0ck95d"] .dropdown-menu { border-left: inset 1px #4c4c4c; border-bottom: outset 1px #4c4c4c; border-right: outset 1px #4c4c4c; border-top: outset 0px #4c4c4c; } html[theme="f0ck95d"] .err span { text-shadow: 0px 0px transparent; } html[theme="f0ck95d"] div.posts>a::after { color: var(--white); } html[theme="f0ck95d"] .about { color: var(--white); } html[theme="f0ck95d"] .badge-dark, #themeselector { border: inset 1px gray; background: rgba(255, 255, 255, .04), rgba(255, 255, 255, 0); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); box-shadow: var(--nav-link-box-shadow); } html[theme="f0ck95d"] .badge-light { text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95d"] .badge-success { text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95d"] .badge-danger { text-shadow: none; border: 1px outset; border-radius: 0; } html[theme="f0ck95d"] .admin-search button { color: black; } /* fullscreen */ html[res="fullscreen"] ._204863 { border-top: none; } html[res="fullscreen"] .metadata { border-bottom: none; } html[res="fullscreen"] .embed-responsive-16by9::before { padding-top: 32.99%; } html[res="fullscreen"] .container { max-width: 80% !important; padding: 0 !important; } @media screen and (max-width: 600px) { html[res="fullscreen"] .container { max-width: 100% !important; } html[res="fullscreen"] #main { padding: 0 !important; } } html[res="fullscreen"] span#favs { padding: 0 !important; } /* Global scrollbar rules */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-thumb { background-color: var(--scrollbar-color); background-clip: content-box; border: 3px solid transparent; border-radius: 10px; transition: background-color 0.2s; } ::-webkit-scrollbar-thumb:hover { background-color: var(--accent); } ::-webkit-scrollbar-track { background-color: transparent; } * { scrollbar-color: var(--scrollbar-color) transparent; scrollbar-width: thin; } /* Linux Firefox "thin" is often too small and hard to see. Use auto there. */ html.is-linux.is-firefox * { scrollbar-width: auto; } *, ::before, ::after { box-sizing: border-box; outline: 0; -webkit-tap-highlight-color: transparent; } @font-face { font-family: 'VCR'; src: url('/s/vcr.ttf') format('truetype'); /* https://www.dafont.com/vcr-osd-mono.font */ } html { background-color: var(--bg) !important; background: var(--bg) !important; } body { background: transparent !important; color: var(--white); margin: 0; font-family: var(--font); line-height: 2; overflow-x: clip; font-size: 14px; } html { width: 100%; height: 100%; scrollbar-gutter: stable; } .noscript-badge { display: block; } a { color: var(--accent) /* !important */ ; cursor: pointer; text-decoration: none; display: inline-block; } a.post_source:hover, a.id-link:hover { text-decoration: underline; } a.btn.disabled { pointer-events: none; user-select: none; } .btn.disabled, .btn:disabled { user-select: none; font-weight: bold; text-shadow: 1px 1px 1px var(--black); } h5 { margin: 0; font-size: x-large; } .mr-2 { margin-right: 0.5rem !important; } div.posts { width: 100%; display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); grid-auto-flow: dense; justify-items: center; grid-gap: 5px; margin: 0; padding: 0; margin-bottom: 35px; } /* Mobile: Ensure 3 columns of thumbnails */ @media (max-width: 600px) { div.posts { grid-template-columns: repeat(3, 1fr); } } div.posts>a:not(.notif-item) { display: inline-block; position: relative; width: 100%; background-repeat: no-repeat; background-size: cover; background-position: center; } div.posts>a:not(.notif-item)::before { content: ""; display: block; margin-top: 100%; } div.posts>a:not(.notif-item):hover, div.posts>a:not(.notif-item).touch-active { box-shadow: 0 0 0 1px var(--white); } div.posts>a:not(.notif-item)::after { position: absolute; right: 0; top: 0; content: attr(data-ext) " / " attr(data-user); color: var(--white); text-shadow: 0px 1px var(--black); font-size: 10px; background: var(--posts-meta-bg); visibility: hidden; width: 100%; text-align: center; font-family: vcr; text-transform: uppercase; word-break: break-word; } div.posts>a:not(.notif-item):hover::after, div.posts>a:not(.notif-item).touch-active::after { visibility: visible; } /* Navbar */ .nav { background: var(--bg); text-align: left; } /* .navbar layout defined in view-specific navbar section below */ .navbar.scrolled { background: var(--nav-bg) !important; /*box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);*/ } .navbar.scrolled .navbar-brand { /*background: transparent !important;*/ } .navbar-brand { padding-right: 5px; padding-left: 5px; } .navbar-brand:hover { text-decoration: none; transition: ease all .2s; background: var(--black); } span.f0ck { font-family: var(--nav-brand-font); font-size: 20px; text-shadow: 1px 1px 1px var(--black), 0px 0px 0px var(--green), -1px -1px 0px var(--black), 1px -1px 0px var(--black), -1px 1px 0px var(--black), 0px 0px 0px var(--green); } .navbar.navbar-expand-lg { background: var(--nav-bg); } .navbar-expand-lg .navbar-collapse { display: flex; flex-basis: auto; } .navbar-collapse { flex-grow: 1; } #navbarSupportedContent { padding: 0; } .nav-link-identifier { width: 100%; } .navbar-expand-lg .navbar-nav { flex-direction: row; } .navbar-nav { width: 100%; display: flex; flex-direction: column; padding: 5px 0 5px 0; margin-bottom: 0; list-style: none; margin: 0; align-self: center; margin-left: .5rem; margin-right: .5rem; } ul.navbar-nav li.nav-item { margin-right: .5rem; } .navigation-links { display: flex; border: 1px solid var(--navigation-links-border-color); background: var(--navigation-links-bg); } .nav-item { width: auto; white-space: nowrap; text-align: center; } .nav-link { padding: 0; padding-right: 0; padding-left: 0; display: flex; justify-content: center; min-width: 17px; border: 1px solid var(--black); border-radius: 3px; background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); box-shadow: var(--nav-link-box-shadow); } .navbar-expand-lg .navbar-nav .nav-link, .pagination>a, .pagination>span { padding-right: .5rem; padding-left: .5rem; } .pagination>a, .pagination>span { margin-right: 0px; margin-left: 5px; } .nav-item:hover>a:hover, .dropdown-item:hover>a:hover { background-color: var(--nav-link-hover-bg); } .nav-link[data-toggle="dropdown"].ddcontent::after { content: "\00a0(" attr(content) ")\00a0\25bc"; } .nav-link[data-toggle="dropdown"]:not(.ddcontent)::after { content: "\00a0\25bc"; } .mandy { visibility: hidden; } @media (max-width: 444px) { .mandy { position: fixed; width: inherit; height: 100%; top: 0; z-index: -1; bottom: 25px; visibility: visible; } #randbutton { height: inherit; width: inherit; background: var(--bg); border: none; transition: .2s ease; } #randbutton:active { background: var(--gray); transition: .2s ease; } /* .metadata { margin-bottom: 45px; } */ .embed-responsive-16by9::before { padding-top: 75% !important; } .pagination { justify-content: center !important; } } @media (max-width: 1240px) { .nav-link[data-toggle="dropdown"]::after { content: "" !important; } } @media (max-width: 768px) { /* .nav-link[data-toggle="dropdown"]::after { content: "" !important; } */ .fa-solid.fa-angle-up, .fa-regular.fa-image { margin-right: 5px; } .navbar { display: flex !important; flex-wrap: wrap !important; } .navbar-header { flex: 1; } .nav-right-group { flex-shrink: 0; margin-left: 0; padding: 0 8px; } /* nav-left-group / navbarContent spans full width on the second row */ .nav-left-group { width: 100%; order: 10; } .navbar-brand { grid-area: unset !important; } .navigation-links { grid-row: 2; } .navbar-expand-lg .navbar-nav { justify-content: center; } #navbarSupportedContent { grid-row: 3; } /* On mobile: center the notification dropdown in the viewport */ .nav-right-group .notif-dropdown { right: 0; left: auto; transform: none; } /* Hide caret arrow on mobile */ .nav-right-group .notif-dropdown::before, .nav-right-group .notif-dropdown::after { display: none; } } span.placeholder { border-left: 1px solid var(--accent); margin-left: 3px; user-select: none; } .navbar .nav-item .dropdown-menu { display: none; } .dropup, .dropright, .dropdown, .dropleft { position: relative; } .navbar .nav-item:hover .dropdown-menu { display: block; } .dropdown:hover .nav-link { border-bottom-left-radius: 0; border-bottom-right-radius: 0; transition: .2s ease; background-color: var(--nav-link-hover-bg); } .navbar-nav .dropdown-menu { float: none; } .dropdown-menu { background: var(--dropdown-bg); position: absolute; top: 100%; width: 100%; z-index: 1000; min-width: calc(100% - 10px); padding: 0; margin: 0; font-size: 1rem; text-align: center; list-style: none; border-left: 1px solid; border-right: 1px solid; border-bottom: 1px solid; border-color: var(--black); } .dropdown-item { width: 100%; display: block; } .dropdown-menu>li:hover { background: var(--dropdown-item-hover); } .dropdown-menu a { width: 100%; display: inline-block; } @media (max-width: 1056px) { /* Navbar grid layout removed for modern-navbar compatibility */ .pagination-container-fluid { justify-content: center; } .pagination { justify-content: flex-end !important; } .pagination a:nth-last-child(2), .pagination a:nth-last-child(3), .pagination a:nth-child(2), .pagination a:nth-child(3) { display: none; } html, body { text-align: center; } } @media (max-width: 1325px) { /* ranking page - idea */ /* .ranking { grid-template-columns: 1fr 1fr !important; } */ .by-user, .by-stats, .by-hoster { grid-column: unset !important; grid-row: unset !important; } } @media (max-width: 905px) { .ranking { display: flex !important; flex-flow: column; justify-content: center !important; } .ranking div { display: flex; flex-flow: column; } } .media-object { text-align: center; align-self: center; overflow: hidden; border: 1px solid #363636; border-top: none; } /* Pagination */ .pagination-wrapper { align-items: center; display: flex; background: var(--pagination-background); border: 1px solid var(--pagination-border-color); width: 100%; } .pagination-container-fluid { display: flex; margin-left: 0; width: 100%; justify-content: center; position: fixed; bottom: 0; left: 0; right: 0; pointer-events: none; /* Allow clicking through container if needed, but not on wrapper */ z-index: 10; } .bottom-pagination.fixed-pagination { margin: 10px auto; pointer-events: auto; background: rgba(15, 15, 15, 0.75); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); padding: 2px; max-width: fit-content; } /* Ensure pagination container is hidden when requested */ .pagination-container-fluid[style*="display: none"] { display: none !important; } .pagination { display: flex; justify-content: space-around; width: 100%; padding: 5px; color: transparent; } .pagination>a, .pagination>span { float: left; padding: 0 5px; min-width: 17px; font-size: 14px; font-weight: 500; color: var(--accent); text-align: center; } .pagination>span { border: 1px solid var(--accent) !important; } .pagination :first-child { margin-left: 0; } .pagination>a { text-decoration: none; text-shadow: 0 1px var(--black); background-clip: padding-box; box-shadow: var(--pagination-anchor-box-shadow); background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); } .pagination>a:hover { background-color: var(--pagination-background-hover); } .pagination>a:active, .pagination>span { color: var(--accent); text-shadow: 0 -1px var(--black); box-shadow: var(--pagination-anchor-box-shadow); box-shadow: inset 0px -2px 0px var(--accent); } /* Content */ @media (max-width: 999px) { .container { max-width: 960px; } .dropdown-menu { position: absolute; left: 0; } .dropdown-menu li { white-space: normal; word-wrap: anywhere; } } .content { display: grid; justify-content: space-around; grid-template-columns: 0fr 1fr 0fr; position: relative; max-width: 100%; } .container { width: 100%; margin-right: auto; margin-left: auto; z-index: 1; position: relative; padding-top: 5vh; padding-bottom: 15px; } .populateME { position: relative; left: 5px; } .gapRight { align-items: center; display: flex; } .admin-lock-btn { display: inline-flex; align-items: center; justify-content: center; height: 20px; min-width: 21px; cursor: pointer; background: #312c2c; margin: 1px; padding: 0 2px; border: 1px outset #221d1d; color: var(--white); font-size: 11px; text-transform: uppercase; line-height: normal; transition: all 0.1s ease; vertical-align: middle; } .iconset-svg { width: 14px; height: 14px; fill: currentColor; stroke: none; display: block; } #a_hall { color: inherit; } .gapLeft { align-self: center; } .imageDoor { width: 25px; height: 29px; display: inline-flex; padding: 2px; } .imageDoor img { background: var(--accent); width: inherit; } ._204863 { content: " "; background: -webkit-linear-gradient(left, #131313, #4f4a4f); text-align: left; width: 100%; color: var(--white); height: auto; display: grid; grid-template-rows: 1fr; grid-template-columns: auto 1fr auto; line-height: 1.7; border: 1px solid #363636; z-index: 1; position: relative; } .location { padding-left: 5px; } /* Index page layout with sidebar */ .index-layout-wrapper { display: flex; width: 100%; gap: 0; } .index-layout-wrapper .index-container { flex: 1; min-width: 0; } @media (min-width: 1200px) { /* Reserve space for the fixed sidebar so content doesn't flow behind it */ .index-layout-wrapper { padding-right: 300px; } /* Collapse reserved space when sidebar is hidden */ body.sidebar-right-hidden .index-layout-wrapper { padding-right: 0; } } .index-container { width: 100%; padding: 5px; margin: 0px 20px 0px 20px; } @media (min-width: 361px) { .embed-responsive-image { bottom: unset !important; } } @media (min-width: 768px) { .container { max-width: 720px; } .embed-responsive-image { bottom: unset !important; } } @media (min-width: 992px) { .container { max-width: 960px; } .embed-responsive-image { bottom: unset !important; } } @media (min-width: 1200px) { .container { max-width: 1140px; } .embed-responsive-image { bottom: unset !important; } } @media (min-width: 576px) { .container { max-width: 100%; } } @media (min-width: 768px) { .container { max-width: 100%; } } @media (min-width: 992px) { .container:not(:has(.item-layout-container)) { max-width: 960px; } } @media (min-width: 1200px) { .container:not(:has(.item-layout-container)) { max-width: 1140px; } } .embed-responsive { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; } .embed-responsive-16by9::before { padding-top: 56.25%; } .embed-responsive-4by3::before { padding-top: 75%; } .embed-responsive::before { display: block; content: ""; } .embed-responsive .embed-responsive-item, .embed-responsive video, #ruffle-container { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; object-fit: contain; touch-action: none; user-select: none; } .ruffle-gesture-overlay { position: absolute; top: 0; right: 0; width: 5%; height: 100%; z-index: 10; pointer-events: auto; } @media (max-width: 768px) { .ruffle-gesture-overlay { display: none; /* No overlay on mobile to keep Flash interactive */ } } /* Danmaku toggle button on Ruffle embeds — appears on hover */ .ruffle-danmaku-toggle { position: absolute; bottom: 10px; left: 10px; z-index: 20; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; background: rgba(0, 0, 0, 0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: rgba(255, 255, 255, 0.45); font-size: 16px; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity 0.25s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease; } .embed-responsive:hover .ruffle-danmaku-toggle, #ruffle-container:hover .ruffle-danmaku-toggle { opacity: 1; pointer-events: auto; } .ruffle-danmaku-toggle:hover { background: rgba(0, 0, 0, 0.75); border-color: rgba(255, 255, 255, 0.3); color: rgba(255, 255, 255, 0.85); } .ruffle-danmaku-toggle.active { color: var(--accent, #9f0); border-color: var(--accent, #9f0); background: rgba(0, 0, 0, 0.65); } .ruffle-danmaku-toggle.active:hover { background: rgba(0, 0, 0, 0.8); } /* Strikethrough line when inactive */ .ruffle-danmaku-toggle:not(.active)::after { content: ''; position: absolute; top: 50%; left: 15%; width: 70%; height: 2px; background: rgba(255, 80, 80, 0.8); transform: rotate(-45deg); border-radius: 1px; pointer-events: none; } .embed-responsive-image { position: absolute; top: 0; left: 0; right: 0; width: auto; height: 100%; box-sizing: content-box; scrollbar-color: var(--scrollbar-color) transparent; scrollbar-width: thin; border-top: none; } .previous-post, .next-post { display: flex; height: 100%; position: relative; } #prev { z-index: 1; font-size: 30px; opacity: 0.6; text-shadow: 2px 2px 2px var(--black); padding: 25px; } #prev::before { content: "\00BB"; } #next::before { content: "\00AB"; } #next { z-index: 1; font-size: 30px; opacity: 0.6; text-shadow: 2px 2px 2px var(--black); padding: 25px; } #next:hover, #prev:hover { opacity: 1; } .arrow-next { height: 100%; display: flex; width: 100%; align-items: center; justify-content: start; position: absolute; } .arrow-prev { height: 100%; display: flex; width: 100%; align-items: center; justify-content: flex-end; position: absolute; } /* image */ #f0ck-image { height: 100%; width: 100%; max-width: 100%; object-fit: contain; } /* Inline image expansion */ .embed-responsive.is-expanded::before { display: none !important; } .embed-responsive.is-expanded { height: auto !important; overflow: visible !important; } .embed-responsive.is-expanded .embed-responsive-image, .embed-responsive.is-expanded a#elfe, .embed-responsive.is-expanded img#f0ck-image { position: static !important; height: auto !important; max-width: 100% !important; max-height: 100% !important; } a#elfe { height: 100%; width: 100%; display: flex; justify-content: center; } /* metadata */ /* Hall badge — compact primary + overflow pill */ .hall-badge-wrap { display: inline-flex; align-items: center; gap: 3px; padding: 1.5px 5px; } .hall-badge-primary { color: var(--accent); text-decoration: none; font-size: inherit; } .hall-badge-primary:hover { text-decoration: underline; } a.remove-from-hall { color: rgba(255, 255, 255, 0.4); font-size: 0.8em; text-decoration: none; vertical-align: middle; line-height: 1; transition: color 0.15s; } a.remove-from-hall:hover { color: #e74c3c; } .hall-overflow-pill { position: relative; display: inline-flex; align-items: center; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 3px; padding: 0 4px; font-size: 0.78em; color: rgba(255, 255, 255, 0.55); cursor: default; line-height: 1.6; user-select: none; } .hall-overflow-pill:hover { color: var(--white); background: rgba(255, 255, 255, 0.14); } .hall-overflow-tooltip { display: none; position: absolute; bottom: calc(100% + 5px); left: 50%; transform: translateX(-50%); background: var(--dropdown-bg, #1e1e1e); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 4px; padding: 4px 0; min-width: 120px; max-width: 200px; z-index: 200; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6); white-space: nowrap; } .hall-overflow-tooltip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: rgba(255, 255, 255, 0.15); } .hall-overflow-pill:hover .hall-overflow-tooltip { display: block; } .hall-overflow-tooltip a { display: block; padding: 3px 10px; color: var(--white); text-decoration: none; font-size: 0.9em; transition: background 0.1s; } .hall-overflow-tooltip a:hover { background: rgba(255, 255, 255, 0.08); color: var(--accent); } #halls-container { grid-template-columns: 1fr 1fr 1fr; } @media (max-width: 768px) { #halls-container { grid-template-columns: 1fr 1fr; } } .badge:empty { display: none; } .metadata { text-align: center; display: grid; grid-template-columns: 1fr 1fr 1fr; background-color: var(--metadata-bg); border: 1px solid #363636; border-top: none; z-index: 1; position: relative; } #themeselector { color: var(--white); border: 0; margin: 0; padding: 0; font-family: var(--font); background-color: var(--metadata-bg); text-align: center; } .badge-dark, #themeselector { background-color: var(--badge-bg); border: 1px solid var(--black); /*margin: 5px;*/ } .badge.badge-dark.image-source { white-space: normal; word-wrap: anywhere; } @keyframes newTagGlow { 0% { background-color: #302f2fa3; } 100% {} } .new-tag-glow { animation: newTagGlow 1s ease-out; } span#tags { grid-column: 1/4; display: inline-block; vertical-align: middle; padding-top: 2.5px; padding-bottom: 2.5px; } span#tags:empty { display: none; } .tags-inner { display: contents; } span#tags .tags-inner>span { display: inline-block; margin-top: 2.5px; margin-bottom: 2.5px; } span#tags:not(.tags-expanded) .tags-inner>span:nth-child(n+11) { display: none; } .show-tags-toggle { font-size: 0.8em; color: var(--accent); margin-top: 5px; cursor: pointer; text-decoration: underline; vertical-align: middle; } .badge-success { color: var(--white); background-color: var(--badge-sfw); padding-right: 5px; padding-left: 5px; padding-top: 1.5px; padding-bottom: 1.5px; border-radius: 3px; text-shadow: 1px 1px var(--black); text-transform: uppercase; } .badge-danger { color: var(--white); background-color: var(--badge-nsfw); padding-right: 5px; padding-left: 5px; padding-top: 1.5px; padding-bottom: 1.5px; border-radius: 3px; text-shadow: 1px 1px var(--black); text-transform: uppercase; } .badge-light { color: var(--white); background-color: var(--badge-tag); border-radius: 3px; text-shadow: 1px 1px var(--black); padding-right: 5px; padding-left: 5px; padding-top: 1.5px; padding-bottom: 1.5px; } .badge-greentext { color: #789922; text-shadow: inherit !important; background-color: #252525; } .badge-greentext .tag-name { color: #789922 !important; } .badge-german { background: linear-gradient(180deg, black 33.33%, red 33.33%, red 66.66%, yellow 66.66%) !important; } .badge-dutch { background: linear-gradient(180deg, #ad1c23 33.33%, white 33.33%, white 66.66%, #26468f 66.66%) !important; color: #000 !important; } .badge-void { background: #000 !important; color: #000 !important; } .about { padding: 10px; color: white; word-break: break-word; background: var(--navigation-links-bg); text-align: left; } @media (max-width: 999px) { .index-container { padding-left: 5px; padding-right: 5px; } } /* .pbwork box-shadow removed as per user request */ /* .navbar.pbwork::after handles the top progress bar now */ @media(max-height: 820px) { .embed-responsive-16by9::before { padding-top: 50.25%; } } @media(max-height: 755px) { .embed-responsive-16by9::before { padding-top: 45.25%; } } @media(max-height: 640px) { .embed-responsive-16by9::before { padding-top: 36.25%; } } @media(max-height: 525px) { .embed-responsive-16by9::before { padding-top: 26.25%; } } @media(max-height: 414px) { .embed-responsive-16by9::before { padding-top: 16.25%; } } @media(max-height: 300px) { .embed-responsive-16by9::before { padding-top: 14.5%; } } @media(max-width: 580px) { .embed-responsive-16by9::before { padding-top: 100%; } } @media(max-width: 555px) { .metadata { grid-template-columns: 1fr 1fr; } span#tags { grid-column: 1/3; } a#prev:focus, a#next:focus { background: var(--nav-bg); border-radius: 350px; opacity: 0.6; transition: .2s ease-in-out; } span#favs { grid-column: 1/3 !important; } } .post_source { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 20ch; display: inline-block; } audio::-webkit-media-controls { filter: invert(100%) contrast(2) opacity(95%) hue-rotate(180deg); } audio::-webkit-media-controls-timeline { filter: contrast(0); } div.about>div { float: right; max-width: 500px; margin-left: 5px; } div.about>div img { max-width: 99%; height: auto; } div.about>div p { font-size: 7pt; margin-top: 0; } /* loginform */ body[type='login'] { display: flex; justify-content: center; align-items: center; min-height: 100vh; } .login-form { display: flex; flex-direction: column; align-items: center; padding: 20px 20px; background: rgba(0, 0, 0, 0.8); border-radius: 0; border: 1px solid var(--accent); } .login-form button[type="submit"] { width: 100%; margin: 18px 0 9px 0; background: var(--bg); border: 1px solid var(--black); color: var(--white); opacity: 0.6; padding: 8px 20px; border-radius: 0; overflow: hidden; } .login-form button[type="submit"]:hover { cursor: pointer; opacity: 1; } .login-form input { background: var(--bg); border: 1px solid var(--black); padding: 5px; margin-bottom: 10px; border-radius: 0; width: max-content; max-width: 300px; } /* Markdown Styles */ .comment-content .greentext { color: #789922; font-family: monospace; display: inline-block; } .comment-content blockquote { border-left: 3px solid var(--accent); margin: 5px 0; padding-left: 10px; opacity: 0.8; } .comment-content pre { background: var(--gray); padding: 15px; border-radius: 4px; overflow-x: auto; } .comment-content code { background: var(--gray); font-family: monospace !important; } .comment-content ul, .comment-content ol { padding-left: 20px; } /* Dynamic page content (about / rules) */ .dynamic-page-content blockquote { color: #789922; border-left: 3px solid #789922; margin: 6px 0; padding-left: 10px; font-family: monospace; } .dynamic-page-content blockquote p { margin: 0; color: #789922; } .dynamic-page-content pre { background: #222; padding: 10px; border-radius: 4px; overflow-x: auto; } .dynamic-page-content code { background: #333; padding: 2px 4px; border-radius: 3px; font-family: monospace; } .dynamic-page-content ul, .dynamic-page-content ol { padding-left: 20px; } .dynamic-page-content h1, .dynamic-page-content h2, .dynamic-page-content h3, .dynamic-page-content h4 { color: var(--white); } .dynamic-page-content p { margin-top: 0; margin-bottom: 1.2em; } .dynamic-page-content p:last-child { margin-bottom: 0; } /* Emoji Picker */ .input-actions { position: relative; /* Context for picker */ } /* .emoji-picker { position: relative; width: 100%; max-width: 85vw; max-height: 300px; background: var(--dropdown-bg); border: 1px solid var(--black); padding: 10px; z-index: 1000; overflow-y: auto; display: flex; flex-wrap: wrap; gap: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); border-radius: 8px; } */ .emoji-picker { position: relative; width: 100%; max-width: 100%; max-height: 135px; background: var(--dropdown-bg); border: 1px solid var(--black); padding: 5px; z-index: 1000; overflow-y: auto; display: flex; flex-wrap: wrap; gap: 0px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); border-radius: 0px; margin-top: 5px; } .emoji-picker img { width: 60px; height: 60px; object-fit: contain; cursor: pointer; transition: transform 0.1s, background 0.1s; padding: 4px; border-radius: 4px; } .emoji-picker img:hover { transform: scale(1.1); background: rgba(255, 255, 255, 0.1); } /* User Mentions */ .mention { text-decoration: none !important; color: var(--accent); font-weight: bold; } .mention:hover { text-decoration: underline !important; } /* Mention Autocomplete Dropdown */ .mention-suggestions { position: fixed; z-index: 10001; background: #222; border: 1px solid #444; border-radius: 4px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); max-height: 200px; overflow-y: auto; font-family: var(--font); } .mention-suggestion-item { display: flex; align-items: center; padding: 8px 12px; cursor: pointer; border-bottom: 1px solid #333; } .mention-suggestion-item:last-child { border-bottom: none; } .mention-suggestion-item.active, .mention-suggestion-item:hover { background: #333; } .mention-suggestion-item img { width: 24px; height: 24px; border-radius: 50%; margin-right: 10px; object-fit: cover; } .mention-name { font-weight: bold; color: #eee; margin-right: 8px; } .mention-display { font-size: 0.85em; color: #888; } .external-link-icon { font-size: 0.65em; margin-left: 4px; vertical-align: middle; position: relative; top: -1px; } /* ── Inline emoji autocomplete dropdown ── */ .emoji-autocomplete { position: fixed; /* set by JS via getBoundingClientRect */ z-index: 9999; background: var(--dropdown-bg, #1a1a1a); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 6px; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.6); flex-direction: column; max-height: 220px; overflow-y: auto; padding: 4px; gap: 2px; overscroll-behavior: contain; } .emoji-ac-item { display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 4px; cursor: pointer; transition: background 0.1s; user-select: none; } .emoji-ac-item:hover, .emoji-ac-item.active { background: rgba(255, 255, 255, 0.1); } .emoji-ac-item img { width: 24px; height: 24px; object-fit: contain; flex-shrink: 0; } .emoji-ac-item span { font-size: 0.85em; color: var(--text-muted, #aaa); font-family: var(--font-mono, monospace); } .emoji-trigger { background: none; border: none; color: var(--white); cursor: pointer; margin-right: 5px; padding: 0 5px; vertical-align: middle; transition: text-shadow 0.2s; } .spoiler-trigger { background: black; border: none; color: var(--white); font-size: 0.85em; font-weight: bold; cursor: pointer; vertical-align: middle; } .spoiler-trigger:hover { text-decoration: underline; } /* visualizer */ canvas { position: absolute; top: 1px; /* This removes the ugly 1px line seen at the bottom when you hover over the audio element */ left: 0; bottom: 0; right: 0; height: 100%; width: 100%; pointer-events: none; } /* tags */ span#tags { display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; line-height: 1.4; padding: 5px; } input { padding: 0; margin: 0; border: none; color: #fff; background-color: var(--badge-tag); } /* Tag Autocomplete Dropdown */ .tag-ac-wrapper { position: relative; display: inline-flex; align-items: center; vertical-align: middle; padding-top: 0 !important; padding-bottom: 0 !important; } .tag-ac-wrapper form { display: flex; align-items: center; height: 100%; } .tag-ac-input { font-size: inherit; padding: 0 4px; min-width: 80px; background-color: var(--badge-tag); color: #fff; border: none; outline: none; height: 20px; line-height: normal; display: block; } .tag-ac-input::placeholder { color: rgba(255, 255, 255, 0.4); } .tag-suggestions { position: absolute; bottom: 100%; top: auto; left: 0; min-width: 220px; max-width: 320px; max-height: 260px; overflow-y: auto; background: var(--dropdown-bg, #1a1a1a); border: 1px solid var(--black, #000); border-radius: 6px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6); z-index: 1000; margin-bottom: 8px; animation: tagDropIn 0.15s ease-out; scrollbar-width: thin; scrollbar-color: var(--scrollbar-color, #555) transparent; } @keyframes tagDropIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .tag-suggestion-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; min-height: 44px; cursor: pointer; transition: background 0.12s; box-sizing: border-box; -webkit-tap-highlight-color: transparent; user-select: none; } .tag-suggestion-item:not(:last-child) { border-bottom: 1px solid rgba(255, 255, 255, 0.06); } .tag-suggestion-item:hover, .tag-suggestion-item:active, .tag-suggestion-item.active { background: rgba(255, 255, 255, 0.1); } .tag-suggestion-name { font-size: 14px; color: var(--accent, #e0e0e0); font-weight: 500; } .tag-suggestion-meta { font-size: 11px; color: rgba(255, 255, 255, 0.35); margin-left: 12px; white-space: nowrap; } @media (max-width: 555px) { .tag-suggestions { position: fixed; left: 10px; right: 10px; top: auto; bottom: 60px; min-width: unset; max-width: unset; max-height: 40vh; border-radius: 10px; } .tag-suggestion-item { min-height: 48px; padding: 12px 16px; } .tag-suggestion-name { font-size: 16px; } .tag-suggestion-meta { font-size: 12px; } } /* toasts */ div#flash { position: fixed; bottom: -28px; z-index: 999; left: 0; width: 100%; text-align: center; font-weight: bold; } div#flash.error { background-color: #fddfdf; border-bottom: 2px solid #f1a899; color: #5f3f3f; } div#flash.success { background-color: #4caf50; border-bottom: 2px solid #006018; color: #001c07; } div#flash.warn { background-color: #fffa90; border-bottom: 2px solid #dad55e; color: #777620; } /* sfw/nsfw indexpage */ div.posts>a>p { height: 100%; width: 100%; position: absolute; bottom: calc(0px - 12px); } div.posts>a>p:before { content: ""; position: absolute; right: 0; bottom: -2px; height: 13px; width: 100%; } div.posts>a[data-mode="sfw"]>p:before { background: #000000; background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(63, 196, 61, 0) 85%, rgba(63, 196, 61, 1) 100%); } div.posts>a[data-mode="nsfw"]>p:before { background: #000000; background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(227, 7, 7, 0) 85%, rgb(227, 7, 203) 100%); } div.posts>a[data-mode="nsfl"]>p::before { background: #000; background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(227, 7, 7, 0) 85%, rgb(231, 3, 3) 100%); } div.posts>a[data-mode="null"]>p::before { background: #000000; background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(63, 196, 61, 0) 85%, rgb(244, 222, 0) 100%); } div#footbar { width: 100%; text-align: center; margin-top: -30px; transition: .2s ease-in-out; user-select: none; color: transparent; } /* avatar */ img.avatar { height: auto; position: relative; width: 25px; margin: 1px; /* left: -7px; */ top: 0; border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .ranking-table img.avatar { left: 0; border-radius: 3px; display: block; margin: 0 auto; } /* log */ div.logwrap { height: auto; text-align: left; } div.logwrap>p { line-height: 0; } /* ranking page overhaul - clean tables */ .ranking-page { padding: 30px; max-width: 1200px; margin: 0 auto; } .ranking-page h1, .ranking-page h3 { color: var(--white); letter-spacing: 1px; } .ranking-wrapper { display: flex; gap: 40px; align-items: flex-start; margin-top: 30px; } @media (max-width: 992px) { .ranking-wrapper { flex-direction: column; gap: 30px; } .section-big, .section-small { width: 100%; flex: none; } } .section-big { flex: 2; } .section-small { flex: 1; display: flex; flex-direction: column; gap: 30px; } .clean-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: 15px; background: rgba(255, 255, 255, 0.02); border-radius: 6px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.05); } .clean-table th { background: rgba(255, 255, 255, 0.05); color: var(--accent); text-align: left; padding: 15px; font-size: 0.85em; text-transform: uppercase; letter-spacing: 1px; font-weight: bold; border-bottom: 2px solid var(--accent); } .clean-table td { padding: 12px 15px; vertical-align: middle; border-bottom: 1px solid rgba(255, 255, 255, 0.03); color: rgba(255, 255, 255, 0.9); line-height: 1.6; } .clean-table tbody tr:last-child td { border-bottom: none; } .clean-table tbody tr:hover { background: rgba(var(--accent-rgb), 0.03); } .rank-cell { width: 60px; font-weight: bold; color: var(--accent) !important; font-size: 1.1em; } .avatar-cell { width: 80px; } .rank-avatar { width: 36px; height: 36px; border-radius: 4px; object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.1); display: block; } .user-cell a { font-weight: bold; text-decoration: none !important; } .count-cell { font-weight: bold; text-align: right !important; } .clean-table .count-col { text-align: right !important; } .stats-box-simple { width: 100%; background: rgba(255, 255, 255, 0.03); padding: 20px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .stats-box-simple h3 { margin-top: 0; font-size: 1.1em; text-transform: uppercase; letter-spacing: 2px; border-bottom: 1px solid rgba(var(--accent-rgb), 0.3); padding-bottom: 10px; margin-bottom: 15px; } .stats-table td:first-child, .f0cks-table td:first-child { font-size: 0.9em; opacity: 0.7; } .stats-table td:last-child, .f0cks-table td:last-child { text-align: right; font-weight: bold; } /* Premium Ranking Podium */ .ranking-podium { display: flex; justify-content: center; align-items: flex-end; gap: 30px; margin: 40px 0 60px; padding: 20px; background: radial-gradient(circle at center, rgba(var(--accent-rgb), 0.1) 0%, transparent 70%); } .podium-item { display: flex; flex-direction: column; align-items: center; position: relative; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .podium-item:hover { transform: translateY(-15px); } .podium-avatar-wrapper { position: relative; margin-bottom: 20px; } .podium-avatar { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; border: 4px solid var(--accent); background: var(--black); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); display: block; margin: 0 auto; } .podium-crown { position: absolute; top: -25px; left: 50%; transform: translateX(-50%) rotate(-10deg); font-size: 2em; filter: drop-shadow(0 0 10px gold); z-index: 2; } .podium-rank-label { position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); background: var(--accent); color: var(--white); padding: 4px 15px; border-radius: 20px; font-weight: 800; font-size: 1.2em; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); z-index: 1; } .podium-info { text-align: center; } .podium-name { font-weight: 800; font-size: 1.4em; color: var(--white); text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); margin-bottom: 5px; display: block; } .podium-count { font-size: 1em; color: var(--accent); font-weight: bold; letter-spacing: 1px; } /* Rank specific podium styles */ .podium-item.rank-1 { order: 2; transform: scale(1.1); } .podium-item.rank-1:hover { transform: scale(1.15) translateY(-15px); } .podium-item.rank-2 { order: 1; } .podium-item.rank-3 { order: 3; } .rank-1 .podium-avatar { border-color: #FFD700; width: 140px; height: 140px; box-shadow: 0 0 40px rgba(255, 215, 0, 0.3); } .rank-2 .podium-avatar { border-color: #C0C0C0; width: 110px; height: 110px; box-shadow: 0 0 30px rgba(192, 192, 192, 0.2); } .rank-3 .podium-avatar { border-color: #CD7F32; width: 100px; height: 100px; box-shadow: 0 0 20px rgba(205, 127, 50, 0.1); } .rank-1 .podium-rank-label { background: linear-gradient(135deg, #FFD700, #FFA500); color: #000; } .rank-1 .podium-count { color: #FFD700; } .rank-2 .podium-rank-label { background: linear-gradient(135deg, #C0C0C0, #808080); } .rank-2 .podium-count { color: #C0C0C0; } .rank-3 .podium-rank-label { background: linear-gradient(135deg, #CD7F32, #8B4513); } .rank-3 .podium-count { color: #CD7F32; } @media (max-width: 992px) { .ranking-podium { flex-direction: column; align-items: center; gap: 50px; padding-top: 40px; } .podium-item { order: unset !important; } .podium-item.rank-1 { transform: scale(1); } } /* Responsive clean table for Ranking */ @media (max-width: 600px) { .ranking-table tr { display: grid; grid-template-areas: "rank avatar user" "rank avatar count"; grid-template-columns: 50px 70px 1fr; grid-template-rows: auto auto; gap: 0 15px; padding: 15px; align-items: center; } .rank-cell { grid-area: rank; font-size: 1.4em !important; } .avatar-cell { grid-area: avatar; padding: 0 !important; width: auto; } .user-cell { grid-area: user; padding: 0 !important; align-self: end; } .count-cell { grid-area: count; padding: 0 !important; text-align: left !important; align-self: start; opacity: 0.7; font-size: 0.9em; } .count-cell:after { content: " tags"; } .ranking-table thead { display: none; } .rank-avatar { width: 50px; height: 50px; border-radius: 50%; } .ranking-page { padding: 15px; } .ranking-wrapper { margin-top: 15px; } } .admin-icon { margin-right: 6px; color: #ffeb3b; font-size: 0.9em; } .topf0ckers { text-align: center; padding: 20px 0; } /* tags */ #tags .badge>a:first-child { color: inherit !important; text-shadow: 1px 1px black; } /* tooltips */ [tooltip] { position: relative; } [tooltip]::before, [tooltip]::after { text-transform: none; font-size: .9em; line-height: 1; user-select: none; pointer-events: none; position: absolute; display: block; visibility: hidden; opacity: 0; transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s; } [tooltip]::before { content: ''; border: 5px solid transparent; z-index: 100001; } [tooltip]::after { content: attr(tooltip); font-family: Helvetica, sans-serif; text-align: center; min-width: 3em; max-width: 70em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35); background: var(--tooltip-bg, #333); color: #fff; z-index: 100000; } [tooltip]:hover::before, [tooltip]:hover::after { visibility: visible; opacity: 1; transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0s; } [tooltip='']::before, [tooltip='']::after { display: none !important; visibility: hidden !important; } [tooltip]:not([flow])::before, [tooltip][flow^="up"]::before { bottom: 100%; border-bottom-width: 0; border-top-color: var(--tooltip-bg, #333); } [tooltip]:not([flow])::after, [tooltip][flow^="up"]::after { bottom: calc(100% + 5px); } [tooltip]:not([flow])::before, [tooltip]:not([flow])::after, [tooltip][flow^="up"]::before, [tooltip][flow^="up"]::after { left: 50%; transform: translate(-50%, -.25em); } [tooltip][flow^="down"]::before { top: 100%; border-top-width: 0; border-bottom-color: var(--tooltip-bg, #333); } [tooltip][flow^="down"]::after { top: calc(100% + 5px); } [tooltip][flow^="down"]::before, [tooltip][flow^="down"]::after { left: 50%; transform: translate(-50%, .25em); } [tooltip][flow^="left"]::before { top: 50%; border-right-width: 0; border-left-color: var(--tooltip-bg, #333); left: calc(0em - 5px); transform: translate(-.5em, -50%); } [tooltip][flow^="left"]::after { top: 50%; right: calc(100% + 5px); transform: translate(-.5em, -50%); } [tooltip][flow^="right"]::before { top: 50%; border-left-width: 0; border-right-color: var(--tooltip-bg, #333); right: calc(0em - 5px); transform: translate(.5em, -50%); } [tooltip][flow^="right"]::after { top: 50%; left: calc(100% + 5px); transform: translate(.5em, -50%); } [tooltip]:not([flow]):hover::before, [tooltip]:not([flow]):hover::after, [tooltip][flow^="up"]:hover::before, [tooltip][flow^="up"]:hover::after, [tooltip][flow^="down"]:hover::before, [tooltip][flow^="down"]:hover::after { opacity: 1; transform: translate(-50%, 0); } [tooltip][flow^="left"]:hover::before, [tooltip][flow^="left"]:hover::after, [tooltip][flow^="right"]:hover::before, [tooltip][flow^="right"]:hover::after { opacity: 1; transform: translate(0, -50%); } .timeago:hover { cursor: pointer; } /* buttons */ svg.iconset, i.iconset { display: inline-flex; align-items: center; justify-content: center; height: 20px; width: 23px; font-size: 13px; cursor: pointer; background: #312c2c; margin: 1px; padding: 1px; border: 1px outset #221d1d; position: relative; right: 2px; } svg.iconset:hover, i.iconset:hover { background: #7b7b77 !important; transition: .2s ease; } svg.iconset.active, i.iconset.active { color: var(--accent) !important; border-style: inset; } /* favorites */ span#favs { text-align: center; margin-left: 0; grid-column: 1/4; padding: 5px; margin: 5px; line-height: 0; background: var(--badge-bg); } #favs>a img { border: 2px solid var(--accent); } /* audio thumbnails */ /*a[data-mime^="audio"] { background-color: var(--accent); }*/ /* err page */ ._error_wrapper { display: flex; justify-content: center; } .err { display: grid; grid-template-rows: auto; grid-template-columns: auto; margin: 50px; background: var(--gray); max-width: 100%; width: 500px; } ._error_topbar { border-bottom: inset 2px gray; text-align: left; padding-left: 10px; } ._error_content { display: grid; grid-template-columns: auto; } ._error_content img { max-width: 100%; width: 100%; padding: 5px; margin: 0; } ._error_message { display: grid; grid-template-columns: auto; grid-template-rows: auto 1fr; margin: 5px; padding: 5px; text-shadow: 1px 1px black; text-align: center; } .err code { font-weight: bold; text-align: center; align-self: baseline; font-size: 15px; } /* Admin search css early test */ .admin-search { margin-top: 15px; display: flex; justify-content: center; } .admin-search button { background: var(--accent); border: none; color: var(--white); padding: 15px; } .admin-search button:hover { transition: .2s all; opacity: 0.7; cursor: pointer; } .admin-search input { padding: 15px; border: 1px solid var(--accent); } table img { border: 1px solid; } .results { padding: 5px; } .mview_desc { visibility: hidden; } /* fix for mobile table view in search! */ @media screen and (max-width: 650px) { .results table.table th, .results table.table td, .admin-users-table th, .admin-users-table td { display: flex; padding: 5px; margin: 5px; } .results table.table tr td:first-child, .admin-users-table tr td:first-child { float: right; } .results table.table tbody td, .admin-users-table tbody td { display: block; box-shadow: 0px 1px 0px var(--accent); } .results table.table tbody td:before, .admin-users-table tbody td:before { content: attr(data-th); display: block; text-align: left; } .results table thead, .admin-users-table thead { display: none; } .results table.table td img { position: relative; width: 100%; } .mview_desc { visibility: visible; } } /* gapRight icon colors: white for all, pink for favorites */ .gapRight i.iconset { color: #fff !important; fill: #fff !important; } .gapRight #a_favo { color: #ff6b9d !important; fill: #ff6b9d !important; } /* pin icon */ .iconset#a_pin { color: inherit; fill: inherit; } .iconset#a_pin::before { display: inline-block; transition: transform 0.25s ease; } /* pinned: rotate just the glyph so tip points down – "pushed into the board" */ .iconset#a_pin.active::before { transform: rotate(-45deg); } .iconset#subscribe-btn { border-style: outset; } .imageDoor:hover:after { content: ""; background-image: var(--hover-image); height: 128px; width: 128px; display: inline-block; position: absolute; z-index: 999; } /* Fix for navbar on mobile devices */ @media (max-width: 768px) { .navbar-nav { display: grid !important; grid-template-rows: 1fr 1fr; grid-template-columns: 1fr 1fr 1fr; grid-gap: 0.25em; } } /* Navbar Rework */ .navbar-nav-guests { width: 100%; display: flex; flex-direction: column; padding: 5px 0 5px 0; margin-bottom: 0; list-style: none; margin: 0; margin-right: 0px; margin-left: 0px; align-self: center; margin-left: .5rem; margin-right: .5rem; } .navbar-expand-lg .navbar-nav-guests { flex-direction: row; } ul.navbar-nav-guests li.nav-item { margin-right: .5rem; } .navbar-expand-lg .navbar-nav-guests .nav-link, .pagination>a, .pagination>span { padding-right: .5rem; padding-left: .5rem; } @media (max-width: 768px) { ul.navbar-nav-guests { display: grid !important; grid-template-columns: 1fr 1fr; grid-gap: .25em; margin: 0; padding: 5px; } ul.navbar-nav-guests li.nav-item { margin-right: unset; } .nav-link.user { justify-content: left; } } .navigation-links-guest { justify-content: center; display: grid; grid-template-columns: 1fr; align-content: center; width: 100%; } /* Pagination Responsiveness */ @media (max-width: 799px) { .navbar-expand-lg .navbar-nav-guests .nav-link, .pagination>a, .pagination>span { padding-right: 2px; padding-left: 2px; } .pagination>a, .pagination>span { margin-right: 2px; margin-left: 2px; } .pagination { justify-content: center !important; } } /* f0ckgle */ .f0ckgle { display: grid; align-content: center; height: auto; } .search-title { text-align: center; font-size: xxx-large; } .admin-search input { padding: 15px; border: 1px solid var(--accent); min-width: 30%; } .profile_head_avatar { margin: 0; } .profile_head_username { font-weight: bold; padding-left: 5px; } .layersoffear { display: grid; } .user_content_wrapper { display: grid; grid-template-columns: 1fr 1fr; grid-column-gap: 5px; padding: 5px; } .f0cks h5, .favs h5 { background: var(--dropdown-bg); } .uploads-header, .favs-header { display: grid; grid-template-columns: 1fr auto; background: var(--img-border-color); padding: 0px 5px 0px 5px; } div.user-uploads div.posts { padding: 5px; background: var(--dropdown-bg); } div.favs div.posts { padding: 5px; background: var(--dropdown-bg); } #bg { position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; -webkit-filter: blur(100px); filter: blur(100px); transform: translate3d(0, 0, 0); z-index: 0; transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0.2; z-index: -2; } button#togglebg { display: inline; cursor: pointer; background: transparent; border: 0; } @keyframes fadeInFX { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fadeOutFX { 0% { opacity: 1; } 100% { opacity: 0; } } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 0.2; } } @keyframes fadeOut { 0% { opacity: 0.2; } 100% { opacity: 0; } } .fader-in { /*opacity: 0.4 !important;*/ /* default */ opacity: 0.1 !important; /* darker */ } .fader-out { opacity: 0 !important; } .fast-fade { transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important; } .grid-transition { opacity: 0; } .grid-transition.show { opacity: 1 !important; transition: opacity 0.3s ease-in-out; } /* Fix double transition: disable individual item entry animation when the whole grid is fading in, except for pinning animations */ .posts.grid-transition a:not(.anim-boxshadow) { animation: none; } /* ─── Posts Grid Skeleton: shimmer on real items while thumbnail loads ─────── */ div.posts>a.lazy-thumb:not(.loaded) { background: linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.10) 40%, rgba(255, 255, 255, 0.04) 80%); background-size: 600px 100%; animation: skeleton-shimmer 1.6s ease-in-out infinite; } /* Stagger shimmer phases so items feel alive individually */ div.posts>a.lazy-thumb:not(.loaded):nth-child(3n+2) { animation-delay: 0.2s; } div.posts>a.lazy-thumb:not(.loaded):nth-child(3n+3) { animation-delay: 0.4s; } /* Make individual item entry subtler and faster for infinite scroll */ @keyframes fadeInFX { 0% { opacity: 0; } 100% { opacity: 1; } } img#f0ck-image, div.imageDoor, div.posts a, video { animation: 0.4s ease-out 0s 1 fadeInFX; } .settings { display: grid; justify-content: center; } /* Touch-friendly font-size slider */ #font_size_slider { -webkit-appearance: none; appearance: none; height: 6px; border-radius: 3px; background: var(--nav-border-color, #555); outline: none; touch-action: manipulation; /* prevent scroll stealing */ cursor: pointer; } #font_size_slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%; background: var(--accent, #e91e63); cursor: grab; border: 3px solid var(--white, #fff); box-shadow: 0 2px 6px rgba(0, 0, 0, .45); transition: transform .1s; } #font_size_slider::-webkit-slider-thumb:active { transform: scale(1.2); cursor: grabbing; } #font_size_slider::-moz-range-thumb { width: 28px; height: 28px; border-radius: 50%; background: var(--accent, #e91e63); cursor: grab; border: 3px solid var(--white, #fff); box-shadow: 0 2px 6px rgba(0, 0, 0, .45); transition: transform .1s; } #font_size_slider::-moz-range-thumb:active { transform: scale(1.2); cursor: grabbing; } input[name="i_avatar"] { text-align: center; width: 50px; padding: 10px; } input#s_avatar { padding: 5px; border: 1px solid var(--black); border-radius: 0; background-image: linear-gradient(to bottom, var(--nav-link-background-linear-gradient)); box-shadow: var(--nav-link-box-shadow); cursor: pointer; } #s_avatar:hover { background: #ffffff0f; } .theforceofthree { display: grid; grid-template-columns: 0.4fr 1fr 0.4fr; } .upload { padding: 10px; } /* Infinite scroll loading indicator */ .loading-spinner { display: inline-block; font-size: 12px; color: var(--footbar-color); animation: pulse 1s ease-in-out infinite; } @keyframes pulse { 0%, 100% { opacity: 0.1; } 50% { opacity: 1; } } /* Modern Tags Layout */ .tags-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; padding: 20px 0; } .tag-card { display: flex; flex-direction: column; background: var(--badge-bg, #171717); border-radius: 0; overflow: hidden; text-decoration: none !important; transition: transform 0.2s, box-shadow 0.2s; border: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.1)); position: relative; } .tag-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4); background: var(--dropdown-bg, #232323); border-color: var(--accent, #9f0); } .tag-card-image { width: 100%; height: 100px; overflow: hidden; position: relative; background: #000; } .tag-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; opacity: 0.8; } .tag-card:hover .tag-card-image img { transform: scale(1.1); opacity: 1; } .tag-card-image-title { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.1em; font-weight: 700; font-family: var(--font, monospace); color: #fff; text-align: center; padding: 0 10px; letter-spacing: 0.04em; text-transform: uppercase; text-shadow: 0 0 8px rgba(0, 0, 0, 0.9), 0 1px 3px rgba(0, 0, 0, 0.8), 0 0 24px rgba(0, 0, 0, 0.7); background: linear-gradient(to bottom, transparent 0%, transparent 35%, rgba(0, 0, 0, 0.4) 100%); transition: letter-spacing 0.25s, font-size 0.25s; pointer-events: none; } .tag-card:hover .tag-card-image-title { font-size: 1.18em; letter-spacing: 0.1em; } /* Hall rating badge */ .hall-rating-badge { position: absolute; bottom: 6px; left: 8px; font-size: 0.65em; font-weight: 800; font-family: var(--font, monospace); letter-spacing: 0.08em; padding: 2px 6px; border-radius: 2px; pointer-events: none; text-transform: uppercase; line-height: 1.4; z-index: 2; } .hall-rating-sfw { background: rgba(0, 180, 80, 0.85); color: #fff; border: 1px solid rgba(0, 255, 100, 0.3); } .hall-rating-nsfw { background: rgba(220, 40, 60, 0.85); color: #fff; border: 1px solid rgba(255, 60, 80, 0.3); } .hall-rating-nsfl { background: rgba(80, 0, 120, 0.9); color: #e0b0ff; border: 1px solid rgba(160, 60, 200, 0.4); } .tag-card-content { padding: 15px; display: flex; flex-direction: column; gap: 5px; } .tag-name { color: var(--white, #fff); font-weight: bold; font-size: 1.1em; font-family: var(--font, monospace); } .tag-count { color: #888; font-size: 0.9em; } .tag-description { display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.85em; color: #aaa; line-height: 1.4; word-break: break-word; } /* Search Overlay */ #search-overlay, #excluded-tags-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.9); backdrop-filter: blur(5px); z-index: 10000; display: none; align-items: center; justify-content: center; padding: 20px; opacity: 0; transition: opacity 0.2s ease-in-out; } #search-overlay.visible, #excluded-tags-overlay.visible { opacity: 1; } #search-input { background: transparent; border: none; border-bottom: 2px solid var(--accent); color: var(--white); font-size: 3rem; width: 100%; max-width: 800px; text-align: center; outline: none; font-family: var(--font); padding: 10px; } #search-input::placeholder { color: #555; text-transform: uppercase; } #search-close, #excluded-tags-close { position: absolute; top: 20px; right: 30px; color: var(--white); font-size: 2rem; cursor: pointer; font-family: sans-serif; opacity: 0.7; transition: opacity 0.2s; } #search-close:hover, #excluded-tags-close:hover { opacity: 1; } /* Delete Tag Modal */ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(5px); z-index: 10001; display: flex; align-items: center; justify-content: center; } .modal-content { background: var(--dropdown-bg); border: 1px solid var(--nav-border-color); padding: 30px; border-radius: 0; text-align: center; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); min-width: 300px; } .modal-content h3 { margin-top: 0; color: var(--white); } .modal-content p { color: #ccc; margin: 20px 0; } .modal-actions { display: flex; justify-content: center; gap: 15px; } .modal-actions button { padding: 10px 20px; border: none; border-radius: 0; cursor: pointer; font-weight: bold; font-family: var(--font); } .btn-danger { background: #e74c3c; color: white; } .btn-danger:hover { background: #c0392b; } .btn-secondary { background: #555; color: white; } .btn-secondary:hover { background: #666; } /* Nav User Dropdown */ .nav-user-dropdown { position: relative; margin-left: 5px; } .nav-mime-dropdown { position: relative; display: inline-block; } .nav-mime-btn { background: none; border: 1px solid rgba(255, 255, 255, 0.2); color: var(--white); padding: 5px 5px; font-size: 0.8em; font-weight: bold; cursor: pointer; border-radius: 3px; transition: all 0.2s; display: flex; align-items: center; gap: 5px; min-width: 50px; justify-content: center; opacity: 0.8; } .nav-mime-btn:hover { background: rgba(255, 255, 255, 0.1); opacity: 1; } .nav-mime-btn::after { content: ''; position: absolute; top: 100%; left: 0; width: 100%; height: 12px; } .nav-mime-menu { display: none; position: absolute; top: calc(100% + 5px); left: 0; background: var(--dropdown-bg); min-width: 150px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4); z-index: 1000; border-radius: 0; border: 1px solid var(--nav-border-color); overflow: hidden; } .nav-mime-dropdown:hover .nav-mime-menu, .nav-mime-dropdown.stay-open .nav-mime-menu { display: block; } .nav-mime-item { color: #ccc; padding: 10px 15px; display: flex; align-items: center; gap: 10px; font-size: 0.9em; transition: all 0.2s; cursor: pointer; user-select: none; } .nav-mime-item:hover { background: rgba(255, 255, 255, 0.05); color: var(--accent); } .nav-mime-item input[type="checkbox"] { accent-color: var(--black); cursor: pointer; } .nav-mime-divider { height: 1px; background: rgba(255, 255, 255, 0.1); margin: 5px 0; } .nav-mime-clear { background: transparent; border: none; color: #888; padding: 8px 15px; width: 100%; text-align: left; font-size: 0.8em; cursor: pointer; transition: all 0.2s; } .nav-mime-clear:hover { color: #fff; background: rgba(255, 255, 255, 0.05); } .nav-mime-menu.visible { display: block; animation: fadeInDown 0.2s ease-out; } .nav-mime-menu a { color: #ccc; padding: 10px 15px; text-decoration: none; display: flex; align-items: center; gap: 10px; font-size: 0.9em; transition: all 0.2s; } .nav-mime-menu a:hover { background: rgba(255, 255, 255, 0.05); color: var(--accent); } .nav-mime-menu a svg { opacity: 0.7; } .nav-mime-menu a:hover svg { opacity: 1; } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .nav-user-btn { background: none; border: 1px solid rgba(255, 255, 255, 0.2); color: var(--white); padding: 5px 5px; font-size: 0.8em; font-weight: bold; cursor: pointer; border-radius: 3px; transition: all 0.2s; display: flex; align-items: center; gap: 5px; min-width: 50px; justify-content: center; opacity: 0.8; } .nav-user-btn:hover { background: rgba(255, 255, 255, 0.1); } /* Avatar-style button variant */ .nav-avatar-btn { background: none; border: 1px solid transparent; min-width: unset; border-radius: 3px; line-height: 1; opacity: 1; display: flex; align-items: center; gap: 6px; transition: border-color 0.2s, background 0.2s; } .nav-avatar-btn:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.15); transform: none; box-shadow: none; } .nav-avatar-btn.is-active { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.15); border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .nav-avatar-btn.is-active .nav-avatar-caret { transform: rotate(180deg); } .nav-avatar-caret { transition: transform 0.2s ease; } .nav-avatar-img { display: block; width: 22px; height: 22px; object-fit: cover; flex-shrink: 0; } .nav-avatar-name { font-size: 14px; color: var(--white); white-space: nowrap; max-width: 140px; text-overflow: ellipsis; } .nav-avatar-caret { font-size: 0.7em; opacity: 0.6; flex-shrink: 0; } .nav-user-btn::after { content: ''; position: absolute; top: 100%; left: 0; width: 100%; height: 10px; } .nav-user-menu { display: none; position: absolute; top: calc(100%); left: auto; right: 0; min-width: 100%; /* at least as wide as the avatar button */ background: var(--dropdown-bg); border: 1px solid var(--nav-border-color); border-radius: 0; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); z-index: 10000; overflow: hidden; } .nav-user-menu.show { display: block; } .nav-user-menu a { display: block; padding: 10px 15px; color: var(--white); text-decoration: none; transition: background 0.2s; } .nav-user-menu a:hover { background: rgba(255, 255, 255, 0.1); } .nav-user-divider { height: 1px; background: var(--nav-border-color); margin: 5px 0; } /* nav-links base: horizontal flex row on desktop */ .nav-links { display: flex; align-items: center; gap: 10px; padding-left: 5px; } .nav-links a { color: var(--white); text-decoration: none; font-size: 14px; opacity: 0.8; transition: opacity 0.2s; } .nav-links a:hover { opacity: 1; } .nav-links svg { vertical-align: middle; } /* Login Modal */ #login-modal, #register-modal, #shortcuts-modal { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.85); /* Semi-transparent black backdrop */ z-index: 99999; display: flex; /* Hidden by default via inline style usually, or JS toggles class */ justify-content: center; align-items: center; padding: 20px; backdrop-filter: blur(5px); } .flash-success { color: var(--accent); background: var(--bg); border: 1px solid var(--accent); padding: 10px; margin-bottom: 15px; font-size: 0.9em; text-align: center; } .flash-error { color: #ff4444; background: var(--bg); border: 1px solid #ff4444; padding: 10px; margin-bottom: 15px; font-size: 0.9em; text-align: center; } #flash-container { position: fixed; top: 70px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 600px; z-index: 10001; display: flex; flex-direction: column; gap: 10px; pointer-events: none; } .flash-message { background: var(--bg); padding: 15px 20px; border-radius: 0; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6); animation: slideDown 0.3s ease-out; pointer-events: auto; font-size: 0.95em; border: 1px solid var(--accent); } @keyframes slideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .flash-message.flash-success { border-color: var(--accent); color: var(--accent); } .flash-message.flash-error { border-color: #ff4444; color: #ff4444; } .flash-message.flash-info { border-color: #f0a030; color: #f0a030; } .login-modal-content { background: var(--bg); border: 1px solid var(--accent); border-radius: 0; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); max-width: 400px; width: 100%; position: relative; text-align: center; } .login-modal-content { max-height: 90vh; overflow-y: auto; display: flex; flex-direction: column; scrollbar-width: thin; scrollbar-color: var(--accent) transparent; } .login-modal-content .login-form { display: flex; flex-direction: column; gap: 15px; background: transparent; /* Override default login-form bg if needed */ } .login-modal-content .login-image { max-width: 100%; margin-bottom: 1rem; border-radius: 0; } .login-notice { background: rgba(var(--accent-rgb), 0.1); border: 1px solid var(--accent); padding: 12px; margin-bottom: 15px; font-size: 0.85em; color: var(--white); text-align: left; line-height: 1.5; border-radius: 2px; } .notification-dot { width: 10px; height: 10px; background-color: #39ff14; /* Matrix neon green */ border-radius: 50%; display: inline-block; margin-left: 5px; box-shadow: 0 0 5px #39ff14; } .login-modal-content input[type="text"], .login-modal-content input[type="email"], .login-modal-content input[type="password"] { width: 100%; padding: 10px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--nav-border-color); color: var(--white); font-family: var(--font); } .login-modal-content input:focus { border-color: var(--accent); outline: none; } .login-modal-content button[type="submit"] { background: var(--accent); color: var(--black); border: none; padding: 10px; font-weight: bold; cursor: pointer; font-family: var(--font); margin-top: 10px; } .login-modal-content button[type="submit"]:hover { filter: brightness(1.1); } #login-modal-close, #register-modal-close, #shortcuts-modal-close { position: absolute; top: 10px; right: 15px; background: none; border: none; color: var(--white); font-size: 1.5rem; cursor: pointer; opacity: 0.7; } #login-modal-close:hover, #register-modal-close:hover { opacity: 1; color: var(--accent); } /* Comments System */ /* Primary definition moved up to line 1082 to avoid overrides */ video.autoplay-gif { background: rgba(0, 0, 0, 0) !important; } #comments-container { color: var(--white); font-family: var(--font); background: rgba(0, 0, 0, 0.2); } /* Definitions consolidated at line 1099 */ .comment { padding: 10px; background: rgba(0, 0, 0, 0.2); display: flex; gap: 15px; margin-bottom: 0px; } .comment.deleted .comment-content { color: #888; font-style: italic; } .comment-avatar img { width: 40px; height: 40px; } .comment-body { flex: 1; min-width: 0; } /* .comment-meta styles moved to earlier consolidation block */ .comment-author { font-weight: bold; color: var(--white); margin-right: 3px; align-self: baseline; } .comment-permalink { color: #666; text-decoration: none; } .comment-content { line-height: 1.4; word-break: break-word; overflow: auto; white-space: pre-wrap; } /* .reply-btn consolidated earlier */ /* .comment-children consolidated earlier */ .comment-input textarea { width: 100%; min-height: 80px; background: #000000a1; border: none; color: var(--white); padding: 10px; border-radius: 4px; font-family: inherit; resize: vertical; } .input-actions { margin-top: 5px; text-align: right; } .submit-comment, .cancel-reply { background: var(--accent); color: var(--black); border: none; padding: 6px 12px; border-radius: 3px; cursor: pointer; font-weight: bold; opacity: 0.8; } .submit-comment:hover, .cancel-reply:hover { opacity: 1; } .cancel-reply { background: #666; color: white; margin-left: 5px; } .comment-input.reply-input { margin-top: 10px; margin-bottom: 10px; } .loading, .error { text-align: center; padding: 20px; color: #888; } .login-placeholder { padding: 15px; text-align: center; background: rgba(0, 0, 0, 0.1); margin-bottom: 5px; } /* Markdown Styles */ .comment-content .greentext { color: #789922; font-family: monospace; display: inline-block; } .comment-content blockquote { border-left: 3px solid var(--accent); margin: 5px 0; padding-left: 10px; opacity: 0.8; } .comment-content ul, .comment-content ol { padding-left: 20px; } .comment-content a { color: #1fb2b0; } .comment-content a:hover { text-decoration: underline; } /* YouTube embed wrapper */ .yt-embed-wrap { display: block; position: relative; width: 100%; max-width: 480px; margin: 8px 0; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5); } .yt-embed-wrap::before { content: ''; display: block; padding-top: 56.25%; /* 16:9 */ } .yt-embed-wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; } /* Same-site video embed wrapper */ .video-embed-wrap { display: block; position: relative; width: 100%; max-width: 480px; margin: 8px 0; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5); background: #000; } .video-embed-wrap:has(.autoplay-gif) { background: transparent; box-shadow: none; } .video-embed-wrap video { width: 100%; display: block; max-height: 500px; background: #000; } /* Same-site audio embed wrapper */ .audio-embed-wrap { display: block; width: 100%; max-width: 480px; margin: 8px 0; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.3); padding: 6px 8px; position: relative; } .image-embed-wrap { position: relative; display: inline-block; max-width: 100%; } .admin-delete-attachment-btn { position: absolute; top: 5px; right: 5px; background: rgba(0, 0, 0, 0.6); color: #ff4d4d; border: none; border-radius: 3px; padding: 3px 6px; cursor: pointer; font-size: 11px; font-family: monospace; z-index: 10; opacity: 0; pointer-events: none; transition: opacity 0.2s ease-in-out, background 0.2s; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); } .image-embed-wrap:hover .admin-delete-attachment-btn, .video-embed-wrap:hover .admin-delete-attachment-btn, .audio-embed-wrap:hover .admin-delete-attachment-btn { opacity: 1; pointer-events: auto; } .admin-delete-attachment-btn:hover { background: rgba(0, 0, 0, 0.8); color: #ff6666; } .admin-delete-attachment-btn:active { transform: scale(0.95); } .audio-embed-wrap audio { width: 100%; display: block; outline: none; } /* Vocaroo embed wrapper */ .vocaroo-embed-wrap { display: block; width: 100%; max-width: 300px; height: 60px; margin: 8px 0; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.5); background: #000; } .vocaroo-embed-wrap iframe { width: 100%; height: 100%; border: none; } @media (max-width: 600px) { .yt-embed-wrap, .video-embed-wrap, .audio-embed-wrap { max-width: 100%; } } #comment-sor, #lock-thread-btn { background: none; border: none; } /* Admin buttons consolidated earlier in the file */ /* Edit mode */ .edit-textarea { width: 100%; min-height: 80px; background: var(--bg); border: 1px solid var(--accent); color: var(--white); padding: 10px; border-radius: 4px; font-family: inherit; resize: vertical; margin-bottom: 8px; } .edit-actions { display: flex; gap: 8px; } .save-edit-btn, .cancel-edit-btn { padding: 6px 12px; border: none; border-radius: 3px; cursor: pointer; font-weight: bold; } .save-edit-btn { background: var(--accent); color: var(--black); } .cancel-edit-btn { background: #666; color: white; } /* Pinned comments */ .comment.pinned { background: rgba(var(--accent-rgb, 153, 255, 0), 0.1); border-left: 3px solid var(--accent); } .pinned-badge { background: var(--accent); color: var(--black); padding: 2px 6px; border-radius: 3px; font-size: 0.75em; font-weight: bold; margin-right: 8px; } /* .admin-pin-btn consolidated earlier */ /* Two-level comment replies */ .comment-replies { margin-left: 5px; border-left: 2px solid var(--badge-tag); padding-left: 5px; margin-top: 0px; } .comment.reply { background: rgba(0, 0, 0, 0.1); } .reply-mention { color: var(--accent); font-weight: bold; margin-right: 4px; } .submanage { text-align: center; border-top: 1px solid black; } /* AJAX Loading Bar */ .navbar.pbwork::after { content: ""; position: absolute; top: 0; left: 0; height: 3px; background: var(--accent); z-index: 2000; animation: pbwork-anim 2s infinite linear; width: 100%; transform-origin: 0% 50%; } @keyframes pbwork-anim { 0% { transform: scaleX(0); } 50% { transform: scaleX(0.5); } 100% { transform: scaleX(1); } } /* Session Page Grid Layout */ .session-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; padding: 20px; } .session-card { background: var(--nav-bg); border: 1px solid transparent; border-radius: 4px; display: flex; flex-direction: column; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } .session-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); border-color: var(--accent); } .session-card.current { border: 1px solid #2ecc71; box-shadow: 0 0 10px rgba(46, 204, 113, 0.2); } .session-card.current .session-user { color: #2ecc71; } .session-header { background: rgba(0, 0, 0, 0.2); padding: 10px 15px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .session-user { font-weight: bold; font-size: 1.1em; color: var(--accent); } .session-badges { display: flex; align-items: center; gap: 8px; } .session-id { font-family: monospace; color: #666; font-size: 0.9em; } .session-body { padding: 15px; flex-grow: 1; } .session-info { margin-bottom: 8px; font-size: 0.9em; line-height: 1.4; display: flex; flex-direction: column; } .session-info:last-child { margin-bottom: 0; } .session-info .label { font-weight: bold; color: #888; font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; } .session-info .value { color: var(--white); word-break: break-all; } .browser-info { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; font-family: monospace; font-size: 0.85em; opacity: 0.9; } .session-footer { padding: 10px 15px; background: rgba(0, 0, 0, 0.1); display: flex; gap: 10px; justify-content: flex-end; border-top: 1px solid rgba(255, 255, 255, 0.05); } .badge-kmsi { background: #333; color: #ccc; border: 1px solid #555; } span.badge.badge-current { font-weight: bold; font-size: 12.5px; margin: 5px; padding: 2px; text-transform: uppercase; } .badge-current { background: var(--accent); color: var(--black); } .session-page-title { grid-column: 1 / -1; margin: 0; padding-bottom: 10px; border-bottom: 2px solid var(--accent); color: var(--white); font-size: 1.5em; text-transform: uppercase; letter-spacing: 1px; } .session-stats { font-size: 0.6em; color: var(--accent); vertical-align: middle; margin-left: 10px; } .session-delete { color: #888; text-decoration: none; font-size: 1.2em; margin-left: auto; transition: color 0.2s; padding: 0 5px; } .session-delete:hover { color: #e74c3c; text-decoration: none; } /* Avatar Upload Styles */ .avatar-settings-wrapper { display: grid; grid-template-columns: auto 1fr; gap: 30px; background: var(--metadata-bg); border-radius: 8px; margin-bottom: 20px; } .avatar-preview-container { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-left: 10px; } .avatar-preview-label { font-size: 0.85em; color: #888; text-transform: uppercase; letter-spacing: 1px; } .avatar-preview-img { width: 128px; height: 128px; object-fit: cover; border: 3px solid var(--accent); transition: transform 0.3s ease, box-shadow 0.3s ease; } .avatar-placeholder { display: flex; align-items: center; justify-content: center; background: var(--gray); color: #666; font-size: 3em; font-weight: bold; } .avatar-upload-section, .avatar-item-section { display: flex; flex-direction: column; gap: 12px; } .avatar-upload-section h4, .avatar-item-section h4 { margin: 0; color: var(--white); font-size: 1em; border-bottom: 1px solid var(--accent); padding-bottom: 5px; } .avatar-hint { margin: 0; font-size: 0.8em; color: #666; } .avatar-upload-wrapper { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .avatar-filename { color: #888; font-size: 0.9em; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .avatar-progress-wrapper { display: flex; align-items: center; gap: 10px; } .avatar-progress-bar { flex: 1; height: 8px; background: var(--gray); border-radius: 4px; overflow: hidden; position: relative; } .avatar-progress-fill { height: 100%; width: 0%; background: linear-gradient(90deg, var(--accent), #4ade80); border-radius: 4px; transition: width 0.15s ease; position: relative; } .avatar-progress-fill::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); animation: shimmer 1.5s infinite; } @keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } .avatar-progress-text { font-size: 0.85em; color: var(--accent); min-width: 40px; text-align: right; font-family: monospace; } .avatar-upload-actions { display: flex; gap: 10px; flex-wrap: wrap; } .avatar-status { font-size: 0.9em; padding: 5px 0; min-height: 1.5em; } .avatar-status.success { color: #4ade80; } .avatar-status.error { color: #ef4444; } .avatar-item-input-wrapper { display: flex; gap: 10px; align-items: center; } .avatar-item-input-wrapper .input { flex: 1; max-width: 150px; } .button { padding: 8px 16px; background: var(--accent); color: var(--black); border: none; border-radius: 4px; cursor: pointer; font-family: inherit; font-size: 0.9em; transition: background 0.2s ease, transform 0.1s ease, opacity 0.2s ease; } .button:hover:not(:disabled) { filter: brightness(1.1); transform: translateY(-1px); } .button:active:not(:disabled) { transform: translateY(0); } .button:disabled { opacity: 0.5; cursor: not-allowed; } .button-danger { background: #ef4444; color: white; } .button-danger:hover:not(:disabled) { background: #dc2626; } .button-secondary { background: #6b7280; color: white; } .button-secondary:hover:not(:disabled) { background: #4b5563; } .git-hash { font-size: 10px; color: #666; user-select: none; text-align: center; align-content: center; } #help-button { padding: 5px; cursor: pointer; } .comment-content img { max-height: 200px; max-width: 100%; border-radius: 4px; } .sidebar-comment-img { max-height: 128px !important; } .sidebar-comment-img.emoji { height: auto; max-width: 60px !important; vertical-align: middle; } .sidebar-activity .video-embed-wrap { display: block; max-width: 100%; box-shadow: none; margin: 4px 0; } .sidebar-video-link { display: block; font-size: 0.8em; color: var(--accent); text-decoration: none; margin: 4px 0; font-style: italic; } .sidebar-video-link .yt-title { font-weight: 500; } .sidebar-video-link i { margin-right: 4px; } .sidebar-video-link:hover { text-decoration: underline; } .sidebar-comment-img.emoji { width: auto; display: inline-block; vertical-align: middle; height: min-content; } .comment-content img:not(.emoji) { display: block; cursor: pointer; } /* Smaller emojis in the narrow left sidebar */ body.layout-modern .comment-content img.emoji { height: auto; max-width: 60px !important; vertical-align: middle; } @keyframes flashGreen { 0% { background-color: rgba(var(--accent-rgb), 0.3); } 100% { background-color: var(--item-bg); } } @keyframes newItemFlash { 0% { border-left-color: var(--accent); background: rgba(var(--accent-rgb), 0.15); } 60% { border-left-color: var(--accent); background: rgba(var(--accent-rgb), 0.05); } 100% { border-left-color: transparent; background: transparent; } } .new-item-fade { animation: newItemFlash 2.5s ease forwards; border-left: 3px solid transparent; } .sidebar-activity .new-item-fade { border-left: none; animation: none; } /* Comment posted by the current user — fades in + accent border that auto-disappears */ @keyframes commentEnter { 0% { opacity: 0; transform: translateY(6px); border-left-color: var(--accent); background: rgba(var(--accent-rgb), 0.15); } 20% { opacity: 1; transform: translateY(0); border-left-color: var(--accent); background: rgba(var(--accent-rgb), 0.15); } 60% { background: rgba(var(--accent-rgb), 0.05); } 70% { border-left-color: var(--accent); background: transparent; } 100% { border-left-color: transparent; } } .comment-entering { animation: commentEnter 7.5s ease forwards; border-left: 3px solid transparent; } .comment-highlighted { border-left: 3px solid var(--accent) !important; background: rgba(17, 17, 17, 0.55) !important; } @keyframes activityGlow { 0% { color: var(--accent); /* transform: scale(1); */ filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0)); } 50% { color: #1fb2b0; /* transform: scale(1.2); */ filter: drop-shadow(0 0 10px #1fb2b0); } 100% { color: var(--accent); /* transform: scale(1); */ filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0)); } } .activity-glowing { animation: activityGlow 1s ease-in-out; transform-origin: center; display: inline-block; } /* MOTD Display (Integrated into Navbar) */ .motd-container { grid-column: 1 / -1; width: 100%; background: var(--motd-bg); text-align: left; z-index: 999; border-top: 1px solid var(--nav-border-color); border-bottom: 1px solid var(--nav-border-color); font-size: 0.85em; padding: 4px 0; position: relative; order: 2; } #motd-display { text-transform: initial; } .motd-content { line-height: 1.4; /* padding: 0 30px 0 10px; */ /* Space for X button */ } #motd-display, #motd-display-guest { left: 5px; position: relative; } .motd-close { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: none; border: none; color: var(--text-muted, #888); font-size: 1.2em; cursor: pointer; padding: 0 5px; line-height: 1; transition: color 0.2s; } .motd-close:hover { color: var(--accent); } .motd-content a { color: var(--accent, #9f0); text-decoration: underline; } .motd-content a:hover { filter: brightness(1.2); } /* === SITE OVERRIDES (formerly w0bm.css) === */ .navbar-brand { display: grid; grid-template-columns: 1fr auto; } .image-brand { width: 5cm; } .kontrollelement { grid-column: 2; } .metadata { grid-template-columns: 0.4fr auto 0.4fr; grid-template-rows: auto 1fr; background-color: transparent !important; border: none !important; } html[theme="f0ck95d"] .badge-dark { border: none; background-image: none; box-shadow: none; } .steuerung { font-size: large; font-family: monospace; } .steuerung a { color: white; } .blahlol { grid-column: 1 / 4; width: 100%; } span#favs { background: transparent !important; border: none !important; } .badge-dark, #themeselector { background-color: unset; border: unset; } ._204863 { background: none; border: none; background-color: none; } html[theme="iced"] ._204863 { background: none; } .media-object { border: none; } /*.v0ck { background: transparent !important; }*/ html[theme="f0ck95"] .embed-responsive.embed-responsive-16by9 { background: var(--nav-bg) !important; } .v0ck_overlay { background-color: transparent; } .v0ck_player_controls { background: rgba(0, 0, 0, 0.95) !important; } html[theme="term"] .image-brand { filter: hue-rotate(-50deg); } html[theme="f0ck"] .image-brand { filter: hue-rotate(-50deg); } html[theme="p1nk"] .image-brand { filter: hue-rotate(150deg); } html[theme="orange"] .image-brand { filter: hue-rotate(-160deg); } .v0ck_overlay { background-color: none !important; } .tags { display: grid; } @media (min-width: 600px) { .tags { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 900px) { .tags { grid-template-columns: repeat(3, 1fr); } } .tag { box-shadow: 1px 1px 1px black; display: grid; margin: 5px; grid-template-columns: auto; grid-template-rows: 1fr; } .navigation-rechts { display: flex; } .about { background: none !important; } .login-image { width: 300px; } .tos { margin: 2em; } .nav-link[data-toggle="dropdown"]::after { content: "" !important; } /* .dropdown-menu.shii { width: auto; } */ @media (min-width: 900px) { .tags { grid-template-columns: repeat(auto-fill, 20em); justify-content: center; } } .tag img { width: 100%; } @media (max-width: 1056px) { html, body { text-align: left; max-width: 100vw; overflow-x: clip; } } html[theme="f0ck95d"] .embed-responsive.embed-responsive-16by9 { border-bottom: outset 2px silver; } html[theme="f0ck95"] .embed-responsive.embed-responsive-16by9 { border-bottom: outset 2px silver; } /* Fade in video on page load */ video { opacity: 0; animation: fadeIn 2s forwards; } @keyframes fadeIn { to { opacity: 1; } } .navbar { border-bottom: none; /* padding: 5px; */ /* testing if it works good */ } .image-brand { width: 4cm; } .pagewrapper { padding: 5px; padding-bottom: 65px; /* Reserve space for fixed pagination */ position: relative; } @media (min-width: 1200px) { .pagewrapper { padding-right: 300px; } body.sidebar-right-hidden .pagewrapper { padding-right: 5px; } } /* Since Index and Item pages have their own layout wrappers that handle space reservation, we disable the generic pagewrapper padding on those pages to avoid "double padding" or broken expansion. */ @media (min-width: 1200px) { .pagewrapper:has(.index-layout-wrapper), .pagewrapper:has(.item-layout-container), .pagewrapper:has(.meme-layout-wrapper), body.private-gate-active .pagewrapper { padding-right: 0 !important; } } .container { padding-top: 1vh; } #next, #prev { visibility: hidden; } @media (max-width: 1056px) { .navigation-links { display: grid; grid-row: 1; grid-column: 2; } .navbar-brand { grid-row: 1; grid-column: 1; } #navbarSupportedContent { grid-row: 1; grid-column: 3; } .navbar { grid-template-columns: 0fr 1fr auto !important; grid-template-rows: 1fr; } .navbar-nav { display: grid !important; grid-template-rows: auto; grid-template-columns: auto auto 1fr; grid-gap: 0.25em; } } .bg-black { background: #0000008a !important; } .pagination>a { background: #232323b2; } html[theme="paper"] .pagination { color: white; } html[theme="paper"] .navbar-brand { background: transparent; } .navbar-brand:hover { background: transparent; } div.search { display: grid; } div.sbt { display: grid; grid-template-columns: 1fr auto; align-content: center; } #sbtButton { visibility: hidden; } #sbtInput { background: #00000021; box-shadow: -1px -1px 0px #252525; border: inset 1px #0000001c; padding: revert; box-shadow: inset 0px 0px 5px 1px #0000005e; width: 100%; } .navigation-links { display: grid; grid-row: 1; grid-column: 2; grid-template-columns: auto auto 1fr; } .navigation-links-guest, ol { margin: 5px; margin-block-start: 0; margin-block-end: 0; padding-inline-start: 0; } /* === VIEW-SPECIFIC STYLES === */ /* === NAVBAR STYLES === */ /* ── Desktop layout: single flex row ── */ .navbar { position: sticky; top: 0; z-index: 1005; width: 100%; display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; /* allows motd-container to wrap to its own full-width row */ font-family: var(--font); border-bottom: 1px solid var(--nav-border-color); background: var(--nav-bg); } /* Brand: always visible, flush left */ .navbar-brand { flex-shrink: 0; display: flex; align-items: center; height: 40px; max-width: 180px; } /* Nav collapse: fills middle, always visible on desktop */ .nav-collapse { flex: 1; display: flex; align-items: center; min-width: 0; } /* Right group: flush right */ .nav-right-group { display: flex; align-items: center; gap: 20px; padding: 0 15px; flex-shrink: 0; margin-left: auto; } /* MOTD: wraps to its own full-width row below brand+links+right-group */ .motd-container { order: 999; width: 100%; flex-shrink: 0; } /* Uniform size for all Font Awesome icons in the navbar */ .navbar .fa-solid, .navbar .fa-regular, .navbar .fa { font-size: 14px; width: 14px; text-align: center; line-height: 1; } /* Hamburger button: hidden on desktop */ .navbar-toggler { display: none; flex-direction: column; justify-content: center; align-items: center; width: 32px; height: 32px; gap: 5px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 4px; cursor: pointer; padding: 4px; flex-shrink: 0; } .navbar-toggler span { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.25s ease, opacity 0.25s ease; } /* Animated X when open */ .navbar-toggler.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } .navbar-toggler.is-open span:nth-child(2) { opacity: 0; } .navbar-toggler.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } /* Icon cluster: tags / filter / search */ .nav-icon-cluster { display: flex; align-items: center; gap: 10px; padding: 0 6px; border-left: 1px solid rgba(255, 255, 255, 0.08); border-right: 1px solid rgba(255, 255, 255, 0.08); } .nav-icon-cluster a, .nav-item-rel>a, .nav-right-group>a { color: #fff; opacity: 0.75; transition: opacity 0.2s; } .nav-icon-cluster a:hover, .nav-item-rel>a:hover, .nav-right-group>a:hover { opacity: 1; } /* Right-anchor all dropdowns inside nav-right-group */ .nav-right-group .nav-user-menu { left: auto; right: 0; transform: none; } .nav-right-group .notif-dropdown { left: auto; right: 0; /* anchor to bell container right edge; JS overrides on mobile */ transform: none; } /* Shift arrow to sit directly under the bell icon */ .nav-right-group .notif-dropdown::before, .nav-right-group .notif-dropdown::after { left: auto; right: 0; transform: none; } /* Bell active state: lights up when notification dropdown is open */ #nav-notif-btn { transition: color 0.15s ease, filter 0.15s ease, transform 0.15s ease; } #nav-notif-btn.is-active { color: var(--accent); filter: drop-shadow(0 0 5px var(--accent)); opacity: 1; } /* ── Mobile: ≤768px ── */ @media (max-width: 768px) { /* Show hamburger */ .navbar-toggler { display: flex; color: white; } /* Hide desktop icon cluster */ .nav-icon-cluster { display: none; } /* On mobile: right group stays in the single top row */ .nav-right-group { gap: 15px; padding: 0 4px; margin-left: auto; } /* nav-collapse: hidden by default, opens as full-width row below brand+right */ .nav-collapse { display: none; flex: none; /* override desktop flex:1 so width:100% takes effect */ order: 10; width: 100%; flex-direction: row; flex-wrap: wrap; align-items: center; padding: 6px 8px; border-top: 1px solid rgba(255, 255, 255, 0.08); background: var(--nav-bg); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); gap: 4px; } .nav-collapse.show { display: flex; animation: navFadeIn 0.2s ease-out; } @keyframes navFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } } /* Nav links: horizontal row on mobile too */ .nav-links { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; width: 100%; gap: 4px; } .nav-links>a { display: inline-flex; align-items: center; padding: 8px 12px; font-size: 0.9em; } .nav-halls-dropdown .nav-halls-btn { display: block; padding: 13px 16px; width: 100%; text-align: left; } .nav-halls-dropdown .nav-user-menu { position: static !important; display: none; background: rgba(255, 255, 255, 0.04); box-shadow: none; border: none; right: auto; left: auto; width: 100%; } .nav-halls-dropdown:hover .nav-user-menu, .nav-halls-dropdown.is-open .nav-user-menu { display: block; } /* Avatar dropdown stays floating (absolute) on mobile */ .nav-right-group .nav-user-menu { position: absolute; } .nav-item-rel { position: relative; display: inline-flex; } } @media (max-width: 467px) { .nav-avatar-name, .nav-avatar-caret { display: none; } } .switch-container { display: inline-flex; align-items: center; margin-right: 15px; } .switch { position: relative; display: inline-block; width: 34px; height: 18px; margin-bottom: 0; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 34px; } .slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 2px; bottom: 2px; background-color: white; transition: .4s; border-radius: 50%; } input:checked+.slider { background-color: #f44336; } input:checked+.slider:before { transform: translateX(16px); } .switch-label { margin-right: 8px; font-size: 13px; color: rgba(255, 255, 255, 0.7); } .mode-selector { display: inline-flex; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 3px; overflow: hidden; vertical-align: middle; grid-column: 1; } .mode-btn { display: inline-block; background: transparent; color: rgba(255, 255, 255, 0.7); border: none; padding: 2px 8px; font-size: 11px; cursor: pointer; text-decoration: none; transition: all 0.2s; line-height: 18px; } .mode-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.1); text-decoration: none; } .mode-btn.active { background: var(--accent); color: var(--bg); font-weight: bold; } .mode-btn:not(:last-child) { border-right: 1px solid rgba(255, 255, 255, 0.2); } /* ---------- Random / Shuffle mode button ---------- */ .shuffle-btn { background: none; border: 1px solid rgba(255, 255, 255, 0.2); color: var(--white); padding: 5px 5px; font-size: 0.8em; font-weight: bold; cursor: pointer; border-radius: 3px; transition: all 0.2s; display: flex; align-items: center; gap: 5px; min-width: 50px; justify-content: center; opacity: 0.8; grid-row: 2; } .shuffle-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.4); opacity: 1; } .shuffle-btn.active { background: var(--accent); color: var(--bg, #000); border-color: rgba(255, 255, 255, 0.2); font-weight: bold; } @keyframes shuffle-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .shuffle-btn.is-shuffling .shuffle-icon { display: inline-block; animation: shuffle-spin 0.4s ease-out; } .notif-footer { padding: 10px; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.05); background: rgba(0, 0, 0, 0.2); } .view-all-notifs { color: var(--accent) !important; font-size: 11px; text-transform: uppercase; font-weight: bold; letter-spacing: 0.5px; } .view-all-notifs:hover { text-decoration: underline !important; } /* ---------- footer.html styles ---------- */ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 10000; } body.modal-open { overflow: hidden; } .modal-content { background: #222; padding: 20px; width: 90%; max-width: 400px; color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); } .modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 15px; } textarea.mod-reason { width: 100%; height: 80px; margin-top: 10px; background: #333; color: #fff; border: 1px solid #444; resize: vertical; padding: 5px; } .error-msg { color: #ff6b6b; font-size: 0.9em; margin-top: 5px; display: none; } /* ---------- notifications.html styles ---------- */ .notif-history-container { max-width: 760px !important; margin: 0 auto; padding: 20px 10px; } .notif-page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding: 5px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .notif-page-header h2 { font-size: 0.9em; margin: 0; text-transform: uppercase; letter-spacing: 2px; color: #777; } .notifications-list-full.posts { display: grid !important; grid-template-columns: 1fr; gap: 0 !important; width: 100% !important; border: 1px solid rgba(255, 255, 255, 0.05); background: rgba(0, 0, 0, 0.1); border-radius: 4px; overflow: hidden; margin: 0 !important; padding: 0 !important; } .notif-reason { font-size: 0.85em; color: #ffb8b8; margin-top: 4px; } .notifications-page .notif-item { display: grid !important; grid-template-columns: auto 1fr; width: 100%; align-items: center; padding: 8px 15px; text-decoration: none; color: #999; border-bottom: 1px solid rgba(255, 255, 255, 0.02); font-size: 0.9em; transition: all 0.1s; } .notifications-page .notif-item:last-child { border-bottom: none; } .notifications-page .notif-item:hover { background: rgba(255, 255, 255, 0.04); color: #eee; } .notifications-page .notif-item.unread { background: rgba(var(--accent-rgb, 31, 178, 176), 0.03); color: #eee; border-left: 2px solid var(--accent, #1fb2b0); font-weight: 500; grid-template-columns: auto; } .notif-user { font-weight: bold; color: #bbb; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notif-item.unread .notif-user { color: var(--accent, #1fb2b0); } .notif-msg { white-space: wrap; overflow: hidden; text-overflow: ellipsis; } .notif-time { font-family: monospace; font-size: 0.8em; color: #444; } .notif-item:hover .notif-time { color: #777; } .btn-small { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); color: #666; padding: 3px 10px; border-radius: 3px; cursor: pointer; font-size: 10px; text-transform: uppercase; transition: all 0.2s; } .btn-small:hover { background: rgba(255, 255, 255, 0.1); border-color: #888; color: #ccc; } /* ---------- subscriptions.html styles ---------- */ .subs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 15px; margin-bottom: 40px; } .sub-card { background: rgba(0, 0, 0, 0.3); border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; border: 1px solid rgba(255, 255, 255, 0.05); } .sub-link { text-decoration: none; color: inherit; display: block; flex-grow: 1; } .sub-card img { width: 100%; height: 110px; object-fit: cover; display: block; } .sub-info { padding: 8px; } .sub-id { display: block; font-weight: bold; color: var(--accent); } .sub-user { display: block; font-size: 0.85em; color: #888; } .unsub-btn { width: 100%; border: none; background: rgba(200, 50, 50, 0.2); color: #ff6666; padding: 8px; cursor: pointer; font-size: 0.9em; transition: background 0.2s; border-top: 1px solid rgba(255, 255, 255, 0.05); } .unsub-btn:hover { background: rgba(200, 50, 50, 0.4); } /* ---------- mod/approve.html styles ---------- */ .approval-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-bottom: 40px; } .approval-card { background: var(--nav-bg); border: 1px solid var(--nav-border-color); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; } .approval-card-media { width: 100%; background: #000; display: flex; align-items: center; justify-content: center; min-height: 200px; } .approval-card-media img, .approval-card-media video, .approval-card-media iframe { max-width: 100%; max-height: 300px; width: 100%; object-fit: contain; } .approval-card-body { padding: 15px; flex: 1; display: flex; flex-direction: column; gap: 10px; } .approval-card-info { font-size: 14px; color: var(--white); } .approval-card-tags { display: flex; flex-wrap: wrap; gap: 5px; } .approval-card-actions { margin-top: auto; display: flex; gap: 10px; padding-top: 10px; border-top: 1px solid var(--nav-border-color); } .approval-card-actions a { flex: 1; text-align: center; padding: 8px; text-decoration: none; } /* ---------- mod/audit.html styles ---------- */ .audit-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 20px; } @media (min-width: 768px) { .audit-grid { grid-template-columns: 1fr 1fr; } } .audit-card { background: var(--badge-bg); border: 1px solid var(--nav-border-color); border-radius: 8px; padding: 15px; display: flex; flex-direction: column; gap: 10px; transition: transform 0.2s ease, border-color 0.2s ease; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); } .audit-card:hover { transform: translateY(-2px); border-color: var(--accent); } .audit-card-header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--nav-border-color); padding-bottom: 10px; margin-bottom: 5px; } .audit-card-user { font-weight: bold; font-size: 1.1em; } .audit-card-time { font-size: 0.85em; color: #888; } .audit-card-body { display: flex; flex-direction: column; gap: 8px; } .audit-card-row { display: flex; gap: 8px; align-items: baseline; } .audit-label { font-size: 0.8em; text-transform: uppercase; color: #888; min-width: 80px; } .audit-value { word-break: break-all; } .audit-reason-box { margin-top: 5px; padding: 8px; background: rgba(0, 0, 0, 0.2); border-left: 3px solid var(--accent); font-style: italic; font-size: 0.9em; } .badge-action { text-transform: uppercase; font-size: 0.75em; } .audit-diff { background: rgba(0, 0, 0, 0.3); border-radius: 4px; padding: 10px; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 0.85em; line-height: 1.4; word-break: break-all; border: 1px solid rgba(255, 255, 255, 0.05); margin-top: 5px; } .diff-removed { color: #ff8080; background-color: rgba(255, 0, 0, 0.15); display: block; padding: 0 4px; } .diff-added { color: #80ff80; background-color: rgba(0, 255, 0, 0.15); display: block; padding: 0 4px; } div.posts>a.thumb.has-notif { box-shadow: inset 0 0 0 1000px rgba(255, 0, 0, 0.28) !important; border: 1px solid var(--accent); } div.posts>a.thumb.has-notif:hover { box-shadow: inset 0 0 0 1000px rgba(255, 0, 0, 0.4), 0 0 0 2px var(--accent) !important; } div.posts>a.thumb.has-notif::after { content: attr(data-ext) " / " attr(data-user) !important; visibility: hidden; opacity: 1 !important; background-color: var(--posts-meta-bg) !important; color: var(--accent) !important; font-weight: normal !important; z-index: 10 !important; } div.posts>a.thumb.has-notif:hover::after { visibility: visible !important; } /* Stretch the

to fill the entire thumb so p::after is always centered */ div.posts>a.thumb.has-notif p { position: absolute !important; inset: 0 !important; margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; } div.posts>a.thumb.has-notif p::after { content: "!" !important; position: static !important; color: var(--accent) !important; font-size: 40px !important; font-weight: 900 !important; text-shadow: 0 0 10px #000, 0 0 20px rgba(var(--accent-rgb), 0.5) !important; z-index: 200 !important; pointer-events: none !important; visibility: visible !important; } .thumb { position: relative; overflow: hidden; } /* ===== Dynamic Thumbnail Sizes ===== */ /* Size tier 2: 2×2 grid cells */ div.posts>a.thumb[data-size="2"] { grid-column: span 2; grid-row: span 2; } .thumb>.preview-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 5; pointer-events: none; opacity: 0; transition: opacity 0.2s ease-in; } .thumb>.preview-video.playing { opacity: 1; } .thumb p { position: relative; z-index: 10; pointer-events: none; } div.posts>a::after { z-index: 10 !important; pointer-events: none; } /* Fallback placeholder for thumbnails that failed to load */ .thumb.thumb-fallback { background-size: contain !important; background-color: #0e0e1a !important; opacity: 0.6; } .pin-indicator { position: absolute; top: 5px; left: 5px; font-size: 13px; fill: var(--accent); color: var(--accent); filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.8)); z-index: 15; pointer-events: none; } .oc-indicator { position: absolute; left: 1px; fill: #ffd700; pointer-events: none; bottom: 1px; line-height: normal; font-size: 13px; font-family: 'VCR' !important; z-index: 11; } /* For sub-cards which have a simpler structure */ .sub-link .pin-indicator { top: 3px; left: 3px; } /* Content Warning Modal */ #content-warning-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.95); z-index: 99999; display: flex; justify-content: center; align-items: center; backdrop-filter: blur(5px); } .content-warning-content { background: var(--bg); border: 1px solid var(--nav-border-color); padding: 2rem; max-width: 500px; width: 90%; text-align: center; border-radius: 4px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); color: var(--font-color); } .content-warning-content h3 { margin-top: 0; color: var(--accent); margin-bottom: 1rem; } .content-warning-content p { margin-bottom: 2rem; line-height: 1.5; } .content-warning-content .modal-actions { display: flex; justify-content: center; gap: 1rem; } .content-warning-content button { padding: 10px 20px; cursor: pointer; font-family: var(--font); font-weight: bold; border: none; border-radius: 3px; text-transform: uppercase; color: var(--black); } .content-warning-content #cw-accept { background: var(--accent); } .content-warning-content #cw-accept:hover { opacity: 0.9; } .content-warning-content #cw-decline { background: var(--gray); color: var(--white); } .content-warning-content #cw-decline:hover { background: #333; } /* Video Player Settings Menu */ .v0ck_settings_container { position: relative; display: flex; /* Fix alignment */ align-items: center; } .v0ck_settings_menu { position: absolute; bottom: 100%; /* Position above the button */ right: 0; margin-bottom: 5px; background-color: rgba(0, 0, 0, 0.9); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; padding: 5px 0; display: flex; flex-direction: column; min-width: 100px; z-index: 20; /* Ensure it's above other controls */ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); } .v0ck_settings_menu.v0ck_hidden { display: none; } .v0ck_menu_item { background: transparent; border: none; color: #fff; padding: 8px 15px; text-align: left; cursor: pointer; font-size: 14px; font-family: inherit; white-space: nowrap; transition: background-color 0.2s; width: 100%; } .v0ck_menu_item:hover { background-color: rgba(255, 255, 255, 0.1); } /* ... (rest of CSS) */ /* Specific styling for SWF/BG buttons now in menu */ #toggleswf { display: block; width: 100%; text-align: center; /* Center text */ } /* Background Row Styling */ .v0ck_bg_row { display: flex; align-items: center; justify-content: space-between; /* Label on left, switch on right? Or center? User asked for "items centered". */ /* If items centered, maybe justify-content: center with a gap? */ /* Let's try space-between for the row content (Label ... Switch) looks better usually, but if the menu is wide, it might look odd. Let's stick to space-between for the row, but ensure the menu itself centers the row? The row IS the menu item. Let's use space-between for label and switch. */ justify-content: space-between; padding: 8px 15px; width: 100%; box-sizing: border-box; } .v0ck_switch_label { margin-right: 10px; font-size: 14px; color: #fff; } /* Cool Switch Styling */ .v0ck_cool_switch { width: 36px; height: 20px; background-color: #555; border-radius: 10px; position: relative; cursor: pointer; transition: background-color 0.3s; } .v0ck_cool_switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; background-color: #fff; border-radius: 50%; transition: transform 0.3s; } .v0ck_cool_switch.active { background-color: var(--gray); } .v0ck_cool_switch.active::after { transform: translateX(16px); } .v0ck_cool_switch:hover { opacity: 0.9; } /* Update Menu Item Styling for Centering */ .v0ck_menu_item { /* ... existing styles ... */ /* We want to center the SWF button text */ text-align: center; } /* Ensure menu itself centers items? */ .v0ck_settings_menu { /* ... existing styles ... */ align-items: center; /* Center items horizontally */ min-width: 160px; /* Ensure enough width */ } /* Fix hover effect for settings button (viewBox scaling issue) */ .v0ck_settings_btn svg:hover { stroke-width: 2px !important; /* Override the default 30px which is for large viewBoxes */ } /* Ensure SVG is vertically centered */ .v0ck_settings_btn svg { vertical-align: middle; } /* Mobile Optimized Player Controls */ @media screen and (max-width: 600px) { .v0ck_volume:hover+input[type="range"][name="volume"], .v0ck_player_controls>input[type="range"][name="volume"]:hover { min-width: 40px !important; /* Smaller expansion on mobile */ max-width: 40px !important; } } .navbar { background: rgba(0, 0, 0, 0.2); border-bottom: 1px solid var(--nav-border-color); } body.layout-modern .navbar-header, body.layout-legacy .navbar-header { background: transparent; } .sidebar-tags-container { padding: 5px; background: rgba(0, 0, 0, 0.2); border-top: 1px solid var(--nav-border-color); overflow: visible; flex-shrink: 0; } /* ===== layout-modern: flexible by default, viewport-locked for item view ===== */ @media (min-width: 1000px) { body.layout-modern { display: flex; flex-direction: column; min-height: 100vh; overflow-y: auto; } /* Viewport lock to enable full app view and prevent scrollbars */ body.layout-modern:has(.item-layout-container) { overflow: hidden; height: 100vh; } body.layout-modern>.pagewrapper { flex: 1; display: flex; flex-direction: column; /* Reset top/side padding but let sidebar-aware padding-right be handled below */ padding-top: 0 !important; padding-left: 0 !important; padding-bottom: 0 !important; padding-right: 0; /* overridden to 300px by sidebar rule below for generic pages */ } body.layout-modern:has(.item-layout-container)>.pagewrapper { min-height: 0; overflow: hidden; height: calc(100vh - var(--navbar-h, 50px)); } body.layout-modern:has(.item-layout-container)>.pagewrapper>#main, body.layout-modern:has(.item-layout-container)>#main { min-height: 0; overflow: hidden; height: 100%; } } /* layout-modern: restore sidebar right-padding AND block-flow for generic pages (profile, settings, subscriptions, etc.) — identical behaviour to layout-legacy. Specialized pages (index, item, meme) manage their own layout, so exclude them. */ @media (min-width: 1200px) { body.layout-modern>.pagewrapper:not(:has(.index-layout-wrapper)):not(:has(.item-layout-container)):not(:has(.meme-layout-wrapper)) { padding-right: 300px; } body.layout-modern.sidebar-right-hidden>.pagewrapper:not(:has(.index-layout-wrapper)):not(:has(.item-layout-container)):not(:has(.meme-layout-wrapper)) { padding-right: 0; } } /* For generic pages in layout-modern, reset #main to plain block flow so children fill the full available width — mirrors layout-legacy exactly and prevents any flex child centering (e.g. margin:0 auto shrinking content like on /subscriptions). */ body.layout-modern>.pagewrapper:not(:has(.index-layout-wrapper)):not(:has(.item-layout-container)):not(:has(.meme-layout-wrapper)):not(:has(.messages-convo-page))>#main:not(.session-grid) { display: block !important; width: 100%; } @media (min-width: 1000px) { /* metadata + comment headers must sit above the grid overflow */ body.layout-modern .metadata, body.layout-modern .comment-header { z-index: 100 !important; position: relative; } body.layout-modern .sidebar-tags-container { overflow-y: visible !important; } body.layout-modern .sidebar-tags-container span#tags { display: flex; flex-wrap: wrap; gap: 5px; max-height: 70px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--scrollbar-color) transparent; } } /* ===== layout-legacy: natural page scroll (2-column, body scrolls) ===== */ @media (min-width: 1000px) { body.layout-legacy { overflow: visible !important; height: auto !important; max-height: none !important; display: block; } body.layout-legacy>.wrapper, body.layout-legacy>.pagewrapper { display: block; height: auto; min-height: 100vh; padding-top: 0 !important; } body.layout-legacy>#main:not(.messages-convo-page), body.layout-legacy #main:not(.messages-convo-page) { display: block; height: auto; /*padding-top: 0 !important;*/ } body.layout-legacy .item-layout-container { height: auto !important; min-height: 0; } body.layout-legacy .metadata, body.layout-legacy .comment-header { z-index: 100 !important; position: relative; } body.layout-legacy .sidebar-tags-container, body.layout-legacy .comments-list { overflow-y: visible !important; } } /* Global Breakout Tooltip System (Replaces native CSS tooltips to prevent clipping/scrolling bugs) */ [tooltip]::before, [tooltip]::after { display: none !important; } #f0ck-breakout-tooltip { font-family: Helvetica, sans-serif; text-align: center; padding: 5px 10px; border-radius: 4px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); background: #535050; color: #fff; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; z-index: 1000000; pointer-events: none; position: fixed; line-height: normal; display: block; opacity: 0; transform: translateY(-5px); transition: opacity 0.15s ease, transform 0.15s ease; } #f0ck-breakout-tooltip.is-visible { opacity: 1; transform: translateY(0); } #f0ck-breakout-tooltip::before { content: ''; position: absolute; border: 5px solid transparent; z-index: 1000001; } #f0ck-breakout-tooltip[data-flow="up"]::before, #f0ck-breakout-tooltip[data-flow="up-left"]::before { top: 100%; left: 50%; transform: translateX(-50%); border-top-color: #535050; border-bottom-width: 0; } #f0ck-breakout-tooltip[data-flow="up-left"]::before { left: 10px; transform: none; } #f0ck-breakout-tooltip[data-flow="down"]::before { bottom: 100%; left: 50%; transform: translateX(-50%); border-bottom-color: var(--tooltip-bg, #131212); border-top-width: 0; } #f0ck-breakout-tooltip[data-flow="left"]::before { top: 50%; left: 100%; transform: translateY(-50%); border-left-color: var(--tooltip-bg, #131212); border-right-width: 0; } #f0ck-breakout-tooltip[data-flow="right"]::before { top: 50%; right: 100%; transform: translateY(-50%); border-right-color: var(--tooltip-bg, #131212); border-left-width: 0; } /* Tag Controls Refinement */ .tag-controls { display: flex; align-items: center; padding: 5px; gap: 5px; } .tag-btn { display: inline-flex; align-items: center; justify-content: center; background: var(--badge-tag, #171717); border: 1px outset #221d1d; color: var(--white, #fff) !important; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; text-decoration: none !important; } .tag-btn.is-sfw { color: #28a745 !important; } .tag-btn.is-nsfw { color: #dc3545 !important; } /* Rating Button in gapRight */ #a_toggle.rating-btn { display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; height: 14px; border-radius: 4px; border: 1px solid rgba(255, 255, 255, 0.15); background-color: #444; color: #fff; font-size: 8px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; white-space: nowrap; transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.1s ease; line-height: 1; font-family: inherit; } #a_toggle.rating-btn:hover { filter: brightness(1.15); transform: scale(1.05); } #a_toggle.rating-btn.is-sfw { background-color: var(--badge-sfw); border-color: rgba(0, 0, 0, 0.15); } #a_toggle.rating-btn.is-nsfw { background-color: var(--badge-nsfw); border-color: rgba(0, 0, 0, 0.15); } #a_toggle.rating-btn.is-nsfl { background-color: var(--badge-nsfl); border-color: rgba(0, 0, 0, 0.15); } #a_toggle.rating-btn.is-untagged { background-color: #444; } .tag-btn svg { fill: currentColor; width: 20px; height: 20px; } .rules { padding: 10px; } /* Shortcuts List */ #shortcuts-modal .login-modal-content { max-height: 90vh; overflow-y: auto; display: flex; flex-direction: column; scrollbar-width: thin; scrollbar-color: var(--accent) transparent; } #shortcuts-modal .login-modal-content::-webkit-scrollbar-thumb { background-color: var(--accent); background-clip: content-box; border: 3px solid transparent; border-radius: 10px; } .shortcuts-content { padding: 10px 20px 20px 20px; color: var(--white); text-align: left; } .shortcut-list { display: flex; flex-direction: column; gap: 12px; margin-top: 15px; } .shortcut-item { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid rgba(255, 255, 255, 0.05); padding-bottom: 8px; font-family: var(--font); gap: 15px; } .shortcut-item span:first-child { flex-shrink: 0; white-space: nowrap; } .shortcut-item span:last-child { text-align: right; opacity: 0.8; } .shortcut-item kbd { background: var(--badge-bg); border: 1px solid rgba(255, 255, 255, 0.2); color: var(--accent); padding: 2px 6px; border-radius: 3px; font-size: 0.9em; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); } #help-button:hover { opacity: 1 !important; color: var(--white) !important; } #shortcut-theme { cursor: pointer; } @media (max-width: 480px) { #shortcuts-modal { padding: 10px; } .shortcuts-content h2 { font-size: 1.2rem; margin-bottom: 15px !important; } .shortcut-item { font-size: 12px; gap: 8px; } } #a_username { color: var(--white); display: inline; } .id-link { color: var(--white); } /* Image Modal / Lightbox */ .image-modal-overlay { background-color: rgba(0, 0, 0, 0.7); position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 10000; overflow: auto; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: opacity 0.3s ease; display: none; /* Hidden by default */ flex-direction: column; } .image-modal-overlay.visible { display: flex !important; } .image-modal-close { position: fixed; top: 20px; right: 30px; color: #fff; font-size: 32px; font-weight: bold; cursor: pointer; z-index: 10002; width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; transition: all 0.2s; } .image-modal-close:hover { background: rgba(255, 255, 255, 0.2); transform: scale(1.1); } .image-modal-container { display: flex; align-items: center; justify-content: center; min-height: 100%; padding: 40px; box-sizing: border-box; margin: auto; } /* Explicitly isolate modal image from on-page styles */ .image-modal-container img#image-modal-img { display: block; margin: auto; max-width: none !important; max-height: none !important; width: auto !important; height: auto !important; border-radius: 2px; animation: modalZoomIn 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); cursor: move !important; /* Fallback */ cursor: -webkit-grab !important; cursor: -moz-grab !important; cursor: grab !important; /* Standard rules must be last */ transform-origin: center; transition: transform 0.05s ease-out; user-select: none; } /* Mobile responsive scaling for the image modal */ @media (max-width: 768px) { .image-modal-container { padding: 0 !important; } .image-modal-container img#image-modal-img { max-width: 100vw !important; max-height: 100vh !important; object-fit: contain; } .image-modal-close { top: 10px; right: 15px; width: 40px; height: 40px; font-size: 28px; background: rgba(0, 0, 0, 0.8); /* Higher contrast on mobile */ } } /* Hardened 'Closed Grab' / Grabbing state */ body.modal-is-grabbing, body.modal-is-grabbing * { cursor: move !important; /* Fallback */ cursor: -webkit-grabbing !important; cursor: -moz-grabbing !important; cursor: grabbing !important; /* Standard rules must be last */ } @keyframes modalZoomIn { from { transform: scale(0.98); opacity: 0; } to { transform: scale(1); opacity: 1; } } body.modal-open { overflow: hidden !important; padding-right: var(--scrollbar-width, 0px); } body.layout-modern .tag-controls { background: rgba(0, 0, 0, 0.2); border-top: 1px solid var(--nav-border-color); } .phrase { text-align: center; font-size: small; background: rgba(0, 0, 0, 0.2); } /* Global Drag & Drop Overlay */ #drop-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(var(--accent-rgb), 0.15); backdrop-filter: blur(8px); z-index: 10000; display: none; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; border: 4px dashed var(--accent); margin: 10px; width: calc(100% - 20px); height: calc(100% - 20px); border-radius: 20px; } #drop-overlay.active { display: flex; pointer-events: auto; } #drop-overlay .overlay-content { background: var(--shade1, #111); padding: 40px; border-radius: 20px; text-align: center; box-shadow: 0 20px 60px rgba(0, 0, 0, 1); border: 1px solid var(--shade3, #333); } #drop-overlay h2 { margin: 15px 0 0 0; font-size: 2rem; color: var(--white); text-transform: uppercase; letter-spacing: 2px; } #drop-overlay svg { color: var(--accent); filter: drop-shadow(0 0 15px var(--accent)); } /* Upload Drag Modal */ #upload-drag-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); z-index: 10001; display: none; align-items: center; justify-content: center; } #upload-drag-modal.show { display: flex; } #upload-drag-modal .modal-content { background: var(--shade1, #111); border: 1px solid var(--shade3, #333); padding: 0; width: 900px; max-width: 95vw; position: relative; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8); max-height: 90vh; overflow-y: auto; } #upload-drag-modal .modal-close { position: absolute; top: 15px; right: 15px; background: none; border: none; color: var(--white); font-size: 24px; cursor: pointer; line-height: 1; z-index: 10; } #upload-drag-modal .upload-container { max-width: 100%; width: 100%; } /* Private Society Gate */ .private-gate { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; text-align: center; gap: 15px; } .private-gate h1 { font-family: 'VCR', monospace; font-size: 3rem; color: var(--accent); letter-spacing: 2px; } .private-gate p { color: var(--white); opacity: 0.7; font-size: 1.1rem; } .private-gate-btn { background: var(--accent); color: var(--black); border: none; padding: 10px 40px; font-weight: bold; font-size: 1rem; cursor: pointer; letter-spacing: 1px; text-transform: uppercase; transition: opacity 0.2s; } .private-gate-btn:hover { opacity: 0.85; } .private-gate-actions { display: flex; gap: 15px; align-items: center; } .private-gate-btn-secondary { background: transparent; color: var(--accent); border: 1px solid var(--accent); } .private-gate-btn-secondary:hover { background: var(--accent); color: var(--black); } .index-sidebar-right-footer, .item-sidebar-right-footer, .global-sidebar-right-footer { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: center; align-content: center; border-top: 1px solid var(--nav-border-color); flex-shrink: 0; background: rgba(0, 0, 0, 0.3); min-height: 30px; text-align: center; } .global-sidebar-right-footer>a { border-right: 1px solid var(--gray); opacity: 0.8; } .global-sidebar-right-footer>a:hover { opacity: 1; } #help-button { cursor: pointer; padding: 0 10px; font-size: 16px; line-height: 1; } .git-hash { font-family: monospace; font-size: 10px; opacity: 0.5; text-align: right; padding-right: 5px; } .item-preview { background: #0000001f; display: grid; grid-template-columns: auto 1fr; margin-top: 5px; gap: 5px; } .item-preview a { align-self: center; } .item-preview a img { display: grid; height: 32px; background: black; border-radius: 5px; margin: 5px; } /* ═══════════════════════════════════════════════════════════ PRIVATE MESSAGES / DM SYSTEM ═══════════════════════════════════════════════════════════ */ /* ── Page layout ─────────────────────────────────────────── */ .messages-page { max-width: 720px; margin: 0 auto; padding: 16px; display: flex; flex-direction: column; min-height: auto; } .messages-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; border-bottom: 1px solid var(--border, #333); padding-bottom: 12px; gap: 12px; } .messages-header h2 { margin: 0; font-size: 1.1em; letter-spacing: 0.08em; color: var(--accent); } .dm-back-btn { color: var(--accent); font-size: 1.4em; text-decoration: none; line-height: 1; padding: 4px 8px; border-radius: 4px; transition: background 0.15s; } .dm-back-btn:hover { background: var(--bg2, #222); } .dm-convo-header-info { display: flex; align-items: center; gap: 10px; flex: 1; } .dm-convo-badge.badge-nsfw { background: var(--badge-nsfw); } .badge-nsfl { color: var(--white); background-color: var(--badge-nsfl); padding-right: 5px; padding-left: 5px; padding-top: 1.5px; padding-bottom: 1.5px; border-radius: 3px; text-shadow: 1px 1px var(--black); text-transform: uppercase; } .dm-convo-delete { background: var(--badge-nsfw); border: none; border-radius: 5px; } .dm-header-avatar { width: 32px; height: 32px; border-radius: 4px; object-fit: cover; } .dm-header-username { font-weight: 600; font-size: 1em; text-decoration: none; color: var(--fg, #ddd); } .dm-header-username:hover { text-decoration: underline; } .dm-header-name-wrap { display: flex; flex-direction: column; gap: 1px; line-height: 1.2; } .dm-presence { display: flex; align-items: center; gap: 5px; font-size: 0.72em; color: #666; min-height: 14px; } .dm-presence-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; background: #555; } .dm-presence--online .dm-presence-dot { background: #3ddc84; box-shadow: 0 0 0 2px rgba(61, 220, 132, 0.25); animation: dm-presence-pulse 2s ease infinite; } .dm-presence--online { color: #3ddc84; } .dm-presence--recent .dm-presence-dot { background: #f5a623; } .dm-presence--recent { color: #f5a623; } @keyframes dm-presence-pulse { 0%, 100% { box-shadow: 0 0 0 2px rgba(61, 220, 132, 0.25); } 50% { box-shadow: 0 0 0 4px rgba(61, 220, 132, 0.1); } } /* ── Key notice banner ───────────────────────────────────── */ .dm-key-notice { background: rgba(255, 200, 80, 0.15); border: 1px solid rgba(255, 200, 80, 0.4); color: #ffc850; padding: 10px 14px; border-radius: 6px; font-size: 0.88em; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; } .dm-key-export-inline { background: rgba(255, 200, 80, 0.25); border: 1px solid rgba(255, 200, 80, 0.5); color: #ffc850; padding: 3px 10px; border-radius: 4px; cursor: pointer; font-size: 0.9em; } .dm-key-export-inline:hover { background: rgba(255, 200, 80, 0.4); } /* ── Inbox list ──────────────────────────────────────────── */ .dm-inbox-list { display: flex; flex-direction: column; gap: 6px; } .dm-convo-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 8px; background: var(--bg2, #1a1a1a); border: 1px solid transparent; text-decoration: none; color: var(--fg, #ccc); transition: background 0.15s, border-color 0.15s; position: relative; } .dm-convo-card:hover { background: var(--bg3, #222); border-color: var(--accent); } .dm-convo-card.dm-convo-unread { border-color: var(--accent); } .dm-convo-avatar { width: 42px; height: 42px; border-radius: 6px; object-fit: cover; flex-shrink: 0; } .dm-convo-info { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; } .dm-convo-name { font-weight: 600; font-size: 0.95em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dm-convo-time { font-size: 0.78em; color: #666; } .dm-convo-badge { background: var(--accent); color: var(--bg, #000); font-size: 0.72em; font-weight: 700; min-width: 20px; height: 20px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; flex-shrink: 0; } /* ── Thread ──────────────────────────────────────────────── */ .dm-thread { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding: 15px; min-height: 200px; max-height: calc(100vh - 420px); } /* ── Message bubbles ─────────────────────────────────────── */ .dm-msg { display: flex; flex-direction: column; max-width: 75%; gap: 3px; } .dm-msg-mine { align-self: flex-end; align-items: flex-end; } .dm-msg-theirs { align-self: flex-start; align-items: flex-start; } .dm-bubble { padding: 9px 13px; border-radius: 14px; font-size: 0.92em; line-height: 1.45; word-break: break-word; } /* Full-width when message contains a block embed (YouTube etc.) */ .dm-msg.dm-has-embed { width: 90%; min-width: 280px; max-width: 90%; } .dm-bubble .yt-embed-wrap { max-width: 100%; margin: 4px 0 0; min-width: 400px; } @media (max-width: 700px) { .dm-bubble .yt-embed-wrap { min-width: 300px; } } .dm-msg-mine .dm-bubble { background: #090909; color: var(--white); border-bottom-right-radius: 4px; } .dm-msg-theirs .dm-bubble { background: var(--bg2, #222); color: var(--fg, #ddd); border: 1px solid #333; border-bottom-left-radius: 4px; } .dm-msg-time { font-size: 0.72em; color: #555; padding: 0 4px; } .dm-unreadable { font-style: italic; opacity: 0.5; font-size: 0.88em; } /* ── Message edit / delete actions ─────────────────────── */ .dm-msg { position: relative; } .dm-msg-actions { display: flex; gap: 4px; opacity: 0; pointer-events: none; transition: opacity 0.15s; margin-top: 1px; } .dm-msg:hover .dm-msg-actions, .dm-msg:focus-within .dm-msg-actions { opacity: 1; pointer-events: auto; } .dm-msg-action-btn { background: none; border: none; color: #555; cursor: pointer; font-size: 0.78em; padding: 2px 5px; border-radius: 4px; line-height: 1; transition: color 0.12s, background 0.12s; } .dm-msg-action-btn:hover { color: var(--fg, #ddd); background: rgba(255, 255, 255, 0.07); } .dm-msg-action-btn[data-action="delete"]:hover { color: #e55; } /* Inline edit textarea */ .dm-edit-wrap { width: 100%; } .dm-edit-textarea { width: 100%; min-height: 60px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 6px; color: var(--fg, #ddd); font: inherit; font-size: 0.92em; padding: 6px 8px; resize: vertical; box-sizing: border-box; } .dm-edit-actions { display: flex; gap: 6px; margin-top: 5px; } .dm-edit-save, .dm-edit-cancel { font-size: 0.8em; padding: 3px 10px; border-radius: 5px; border: none; cursor: pointer; } .dm-edit-save { background: var(--badge-bg, #4a90d9); color: #fff; } .dm-edit-cancel { background: rgba(255, 255, 255, 0.08); color: var(--fg, #ddd); } /* (edited) badge */ .dm-edited { color: #555; font-size: 0.85em; margin-left: 3px; } /* Delete fade-out */ @keyframes dm-msg-fade-out { to { opacity: 0; transform: scaleY(0); max-height: 0; margin: 0; padding: 0; overflow: hidden; } } .dm-msg-deleting { animation: dm-msg-fade-out 0.25s ease forwards; transform-origin: top; overflow: hidden; } /* ── Reply banner ────────────────────────────────────────── */ .dm-reply-banner { display: flex; align-items: center; gap: 7px; background: rgba(255, 255, 255, 0.05); border-left: 3px solid var(--badge-bg, #4a90d9); border-radius: 4px; padding: 5px 8px; font-size: 0.8em; color: #aaa; margin-bottom: 5px; animation: dm-reply-in 0.12s ease; } @keyframes dm-reply-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } } .dm-reply-banner__icon { color: var(--badge-bg, #4a90d9); flex-shrink: 0; } .dm-reply-banner__body { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .dm-reply-banner__body strong { color: var(--fg, #ddd); } .dm-reply-banner__close { background: none; border: none; color: #555; cursor: pointer; padding: 2px 4px; font-size: 1em; flex-shrink: 0; transition: color 0.12s; } .dm-reply-banner__close:hover { color: var(--fg, #ddd); } /* ── Send form ───────────────────────────────────────────── */ .dm-send-form { gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #333; flex-shrink: 0; } .dm-input { flex: 1; background: var(--bg2, #1a1a1a); border: 1px solid #444; color: var(--fg, #ddd); border-radius: 8px; padding: 10px 12px; font-size: 0.92em; resize: none; min-height: 44px; max-height: 140px; font-family: inherit; transition: border-color 0.15s; line-height: 1.4; } .dm-input:focus { outline: none; border-color: var(--accent); } .dm-send-btn { background: var(--accent); color: var(--bg, #000); border: none; border-radius: 8px; padding: 10px 18px; font-weight: 700; cursor: pointer; font-size: 0.9em; height: 44px; flex-shrink: 0; transition: opacity 0.15s; } .dm-send-btn:hover { opacity: 0.85; } .dm-send-btn:disabled { opacity: 0.4; cursor: not-allowed; } /* ── State messages ──────────────────────────────────────── */ .dm-loading, .dm-empty, .dm-error { color: #666; font-size: 0.9em; padding: 24px; text-align: center; line-height: 1.6; } .dm-error { color: #e06c6c; } /* ── Key Manager Modal ───────────────────────────────────── */ .dm-modal-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.75); z-index: 15000; display: flex; align-items: center; justify-content: center; padding: 16px; } .dm-modal { background: var(--bg, #111); border: 1px solid var(--accent); border-radius: 10px; width: 100%; max-width: 480px; max-height: 90vh; overflow-y: auto; padding: 28px; position: relative; } .dm-modal h2 { margin: 0 0 6px; font-size: 1.1em; color: var(--accent); } .dm-modal-sub { font-size: 0.85em; color: #888; margin: 0 0 18px; line-height: 1.5; } .dm-modal-close { position: absolute; top: 14px; right: 16px; background: none; border: none; color: #888; font-size: 1.4em; cursor: pointer; line-height: 1; } .dm-modal-close:hover { color: var(--fg, #ddd); } .dm-key-status { background: rgba(255, 255, 255, 0.04); border-radius: 6px; padding: 10px 12px; font-size: 0.85em; margin-bottom: 18px; border: 1px solid #333; } .dm-key-section { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #2a2a2a; } .dm-key-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .dm-key-section h3 { font-size: 0.9em; margin: 0 0 6px; color: var(--fg, #ccc); } .dm-key-section p { font-size: 0.82em; color: #777; margin: 0 0 10px; line-height: 1.5; } .dm-key-input { display: block; width: 100%; background: var(--bg2, #1a1a1a); border: 1px solid #444; color: var(--fg, #ddd); border-radius: 6px; padding: 8px 10px; font-size: 0.88em; margin-bottom: 8px; box-sizing: border-box; font-family: inherit; } .dm-key-input:focus { outline: none; border-color: var(--accent); } .dm-key-btn { background: var(--accent); color: var(--bg, #000); border: none; border-radius: 6px; padding: 8px 16px; font-weight: 600; cursor: pointer; font-size: 0.86em; transition: opacity 0.15s; } .dm-key-btn:hover { opacity: 0.85; } .dm-key-btn-danger { background: #d94f4f; color: #fff; } .dm-key-danger h3 { color: #d94f4f; } .dm-key-msg { font-size: 0.82em; margin-top: 8px; min-height: 18px; } .dm-msg-ok { color: #5cb85c; } .dm-msg-err { color: #e06c6c; } /* ── Blocking modal (seed-phrase setup / recovery) ───────── */ .dm-modal-blocking { z-index: 20000; /* above everything */ } .dm-modal-blocking .dm-modal { max-width: 540px; } /* ── Seed word grid ──────────────────────────────────────── */ .dm-seed-grid, .dm-recovery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 16px 0; } .dm-seed-word { display: flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, 0.05); border: 1px solid #333; border-radius: 6px; padding: 8px 10px; font-size: 0.9em; } .dm-seed-num { color: #555; font-size: 0.78em; min-width: 16px; text-align: right; flex-shrink: 0; } .dm-seed-val { color: var(--accent); font-weight: 600; font-family: monospace; letter-spacing: 0.03em; word-break: break-all; } /* Recovery inputs reuse .dm-seed-word layout */ .dm-seed-input-wrap input.dm-recovery-word { flex: 1; background: none; border: none; outline: none; color: var(--fg, #ddd); font-size: 0.88em; font-family: monospace; padding: 0; width: 100%; min-width: 0; } .dm-seed-input-wrap:focus-within { border-color: var(--accent); } /* Copy / primary button */ .dm-key-btn-primary { background: var(--accent); color: var(--bg, #000); width: 100%; margin-top: 4px; } .dm-key-btn-primary:disabled { opacity: 0.35; cursor: not-allowed; } .dm-copy-seed { width: 100%; background: rgba(255, 255, 255, 0.07); color: var(--fg, #ddd); border: 1px solid #444; margin-bottom: 14px; } /* Forced-confirm checkbox */ .dm-seed-confirm { background: rgba(255, 200, 80, 0.08); border: 1px solid rgba(255, 200, 80, 0.3); border-radius: 6px; padding: 12px 14px; margin-bottom: 14px; } .dm-seed-confirm label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 0.87em; color: #ffc850; line-height: 1.4; } .dm-seed-confirm input[type="checkbox"] { margin-top: 2px; flex-shrink: 0; accent-color: var(--accent); width: 16px; height: 16px; } @media (max-width: 500px) { .dm-seed-grid, .dm-recovery-grid { grid-template-columns: repeat(2, 1fr); } } /* ── Navbar DM icon ──────────────────────────────────────── */ #nav-dm-btn { position: relative; display: inline-flex; align-items: center; gap: 3px; } /* reuse .notif-count styling for dm badge — already defined */ /* ── Mobile adjustments ──────────────────────────────────── */ @media (max-width: 600px) { .messages-page { padding: 10px; } .dm-msg { max-width: 90%; } .dm-thread { max-height: calc(100vh - 240px); } .dm-modal { padding: 20px; } } /* ══════════════════════════════════════════════════════════ Full-height chat layout — conversation page ══════════════════════════════════════════════════════════ */ /* ── DESKTOP (> 768px): same pattern as the sidebar ─────── position:fixed takes it out of flow entirely — no pagewrapper padding, no body scroll involvement, just viewport-anchored. */ @media (min-width: 769px) { .messages-convo-page { position: fixed !important; top: var(--navbar-h, 50px) !important; bottom: 0 !important; left: 0 !important; right: 0 !important; z-index: 1; display: flex !important; flex-direction: column !important; } /* Kill the layout-legacy pagewrapper min-height:100vh that causes body overflow */ body:has(.messages-convo-page) .pagewrapper { min-height: 0 !important; overflow: hidden; } } /* ── MOBILE (≤ 768px): position:fixed pagewrapper ───────── Works on mobile; locks the pagewrapper to the viewport. */ @media (max-width: 768px) { html:has(.messages-convo-page), body:has(.messages-convo-page) { height: 100%; overflow: hidden; } body:has(.messages-convo-page) .pagewrapper { position: fixed; top: var(--navbar-h, 50px); left: 0; right: 0; bottom: 0; overflow: hidden; padding: 0; display: flex; flex-direction: column; } } /* ── Shared: convo pane is a flex column ────────────────── Both viewports share this — desktop gets explicit height above, mobile gets height from fixed pagewrapper. */ .messages-convo-page { overflow: hidden; padding: 0; max-width: 720px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; /* flex:1 + min-height:0 for mobile where parent is fixed pagewrapper */ flex: 1; min-height: 0; } /* Header: never shrinks */ .messages-convo-page .messages-header { flex-shrink: 0; padding: 10px 16px; margin-bottom: 0; border-bottom: 1px solid var(--border, #333); } /* Key notice banner if visible */ .messages-convo-page #dm-key-notice { flex-shrink: 0; } /* Thread: grows + scrolls — min-height:0 is critical */ .messages-convo-page .dm-thread { flex: 1; min-height: 0; max-height: none; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 12px 16px; } /* Input bar: never shrinks */ .messages-convo-page .dm-send-form { flex-shrink: 0; margin-top: 0; padding: 10px 16px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #333; } .notif-count-dm { position: absolute; top: -7px; right: -5px; background: var(--badge-nsfw); color: white; font-size: 10px; padding: 2px 2px; border-radius: 3px; line-height: 1; } .dm-bubble .emoji { max-width: 200px; } /* ── DM Post Preview Card ─────────────────────────────────── */ a.dm-post-card, span.dm-post-card { display: flex; align-items: stretch; gap: 0; border-radius: 10px; overflow: hidden; text-decoration: none; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(0, 0, 0, 0.3); margin: 6px 0 2px; max-width: 320px; transition: border-color 0.15s, background 0.15s; cursor: pointer; } a.dm-post-card:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } /* Loading state */ span.dm-post-card--loading { opacity: 0.55; } .dm-post-card__thumb-wrap { position: relative; flex-shrink: 0; width: 72px; height: 72px; background: #111; overflow: hidden; } .dm-post-card__thumb { width: 100%; height: 100%; object-fit: cover; display: block; } .dm-post-card__thumb-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #555; font-size: 1.2em; } /* Media type badge (top-right of thumb) */ .dm-post-card__type-badge { position: absolute; top: 4px; right: 4px; background: rgba(0, 0, 0, 0.7); color: var(--accent, #aaa); font-size: 0.65em; padding: 2px 4px; border-radius: 4px; line-height: 1.2; pointer-events: none; } .dm-post-card__info { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 8px 12px; min-width: 160px; flex: 1; } .dm-post-card__id { font-weight: 700; font-size: 0.88em; color: var(--accent, #aaa); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dm-post-card__uploader, .dm-post-card__comments { font-size: 0.75em; color: rgba(255, 255, 255, 0.5); display: flex; align-items: center; gap: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dm-post-card__uploader i, .dm-post-card__comments i { font-size: 0.85em; opacity: 0.7; flex-shrink: 0; } /* Invert text colors inside a "mine" bubble so card still reads well */ .dm-msg-mine .dm-post-card__uploader, .dm-msg-mine .dm-post-card__comments { color: rgba(255, 255, 255, 0.65); } .dm-msg-mine a.dm-post-card { background: rgba(0, 0, 0, 0.2); border-color: rgba(255, 255, 255, 0.15); } /* ── DM Encrypted Attachment Card ────────────────────────── */ a.dm-attachment-card { display: inline-flex; align-items: center; gap: 10px; border-radius: 10px; overflow: hidden; text-decoration: none; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(0, 0, 0, 0.28); margin: 6px 0 2px; padding: 10px 14px 10px 12px; max-width: 300px; min-width: 180px; transition: border-color 0.15s, background 0.15s; cursor: pointer; color: inherit; position: relative; } a.dm-attachment-card:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.4); } .dm-attachment-card__icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; background: rgba(255, 255, 255, 0.07); flex-shrink: 0; font-size: 1.1em; color: var(--accent, #aaa); } .dm-attachment-card__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; } .dm-attachment-card__name { font-size: 0.82em; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg, #ddd); } .dm-attachment-card__size { font-size: 0.72em; color: rgba(255, 255, 255, 0.4); } .dm-attachment-card__dl { display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.85em; color: rgba(255, 255, 255, 0.35); padding-left: 4px; transition: color 0.15s; } a.dm-attachment-card:hover .dm-attachment-card__dl { color: var(--accent, #aaa); } /* Lock badge — indicates E2EE */ a.dm-attachment-card::after { content: '\f023'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 0.6em; position: absolute; top: 4px; right: 6px; color: rgba(255, 255, 255, 0.2); pointer-events: none; } /* Inside "mine" bubble */ .dm-msg-mine a.dm-attachment-card { background: rgba(0, 0, 0, 0.18); border-color: rgba(255, 255, 255, 0.14); } /* ── Attach button (paperclip) ────────────────────────────── */ .dm-attach-btn { background: none; border: none; color: rgba(255, 255, 255, 0.4); cursor: pointer; padding: 0 6px; font-size: 1em; line-height: 1; display: inline-flex; align-items: center; transition: color 0.15s; } .dm-attach-btn:hover { color: var(--accent, #aaa); } .dm-attach-btn:disabled { opacity: 0.4; cursor: default; } /* ── Inline attachment preview (image / video / audio) ───── */ .dm-attachment-preview { position: relative; margin: 4px 0 2px; border-radius: 10px; overflow: hidden; max-width: 320px; background: rgba(0, 0, 0, 0.25); border: 1px solid rgba(255, 255, 255, 0.08); } .dm-attachment-preview__img { display: block; max-width: 100%; max-height: 360px; width: auto; height: auto; object-fit: contain; cursor: zoom-in; border-radius: 10px; } .dm-attachment-preview__video { display: block; max-width: 100%; max-height: 300px; width: 100%; border-radius: 10px; background: #000; } .dm-attachment-preview__audio { display: block; width: 100%; padding: 8px 6px; accent-color: var(--accent, #aaa); } /* Loading placeholder while decrypting */ .dm-attachment-preview--loading { display: flex; align-items: center; justify-content: center; min-height: 48px; color: rgba(255, 255, 255, 0.3); font-size: 1.2em; } /* Floating download button in the preview corner */ .dm-attachment-preview__dl { position: absolute; top: 6px; right: 6px; background: rgba(0, 0, 0, 0.55); color: rgba(255, 255, 255, 0.75); border-radius: 6px; padding: 5px 7px; font-size: 0.78em; text-decoration: none; line-height: 1; transition: background 0.15s, color 0.15s; z-index: 2; } .dm-attachment-preview__dl:hover { background: var(--accent, #aaa); color: #000; } /* Eye-slash on card when preview is open */ .dm-attachment-card[data-previewed="true"] .dm-attachment-card__dl i { color: var(--accent, #aaa); } a.gchat-post-card, span.gchat-post-card { display: inline-flex; align-items: stretch; border-radius: 8px; overflow: hidden; text-decoration: none; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(0, 0, 0, 0.3); margin: 4px 0 2px; max-width: 280px; transition: border-color 0.15s, background 0.15s; vertical-align: middle; cursor: pointer; } a.gchat-post-card:hover { border-color: var(--accent); background: rgba(0, 0, 0, 0.45); } span.gchat-post-card--loading { opacity: 0.55; } .gchat-post-card__thumb-wrap { position: relative; flex-shrink: 0; width: 60px; height: 60px; background: #111; overflow: hidden; } .gchat-post-card__thumb { width: 100%; height: 100%; object-fit: cover; display: block; } .gchat-post-card__thumb-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #555; font-size: 1em; } .gchat-post-card__type-badge { position: absolute; top: 3px; right: 3px; background: rgba(0, 0, 0, 0.75); color: var(--accent, #aaa); font-size: 0.6em; padding: 2px 3px; border-radius: 3px; line-height: 1.2; pointer-events: none; } .gchat-post-card__info { display: flex; flex-direction: column; justify-content: center; gap: 3px; padding: 6px 10px; min-width: 120px; flex: 1; } .gchat-post-card__id { font-weight: 700; font-size: 0.82em; color: var(--accent, #aaa); white-space: nowrap; } .gchat-post-card__uploader, .gchat-post-card__comments { font-size: 0.72em; color: rgba(255, 255, 255, 0.45); display: flex; align-items: center; gap: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .gchat-post-card__uploader i, .gchat-post-card__comments i { font-size: 0.85em; opacity: 0.7; flex-shrink: 0; } /* Köpfe — random corner image */ #koepfe-img { position: fixed; bottom: 0; left: 0; z-index: -1; max-height: 200px; opacity: 0; transition: opacity 0.3s ease; user-select: none; -webkit-user-drag: none; will-change: opacity; pointer-events: none; } #koepfe-img.visible { opacity: 1; } .mode-filter { display: grid; justify-content: center; margin: 20px; grid-template-rows: 1fr; grid-template-columns: auto; gap: 5px; } #nav_excluded_tags_list { margin-bottom: 15px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: 100%; } .nav-exclude { width: 100%; max-width: 600px; margin: 0 auto; position: relative; } #nav_exclude_tag_input { width: 100%; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--nav-border-color); color: var(--white); padding: 10px; } #nav_exclude_suggestions { display: none; position: absolute; bottom: 100%; left: 0; right: 0; background: #1e1e1e; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.5); max-height: 200px; overflow-y: auto; z-index: 1000; } .nav-mime-filter { position: relative; display: grid; grid-template-rows: 1fr; grid-template-columns: 1fr 1fr 1fr; } /* ── Meme Pages (Critical) ────────────────────────────── */ .meme-select-container, .meme-creator-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 5vh 20px 20px; /* matched to .container standards */ position: relative; z-index: 10; } .meme-header { margin-bottom: 25px; border-bottom: 1px solid var(--accent, #9f0); padding-bottom: 15px; } .meme-title { font-family: var(--nav-brand-font, 'VCR'), monospace; color: var(--accent, #9f0); text-transform: uppercase; margin: 0; } .meme-subtitle { font-family: var(--font, monospace); color: #888; margin: 5px 0 20px 0; } .category-filter-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); padding-bottom: 20px; } .category-chip { background: var(--nav-bg, #2b2b2b); border: 1px solid var(--nav-border-color, rgba(255, 255, 255, .05)); color: var(--white, #fff); padding: 6px 14px; border-radius: 20px; font-family: var(--font, monospace); font-size: 0.85em; cursor: pointer; } .category-chip.active { background: var(--accent, #9f0); color: var(--black, #000); border-color: var(--accent, #9f0); } .template-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 15px; } .anim { margin: 0; animation: color 0.6s linear infinite !important; } @keyframes color { 0% { color: red; } 25% { color: yellow; } 50% { color: #1FB2B0; } 75% { color: #23dd06; } 100% { color: red; } } .anim-boxshadow { margin: 0; animation: boxshadow 0.6s linear infinite !important; } @keyframes boxshadow { 0% { box-shadow: 0 0 0 2px red; } 25% { box-shadow: 0 0 0 2px yellow; } 50% { box-shadow: 0 0 0 2px #1FB2B0; } 75% { box-shadow: 0 0 0 2px #23dd06; } 100% { box-shadow: 0 0 0 2px red; } } body.layout-modern .gapRight { justify-content: center; } body.layout-modern .gapRight>svg.iconset, body.layout-modern .gapRight>i.iconset { height: 30px; width: 30px; margin: 5px; padding: 5px; right: 0px; background: var(--badge-tag); display: inline-flex; align-items: center; justify-content: center; font-size: 18px; box-sizing: border-box; } body.layout-legacy .gapRight { justify-content: center; } body.layout-legacy .gapRight>svg.iconset, body.layout-legacy .gapRight>i.iconset { height: 30px; width: 30px; margin: 5px; padding: 5px; right: 0px; background: var(--badge-tag); display: inline-flex; align-items: center; justify-content: center; font-size: 18px; box-sizing: border-box; } body.layout-legacy .gapRight>.iconset#a_favo { fill: #ff009b; } /* OC Toggle Icon - now i element, color inherited from .gapRight i.iconset */ i.iconset#a_oc { color: #fff !important; fill: #fff !important; } /* OC Feature */ .oc-badge { background: #009fff; color: #000; padding: 2px 6px; border-radius: 4px; font-size: 0.75rem; font-weight: bold; box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); user-select: none; font-family: 'VCR'; } .oc-badge svg.iconset-oc { width: 14px; height: 14px; } .oc-option { display: flex; align-items: center; gap: 8px; user-select: none; justify-content: center; margin-bottom: 5px; } .oc-option input[type="checkbox"] { cursor: pointer; width: 16px; height: 16px; } .oc-label { font-weight: 500; color: var(--white); opacity: 0.9; } .oc-label i { color: #ffd700; margin-right: 4px; } /* Premium Responsive Table System */ .responsive-table { width: 100%; border-collapse: collapse; color: var(--white); } .responsive-table th, .responsive-table td { padding: 12px; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } @media (max-width: 768px) { .responsive-table, .responsive-table thead, .responsive-table tbody, .responsive-table th, .responsive-table td, .responsive-table tr { display: block; } /* Hide table headers (but keep for accessibility) */ .responsive-table thead tr { position: absolute; top: -9999px; left: -9999px; } .responsive-table tr { margin-bottom: 30px; background: linear-gradient(145deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.01) 100%); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; padding: 0; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); overflow: hidden; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .responsive-table td { border: none; position: relative; padding: 12px 15px !important; min-height: 48px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; text-align: left !important; border-bottom: 1px solid rgba(255, 255, 255, 0.03); box-sizing: border-box; } /* Highlight the first cell (User Info) as a card header */ .responsive-table td:first-child { background: rgba(255, 255, 255, 0.06); padding: 20px 20px !important; padding-left: 20px !important; /* Explicit reset to fix "cramped to right" bug */ border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 5px; display: block; /* Ensure it takes full width for the header style */ width: 100%; box-sizing: border-box; } .responsive-table td:first-child::before { display: none !important; /* Force hide label */ } .user-info-cell { width: 100%; justify-content: flex-start; } .responsive-table td::before { content: attr(data-label); position: static; width: auto; white-space: nowrap; font-weight: 800; color: var(--accent); font-size: 0.65em; text-transform: uppercase; letter-spacing: 1px; opacity: 0.8; margin-bottom: 2px; } /* Special handling for the Actions cell */ .responsive-table td[data-label="Actions"] { background: rgba(0, 0, 0, 0.2); padding: 15px !important; margin-top: 10px; display: block; border-bottom: none; } .responsive-table td[data-label="Actions"]::before { position: static; display: block; width: 100%; margin-bottom: 12px; text-align: center; } .user-actions-row { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 10px !important; width: 100%; justify-content: stretch !important; } .user-actions-row button { margin: 0 !important; width: 100%; justify-content: center; font-size: 0.8em; padding: 10px 5px !important; } /* Fix for ghost users/incomplete rows */ .responsive-table td:empty { display: none; } } .admin-header-flex { display: flex; justify-content: space-between; align-items: center; margin-bottom: 35px; flex-wrap: wrap; gap: 15px; padding: 0 10px; } @media (max-width: 600px) { .admin-header-flex { flex-direction: column; align-items: center; text-align: center; } .admin-header-flex h2 { margin-bottom: 8px !important; font-size: 1.8em; } .admin-header-flex button { width: 100%; max-width: 300px; } } /* profile stuff */ .profile_head { display: grid; grid-template-columns: auto 1fr; background: var(--nav-bg); } .profile_head_avatar { display: grid; align-items: normal; padding: 5px; } .layersoffear { display: grid; grid-template-columns: auto; } .profile_head_user_stats { display: grid; grid-auto-flow: column; grid-auto-columns: max-content; } .stat-id, .stat-joined, .stat-comments, .stat-tags, .stat-halls { padding: 5px; } .uploads-header, .favs-header { background: var(--black); padding: 5px; } @media (max-width: 700px) { .profile_head_user_stats { grid-auto-flow: row; grid-auto-columns: 1fr !important; grid-template-columns: 1fr 1fr; } .user_content_wrapper { grid-template-columns: auto; grid-auto-flow: column; grid-template-rows: auto auto; } } .setting-item { display: grid; } textarea#profile_description { height: 7em; background: var(--nav-bg); color: var(--white); } .profile-settings-actions { padding-top: 10px; } .profile_description { font-size: 0.8em; color: var(--white); max-width: 500px; word-wrap: break-word; } /* ============================================= USER ALTERNATIVE INFOBOX STYLES ============================================= */ /* When user infobox is active, expand .blahlol to full metadata width */ .blahlol:has(.user-infobox-block) { grid-column: 1 / -1; } .user-infobox-block { display: flex; gap: 10px; background: rgba(0, 0, 0, 0.2); border: 1px solid var(--author-border, rgba(0, 255, 0, 0.2)); line-height: 1; padding: 5px; align-items: flex-start; width: 100%; max-width: 100%; box-sizing: border-box; margin-bottom: 10px; } .user-infobox-avatar { flex-shrink: 0; } .user-infobox-avatar img { width: 64px; height: 64px; object-fit: cover; } .user-infobox-info { flex-grow: 1; display: flex; flex-direction: column; } .user-infobox-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; } .user-infobox-username { font-weight: 700; color: var(--author-accent, inherit) !important; text-decoration: none; } .user-infobox-timestamp { font-size: 0.8em; color: #888; letter-spacing: 0.5px; } .user-infobox-description { font-size: 0.9em; line-height: 1.5; color: #ccc; text-align: left; padding-top: 4px; border-top: 1px solid rgba(255, 255, 255, 0.05); } /* ============================================= xD Score Badge ============================================= */ .xd-score-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 4px; font-family: var(--font, monospace); font-size: 0.82em; font-weight: bold; letter-spacing: 0.5px; cursor: default; user-select: none; border: 1px solid transparent; transition: filter 0.2s ease; } .xd-score-badge:hover { filter: brightness(1.15); } /* xD num */ .xd-score-num { font-size: 0.85em; opacity: 0.75; font-weight: normal; } /* Tier 1: 1–4 pts — muted lime */ .xd-tier-1 { background: #1a2e10; color: #7ec850; border-color: #3a5a20; } /* Tier 2: 5–14 pts — yellow-green */ .xd-tier-2 { background: #2a2d00; color: #c8d830; border-color: #5a6400; } /* Tier 3: 15–29 pts — orange */ .xd-tier-3 { background: #2d1800; color: #e08030; border-color: #6a3800; } /* Tier 4: 30–59 pts — red-orange */ .xd-tier-4 { background: #2d0a00; color: #e84020; border-color: #7a2010; } /* Tier 5: 60+ pts — neon, pulsing glow */ .xd-tier-5 { background: #1a0000; color: #ff5500; border-color: #ff3300; box-shadow: 0 0 6px rgba(255, 80, 0, 0.5); animation: xd-pulse 1.8s ease-in-out infinite; } /* ─── xD score filter in filter modal ─────────────────────────────── */ .nav-xd-filter { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, 0.07); } .nav-xd-label { display: block; font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.5px; color: #888; margin-bottom: 6px; } .nav-xd-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } @keyframes xd-pulse { 0%, 100% { box-shadow: 0 0 5px rgba(255, 80, 0, 0.4), 0 0 12px rgba(255, 50, 0, 0.2); } 50% { box-shadow: 0 0 10px rgba(255, 100, 0, 0.8), 0 0 22px rgba(255, 60, 0, 0.4); } } /* ─── xD Score Slider ──────────────────────────────────────────────── */ .xd-slider { -webkit-appearance: none; appearance: none; flex: 1; height: 6px; border-radius: 3px; background: linear-gradient(to right, var(--xd-fill, #4caf50) 0%, var(--xd-fill, #4caf50) var(--xd-pct, 0%), rgba(255, 255, 255, 0.12) var(--xd-pct, 0%)); outline: none; cursor: pointer; min-width: 120px; } .xd-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 2px solid var(--xd-fill, #4caf50); box-shadow: 0 0 4px rgba(0, 0, 0, 0.4); cursor: pointer; transition: border-color 0.2s, transform 0.1s; } .xd-slider::-webkit-slider-thumb:hover { transform: scale(1.2); } .xd-slider::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid var(--xd-fill, #4caf50); cursor: pointer; } .xd-slider-val { display: inline-block; min-width: 28px; text-align: center; font-family: monospace; font-size: 0.9em; font-weight: bold; color: var(--xd-fill, #4caf50); padding: 1px 5px; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 4px; background: rgba(0, 0, 0, 0.2); } /* ─── xD score wrapper ─────────────────────────────────────────────── */ .xd-score-wrapper { margin-top: 8px; text-align: left; padding: 5px; } /* ─── xD score thumbnail indicator (position fix) ─────────────────── */ .thumb-xd-indicator { position: absolute; bottom: 5px; left: 5px; padding: 1px 5px; border-radius: 4px; font-size: 0.65em; font-weight: 700; letter-spacing: 0.03em; line-height: 1.4; pointer-events: none; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); color: #fff; border: 1px solid rgba(255, 255, 255, 0.2); z-index: 10; } .thumb-xd-indicator.xd-tier-1 { color: #a8e6a3; border-color: #a8e6a3; } .thumb-xd-indicator.xd-tier-2 { color: #ffe066; border-color: #ffe066; } .thumb-xd-indicator.xd-tier-3 { color: #ffa94d; border-color: #ffa94d; } .thumb-xd-indicator.xd-tier-4 { color: #ff6b6b; border-color: #ff6b6b; } .thumb-xd-indicator.xd-tier-5 { color: #ff3cac; border-color: #ff3cac; } /* Performance & Utility */ .desktop-only { display: inline-block !important; } .mobile-only { display: none !important; } @media (max-width: 768px) { .desktop-only { display: none !important; } .mobile-only { display: block !important; } } #reports-table-body tr { text-align: center; } /* Meta Suggestions */ .meta-suggestions-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 10px; } .meta-suggestion { padding: 0.35rem 0.75rem; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 50px; font-size: 0.85rem; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; gap: 0.5rem; color: rgba(255, 255, 255, 0.8); user-select: text; max-width: 100%; min-width: 0; } .meta-suggestion span { overflow-wrap: break-word; word-break: break-word; white-space: normal; min-width: 0; flex: 1; } .meta-suggestion:hover { background: var(--bg); border-color: var(--accent); transform: translateY(-1px); } .meta-suggestion i { font-size: 0.7rem; opacity: 0.6; } .meta-suggestion.selected { opacity: 0.4; cursor: default; pointer-events: none; background: rgba(255, 255, 255, 0.02); border-color: rgba(255, 255, 255, 0.05); color: rgba(255, 255, 255, 0.4) !important; } .meta-suggestion.selected i { color: var(--accent); opacity: 1; } #metadata-modal .f0ck-modal-body { max-height: 400px; overflow-y: auto; } /* Selection-edit popover for meta-suggestion pills */ .sel-tag-popover { position: fixed; z-index: 99999; display: flex; align-items: center; gap: 6px; background: #1e1e2e; border: 1px solid var(--accent, #9f0); border-radius: 8px; padding: 5px 8px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6); animation: sel-pop-in 0.12s ease; } @keyframes sel-pop-in { from { opacity: 0; transform: translateY(4px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } .sel-tag-popover input { background: transparent; border: none; outline: none; color: #fff; font-size: 0.85em; font-family: var(--font, monospace); min-width: 80px; max-width: 220px; width: auto; } .sel-tag-popover-confirm { background: var(--accent, #9f0); color: #000; border: none; border-radius: 4px; padding: 2px 8px; font-size: 0.8em; font-weight: bold; cursor: pointer; white-space: nowrap; } .sel-tag-popover-confirm:hover { filter: brightness(1.15); } /* ── Emoji Admin Card Grid ─────────────────────────────────────────── */ .emoji-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; padding: 4px; } .emoji-card { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 10px 12px; background: var(--dropdown-bg); border: 1px solid var(--nav-border-color); border-radius: 6px; transition: border-color .2s, box-shadow .2s, transform .15s; } .emoji-card:hover { border-color: var(--accent); box-shadow: 0 0 12px rgba(var(--accent-rgb, 100, 100, 255), .25); transform: translateY(-2px); } .emoji-card .emoji-preview { height: 48px; max-width: 80px; object-fit: contain; image-rendering: auto; } .emoji-card .emoji-label { font-family: monospace; font-size: .85em; color: var(--accent); text-align: center; word-break: break-all; line-height: 1.2; } .emoji-card .emoji-url { font-size: .65em; opacity: .45; text-align: center; word-break: break-all; line-height: 1.15; max-height: 2.3em; overflow: hidden; } .emoji-card .emoji-delete { position: absolute; top: 5px; right: 5px; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; background: rgba(200, 0, 0, .85); color: #fff; border: none; border-radius: 50%; font-size: 13px; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .15s; } .emoji-card:hover .emoji-delete { opacity: 1; } .emoji-card .emoji-delete:hover { background: #e00; } /* ================================================================ GLOBAL CHAT WIDGET — Facebook-style, bottom-right (left of sidebar) ================================================================ */ #gchat-widget { position: fixed; bottom: 0; right: calc(300px + 18px); z-index: 950; display: flex; flex-direction: column; align-items: flex-end; pointer-events: none; font-family: var(--font, monospace); max-height: calc(100dvh - var(--navbar-h, 50px)); overflow: hidden; } body.sidebar-right-hidden #gchat-widget { right: 18px; } body.scroller-active #gchat-widget { display: none !important; } /* Reopen bubble — appears when chat is closed */ #gchat-reopen-bubble { position: fixed; bottom: 18px; right: 18px; z-index: 9998; width: 42px; height: 42px; border-radius: 50%; border: none; background: var(--color-primary, #2a2a2a); color: #fff; font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4); opacity: 0.75; transition: opacity 0.15s, transform 0.15s; } #gchat-reopen-bubble:hover { opacity: 1; transform: scale(1.08); } .gchat-bubble-badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: #e53935; color: #fff; font-size: 0.68em; font-weight: 700; line-height: 18px; text-align: center; pointer-events: none; animation: gchat-badge-pop 0.2s ease; } body.sidebar-right-hidden #gchat-reopen-bubble { right: 18px; } body.scroller-active #gchat-reopen-bubble { display: none !important; } @media (max-width: 999px) { #gchat-widget { right: calc(280px + 14px); } body.sidebar-right-hidden #gchat-widget { right: 14px; } } /* Chat panel — always visible */ #gchat-panel { pointer-events: all; display: flex; flex-direction: column; width: 300px; height: 40dvh; max-height: calc(100dvh - var(--navbar-h, 50px)); background: var(--bg, #1a1a1a); border: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.08)); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.65); overflow: hidden; } /* Float mode — detached from bottom-right, freely positioned */ #gchat-panel.gchat-floating { position: fixed; right: auto; bottom: auto; max-height: calc(100dvh - var(--navbar-h, 50px)); } /* Draggable header cursor in float mode */ #gchat-panel.gchat-floating #gchat-header { cursor: move; } /* Minimized state — only header visible */ #gchat-panel.gchat-minimized { height: auto !important; max-height: 42px; } #gchat-panel.gchat-minimized #gchat-messages, #gchat-panel.gchat-minimized #gchat-input-area { display: none !important; } /* Header */ #gchat-header { display: flex; align-items: center; justify-content: space-between; padding: 0 10px; height: 42px; background: var(--nav-bg, #111); border-bottom: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.08)); cursor: default; user-select: none; flex-shrink: 0; } .gchat-header-btns { display: flex; align-items: center; gap: 0; flex-shrink: 0; } #gchat-title { font-size: 0.82em; font-weight: bold; color: var(--accent, #f2ef0b); letter-spacing: 0.5px; display: flex; align-items: center; gap: 6px; } .gchat-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #e53935; color: #fff; font-size: 0.72em; font-weight: 700; line-height: 1; letter-spacing: 0; animation: gchat-badge-pop 0.2s ease; } @keyframes gchat-badge-pop { 0% { transform: scale(0.6); opacity: 0; } 60% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } } .gchat-icon-btn { background: none; border: none; color: rgba(255, 255, 255, 0.5); cursor: pointer; padding: 4px 6px; border-radius: 4px; font-size: 12px; transition: color 0.15s, background 0.15s; line-height: 1; } .gchat-icon-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.08); } /* Messages area */ /* Pinned topic bar */ /* Online users bar */ #gchat-online { display: none; flex-shrink: 0; border-bottom: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.07)); background: rgba(0, 0, 0, 0.15); } .gchat-online-inner { display: flex; align-items: center; justify-content: space-between; padding: 4px 10px; gap: 8px; } .gchat-online-count { font-size: 0.68em; color: rgba(255, 255, 255, 0.45); white-space: nowrap; display: flex; align-items: center; gap: 4px; } .gchat-online-count::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #4caf50; flex-shrink: 0; } .gchat-online-avatars { display: flex; align-items: center; flex-direction: row-reverse; /* stack right-to-left */ } .gchat-online-avatar { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; border: 2px solid var(--bg, #1a1a1a); margin-left: -6px; flex-shrink: 0; transition: transform 0.1s; } .gchat-online-avatar:last-child { margin-left: 0; } .gchat-online-avatars:hover .gchat-online-avatar { transform: scale(1.1); } .gchat-online-extra { font-size: 0.65em; color: rgba(255, 255, 255, 0.5); background: rgba(255, 255, 255, 0.08); border-radius: 999px; padding: 1px 5px; margin-left: -2px; white-space: nowrap; } #gchat-topic { padding: 5px 10px; font-size: 0.78em; font-weight: 600; color: var(--bg, #111); background: var(--accent, #f2ef0b); border-bottom: 1px solid rgba(0, 0, 0, 0.15); word-break: break-word; white-space: pre-wrap; flex-shrink: 0; opacity: 0.95; } #gchat-messages { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 8px; display: flex; flex-direction: column; gap: 6px; scrollbar-width: thin; scrollbar-color: var(--scrollbar-color, #333) transparent; overscroll-behavior: contain; } /* Single message row */ .gchat-msg { display: flex; align-items: flex-end; gap: 6px; opacity: 0; transform: translateY(6px); transition: opacity 0.15s ease, transform 0.15s ease; max-width: 100%; } .gchat-msg.gchat-msg-in { opacity: 1; transform: translateY(0); } .gchat-msg.gchat-msg-self { flex-direction: row-reverse; } .gchat-avatar-link { flex-shrink: 0; display: flex; align-items: flex-end; } .gchat-avatar { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.1); } .gchat-bubble-wrap { display: flex; flex-direction: column; gap: 2px; max-width: calc(100% - 36px); } .gchat-msg-self .gchat-bubble-wrap { align-items: flex-end; } .gchat-username { font-size: 0.7em; font-weight: bold; opacity: 0.85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 180px; color: var(--white, #fff); } .gchat-bubble { background: rgba(0, 0, 0, 0.98); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 14px 14px 14px 3px; padding: 6px 10px; font-size: 0.82em; line-height: 1.4; color: var(--white, #f0f0f0); word-break: break-word; white-space: pre-wrap; max-width: 100%; } .gchat-msg-self .gchat-bubble { background: rgba(0, 0, 0, 0.98); border-color: rgba(var(--accent-rgb, 242, 239, 11), 0.25); border-radius: 14px 14px 3px 14px; color: #fff; } .gchat-time { font-size: 0.65em; opacity: 0.45; white-space: nowrap; } /* Greentext inside chat bubbles */ .gchat-bubble .gchat-greentext { color: #6abf69; display: block; } /* Spoiler/blur inside chat bubbles inherit existing styles */ .gchat-bubble .spoiler, .gchat-bubble .blur-text { cursor: pointer; } /* Emoji images inside chat bubbles */ .gchat-bubble .emoji { height: 10.4em; vertical-align: middle; display: inline-block; } /* @mention links in chat */ .gchat-bubble .mention { color: var(--accent, #f2ef0b); text-decoration: none; font-weight: bold; } .gchat-bubble .mention:hover { text-decoration: underline; } /* Input area — stacked: toolbar on top, input row below */ #gchat-input-area { display: flex; flex-direction: column; border-top: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.07)); background: var(--nav-bg, #0d0d0d); flex-shrink: 0; position: relative; } /* Toolbar row */ #gchat-toolbar { display: flex; align-items: center; gap: 4px; padding: 4px 8px 2px; } .gchat-tool-btn { background: none; border: none; color: rgba(255, 255, 255, 0.45); cursor: pointer; padding: 2px 6px; border-radius: 4px; font-size: 13px; transition: color 0.15s, background 0.15s; line-height: 1.3; user-select: none; } .gchat-tool-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.08); } /* Input + send row */ #gchat-input-row { display: flex; align-items: flex-end; gap: 6px; padding: 4px 8px 8px; } #gchat-input { flex: 1; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--white, #fff); font-family: var(--font, monospace); font-size: 0.82em; padding: 7px 12px; resize: none; outline: none; line-height: 1.4; transition: border-color 0.15s; scrollbar-width: thin; } #gchat-input:focus { border-color: var(--accent, #f2ef0b); } #gchat-input::placeholder { opacity: 0.4; } #gchat-send-btn { width: 34px; height: 34px; border-radius: 50%; border: none; background: var(--accent, #f2ef0b); color: var(--bg, #111); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: transform 0.15s ease, box-shadow 0.15s ease; flex-shrink: 0; } #gchat-send-btn:hover { transform: scale(1.1); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4); } #gchat-send-btn:active { transform: scale(0.92); } /* Emoji picker grid (above input area, inside panel) */ #gchat-emoji-picker { display: none; grid-template-columns: repeat(6, 1fr); gap: 4px; padding: 8px; overflow-y: auto; max-height: 140px; background: var(--nav-bg, #111); border-top: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.08)); scrollbar-width: thin; } #gchat-emoji-picker img { width: 36px; height: 36px; object-fit: contain; cursor: pointer; border-radius: 4px; padding: 2px; transition: background 0.1s; } #gchat-emoji-picker img:hover { background: rgba(255, 255, 255, 0.12); } /* :emoji inline autocomplete — portaled to body */ #gchat-emoji-ac { position: fixed; z-index: 2000; background: var(--bg, #1a1a1a); border: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.12)); border-radius: 8px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6); display: flex; flex-direction: column; overflow-y: auto; max-height: 180px; scrollbar-width: thin; } .gchat-emoji-ac-item { display: flex; align-items: center; gap: 8px; padding: 5px 10px; cursor: pointer; font-size: 0.82em; color: rgba(255, 255, 255, 0.8); transition: background 0.1s; } .gchat-emoji-ac-item:hover, .gchat-emoji-ac-item.active { background: rgba(255, 255, 255, 0.08); color: #fff; } .gchat-emoji-ac-item img { width: 22px; height: 22px; object-fit: contain; flex-shrink: 0; } @media (max-width: 999px) { #gchat-widget { right: calc(280px + 14px); } body.sidebar-right-hidden #gchat-widget { right: 14px; } } /* @user mention autocomplete — portaled to body, always opens upward */ #gchat-mention-ac { position: fixed; z-index: 2000; background: var(--bg, #1a1a1a); border: 1px solid var(--nav-border-color, rgba(255, 255, 255, 0.12)); border-radius: 8px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6); display: flex; flex-direction: column; overflow-y: auto; max-height: 200px; scrollbar-width: thin; } .gchat-mention-item { display: flex; align-items: center; gap: 8px; padding: 5px 10px; cursor: pointer; font-size: 0.82em; color: rgba(255, 255, 255, 0.8); transition: background 0.1s; } .gchat-mention-item:hover, .gchat-mention-item.active { background: rgba(255, 255, 255, 0.08); color: #fff; } .gchat-mention-item img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; flex-shrink: 0; } .gchat-mention-name { font-weight: bold; } .gchat-mention-display { opacity: 0.55; margin-left: 4px; font-size: 0.9em; } /* Top-edge height resize handle */ #gchat-resize-h { position: absolute; top: 0; left: 0; right: 0; height: 5px; cursor: ns-resize; z-index: 10; user-select: none; touch-action: none; } /* Left-side width resize handle */ #gchat-resize-w { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; cursor: ew-resize; z-index: 10; user-select: none; touch-action: none; } #gchat-resize-e { position: absolute; right: 0; top: 0; bottom: 0; width: 5px; cursor: ew-resize; z-index: 10; user-select: none; touch-action: none; } /* Panel needs relative positioning for the absolute left handle */ #gchat-panel { position: relative; } /* Message action row — timestamp + reply + delete */ .gchat-msg-actions { display: flex; align-items: center; gap: 4px; opacity: 0; transition: opacity 0.15s; margin-top: 2px; } .gchat-msg:hover .gchat-msg-actions { opacity: 1; } .gchat-reply-btn, .gchat-del-btn { background: none; border: none; cursor: pointer; padding: 2px 4px; border-radius: 3px; font-size: 10px; line-height: 1; transition: background 0.12s, color 0.12s; } .gchat-reply-btn { color: rgba(255, 255, 255, 0.4); } .gchat-reply-btn:hover { color: var(--accent, #f2ef0b); background: rgba(255, 255, 255, 0.06); } .gchat-del-btn { color: rgba(255, 100, 100, 0.5); } .gchat-del-btn:hover { color: #ff5555; background: rgba(255, 80, 80, 0.1); } /* ── Chat embedded media ─────────────────────────────────────────────────── */ .gchat-embed-img, .gchat-embed-video, .gchat-embed-audio, .gchat-embed-yt { display: block; margin-top: 6px; max-width: 100%; } .gchat-embed-img img { max-width: 100%; max-height: 200px; border-radius: 6px; display: block; object-fit: contain; cursor: zoom-in; } .gchat-embed-img img:hover { opacity: 0.9; } .gchat-embed-video video { max-width: 100%; max-height: 350px; border-radius: 6px; display: block; } .gchat-embed-audio audio { width: 100%; height: 36px; } /* Old iframe embed (no longer used, kept for safety) */ .gchat-embed-yt { position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 6px; } .gchat-embed-yt iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; } /* ── YouTube oEmbed preview card ──────────────────────────────────────────── */ .gchat-yt-card { display: flex; align-items: center; gap: 10px; margin-top: 6px; border-radius: 8px; overflow: hidden; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); text-decoration: none; color: inherit; transition: background 0.15s; max-width: 320px; } .gchat-yt-card:hover { background: rgba(255, 255, 255, 0.1); } .gchat-yt-thumb-wrap { position: relative; flex-shrink: 0; width: 110px; height: 62px; overflow: hidden; } .gchat-yt-thumb { width: 100%; height: 100%; object-fit: cover; display: block; } .gchat-yt-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.35); font-size: 1.6rem; color: #ff0000; pointer-events: none; transition: background 0.15s; } .gchat-yt-card:hover .gchat-yt-play { background: rgba(0, 0, 0, 0.55); } .gchat-yt-info { flex: 1; min-width: 0; padding: 6px 8px 6px 0; display: flex; flex-direction: column; gap: 2px; } .gchat-yt-title { font-size: 0.78rem; font-weight: 600; line-height: 1.3; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .gchat-yt-author { font-size: 0.7rem; opacity: 0.55; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ── Chat image modal ──────────────────────────────────────────────────────── */ #gchat-img-modal { display: none; position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, 0.85); align-items: center; justify-content: center; cursor: zoom-out; animation: gchat-modal-fade 0.18s ease; } #gchat-img-modal.gchat-img-modal-open { display: flex; } @keyframes gchat-modal-fade { from { opacity: 0; } to { opacity: 1; } } #gchat-img-modal-inner { position: relative; max-width: 92vw; max-height: 92vh; display: flex; align-items: center; justify-content: center; } #gchat-img-modal-img { max-width: 92vw; max-height: 92vh; object-fit: contain; border-radius: 4px; box-shadow: 0 8px 48px rgba(0, 0, 0, 0.9); cursor: default; } /* ── Same-site item preview card ───────────────────────────────────────────── */ .gchat-item-card { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; border-radius: 8px; overflow: hidden; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); text-decoration: none; color: inherit; transition: background 0.15s, border-color 0.15s; max-width: 260px; width: 100%; } .gchat-item-card:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--accent, rgba(255, 255, 255, 0.2)); text-decoration: none; } .gchat-item-card-thumb { position: relative; flex-shrink: 0; width: 80px; height: 60px; overflow: hidden; background: rgba(0, 0, 0, 0.3); } .gchat-item-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; } .gchat-item-card-icon { position: absolute; bottom: 4px; right: 4px; background: rgba(0, 0, 0, 0.6); border-radius: 4px; padding: 2px 5px; font-size: 0.72rem; color: #fff; line-height: 1; pointer-events: none; } .gchat-item-card-info { flex: 1; min-width: 0; padding: 6px 8px 6px 0; display: flex; flex-direction: column; gap: 3px; } .gchat-item-card-id { font-size: 0.8rem; font-weight: 700; color: var(--accent, #f2ef0b); white-space: nowrap; } .gchat-item-card-meta { font-size: 0.7rem; opacity: 0.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ── Same-site item preview card ───────────────────────────────────────────── */ .gchat-item-card { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; border-radius: 8px; overflow: hidden; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); text-decoration: none; color: inherit; transition: background 0.15s, border-color 0.15s; max-width: 260px; width: 100%; } .gchat-item-card:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--accent, rgba(255, 255, 255, 0.2)); text-decoration: none; } .gchat-item-card-thumb { position: relative; flex-shrink: 0; width: 80px; height: 60px; overflow: hidden; background: rgba(0, 0, 0, 0.3); } .gchat-item-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; } .gchat-item-card-icon { position: absolute; bottom: 4px; right: 4px; background: rgba(0, 0, 0, 0.6); border-radius: 4px; padding: 2px 5px; font-size: 0.72rem; color: #fff; line-height: 1; pointer-events: none; } .gchat-item-card-info { flex: 1; min-width: 0; padding: 6px 8px 6px 0; display: flex; flex-direction: column; gap: 3px; } .gchat-item-card-id { font-size: 0.8rem; font-weight: 700; color: var(--accent, #f2ef0b); white-space: nowrap; } .gchat-item-card-meta { font-size: 0.7rem; opacity: 0.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ============================================= SETTINGS PAGE – MOBILE OVERFLOW FIXES Prevents long i18n strings (Deutsch / Zange) from expanding past the viewport on mobile. ============================================= */ .settings { max-width: 100%; overflow-x: hidden; box-sizing: border-box; word-break: break-word; overflow-wrap: anywhere; padding: 20px; } .settings h1, .settings h2, .settings h4, .settings label, .settings span, .settings small, .settings p, .settings legend { overflow-wrap: anywhere; word-break: break-word; } .settings fieldset { min-width: 0; /* prevent fieldsets from blowing out grid */ max-width: 100%; box-sizing: border-box; } /* Settings quick-nav bar */ #settings-quicknav { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 14px; background: rgba(20,20,20,0.92); border-bottom: 1px solid var(--nav-border-color); position: fixed; top: var(--navbar-h, 50px); left: 0; right: 0; z-index: 200; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } #settings-quicknav a { font-size: 0.82em; font-weight: 600; padding: 4px 12px; border-radius: 20px; border: 1px solid var(--nav-border-color); color: var(--text-muted); text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s; white-space: nowrap; } #settings-quicknav a:hover, #settings-quicknav a.active { background: var(--accent); color: #fff; border-color: var(--accent); } @media (max-width: 600px) { .settings { padding: 0 4px; } /* Account info table: stack label and value */ .settings .account-info-table td { display: block; width: 100% !important; padding: 2px 0; } .settings .account-info-table tr { display: block; margin-bottom: 8px; } /* Display name row – stack input & button vertically */ .settings .account-info-table td[style*="display: flex"] { flex-wrap: wrap; } /* Account actions grid – single column on mobile */ .settings .account-actions-grid { grid-template-columns: 1fr !important; } /* Prevent flex rows from overflowing */ .settings .setting-item label[style*="display: flex"] { flex-wrap: wrap; } .settings .setting-item label span { flex: 1; min-width: 0; } /* Hint text under checkboxes */ .settings small.text-muted { display: block; margin-left: 0 !important; margin-top: 2px; word-break: break-word; overflow-wrap: anywhere; } /* Username color row */ .settings .setting-item div[style*="display: flex"] { flex-wrap: wrap; } /* Linked accounts wrapper */ .settings .linked-accounts-wrapper, .settings .preferences-settings-wrapper, .settings .account-settings-wrapper, .settings .profile-settings-wrapper { max-width: 100%; overflow-x: hidden; box-sizing: border-box; } .settings .account-settings-wrapper { padding: 12px !important; } /* Fieldset legend text */ .settings fieldset legend { font-size: 1em !important; max-width: 100%; overflow-wrap: anywhere; } } #nav-meme-link, #nav-upload-link { white-space: nowrap; } /* --- Admin IP History Styles --- */ .admin-ips-table { width: 100%; border-collapse: separate; border-spacing: 0 8px; color: var(--white); } .admin-ips-table th { padding: 15px; text-align: left; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 1px; color: #888; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .admin-ips-table tr { transition: all 0.2s ease; } .admin-ips-table tbody tr { background: rgba(255, 255, 255, 0.02); } .admin-ips-table tbody tr:hover { background: rgba(255, 255, 255, 0.05); } .admin-ips-table td { padding: 15px; vertical-align: middle; } .ip-badge { font-family: monospace; padding: 4px 10px; background: rgba(var(--accent-rgb, 153, 255, 0), 0.1); border: 1px solid rgba(var(--accent-rgb, 153, 255, 0), 0.2); color: var(--accent); border-radius: 4px; font-size: 0.9rem; word-break: break-all; display: inline-block; max-width: 100%; } .date-cell { font-size: 0.85rem; color: #aaa; } .date-label { display: block; font-size: 0.7rem; color: #666; text-transform: uppercase; margin-bottom: 2px; } /* Filter badge style on navbar */ .filter-badge { position: absolute; bottom: -14px; font-size: 9px; font-weight: 800; padding: 2px 4px; line-height: 1; text-transform: uppercase; color: #fff !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); cursor: pointer; font-family: var(--font, monospace); letter-spacing: 0.5px; z-index: 10; display: inline-flex; align-items: center; user-select: none; } .filter-badge-sfw { background: var(--badge-sfw, #68a728); } .filter-badge-nsfw { background: var(--badge-nsfw, #E10DC3); } .filter-badge-nsfl { background: var(--badge-nsfl, #660000); } .filter-badge-unt { background: #ff9800; /* Amber/Orange */ } .filter-badge-all { background: #555; /* Slate grey */ } /* Dynamic MIME icons styles */ .filter-mime-icons { display: inline-flex; gap: 3px; margin-left: 4px; align-items: center; } .mime-icon { font-size: 7px !important; width: auto !important; /* Override navbar icon fixed width */ text-align: center; line-height: 1; text-shadow: 0 0 2px rgba(0, 0, 0, 0.8); animation: dot-fade-in 0.2s ease-out forwards; } @keyframes dot-fade-in { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } } .mime-icon-video { text-shadow: 0 0 3px #00bcd4; } .mime-icon-image { text-shadow: 0 0 3px #2ecc71; } .mime-icon-audio { text-shadow: 0 0 3px #e84393; } .mime-icon-flash { text-shadow: 0 0 3px #f1c40f; } /* ZOMG Mode glowing Z indicator */ .zomg-z { color: #f1c40f; /* Gold/Yellow */ font-weight: 900; text-shadow: 0 0 3px #f1c40f; margin-left: 2px; animation: zomg-pulse 1.5s infinite alternate; } @keyframes zomg-pulse { from { text-shadow: 0 0 2px #f1c40f; } to { text-shadow: 0 0 6px #f1c40f, 0 0 10px #f1c40f; } } /* ============================================= POST & FILE INFO MODAL STYLES ============================================= */ .info-table { width: 100%; border-collapse: collapse; margin-top: 10px; } .info-table th { text-align: left; padding: 8px 10px 8px 0; font-weight: bold; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.05); font-size: 0.9em; width: 35%; } .info-table td { text-align: left; padding: 8px 0; color: #ccc; border-bottom: 1px solid rgba(255, 255, 255, 0.05); font-size: 0.9em; } .info-table td a { color: var(--accent, #9f0); text-decoration: none; font-weight: 600; } .info-table td a:hover { text-decoration: underline; } .info-table td code { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 0.85em; color: #eee; } .info-table tr:last-child th, .info-table tr:last-child td { border-bottom: none; } /* ============================================= NSFW / NSFL PREMIUM ZERO-LAG BACKGROUND BLUR ============================================= */ /* Stretch the thumbnail paragraph to cover the whole box */ .blur-nsfw-active div.posts > a.thumb[data-mode="nsfw"] p, .blur-nsfl-active div.posts > a.thumb[data-mode="nsfl"] p, .blur-sfw-active div.posts > a.thumb[data-mode="sfw"] p, .blur-untagged-active div.posts > a.thumb[data-mode="null"] p { position: absolute !important; inset: 0 !important; margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; z-index: 8 !important; } /* Premium Blur Overlay for NSFW */ .blur-nsfw-active div.posts > a.thumb[data-mode="nsfw"] p::after { content: "NSFW" !important; position: absolute !important; inset: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #ffffff !important; font-weight: 800 !important; font-size: 14px !important; letter-spacing: 2px !important; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.9) !important; background: rgba(10, 10, 12, 0.65) !important; pointer-events: none !important; opacity: 1 !important; transition: opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important; } /* Premium Blur Overlay for NSFL */ .blur-nsfl-active div.posts > a.thumb[data-mode="nsfl"] p::after { content: "NSFL" !important; position: absolute !important; inset: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #ff3b30 !important; font-weight: 800 !important; font-size: 14px !important; letter-spacing: 2px !important; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.9) !important; background: rgba(10, 10, 12, 0.75) !important; pointer-events: none !important; opacity: 1 !important; transition: opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important; } /* Premium Blur Overlay for SFW */ .blur-sfw-active div.posts > a.thumb[data-mode="sfw"] p::after { content: "SFW" !important; position: absolute !important; inset: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #30d158 !important; font-weight: 800 !important; font-size: 14px !important; letter-spacing: 2px !important; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.9) !important; background: rgba(10, 10, 12, 0.6) !important; backdrop-filter: blur(28px) !important; -webkit-backdrop-filter: blur(28px) !important; pointer-events: none !important; opacity: 1 !important; transition: opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important; } /* Premium Blur Overlay for Untagged */ .blur-untagged-active div.posts > a.thumb[data-mode="null"] p::after { content: "UNTAGGED" !important; position: absolute !important; inset: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #ff9f0a !important; font-weight: 800 !important; font-size: 14px !important; letter-spacing: 2px !important; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.9) !important; background: rgba(10, 10, 12, 0.65) !important; backdrop-filter: blur(32px) !important; -webkit-backdrop-filter: blur(32px) !important; pointer-events: none !important; opacity: 1 !important; transition: opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important; } /* Click reveal transition state (reveals on click adding .revealed, no hover reveal) */ .blur-nsfw-active div.posts > a.thumb.revealed p::after, .blur-nsfl-active div.posts > a.thumb.revealed p::after, .blur-sfw-active div.posts > a.thumb.revealed p::after, .blur-untagged-active div.posts > a.thumb.revealed p::after { opacity: 0 !important; } /* Notification exclamation mark override for active blur states (both blurred and revealed) */ .blur-nsfw-active div.posts > a.thumb[data-mode="nsfw"].has-notif p::after, .blur-nsfl-active div.posts > a.thumb[data-mode="nsfl"].has-notif p::after, .blur-sfw-active div.posts > a.thumb[data-mode="sfw"].has-notif p::after, .blur-untagged-active div.posts > a.thumb[data-mode="null"].has-notif p::after { content: "!" !important; color: var(--accent) !important; font-size: 40px !important; font-weight: 900 !important; text-shadow: 0 0 10px #000, 0 0 20px rgba(var(--accent-rgb), 0.5) !important; background: rgba(255, 0, 0, 0.28) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; } .blur-nsfw-active div.posts > a.thumb.revealed.has-notif p::after, .blur-nsfl-active div.posts > a.thumb.revealed.has-notif p::after, .blur-sfw-active div.posts > a.thumb.revealed.has-notif p::after, .blur-untagged-active div.posts > a.thumb.revealed.has-notif p::after { opacity: 1 !important; background: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; } /* Premium corner hide button styled dynamically inside revealed cards */ .blur-nsfw-active a.thumb p .hide-thumb-btn, .blur-nsfl-active a.thumb p .hide-thumb-btn, .blur-sfw-active a.thumb p .hide-thumb-btn, .blur-untagged-active a.thumb p .hide-thumb-btn { display: none !important; } .blur-nsfw-active a.thumb.revealed p .hide-thumb-btn, .blur-nsfl-active a.thumb.revealed p .hide-thumb-btn, .blur-sfw-active a.thumb.revealed p .hide-thumb-btn, .blur-untagged-active a.thumb.revealed p .hide-thumb-btn { display: flex !important; position: absolute !important; bottom: 15px !important; right: 0 !important; width: 20px !important; height: 20px !important; border-radius: 50% !important; background: rgba(0, 0, 0, 0.75) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; color: #ffffff !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; z-index: 100 !important; pointer-events: auto !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5) !important; transition: background 0.2s, transform 0.2s, border-color 0.2s, color 0.2s !important; padding: 0 !important; font-size: 11px !important; line-height: 1 !important; } /* Post detail page media-object blur overlay support (NSFW, NSFL, SFW, Untagged) */ .blur-detail-active.blur-nsfw-active .media-object[data-mode="nsfw"]:not(.revealed), .blur-detail-active.blur-nsfl-active .media-object[data-mode="nsfl"]:not(.revealed), .blur-detail-active.blur-sfw-active .media-object[data-mode="sfw"]:not(.revealed), .blur-detail-active.blur-untagged-active .media-object[data-mode="untagged"]:not(.revealed) { position: relative !important; cursor: pointer !important; } .blur-detail-active.blur-nsfw-active .media-object[data-mode="nsfw"]:not(.revealed) > *, .blur-detail-active.blur-nsfl-active .media-object[data-mode="nsfl"]:not(.revealed) > *, .blur-detail-active.blur-sfw-active .media-object[data-mode="sfw"]:not(.revealed) > *, .blur-detail-active.blur-untagged-active .media-object[data-mode="untagged"]:not(.revealed) > * { filter: blur(40px) brightness(0.6) !important; -webkit-filter: blur(40px) brightness(0.6) !important; pointer-events: none !important; user-select: none !important; transition: filter 0.35s ease, -webkit-filter 0.35s ease !important; } .media-object.revealed > * { filter: none !important; -webkit-filter: none !important; pointer-events: auto !important; } .blur-detail-active.blur-nsfw-active .media-object[data-mode="nsfw"]:not(.revealed)::after, .blur-detail-active.blur-nsfl-active .media-object[data-mode="nsfl"]:not(.revealed)::after, .blur-detail-active.blur-sfw-active .media-object[data-mode="sfw"]:not(.revealed)::after, .blur-detail-active.blur-untagged-active .media-object[data-mode="untagged"]:not(.revealed)::after { position: absolute !important; inset: 0 !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; z-index: 1000 !important; color: #fff !important; font-family: inherit !important; font-weight: 800 !important; letter-spacing: 2px !important; text-transform: uppercase !important; text-align: center !important; white-space: pre-wrap !important; cursor: pointer !important; transition: opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1) !important; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.9) !important; pointer-events: none !important; opacity: 1 !important; } .blur-detail-active.blur-nsfw-active .media-object[data-mode="nsfw"]:not(.revealed)::after { content: "NSFW\A \A Click to reveal" !important; font-size: 18px !important; color: #ffffff !important; background: rgba(10, 10, 12, 0.45) !important; } .blur-detail-active.blur-nsfl-active .media-object[data-mode="nsfl"]:not(.revealed)::after { content: "NSFL\A \A Click to reveal" !important; font-size: 18px !important; color: #ff3b30 !important; background: rgba(10, 10, 12, 0.55) !important; } .blur-detail-active.blur-sfw-active .media-object[data-mode="sfw"]:not(.revealed)::after { content: "SFW\A \A Click to reveal" !important; font-size: 18px !important; color: #30d158 !important; background: rgba(10, 10, 12, 0.4) !important; } .blur-detail-active.blur-untagged-active .media-object[data-mode="untagged"]:not(.revealed)::after { content: "UNTAGGED\A \A Click to reveal" !important; font-size: 18px !important; color: #ff9f0a !important; background: rgba(10, 10, 12, 0.45) !important; } /* Hide overlay when revealed */ .media-object.revealed::after { opacity: 0 !important; pointer-events: none !important; }