/* Color palette: http://paletton.com/#uid=33x0u0klrl-4ON9dhtKtAdqMQ4T */ :root { --bg: #010e19; --bg-main: #000d; --heading: #cb2408cc; --bg-heading1: #cb240844; --fg-link: #b9cbd8; --bg-input: #ccc4; --bg-input-hover: #8884; --bg-notification: #ac8f3944; --bg-error: #f00; --fg-error: white; --bg-category: #ccc4; --bg-input-invalid: #800; --fg-input-invalid: white; --bg-mothball: #ccc; --bg-debug: #cccc; --fg-debug: black; --bg-toast: #333; --fg-toast: #eee; --box-toast: #0b0; } @media (prefers-color-scheme: light) { /* We uses the alpha channel to apply hue tinting to elements, to get a * similar effect in light or dark mode. That means there aren't a whole lot of * things to change between light and dark mode. */ :root { --bg: #b9cbd8; --fg: black; --bg-main: #fffd; --fg-link: #092b45; } } body { font-family: sans-serif; background: var(--bg) url("bg.png") center fixed; background-size: cover; background-blend-mode: soft-light; background-color: var(--bg); color: var(--fg); } canvas.wallpaper { position: fixed; display: block; z-index: -1000; top: 0; left: 0; height: 100vh; width: 100vw; opacity: 0.2; image-rendering: pixelated; } main { max-width: 40em; margin: 1em auto; padding: 1px 3px; border-radius: 5px; background: var(--bg-main); } h1, h2, h3, h4, h5, h6 { color: var(--heading); } h1 { background: var(--bg-heading1); padding: 3px; } p { margin: 1em 0em; } a:any-link { color: var(--fg-link); } form, pre { margin: 1em; overflow-x: auto; } input, select { padding: 0.6em; margin: 0.2em; max-width: 30em; } input { background-color: var(--bg-input); color: inherit; } input:hover { background-color: var(--bg-input-hover); } input:active { background-color: inherit; } .notification, .error { padding: 0 1em; border-radius: 8px; } .notification { background: var(--bg-notification); } .error { background: var(--bg-error); color: var(--fg-error); } .hidden { display: none; } /** Puzzles list */ .category { margin: 5px 0; background: var(--bg-category); } .category h2 { margin: 0 0.2em; } .category .solved { text-decoration: line-through; } nav ul, .category ul { margin: 0; padding: 0.2em 1em; display: flex; flex-wrap: wrap; gap: 8px 16px; } nav li, .category li { display: inline; } .category li.entitled { flex-basis: 100%; } .mothball { float: right; text-decoration: none; border-radius: 5px; background: var(--bg-mothball); padding: 4px 8px; margin: 5px; } /** Puzzle content */ #puzzle { border-bottom: solid; padding: 0 0.5em; } #puzzle img { max-width: 100%; } input:invalid { background-color: var(--bg-input-invalid); color: var(--fg-input-invalid); } .answer_ok { cursor: help; } /** Development mode information */ .debug { overflow: auto; padding: 1em; border-radius: 10px; margin: 2em auto; background: var(--bg-debug); color: var(--fg-debug); } .debug dt { font-weight: bold; } /** Draggable items, from the draggable plugin */ li[draggable]::before { content: "↕"; padding: 0.5em; cursor: move; } li[draggable] { list-style: none; } [draggable].moving { opacity: 0.4; } [draggable].over { border: 1px white dashed; } /** Toasts are little pop-up informational messages. */ .toasts { position: fixed; z-index: 100; bottom: 10px; left: 10px; text-align: center; width: calc(100% - 20px); display: flex; flex-direction: column; } .toast { border-radius: 0.5em; padding: 0.2em 2em; animation: fadeIn ease 1s; margin: 2px auto; background: var(--bg-toast); color: var(--fg-toast); box-shadow: 0px 0px 8px 0px var(--box-toast); } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }