* { box-sizing: border-box; } html, body { margin: 0; height: 100%; line-height: 1.6; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji; overflow-wrap: anywhere; } :root { --sidebar-bg: #f1f7ff; --content-bg: #ffffff; --item-bg: #cfe0ff; --subitem-bg: #b9d0ff; --border: #c0d3ff; } a { color: #0366d6; text-decoration: none; &:hover { text-decoration: underline; } } code, pre, tt { padding: .2em .4em; margin: 0; font-size: 85%; background-color: rgba(27, 31, 35, .05); border-radius: 3px; font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace; white-space: normal; } h1 { margin-top: 0.2em; } h2 { font-size: 1.3em; } h3 { font-size: 1.1em; font-weight: 500; } table { border-collapse: collapse; thead { text-align: left; background-color: #eee; } thead { border-bottom: 7px solid #fff; } tr { border-bottom: 7px solid #fff; border-top: 7px solid #fff; vertical-align: baseline; } tr:first-child { border-bottom: none; } tr:last-child { border-top: none; } td { padding: 0; } td, th { border-left: 5px solid #fff; border-right: 5px solid #fff; } td:first-child, th:first-child { border-left: none; } td:last-child, th:last-child { border-right: none; } } li + li { margin-top: .25em; } /* ---------- Root ---------- */ .layout { height: 100vh; overflow: hidden; display: flex; flex-direction: column; } /* ---------- Desktop layout ---------- */ .app { display: flex; justify-content: center; height: 100%; overflow: hidden; background-color: #dccb921c; } /* ---------- Sidebar ---------- */ .sidebar { flex-shrink: 0; width: 262px; background: var(--sidebar-bg); //border-right: 2px solid var(--border); box-shadow: rgb(216, 231, 251) 0px 2px 4px 1px; overflow-y: auto; padding: 16px; #turbolinks-header { #logo { width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: center; margin-top: 10px; margin-bottom: 25px; } a { text-decoration: none; } a.button.rainbow { position: relative; display: inline-block; z-index: 0; background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82); background-size: 300% 300%; animation: animatedgradient 5s linear infinite; color: #fff; font-size: 120%; padding: 0.4em 0.9em; border-radius: 3em; margin-right: 0; &::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; z-index: -1; background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8, #1098ad, #07b39b, #6fba82); background-size: 300% 300%; animation: animatedgradient 5s linear infinite; filter: blur(8px); opacity: 0; } &:hover::before { opacity: 0.9; } &:active::before { opacity: 0; } } h1 { margin: 0; padding-bottom: 5px; line-height: 1; a { color: #000; } } p { margin: 0; color: #666; } #title-and-subtitle { display: flex; flex-direction: column; padding-left: 10px; } #download-section { display: flex; flex-direction: column; align-items: center; margin-bottom: 25px; div { font-size: 0.7em; margin-top: 5px; color: #646464; } } @keyframes animatedgradient { 0% { background-position: 0% 0%; } 25% { background-position: 50% 50%; } 50% { background-position: 100% 10%; } 75% { background-position: 50% 50%; } 100% { background-position: 0% 0%; } } } } /* ---------- Menu ---------- */ .menu, .menu ul { list-style: none; padding: 0; margin: 0; padding-left: 10px; } .menu-item { margin-bottom: 8px; a { color: #468ed8; } } .menu-item > input { display: none; } .menu-label { display: flex; align-items: center; gap: 6px; //background: var(--item-bg); padding: 6px 0; cursor: pointer; font-size: 16px; &.active, &:hover { text-decoration: none; font-weight: bold; //color: #0052a7; } &.support { color: #c10029; } } ul.submenu { padding-left: 28px; border-left: 1px solid var(--border); margin-left: 1px; font-size: 15px; max-height: 300px; overflow: auto; a.active, a:hover { text-decoration: none; font-weight: bold; //color: #0052a7; } } /* ---------- Content ---------- */ .content { max-width: 1048px; flex-shrink: 1; flex-grow: 1; background: var(--content-bg); overflow-y: auto; padding: 24px; & > div { max-width: 700px; .can-extend { width: calc(100vw - 310px) !important; max-width: 1000px; } } } /* ---------- Mobile ---------- */ #menu-toggle { display: none; } .hamburger-bar { display: none; height: 60px; background: var(--sidebar-bg); //border-bottom: 2px solid var(--border); box-shadow: rgb(216, 231, 251) 0px 2px 4px 1px; padding: 8px; align-items: center; #mobile-logo { display: flex; flex-grow: 1; align-items: center; justify-content: center; gap: 10px; & > div { display: flex; flex-direction: column; a { text-decoration: none; color: black; font-weight: bold; } & > span:last-child { margin-top: 4px; font-size: 13px; color: #666666; } } } } .hamburger-label { background: var(--item-bg); padding: 10px 15px; border-radius: 15px; cursor: pointer; font-size: 13px; } /* ---------- Mobile behavior ---------- */ @media (max-width: 800px) { #turbolinks-header { display: none; } .hamburger-bar { display: flex; } .app { position: relative; } .sidebar { position: fixed; top: 55px; //left: 0; right: 0; //bottom: 0; width: auto; transform: translateY(-100%); transition: transform 0.2s ease; z-index: 10; padding: 14px 24px 0 14px; } /* FIX: checkbox now controls sidebar */ #menu-toggle:checked ~ .app .sidebar { transform: translateY(0); } .content { padding-top: 24px; & > div { max-width: unset; .can-extend { width: 100% !important; } } } /* Toggle text */ .close { display: none; } #menu-toggle:checked + .hamburger-bar .open { display: none; } #menu-toggle:checked + .hamburger-bar .close { display: inline; } .sidebar { pointer-events: none; /* closed = not clickable */ } #menu-toggle:checked ~ .app .sidebar { transform: translateY(0); pointer-events: auto; /* open = clickable */ } .hamburger-bar { position: relative; z-index: 20; /* always above sidebar */ } } /* ---------- Support Page ------------- */ .support-buttons { display: flex; justify-content: center; column-gap: 40px; row-gap: 55px; flex-wrap: wrap; margin-bottom: 70px; /* Wrapper: each button keeps its mascot */ .support-button-wrapper { position: relative; display: inline-block; height: 120px; /* ensures space for mascot below */ } /* Button shape + style */ .support-button { width: 130px; height: 50px; border-radius: 22px; padding: 10px; display: flex; justify-content: center; align-items: center; cursor: pointer; background: linear-gradient(145deg, #ffffff, #dce8ff); box-shadow: 4px 4px 10px rgba(0,0,0,0.15), -4px -4px 10px rgba(255,255,255,0.7); transition: transform 0.2s ease, box-shadow 0.2s ease; position: relative; overflow: hidden; } /* Shine streak */ .support-button::before { content: ""; position: absolute; top: 0; left: -150%; width: 50%; height: 100%; background: linear-gradient( 120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100% ); transform: skewX(-20deg); opacity: 0; } .support-button:hover::before { animation: shine-sweep 0.8s forwards; opacity: 1; } @keyframes shine-sweep { 0% { left: -150%; } 100% { left: 200%; } } /* Button image */ .support-button img { width: 100%; height: 100%; object-fit: contain; object-position: center; } /* Hover lift */ .support-button:hover { transform: scale(1.08); box-shadow: 6px 6px 15px rgba(0,0,0,0.18), -6px -6px 15px rgba(255,255,255,0.8); } /* Mascots */ .mascot { position: absolute; width: 60px; bottom: -20px; left: 50%; transform: translateX(-50%) translateY(0); transition: transform 0.3s; pointer-events: none; } .rabbit { width: 50px } /* long ears '^^ /* /* Hover reactions */ .support-button-wrapper:hover .cat { transform: translateX(-50%) translateY(-20px) rotate(-15deg); } .support-button-wrapper:hover .dog { transform: translateX(-50%) translateY(-20px) scaleX(-1); } .support-button-wrapper:hover .squirrel { transform: translateX(-50%) translateY(-20px) rotate(15deg); } .support-button-wrapper:hover .rabbit { transform: translateX(-50%) translateY(-20px) rotate(-10deg); } .support-button img.paypal { width: 60%; margin-top: 6px; } .support-button img.github-sponsors { width: 110%; margin-top: 6px; } .support-button img.stripe { width: 51%; margin-top: 4px; } } #changelog { margin-top: -20px; padding: 15px; #support-link { margin: 0; position: fixed; top: 15px; right: 10px; border-radius: 0.5em; padding: 0.15em 0.9em; font-size: 13px; background: #ffdbd5; /*background: #f91675;*/ color: #950020; /*color: white;*/ font-weight: normal; } h1, h2 { margin-top: 20px; margin-bottom: 10px; font-size: 20px; background-color: #f1f7ff; display: inline-block; } @media (prefers-color-scheme: dark) { h1, h2 { background-color: rgba(255, 255, 255, 0.14); } } h3 { font-size: 13px; font-weight: bold; margin: 0; } ul { margin: 0 0 5px 0; } }