:root { --text-color: #ddd; --main-bg-color: #18181a; --chat-bg-color: #232327; --border-width: 1px; --chat-width: 320px; --main-border: var(--border-width) solid #38383d; --chat-border: var(--border-width) solid #4a4a4f; --aspect-x: 16; --aspect-y: 9; --pure-video-height: calc(100vw * var(--aspect-y) / var(--aspect-x)); --video-height: max(144px, min(75vh, var(--pure-video-height))); --button-height: 2rem; --nojs-info-height: 17ch; } body { margin: 0; background-color: var(--main-bg-color); color: var(--text-color); font-family: sans-serif; height: 100vh; display: grid; grid-auto-rows: var(--video-height) auto min-content 1fr auto; grid-template-areas: "stream" "toggle" "info" "chat" "footer"; } a { color: #42a5d7; } iframe { width: 100%; border: none; box-sizing: border-box; } noscript { display: grid; height: 100%; } #stream { background: black; width: 100%; height: var(--video-height); grid-area: stream; } #info { border-top: var(--main-border); grid-area: info; } #info_js { overflow-y: auto; padding: 1ch 1.5ch; height: 100%; } #info_js__uptime { float: right; font-size: 11pt; } #info_js__title > h1 { margin: 0; font-size: 18pt; line-height: 1.125; overflow-wrap: anywhere; } #info_nojs { height: 100%; } #chat { display: grid; grid-auto-rows: auto 1fr auto; background-color: var(--chat-bg-color); border-top: var(--chat-border); border-bottom: var(--chat-border); grid-area: chat; height: 50vh; min-height: 24ch; } #chat__header { text-align: center; padding: 0.5rem 0; border-bottom: var(--chat-border); } #chat__messages { position: relative; } #chat-messages_js { list-style: none; margin: 0; padding: 0 0.5rem 0.5rem; overflow-y: auto; width: 100%; box-sizing: border-box; max-height: 100%; position: absolute; bottom: 0; font-size: 11pt; } #chat-messages_nojs { height: 100%; } .chat-message { padding: 0.5ch 0.75ch; width: 100%; box-sizing: border-box; border-radius: 4px; } .chat-message:hover { background-color: #434347; } .chat-message__time { color: #b2b2b3; font-size: 10pt; cursor: help; } .chat-message__name { overflow-wrap: anywhere; font-weight: bold; /* color: attr("data-color"); */ cursor: default; } .chat-message__name__tag { font-family: monospace; font-size: 9pt; vertical-align: top; } .chat-message__markup { overflow-wrap: anywhere; line-height: 1.3125; } .tripcode { padding: 0 5px; border-radius: 7px; font-family: monospace; font-size: 9pt; cursor: default; } #chat-form_js { display: grid; grid-template-columns: 1fr min-content min-content 5rem; grid-template-rows: auto var(--button-height); grid-gap: 0.375rem; margin: 0 0.5rem 0.5rem 0.5rem; } #chat-form_js__submit { grid-column: 2 / span 1; } #chat-form_js__comment { grid-column: 1 / span 4; background-color: #434347; border-radius: 4px; border: 2px solid transparent; transition: 0.25s; max-height: max(37.5vh, 16ch); min-height: 1.75ch; height: 6ch; padding: 0.675rem; color: #c3c3c7; resize: vertical; } #chat-form_js__comment:not(:focus):hover { border-color: #737377; } #chat-form_js__comment:focus { background-color: black; border-color: #3584e4; } #chat-form_js__captcha-image { color: inherit; font-size: 8pt; } #chat-form_js__captcha-answer { width: 8ch; } #chat-form_js__submit { grid-column: 4; } #chat-form_js:not([data-captcha]) > #chat-form_js__captcha-image, #chat-form_js:not([data-captcha]) > #chat-form_js__captcha-answer { display: none; } #chat-form_nojs { height: 13ch; } #chat-live { position: relative; font-size: 9pt; line-height: var(--button-height); } #chat-live__ball { border: 4px solid maroon; border-radius: 4px; display: inline-block; margin-right: 2px; animation: 3s infinite glow; } #chat-live__status { position: absolute; left: 13px; display: inline-grid; grid-auto-flow: column; height: 100%; align-content: center; line-height: 1.1875; } #chat-live__status [data-verbose="false"] { display: none; } @keyframes glow { 0% {filter: brightness(100%)} 50% {filter: brightness(150%)} 100% {filter: brightness(100%)} } #toggle { grid-area: toggle; border-top: var(--main-border); display: grid; grid-template-columns: repeat(3, 1fr); } #toggle > a { text-align: center; padding: 1ch; font-variant: all-small-caps; text-decoration: none; color: inherit; background-color: #3674bf; border: 2px outset #3584e4; } footer { grid-area: footer; text-align: center; padding: 0.75ch; background: linear-gradient(#38383d, #1d1d20 16%); font-size: 9pt; } #info, #chat { display: none; } #info:target, #both:target > #info { display: block; } #chat:target, #both:target > #chat { display: grid; } #info:target ~ #toggle > [href="#info"], #chat:target ~ #toggle > [href="#chat"], #both:target > #toggle > [href="#both"] { background-color: #3065a6; border-style: inset; } #both:target #info_nojs { height: 9ch; } #info:target { grid-row-end: chat-end; } @media (min-width: 720px) { :root { --pure-video-height: calc((100vw - var(--chat-width) - var(--border-width)) * var(--aspect-y) / var(--aspect-x)); } body { grid-auto-rows: var(--video-height) 1fr auto; grid-auto-columns: 1fr var(--chat-width); grid-template-areas: "stream chat" "info chat" "footer chat"; } #toggle { display: none; } #info { display: block; } #chat { display: grid; border: none; border-left: var(--chat-border); min-height: 100%; } #chat-form_js[data-captcha] #chat-live__status [data-verbose="true"] { display: none; } #chat-form_js[data-captcha] #chat-live__status [data-verbose="false"] { display: inline; } #nochat:target { --chat-width: 0px; } #nochat:target #chat { display: none; } }