:root { font-family: "Open Sans", Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; font-weight: 400; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { margin: 0; } main { min-height: 100vh; display: flex; flex-direction: column; background-color: #e0e0e0; box-sizing: border-box; padding: 1em; } h1 { font-size: 3em; line-height: 1.1; margin: 1.25em 0; text-wrap: balance; padding-left: 0.5em; } button { appearance: none; border-radius: 0; border: 0; padding: 0; font-size: 1em; font-weight: 500; font-family: inherit; } article { opacity: 0.8; label { display: block; padding: 1em 0.66em; input { grid-area: input; position: absolute; opacity: 0; pointer-events: none; } strong { display: block; font-size: 1.25em; } small { grid-area: date; } } } article:has(:checked) { opacity: 0.25; + article:not(:has(:checked)) { opacity: 1; } } .clickable { box-shadow: 0 3px 0 rgba(0, 0, 0, .75); border: 2px solid #222; border-radius: 8px; background-color: #f1f1f1; display: block; &:hover, &:focus { background-color: #e1e1e1; } &:active { transform: translateY(1px); } } .back { background-color: #e0e0e0; color: #000; &:hover, &:focus { background-color: #d0d0d0; } } .calendar { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2em 0.5em; } header { display: flex; padding: 1em; gap: 0.5em; align-items: center; button { padding: 0.5em 1em; } h1 { font-size: 1.25em; flex: 1; margin: 0; } }