/* ======================================================================== The 2022 /r/place Atlas An Atlas of Reddit's 2022 /r/place, with information to each artwork of the canvas provided by the community. Copyright (c) 2017 Roland Rytz Copyright (c) 2022 r/placeAtlas2 contributors Licensed under the GNU Affero General Public License Version 3 https://place-atlas.stefanocoding.me/license.txt ======================================================================== */ @font-face { /* DejaVuSans-ExtraLight 2.37 - https://dejavu-fonts.github.io/ */ font-family: 'dejavu'; src: url('dejavusans-extralight.woff2') format('woff2'); font-weight: normal; font-style: normal; } * { margin: 0; padding: 0; border: none; box-sizing: border-box; } html, body { min-height: 100%; min-width: 100%; height: 100%; width: 100%; } p { line-height: 1.5em; margin-bottom: 1em; } body { overflow: hidden; overflow-x: hidden; overflow-y: hidden; font-family: dejavu, sans, Sans-Serif; background-color: #111; color: #FFF; line-height: 1.15; } #wrapper { position: fixed; height: 100%; width: 100%; overflow: hidden; overflow-x: hidden; overflow-y: hidden; -webkit-overflow-scrolling: touch; } a { color: #ffcf6f; text-decoration: none; } a:hover { text-decoration: underline; } button, .button { background-image: linear-gradient(to bottom, #888, #666); border: 1px #000 solid; color: #FFF; text-align: center; display: inline-block; padding: 5px; cursor: pointer; text-shadow: 1px 1px 0 #444; } button::-moz-focus-inner, .button::-moz-focus-inner { border: 0; } button:disabled, button:disabled:hover, .button:disabled, .button:disabled:hover { background-image: none; background-color: #666; color: #AAA; cursor: default; } button:hover, .button:hover { background-image: linear-gradient(to bottom, #999, #777); text-decoration: none; } input[type="text"], textArea { background-color: #444; border: 1px #000 solid; margin-bottom: 4px; padding: 5px 5px; color: #FFF; box-sizing: border-box; } input[type="text"] { height: 25px; } header { min-width: 360px; height: 50px; position: absolute; background-color: #555; border-right: 1px #000 solid; border-bottom: 1px #000 solid; z-index: 2100; display: inline-block; } @media (max-width: 600px) { header{ width: 100%; } } @media (max-width: 400px) { header h1{ font-size: 28px; } } @media (max-width: 350px) { header h1{ font-size: 20px; } } header.aboutHeader { width: 100%; border-right: 0; } header > a { display: flex; color: #FFF; /*align-items: center;*/ } header > a:hover { text-decoration: none; color: #FFAA00; } header h1 { font-size: 24px; } #logo { padding: 5px; /*background-color: #FFF;*/ } h1 { font-weight: lighter; padding: 0 10px; display: inline-block; margin-top: 0; line-height: 45px; position: absolute; top: 0; left: 50px; text-shadow: 1px 1px 0 #000; } select { -moz-appearance: none; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15.264' height='15.313'%3E%3Cpath d='M188.363 392.51h15.264l-7.637 15.313-7.627-15.312' fill='%23fff' fill-opacity='.633' transform='translate(-188.363 -392.51)'/%3E%3C/svg%3E") ,linear-gradient(to bottom, #888, #666); background-repeat: no-repeat, repeat; background-position: calc(100% - 10px) center, 0 0; background-size: 10px, cover; border: 1px #222 outset; color: #FFF; cursor: pointer; padding: 3px; padding-left: 7px; } select option[disabled] { display: none; } select:hover { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15.264' height='15.313'%3E%3Cpath d='M188.363 392.51h15.264l-7.637 15.313-7.627-15.312' fill='%23fff' fill-opacity='.633' transform='translate(-188.363 -392.51)'/%3E%3C/svg%3E") ,linear-gradient(to bottom, #999, #777); } select:active { background-image: linear-gradient(to bottom, #666, #777); background-color: #666; } option, optgroup { background-color: #555; font-size: 16px; border-color: #BBB; } #linesCanvas { position: absolute; left: 0; top: 0; height: 100%; /*width: calc(100% - 320px);*/ width: 100%; z-index: -500; } #container { width: calc(100% - 320px); height: 100%; margin-left: 320px; touch-action: manipulation; overflow: hidden; overflow-x: hidden; overflow-y: hidden; } #loading { position: absolute; background-color: rgba(10, 10, 10, .9); top: 0; left: 0; right: 0; bottom: 0; z-index: 2000; } [data-init-done][data-canvas-loading='false'] #loading { display: none } [data-init-done] #loading { z-index: 1000; animation: fadeInOut 4s linear 0s 1; } #loading > div { margin: 80px auto; color: #FFF; text-align: center; font-size: 40px; } #loading > div > div:first-child { width: 200px; height: 200px; border-radius: 200px; border: 7px #CCC solid; display: inline-block; border-top-color: #FFAA00; animation-duration: 3s; animation-name: spinner; animation-iteration-count: infinite; } #loading > div > span { font-family: dejavu, Helvetica, sans-serif; font-weight: 200; } @keyframes fadeInOut { 0% { opacity: 0; } 50% { opacity: 0; } 52.5% { opacity: 1; } 100% { opacity: 1; } } @keyframes spinner { from { transform: rotateZ(0deg); } to { transform: rotateZ(360deg); } } .error { color: #FFF; font-size: 23px; margin: 15px 0; } .errorBody { color: #CC8888; font-family: monospace; font-size: 20px; cursor: text; } noscript { color: #FFF; font-size: 23px; display: block; margin-top: 10px; } .listHidden #container { width: 100%; margin-left: 0; } #innerContainer { height: 2000px; width: 2000px; position: absolute; z-index: -2000; } #image { position: absolute; height: 100%; width: 100%; z-index: -1500; image-rendering: -moz-crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; } #highlightCanvas { z-index: -1200; position: absolute; height: 100%; width: 100%; image-rendering: -moz-crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; } #objectsList { max-width: 300px; width: calc(100% - 10px); position: absolute; right: 0; top: 0; padding: 0; max-height: calc(100% - 40px); overflow-y: auto; z-index: 0; } #closeObjectsListButton { height: 40px; width: 40px; position: absolute; top: 10px; right: 310px; background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cg fill='none' stroke-width='24.749' stroke-linecap='square' stroke='%23fff'%3E%3Cpath d='m26.625 166.233 139.59-139.59M166.214 166.233 26.625 26.643' stroke-width='29.999747839999998'/%3E%3C/g%3E%3C/svg%3E") ,linear-gradient(to bottom, #666, #444); background-size: 15px, cover; background-position: center, 0 0; background-repeat: no-repeat, no-repeat; } #closeObjectsListButton.hidden { display: none; } #closeObjectsListButton:hover { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cg fill='none' stroke-width='24.749' stroke-linecap='square' stroke='%23fff'%3E%3Cpath d='m26.625 166.233 139.59-139.59M166.214 166.233 26.625 26.643' stroke-width='29.999747839999998'/%3E%3C/g%3E%3C/svg%3E") ,linear-gradient(to bottom, #777, #555); } @media (max-width: 750px) { div:not(.listHidden) > #objectsList { display: none; } div:not(.listHidden) > #closeObjectsListButton { display: none; } } @media (max-width: 700px) { #objectsList { top: 50px; max-height: calc(100% - 90px); } } @media (max-width: 750px) { #closeObjectsListButton { top: 60px; } } @media (max-width: 530px) { #objectsList { top: 80px; max-height: calc(100% - 130px); } #closeObjectsListButton { top: 55px; right: 10px; height: 30px; width: 30px; } } .object { background-color: #555; border: 1px #000 solid; margin: 10px 10px 0 0; padding: 10px; overflow-x: auto; } .object:hover { background-color: #666; border-color: #FFF; } .object:hover a { background-color: #555; } .object:hover h2 { background-color: #777; } .object > * { display: block; } .object h2 { display: block; font-size: 20px; background-color: #666; text-shadow: 1px 1px 0 #000; margin: 0 -10px 10px -10px; font-weight: 300; } .object h2 a { color: #FFF; padding: 3px 10px; display: block; height: 100%; width: 100%; } .object h2 a:hover { color: #FFAA00; } .object a { background-color: #666666; text-align: center; padding: 3px; margin-bottom: 5px; } .object a.inline { background-color: transparent; display: inline; padding: 0; margin: 0; } .object a.inline:hover { background-color: transparent; text-decoration: underline; } .object a:hover { background-color: #777; text-decoration: none; } .object p { margin-bottom: 10px; } .object p:last-of-type { float: left; } .object .objectEdit { float: right; padding-left: 1em; padding-right: 1em; } p.edit { color: #FFFF00; } p.add { color: #00FF00; } p.delete { color: #FF0000; } #drawControlsContainer { background-color: #444; border-right: 1px #000 solid; width: 360px; position: absolute; left: 0; top: 50px; bottom: 0; overflow-y: auto; display: none; padding: 0 20px; } [data-mode="draw"] #drawControlsContainer { display: block; } #drawControls { width: 250px; padding: 15px; margin: 10px auto; background-color: #555; } #drawBackButton { margin: 10px auto 0 auto; display: block; width: 170px; } #drawControls > div > * { width: 100%; display: flex; justify-content: center; margin-bottom: 5px; } #drawControls .inline { display: flex } #drawControls .inline > * { flex-grow: 1; margin-right: 5px; } #drawControls .inline > *:last-child { margin-right: 0; } .checkboxLabel { background-color: #666; padding: 3px; cursor: pointer; } .checkboxLabel:hover { background-color: #777; } #drawControls .checkboxLabel { display: inline-block; } #highlightUnchartedLabel { font-size: 0.83333333333em } input[type="checkbox"] { margin: 3px; vertical-align: middle; display: inline-block; width: 15px; height: 15px; } #hint { display: block; text-align: left; color: #DDD; } #hint p { margin-bottom: 10px; } #objectInfo { display: none; } #objectInfo input { width: 100%; } #descriptionField { width: 220px; height: 70px; } #infoButtons { display: flex; margin-top: 10px; } #infoButtons button { width: 50px; flex-grow: 1; margin-right: 10px; } #infoButtons button:last-child { margin-right: 0; } .overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, .8); display: none; justify-content: center; z-index: 2000; } #exportWindow { margin: 50px auto; padding: 10px; width: 100%; height: calc(100% - 100px); max-width: 500px; /*max-height: 300px*/; border: 1px #000 solid; background-color: #555; display: flex; flex-direction: column; overflow-y: auto; } #exportWindow * { flex-shrink: 0; margin-bottom: 10px; } #exportWindow p { } #exportString { flex-grow: 1; flex-shrink: 0; } .exportButtons { display: flex; flex-direction: row; justify-content: center; gap: 1em } #exportButtons > * { margin-bottom: 0; width: 100px; align-self: flex-end; } #exportOverlay { display: none; } #coordsWrapper { min-width: 100px; position: absolute; display: flex; gap: 10px; z-index: 1100; top: 5px; left: 364px; } #wrapper.listHidden #coordsWrapper { top: 49px; left: 149px; } @media (max-width: 750px) { #coordsWrapper { display: none; } } #coords { background-color: #555; border: 1px #000 solid; padding: 6.5px; font-size: 17px; display: flex; align-items: center; justify-content: center; text-align: center; } #coords p { margin: 0; line-height: inherit; } #bottomBar { position: absolute; bottom: 10px; left: 10px; right: 10px; display: flex; gap: 10px; } div:not(.listHidden) > #bottomBar { left: 370px !important; } @media (max-width: 1120px) { div:not(.listHidden) > #bottomBar { flex-wrap: wrap; } .listHidden #author { flex: 1 !important; } } @media (max-width: 800px) { #bottomBar { flex-wrap: wrap; } #timeControls { min-width: calc(100vw - 390px) !important; } #author { flex: 1; min-width: 100% !important; } } #timeControls { flex: 1; background-color: #555; border: 1px #000 solid; font-size: 12px; text-align: center; min-width: 300px; position: relative; } #timeControls input { height: 100%; background: #555; -webkit-appearance: none; appearance: none; width: 100%; } #timeControlsTooltip { display: none; position: absolute; padding: 0.5em 2em; background: #555; border: 1px #000 solid; justify-content: center; bottom: 40px; white-space: nowrap; } #timeControlsTooltip p { line-height: normal; margin-bottom: 0; } #timeControls:hover #timeControlsTooltip { display: flex; } #zoomControls, #timeControls { z-index: 1100; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 10px; height: 25px; background: #d3d3d3; cursor: pointer; } .slider::-moz-range-thumb { appearance: none; width: 10px; height: 25px; background: #d3d3d3; cursor: pointer; } #author { background-color: #555; border: 1px #000 solid; padding: 3px; font-size: 12px; z-index: 2100; min-width: 320px; text-align: center; display: flex; align-items: center; justify-content: center; } #author p { margin: 0; line-height: inherit; } #zoomControls { width: 90px; display: flex; align-self: flex-end; } #zoomControls button { display: inline-block; height: 30px; width: 30px; margin-left: -1px; flex-grow: 1; font-size: 20px; line-height: 0; font-weight: 300; background-size: 15px; background-repeat: no-repeat; background-position: center; background-color: #555; } #zoomControls button:focus { outline: none; } #zoomControls button:hover { background-color: #666; } #zoomInButton { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cpath d='M171.429 495.22h162.857M252.857 413.79v162.858' style='fill:none;stroke:%23fff;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='translate(-156.438 -398.781)'/%3E%3C/svg%3E"); } button#zoomResetButton { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cpath d='M334.284 576.652h-162.85l-.001-162.866h162.85z' style='fill:none;stroke:%23fff;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='translate(-156.438 -398.781)'/%3E%3C/svg%3E"); } #zoomOutButton { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cpath d='M171.429 495.22h162.857' style='fill:none;stroke:%23fff;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='translate(-156.438 -398.781)'/%3E%3C/svg%3E"); } #entriesListContainer { position: absolute; left: 10px; top: 50px; bottom: 0; padding-bottom: 0; width: 340px; display: flex; flex-direction: column; } @media (max-width: 500px) { div#entriesListContainer { width: calc(100% - 20px); } div#entriesListBackground { width: 100%; } div:not(.listHidden) > #bottomBar { display: none !important; } div:not(.listHidden) > button#hideListButton { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192.844' height='192.875'%3E%3Cg style='stroke:%23fff;stroke-opacity:1'%3E%3Cpath d='m195.278 552.798 115.158-115.157M310.436 552.798 195.278 437.641' style='fill:none;stroke:%23fff;stroke-width:24.74926186;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='matrix(1.21216 0 0 1.21216 -210.083 -503.846)'/%3E%3C/g%3E%3C/svg%3E"); background-size: 20px; position: absolute; top: 55px; right: 10px; left: initial; border: 1px #000 solid; width: 40px; height: 40px; } #entriesListNav { width: calc(100% - 45px); } } @media (max-width: 350px) { #entriesListNav > a#drawLink { display: none; } } [data-mode="draw"] #entriesListContainer { display: none; } .listHidden #entriesListContainer { display: none; } #entriesListNav { margin: 10px 0; display: flex; flex-shrink: 0; justify-content: center; } #entriesListNav > * { display: block; cursor: pointer; width: 120px; height: 30px; margin-right: 10px; } #entriesListNav > .small { width: 30px; padding: 2px; flex-shrink: 0; } #entriesListNav > .small > img, #entriesListNav > .small > svg { height: 22px; width: 22px; } #entriesListNav > .small:last-child { margin-right: 0; } #entriesListNav > a:hover { text-decoration: none; background-image: linear-gradient(to bottom, #999, #777); } #entriesListNav > .small:hover { background-image: none; background: transparent; border-color: transparent; } #entriesListDonate:hover > svg { text-decoration: none; background-image: linear-gradient(to bottom, #FFAA00, #FFAA00); border-radius: 15px; padding: 3px; margin: -3px; height: 28px; width: 28px; } #entriesListDiscord:hover > svg { text-decoration: none; background-image: linear-gradient(to bottom, #7289DA, #7289DA); border-radius: 12px; padding: 3px; margin: -3px; height: 28px; width: 28px; } #entriesListBackground { position: absolute; left: 0; top: 50px; bottom: 0; width: 360px; z-index: -400; background-color: #333; border-right: 1px #000 solid; } [data-mode="draw"] #entriesListBackground { display: none; } .listHidden #entriesListBackground { display: none; } #hideListButton { position: absolute; height: 100px; width: 15px; top: 60px; left: 360px; border-left: none; background-color: #444; background-size: 7px; background-repeat: no-repeat; background-position: center; background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='165.157' height='260.426'%3E%3Cpath d='M310.436 552.798 195.278 437.585l115.158-115.213' style='fill:none;stroke:%23fff;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='translate(-170.278 -307.372)'/%3E%3C/svg%3E"); } .listHidden #hideListButton::before { content: "Show List"; font-size: 17px; font-weight: 300; color: #BBB; margin-left: 20px; } #hideListButton:hover { background-color: #555; } [data-mode="draw"] #hideListButton { display: none; } .listHidden #hideListButton { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='272.844' height='177.594'%3E%3Cpath d='M368.07 380.006 252.857 495.164 137.644 380.006' style='fill:none;stroke:%23fff;stroke-width:30;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none' transform='translate(-116.438 -348.781)'/%3E%3C/svg%3E") ,linear-gradient(to bottom, #555, #444); background-size: 15px, cover; background-position: 10px center, 0 0; top: 49px; left: 20px; border: 1px #000 solid; border-top: 1px #333 solid; width: 130px; height: 35px; z-index: 100; } #hideListButton:focus { outline: none; } #entriesListControls { background-color: #555; border: 1px #000 solid; color: #CCC; padding: 10px; margin-bottom: 10px; } #entriesListControls input:focus { outline: none; border-color: #CCC; } [data-mode="explore"] #entriesListControls { display: none; } #atlasSize { display: block; margin: 3px 0 5px 0; } #searchList { width: 100%; } #sortContainer { } #sortContainer label { width: 70px; } #sort { width: 150px; } #entriesListControls { width: 100%; } #entriesList { overflow-y: auto; direction: rtl; padding-bottom: 10px; text-align: center; } #entriesList .object { direction: ltr; margin: 0 0 10px 5px; text-align: left; } #aboutContainer { position: absolute; top: 50px; left: 0; right: 0; bottom: 0; background-color: #333; display: block; z-index: 2000; overflow-y: auto; } #aboutBackButton { margin: 20px 0 20px; padding: 10px 20px; } #aboutBackButtonContainer { /*margin: 0 auto; width: 100%; max-width: 1300px;*/ } #about { margin: 0 auto; width: 100%; max-width: 1000px; padding: 10px; } #about a { white-space: nowrap; } #about h2 { font-weight: 300; font-size: 30px; margin-top: 30px; margin-bottom: 10px; } #about h3 { line-height: 1.4em; text-align: center; } #contributors { text-align: justify; margin-top: 15px; margin-bottom: 15px; } #contributors a { margin: 3px; line-height: 26px; } #donateButton { cursor: pointer; } #donateWindow { display: inline-block; z-index: 2100; max-width: 400px; background-color: #444; border: 1px #000 solid; width: 100%; text-align: center; min-height: 50px; max-height: 500px; overflow: auto; height: auto; align-self: center; } #donateWindow { top: 20px; max-height: 100%; max-width: 800px; } #donateWindow > p { margin: 2px 0; padding: 0 20px; text-align: left; width: 100%; } #donateWindow > * { display: inline-block; margin: 5px 0; } #donateWindow > h2 { font-weight: 200; background-color: #555; width: 100%; line-height: 1.5em; margin: 10px 0; text-shadow: 1px 1px 0 #000; } #donateWindow input { width: 100%; max-width: 350px; font-size: 14px; background-color: #666; text-align: center; cursor: text; color: #FFF; } #donateWindow button { padding: 10px 20px; margin-bottom: 20px; margin-top: 10px; } h2#abouth2 { font-size: 40px; margin-bottom: 20px; text-shadow: 2px 2px 0 #000; } #viewModes { position: relative; display: inline-block; } #viewModes .buffer { bottom: -10px; left: 0; position: absolute; height: 20px; width: 100% } #viewModes .dropdown-content { margin-top: 1.5rem; top: 10px; left: 0; position: absolute; display: none; background: #666; border: 1px #000 solid; cursor: pointer; width: 125% } #viewModes .dropdown-content a { color: #FFF; text-align: left; padding: 5px 10px; display: block; text-decoration: none; text-shadow: 1px 1px 0 #444; } #viewModes .dropdown-content a:hover { background-image: linear-gradient(to bottom, #999, #777); } #viewModes:hover .dropdown-content, #viewModes:active .dropdown-content { display: block; } body:not([data-dev]) .show-only-on-dev { display: none !important; } #netlifyBadges { display: flex; align-items: center; gap: .5rem } #donateWindow a.button { padding: 1rem } #donateWindow a.button svg { height: 1em; vertical-align: -0.125em; } #donateWindow a.button path { color: white; } #periods { display: flex; flex-direction: column; } .period-group { background-color: #888; border: 1px black solid; padding: 0.5em; margin-bottom: 0.5em; font-size: 0.9em; } .period-group[data-active="true"] { border-color: lime; box-shadow: 0px 0px lime; } .period-group input { width: 100%; } #periods .period-visible { margin-bottom: 0; } #periods #periodsStatus:empty { display: none } #periods #periodsStatus { font-size: 0.8em } #drawControls p { margin-bottom: 0.5em; }