:root { --bg: transparent; --color: black; --link-color: darkviolet; --image-border: rgba(0, 0, 0, 0.3); --image-border-hover: rgba(0, 0, 0, 0.7); --image-overlay: rgba(0, 0, 0, 0.7); --theme-btn-bg: white; --theme-btn-border: gray; --theme-btn-color: black; --input-focus-border: lightgray; --action-button-border: #f0f0f0; } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: rgba(13, 17, 23, 0.92); --color: #e6edf3; --link-color: #b083f0; --image-border: rgba(255, 255, 255, 0.2); --image-border-hover: rgba(255, 255, 255, 0.5); --image-overlay: rgba(0, 0, 0, 0.85); --theme-btn-bg: #21262d; --theme-btn-border: #444c56; --theme-btn-color: #e6edf3; --input-focus-border: #586069; --action-button-border: #30363d; } } [data-theme="dark"] { --bg: rgba(13, 17, 23, 0.92); --color: #e6edf3; --link-color: #b083f0; --image-border: rgba(255, 255, 255, 0.2); --image-border-hover: rgba(255, 255, 255, 0.5); --image-overlay: rgba(0, 0, 0, 0.85); --theme-btn-bg: #21262d; --theme-btn-border: #444c56; --theme-btn-color: #e6edf3; --input-focus-border: #586069; --action-button-border: #30363d; } body { width: 50vw; height: calc(100vh - 2rem); font-family: "Noto Sans", 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 14px; background-color: var(--bg); color: var(--color); padding: 0; margin: auto; } header { width: 100%; } header > h1 { font-weight: bold; font-size: 2rem; padding-top: 1rem; padding-bottom: 0.5rem; margin: 0; } header > nav { margin-top: 1rem; margin-bottom: 1rem; padding-left: 0.25rem; } header > nav > ul { display: flex; flex-direction: row; list-style-type: none; margin: 0; padding: 0; gap: 1rem; } header > nav > ul > li { display: flex; align-items: center; } header > nav > ul a { text-decoration: none; color: var(--link-color); font-size: 1rem; border-bottom: 1px solid transparent; } header > nav > ul a:hover { opacity: 0.8; text-decoration: underline; } h1 { font-size: 2.5rem; } h2 { font-size: 1.5rem; margin-bottom: 0rem; margin-top: 2rem; } section { width: 100%; } p { text-align: left; } a { color: var(--link-color); } a:hover { opacity: 0.7; } /* Theme toggle button */ #theme-toggle { background: none; border: 1px solid var(--theme-btn-border); color: var(--link-color); border-radius: 3px; padding: 0.1rem 0.5rem; cursor: pointer; font-size: 0.85rem; font-family: inherit; } #theme-toggle:hover { opacity: 0.8; } /* Image styling */ #image_container { display: flex; flex-direction: row; transition: transform 100ms ease-in-out; flex: 0 1 auto; width: 100%; overflow: auto; } #image_container .image_item { width: 240px; transition: opacity 100ms ease-in-out; padding: 0; margin: 0; padding-right: 12px; cursor: pointer; position: relative; } #image_container .image_item:hover > img { border: 2px solid var(--image-border-hover); } .image_item > figcaption { font-size: 10px; font-style: italic; } .image_item > img { width: inherit; border-radius: 3px; border: 2px solid var(--image-border); } .image_item_expanded_container { position: fixed; width: 100vw; height: 100vh; background-color: var(--image-overlay); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 1000; } .image_item_expanded_container > .image_item { width: 35vw; opacity: 1.0 !important; } input { outline: none; border: 1px solid transparent; border-radius: 2px; font-size: 1rem; padding: 0.5rem; } input:focus { border: 1px solid var(--input-focus-border); } .action_button { border: 1px solid var(--action-button-border); border-radius: 2px; width: 108px; height: 2rem; } .action_button:hover { cursor: pointer; opacity: 0.9; } /* Theme display */ #theme_container { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-color: transparent; z-index: -1; } #theme_canvas { width: 100%; height: 100%; z-index: -1; } /* Theme Selector */ #theme_section { position: fixed; bottom: 1rem; left: 0; width: 100%; text-align: center; } #theme_selector { display: flex; align-items: center; justify-content: center; bottom: 1rem; pointer-events: all; opacity: 1; transition: opacity 150ms linear; gap: 2rem; } #theme_selector.hidden { pointer-events: none; opacity: 0; } #theme_selector > button { width: 6rem; height: 2rem; border-radius: 3px; border: 1px solid var(--theme-btn-border); color: var(--theme-btn-color); background-color: var(--theme-btn-bg); cursor: pointer; transition: opacity 100ms linear; } #theme_selector > button:hover { opacity: 0.8; } #theme_selector > #theme_button_default { } #theme_selector > #theme_button_autumn { background-color: orange; } #theme_selector > #theme_button_winter { background-color: #79C0D7; } #theme_selector > #theme_button_spring { background-color: #00FF7F; } #theme_selector > #theme_button_summer { background-color: yellow; } .theme_button_text { margin-left: 0.5rem; } /* Phone screen adjustments */ @media only screen and (device-width: 1280px), only screen and (max-width:1280px) { header > h1 { font-size: 1.5rem; } body { width: 80vw !important; } } @media only screen and (device-width: 960px), only screen and (max-width:960px) { #theme_selector { margin-left: 1rem; margin-right: 1rem; } .theme_button_text { display: none; } #theme_selector > button { width: 100%; } .image_item_expanded_container > .image_item { width: 80vw; } #carousel > button { font-size: 6rem; top: calc(50% - 4rem); } }