@keyframes movingStripes { 0% { background-position: 0 0; } 100% { background-position: calc(sqrt(8) * -1rem) 0; } } .welcome { max-width: 80ch; height: 100dvh; margin: 0 auto; padding: 10dvh 2rem; display: flex; flex-direction: column; overflow: auto; line-height: 1.4; position: relative; z-index: 1; } .intro { h1 { margin-bottom: 7dvh; text-align: center; line-height: 1.1; .accronym { display: block; font-size: 0.8em; opacity: 0.7; } } p { margin: 1em 0; label { color: var(--accent); text-decoration: underline; cursor: pointer; @media (forced-colors: active) { color: ButtonText; } } } } .file-loader { display: block; width: 100%; height: 10rem; max-height: 70dvh; margin: 7dvh 0; padding: 1rem; border-radius: 1rem; background: var(--bg0); &:hover, &:focus { background: var(--bg0); outline: 2px solid var(--accent-light); outline-offset: 2px; } &.loading { display: flex; justify-content: center; align-items: center; font-size: 2em; background-color: var(--accent); color: var(--fg-inv0); background: repeating-linear-gradient( 45deg, var(--accent-dark), var(--accent-dark) 1rem, var(--accent) 1rem, var(--accent) 2rem ); background-size: 200% auto; &:hover, &:focus { outline: none; } @media (prefers-reduced-motion: no-preference) { animation: movingStripes 2s linear infinite; } } } .about { margin-top: auto; font-size: 0.85em; text-align: center; } .main-page.highlight-drag { &::before { content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: -1; background: repeating-linear-gradient( 45deg, var(--accent-dark), var(--accent-dark) 1rem, var(--accent) 1rem, var(--accent) 2rem ); background-size: 200% auto; @media (prefers-reduced-motion: no-preference) { animation: movingStripes 2s linear infinite; } } &::after { content: ""; position: absolute; left: 1rem; right: 1rem; top: 1rem; bottom: 1rem; z-index: 0; background: var(--bg2); } }