:root { --bg: transparent; --color: black; --link-color: #525dd7; --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: #848DF0; --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: 60vw; height: calc(100vh - 2rem); font-family: "Noto Sans", 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 16px; 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; padding-bottom: 1rem; border-bottom: 4px dotted var(--theme-btn-border); } 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; } nav .openmoji { width: 1.5rem !important; height: 1.5rem !important; } header > nav > ul a { font-size: 1rem; } h1 { font-size: 2.5rem; } h2 { font-size: 1.5rem; margin-bottom: 0rem; margin-top: 2rem; } section { width: 100%; } /* Index page sidebar layout */ .index-layout { display: flex; gap: 2rem; } .sidebar { margin-top: 1rem; min-width: 140px; max-width: 220px; position: sticky; top: 1rem; align-self: flex-start; } .sidebar h2 { margin-top: 0.5rem; font-size: 1rem; } .sidebar ul { list-style: none; padding: 0; margin: 0; } .sidebar ul li { margin-bottom: 0.5rem; } .sidebar ul li a { font-weight: 600; display: block; } .sidebar ul li span { display: block; font-size: 0.8rem; opacity: 0.7; margin-top: 0.1rem; } .index-main { flex: 1; min-width: 0; } p { text-align: left; } a { color: var(--link-color); } a:hover { opacity: 0.7; } /* Theme toggle button */ #theme-toggle { background: none; cursor: pointer; font-size: 1rem; 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; } /* Season theme buttons (in nav) */ #theme_button_default, #theme_button_autumn, #theme_button_winter, #theme_button_spring, #theme_button_summer { background: none; color: var(--theme-btn-color); cursor: pointer; font-size: 1rem; font-family: inherit; transition: opacity 100ms linear; } #theme_button_default:hover, #theme_button_autumn:hover, #theme_button_winter:hover, #theme_button_spring:hover, #theme_button_summer:hover { opacity: 0.8; } /* Hamburger menu - hidden on desktop */ #hamburger { display: none; background: none; border: none; font-size: 1.75rem; cursor: pointer; color: var(--color); padding: 1rem; margin-left: auto; } #nav-close { display: none; background: none; border: none; font-size: 1.75rem; cursor: pointer; color: var(--color); align-self: flex-end; padding: 1rem; } #nav-overlay { display: none; } /* 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; overflow-x: hidden; } .index-layout { flex-direction: column; gap: 0; } .sidebar { position: static; } } @media only screen and (device-width: 960px), only screen and (max-width:960px) { .image_item_expanded_container > .image_item { width: 80vw; } #carousel > button { font-size: 6rem; top: calc(50% - 4rem); } body { margin-top: 4rem; } #hamburger { display: block; position: fixed; top: 0.5rem; right: 2rem; z-index: 1002; padding: 0.5rem; } #nav-close { display: block; } #nav-menu { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: var(--theme-btn-bg, white); z-index: 1001; padding: 0 10vw; margin-top: 0; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 0.25s ease; box-sizing: border-box; } #nav-menu.open { transform: translateX(0); } header:has(#nav-menu.open) #hamburger { display: none; } #nav-menu > ul { flex-direction: column; gap: 0.5rem; } #nav-menu > ul > li { width: 100%; } #nav-menu > ul > li[style*="margin-left: auto"] { margin-left: 0 !important; margin-top: 1rem; } #nav-menu > ul > li[style*="margin-left: 1rem"] { margin-left: 0 !important; } #nav-menu > ul button, #nav-menu > ul a { width: 100%; text-align: center; } header > nav { border-bottom: none; } #nav-overlay { display: none; } }