summaryrefslogtreecommitdiff
path: root/static/css/style.css
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-12-13 17:03:24 -0800
committerElizabeth Hunt <me@liz.coffee>2025-12-13 17:03:24 -0800
commit93f80150a1d07cf3ce51447636c7f8cd510832f1 (patch)
treeeaa4c7cf4d40e8a2dc86b2119894d9e0de10d7f3 /static/css/style.css
parenteb14a9b6263a3dd65fc62e1611c6da067a80ca00 (diff)
downloadadelie-93f80150a1d07cf3ce51447636c7f8cd510832f1.tar.gz
adelie-93f80150a1d07cf3ce51447636c7f8cd510832f1.zip
Syntax highlighting and a real repo struct
Diffstat (limited to 'static/css/style.css')
-rw-r--r--static/css/style.css1096
1 files changed, 0 insertions, 1096 deletions
diff --git a/static/css/style.css b/static/css/style.css
deleted file mode 100644
index c51d1e0..0000000
--- a/static/css/style.css
+++ /dev/null
@@ -1,1096 +0,0 @@
-:root {
- --bg: #f9f5f0;
- --bg-pattern: #f0ebe5;
- --fg: #2a1810;
-
- /* Primary colors */
- --primary: #e8739d;
- --primary-light: #f08db5;
- --primary-dark: #d85980;
-
- /* Secondary colors */
- --secondary: #b19cd9;
- --secondary-light: #c4b5fd;
- --secondary-dark: #9d7eb8;
-
- /* Accent colors */
- --accent-brown: #8b6f47;
- --accent-brown-light: #a8865b;
- --accent-brown-dark: #6e5837;
-
- /* Status colors */
- --success: #4caf50;
- --error: #d32f2f;
- --warning: #ff9800;
- --info: #2196f3;
-
- /* Neutral colors */
- --border: #2a1810;
- --surface: #ffe8f0;
- --surface-alt: #fdfcfb;
- --muted: #6b5d54;
- --border-light: #c0c0c0;
-
- /* Legacy aliases */
- --accent-pink: #e8739d;
- --accent-lavender: #b19cd9;
-
- --space-xs: 0.5rem;
- --space-sm: 1rem;
- --space-md: 1.5rem;
- --space-lg: 2rem;
- --space-xl: 3rem;
-
- --border-width: 2px;
- --border-style: solid;
-
- --font-mono: "Mono", monospace;
- --line-height: 1.4;
-
- --shadow-sm: 1px 1px 0, 2px 2px 0, 1px 2px 0;
- --shadow-md: 1px 1px 0, 2px 2px 0, 3px 3px 0, 2px 1px 0;
- --shadow-lg: 1px 1px 0, 2px 2px 0, 3px 3px 0, 4px 4px 0, 2px 1px 0, 1px 2px 0,
- 3px 1px 0;
- --shadow-color: rgba(42, 24, 16, 0.5);
- --shadow-box: 3px 3px 0 rgba(0, 0, 0, 0.2);
- --shadow-button: 2px 2px 0 rgba(0, 0, 0, 0.2);
- --highlight: rgba(255, 255, 255, 0.4);
- --lowlight: rgba(42, 24, 16, 0.6);
-
- --content-max-width: 1000px;
-}
-
-[data-theme="dark"] {
- --bg: #35302a;
- --bg-pattern: #2b2620;
- --fg: #f5f5f5;
-
- --primary: #e8739d;
- --primary-light: #f08db5;
- --primary-dark: #d85980;
-
- --secondary: #b19cd9;
- --secondary-light: #c4b5fd;
- --secondary-dark: #9d7eb8;
-
- --accent-brown: #d4a574;
- --accent-brown-light: #e8b896;
- --accent-brown-dark: #b8885a;
-
- --border: #e8e8e8;
- --border-light: #8b7d6b;
- --surface: #3f3932;
- --surface-alt: #47403a;
- --muted: #a89f94;
-
- --accent-pink: #e8739d;
- --accent-lavender: #b19cd9;
-
- --shadow-color: rgba(0, 0, 0, 0.8);
- --highlight: rgba(255, 255, 255, 0.3);
- --lowlight: rgba(0, 0, 0, 0.8);
-}
-
-@font-face {
- font-family: "Mono";
- src: url("/static/fonts/Maple.woff2") format("woff2");
- font-display: swap;
- font-weight: normal;
-}
-
-@supports (font-synthesis: none) {
- @font-face {
- font-family: "Mono";
- src: url("/static/fonts/Maple.woff2") format("woff2");
- font-synthesis: none;
- }
-}
-
-/* base */
-
-* {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- cursor:
- url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 24" width="32" height="24"><path d="M1 3h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v2H9v1h1v2h1v2h-1v1H8v-1H7v-2H6v-2H5v1H4v1H3v1H1" fill="%23ff69b4" stroke="%23b19cd9" stroke-width="0.5"/><path d="M2 5h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1H8v2h1v2h1v2H8v-2H7v-2H6v-1H5v1H4v1H3v1H2" fill="white" stroke="%23ff69b4" stroke-width="0.5"/></svg>')
- 0 0,
- auto !important;
-}
-
-html {
- font-size: 16px;
- background-color: var(--bg);
- position: relative;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- height: 100vh;
-}
-
-html::before {
- content: "";
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-image: linear-gradient(
- 45deg,
- rgba(0, 0, 0, 0.2) 25%,
- transparent 25%,
- transparent 75%,
- rgba(0, 0, 0, 0.2) 75%
- ),
- linear-gradient(
- 45deg,
- rgba(0, 0, 0, 0.2) 25%,
- transparent 25%,
- transparent 75%,
- rgba(0, 0, 0, 0.2) 75%
- ),
- url("/static/img/bg.png");
- background-size:
- 10px 10px,
- 10px 10px,
- auto;
- background-position:
- 0 0,
- 5px 5px,
- 0 0;
- background-repeat: repeat;
- opacity: 0.15;
- z-index: -1;
- pointer-events: none;
-}
-
-body {
- background: transparent;
- color: var(--fg);
- line-height: var(--line-height);
- padding: var(--space-md);
- padding-top: calc(var(--space-md) + 3rem);
- max-width: var(--content-max-width);
- margin: 0 auto;
- font-family: var(--font-mono);
- scrollbar-color: var(--accent-lavender) var(--bg);
- scrollbar-width: thin;
- display: flex;
- flex-direction: column;
- height: 100vh;
-}
-
-/* webkit scrollbar (chrome, safari, edge) */
-::-webkit-scrollbar {
- width: 12px;
-}
-
-::-webkit-scrollbar-track {
- background: var(--bg);
- border: 2px solid var(--border-light);
-}
-
-::-webkit-scrollbar-thumb {
- background: var(--accent-lavender);
- border: 2px outset var(--border-light);
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight);
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: var(--accent-pink);
-}
-
-.div-centered {
- max-width: var(--content-max-width);
- margin: auto;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- min-height: calc(100vh - 4.5rem);
- text-align: justify;
-}
-
-/* typography */
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: var(--font-mono);
- font-weight: bold;
- line-height: 1.2;
- margin-bottom: var(--space-md);
- border: 2px solid var(--border-light);
- padding: var(--space-sm);
- background-size: 4px 4px;
- background-color: var(--accent-pink);
- background-position:
- 0 0,
- 2px 2px;
- color: var(--bg);
-}
-
-h1 {
- font-size: 2rem;
- margin-bottom: var(--space-lg);
-}
-h2 {
- font-size: 1.5rem;
- background-size: 4px 4px;
- background-position:
- 0 0,
- 2px 2px;
- background-color: var(--accent-lavender);
- margin-bottom: var(--space-md);
-}
-h3 {
- font-size: 1.25rem;
- background-size: 4px 4px;
- background-position:
- 0 0,
- 2px 2px;
- background-color: var(--accent-brown);
- box-shadow: var(--shadow-box);
-}
-h4 {
- font-size: 1.1rem;
-}
-h5 {
- font-size: 1rem;
-}
-h6 {
- font-size: 0.9rem;
-}
-
-p {
- margin-bottom: var(--space-sm);
-}
-
-a {
- color: var(--accent-pink);
- text-decoration: none;
- border-bottom: 2px solid var(--accent-pink);
- font-weight: bold;
-}
-
-a:hover {
- background: var(--accent-pink);
- color: var(--bg);
-}
-
-small {
- color: var(--muted);
- font-size: 0.875rem;
-}
-
-blockquote {
- border-left: 3px solid var(--accent-brown);
- padding-left: var(--space-md);
- margin: var(--space-md) 0;
- font-style: italic;
- color: var(--muted);
-}
-
-/* lists */
-
-ul,
-ol {
- margin: var(--space-sm) 0;
- padding-left: var(--space-lg);
-}
-
-li {
- margin-bottom: var(--space-xs);
-}
-
-/* tables */
-
-table {
- width: 100%;
- border-collapse: collapse;
- margin: var(--space-md) 0;
- border: 2px solid var(--border-light);
- background: var(--bg);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 3px 3px 0 rgba(0, 0, 0, 0.15);
-}
-
-thead {
- background: var(--secondary);
- color: var(--bg);
- font-weight: bold;
-}
-
-th,
-td {
- padding: var(--space-xs) var(--space-sm);
- border: 1px solid var(--border-light);
- text-align: left;
-}
-
-tbody tr:nth-child(odd) {
- background: var(--surface-alt);
-}
-
-tbody tr:nth-child(even) {
- background: var(--bg);
-}
-
-tbody tr:hover {
- background: rgba(232, 115, 157, 0.1);
-}
-
-/* code */
-
-code {
- background: var(--bg);
- padding: 0.25rem 0.5rem;
- border: 1px solid var(--border-light);
- font-size: 0.875rem;
- font-family: var(--font-mono);
-}
-
-pre {
- background: var(--bg);
- border: 2px solid var(--border-light);
- padding: var(--space-md);
- margin: var(--space-md) 0;
- overflow-x: auto;
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 3px 3px 0 rgba(0, 0, 0, 0.15);
-}
-
-pre code {
- background: transparent;
- border: none;
- padding: 0;
- font-size: 0.875rem;
-}
-
-/* dividers */
-
-hr {
- border: none;
- border-top: 2px solid var(--border-light);
- margin: var(--space-lg) 0;
- height: 0;
-}
-
-/* layout */
-
-header {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- z-index: 1000;
- border-bottom: 2px outset var(--border-light);
- padding: 0.4rem var(--space-md);
- margin-bottom: 0;
- background: var(--surface);
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: var(--space-md);
-}
-
-header h1 {
- display: none;
-}
-
-header::before {
- content: "";
- display: inline-block;
- width: 1.5rem;
- height: 1.5rem;
- background-image: url("/static/img/coffee.svg");
- background-size: contain;
- background-repeat: no-repeat;
- margin-right: 0.5rem;
-}
-
-nav {
- display: flex;
- gap: var(--space-md);
- flex-wrap: wrap;
- align-items: center;
- margin: 0;
- flex: 1;
-}
-
-nav a {
- font-size: 0.85rem;
- padding: 0.2rem 0.4rem;
- color: var(--fg);
- border-bottom: 2px solid var(--accent-pink);
-}
-
-main {
- flex: 1;
-}
-
-article {
- border: 2px solid var(--border-light);
- padding: var(--space-md);
- margin-bottom: var(--space-lg);
- background: var(--surface);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 4px 4px 0 rgba(0, 0, 0, 0.2),
- 5px 5px 0 rgba(0, 0, 0, 0.08);
-}
-
-article > :last-child {
- margin-bottom: 0;
-}
-
-article h2 {
- margin: calc(var(--space-md) * -1) calc(var(--space-md) * -1) var(--space-md);
- border-left: none;
- border-right: none;
- border-top: none;
-}
-
-footer {
- border: 2px solid var(--border-light);
- padding: var(--space-md);
- text-align: center;
- background: var(--surface);
- font-size: 0.875rem;
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 4px 4px 0 rgba(0, 0, 0, 0.2),
- 5px 5px 0 rgba(0, 0, 0, 0.08);
-}
-
-footer > :last-child {
- margin-bottom: 0;
-}
-
-/* components */
-
-/* forms */
-
-input,
-textarea,
-select {
- font-family: var(--font-mono);
- padding: var(--space-xs) var(--space-sm);
- border: 2px outset var(--border-light);
- background: var(--bg);
- color: var(--fg);
- font-size: 0.875rem;
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight),
- inset 2px 2px 0 rgba(255, 255, 255, 0.2),
- inset -2px -2px 0 rgba(0, 0, 0, 0.4);
- transition: border-color 0.2s, box-shadow 0.2s;
- width: 100%;
- max-width: 100%;
-}
-
-input::placeholder,
-textarea::placeholder,
-select::placeholder {
- color: var(--muted);
- opacity: 0.8;
-}
-
-[data-theme="dark"] input::placeholder,
-[data-theme="dark"] textarea::placeholder,
-[data-theme="dark"] select::placeholder {
- color: #b8b0a0;
- opacity: 1;
-}
-
-input:focus,
-textarea:focus,
-select:focus {
- outline: none;
- border-color: var(--primary);
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight),
- 0 0 0 2px var(--primary);
-}
-
-input:invalid,
-textarea:invalid {
- border-color: var(--error);
-}
-
-input:invalid:focus,
-textarea:invalid:focus {
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight),
- 0 0 0 2px var(--error);
-}
-
-textarea {
- resize: vertical;
- min-height: 4rem;
- width: 100%;
-}
-
-select {
- cursor: pointer;
- appearance: none;
- background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a1810' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
- background-repeat: no-repeat;
- background-position: right 0.5rem center;
- background-size: 1.2em;
- padding-right: 2.5rem;
-}
-
-[data-theme="dark"] select {
- background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5e6e8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
-}
-
-option {
- background: var(--bg);
- color: var(--fg);
- padding: var(--space-sm);
-}
-
-option:checked {
- background: linear-gradient(var(--primary), var(--primary));
- color: var(--bg);
-}
-
-input[type="checkbox"],
-input[type="radio"] {
- appearance: none;
- width: 1.3rem;
- height: 1.3rem;
- min-width: 1.3rem;
- min-height: 1.3rem;
- padding: 0;
- cursor: pointer;
- margin: 0 0.5rem 0 0;
- vertical-align: middle;
- border: 2px solid var(--border-light);
- box-shadow: inset 1px 1px 0 var(--highlight), inset -1px -1px 0 var(--lowlight);
- background: var(--bg);
- display: inline-flex;
- align-items: center;
- justify-content: center;
- flex-shrink: 0;
- font-weight: normal;
-}
-
-input[type="radio"] {
- border-radius: 50%;
-}
-
-input[type="checkbox"]:checked,
-input[type="radio"]:checked {
- background: var(--primary);
-}
-
-label {
- display: block;
- margin-bottom: var(--space-xs);
- font-weight: bold;
- color: var(--fg);
-}
-
-input[type="checkbox"] + label,
-input[type="radio"] + label {
- display: inline;
- margin: 0;
- font-weight: normal;
-}
-
-/* toggle switches */
-
-input[type="checkbox"].toggle {
- appearance: none;
- width: 2.8rem;
- height: 1.6rem;
- padding: 0;
- margin: 0 0.5rem 0 0;
- border: 2px outset var(--border-light);
- background: var(--muted);
- cursor: pointer;
- position: relative;
- vertical-align: middle;
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6);
- transition: background 0.2s;
-}
-
-input[type="checkbox"].toggle:checked {
- background: var(--primary);
-}
-
-input[type="checkbox"].toggle::after {
- content: "";
- position: absolute;
- width: 0.6rem;
- height: 0.6rem;
- background: var(--surface);
- border: 2px outset var(--border-light);
- top: 50%;
- transform: translateY(-50%);
- left: 0.2rem;
- transition: left 0.2s;
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight);
-}
-
-input[type="checkbox"].toggle:checked::after {
- left: 1.5rem;
-}
-
-[data-theme="dark"] input[type="checkbox"].toggle {
- background: var(--secondary);
-}
-
-[data-theme="dark"] input[type="checkbox"].toggle:checked {
- background: var(--primary);
-}
-
-[data-theme="dark"] input[type="checkbox"].toggle::after {
- background: var(--accent-brown-light);
-}
-
-#theme-toggle::before {
- content: "☾";
- position: absolute;
- right: 0.4rem;
- top: 50%;
- transform: translateY(-50%);
- font-size: 0.9rem;
- line-height: 1;
- color: var(--bg);
- transition: opacity 0.2s;
-}
-
-#theme-toggle:checked::before {
- content: "☀";
- right: auto;
- left: 0.4rem;
-}
-
-/* range sliders */
-
-input[type="range"] {
- width: 100%;
- height: 2.2rem;
- background: transparent;
- cursor: pointer;
- appearance: none;
- vertical-align: middle;
-}
-
-input[type="range"]::-webkit-slider-thumb {
- appearance: none;
- width: 1.5rem;
- height: 1rem;
- margin-top: -0.25rem;
- background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 50%, var(--primary-dark) 100%);
- border: 2px outset var(--border-light);
- cursor: pointer;
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight),
- 2px 2px 0 rgba(0, 0, 0, 0.3),
- 3px 3px 0 rgba(0, 0, 0, 0.1);
-}
-
-input[type="range"]::-webkit-slider-thumb:active {
- box-shadow:
- inset 1px 1px 0 var(--lowlight),
- inset -1px -1px 0 var(--highlight),
- 1px 1px 0 rgba(0, 0, 0, 0.2);
-}
-
-input[type="range"]::-moz-range-thumb {
- width: 1.5rem;
- height: 0.8rem;
- margin-top: -0.15rem;
- background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 50%, var(--primary-dark) 100%);
- border: 2px outset var(--border-light);
- cursor: pointer;
- box-shadow:
- inset 1px 1px 0 var(--highlight),
- inset -1px -1px 0 var(--lowlight),
- 2px 2px 0 rgba(0, 0, 0, 0.3),
- 3px 3px 0 rgba(0, 0, 0, 0.1);
- border-radius: 0.3rem;
-}
-
-input[type="range"]::-moz-range-thumb:active {
- box-shadow:
- inset 1px 1px 0 var(--lowlight),
- inset -1px -1px 0 var(--highlight),
- 1px 1px 0 rgba(0, 0, 0, 0.2);
-}
-
-input[type="range"]::-webkit-slider-runnable-track {
- background: linear-gradient(180deg,
- #c0c0c0 0%,
- #e8e8e8 1px,
- #dfdfdf 2px,
- #d0d0d0 100%);
- border: 2px inset var(--border-light);
- height: 0.8rem;
- box-shadow:
- inset 2px 2px 0 rgba(255, 255, 255, 0.8),
- inset -2px -2px 0 rgba(0, 0, 0, 0.4),
- inset 1px 1px 0 rgba(0, 0, 0, 0.1);
-}
-
-input[type="range"]::-moz-range-track {
- background: transparent;
- border: none;
-}
-
-input[type="range"]::-moz-range-progress {
- background: linear-gradient(180deg,
- var(--secondary-light) 0%,
- var(--secondary) 50%,
- var(--secondary-dark) 100%);
- height: 0.8rem;
- border: 2px inset var(--border-light);
- box-shadow:
- inset 2px 2px 0 rgba(255, 255, 255, 0.6),
- inset -2px -2px 0 rgba(0, 0, 0, 0.3);
-}
-
-fieldset {
- border: 2px solid var(--border-light);
- padding: var(--space-md);
- margin: var(--space-md) 0;
- background: var(--surface);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6);
-}
-
-fieldset > :last-child {
- margin-bottom: 0;
-}
-
-legend {
- padding: 0 var(--space-xs);
- margin-left: calc(var(--space-xs) * -1);
- font-weight: bold;
- color: var(--fg);
- background: var(--surface);
-}
-
-/* buttons */
-
-button {
- font-family: var(--font-mono);
- font-weight: bold;
- padding: var(--space-xs) var(--space-sm);
- border: 2px outset var(--border-light);
- background: var(--secondary);
- color: var(--bg);
- font-size: 0.875rem;
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.6),
- inset -1px -1px 0 rgba(0, 0, 0, 0.8),
- 3px 3px 0 rgba(0, 0, 0, 0.3),
- 4px 4px 0 rgba(0, 0, 0, 0.1);
- transition:
- transform 0.05s,
- box-shadow 0.05s;
- cursor: pointer;
-}
-
-button:hover {
- background: var(--secondary-dark);
- transform: translate(1px, 1px);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.6),
- inset -1px -1px 0 rgba(0, 0, 0, 0.8),
- 2px 2px 0 rgba(0, 0, 0, 0.3),
- 3px 3px 0 rgba(0, 0, 0, 0.1);
-}
-
-button:active {
- transform: translate(4px, 4px);
- box-shadow:
- inset 1px 1px 0 rgba(0, 0, 0, 0.6),
- inset -1px -1px 0 rgba(255, 255, 255, 0.3);
-}
-
-/* button variants */
-
-button.primary {
- background: var(--primary);
- color: var(--bg);
-}
-
-button.primary:hover {
- background: var(--primary-dark);
-}
-
-button.secondary {
- background: var(--secondary);
- color: var(--bg);
-}
-
-button.secondary:hover {
- background: var(--secondary-dark);
-}
-
-button.success {
- background: var(--success);
- color: white;
-}
-
-button.success:hover {
- background: #45a049;
-}
-
-button.error {
- background: var(--error);
- color: white;
-}
-
-button.error:hover {
- background: #da190b;
-}
-
-button.warning {
- background: var(--warning);
- color: white;
-}
-
-button.warning:hover {
- background: #e68900;
-}
-
-button.info {
- background: var(--info);
- color: white;
-}
-
-button.info:hover {
- background: #0b7dda;
-}
-
-button.contrast {
- background: var(--fg);
- color: var(--bg);
-}
-
-button.contrast:hover {
- background: var(--muted);
-}
-
-button:disabled {
- opacity: 0.6;
- cursor: not-allowed;
- transform: none !important;
-}
-
-/* button groups */
-
-.button-group {
- display: inline-flex;
- border: 2px solid var(--border-light);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 3px 3px 0 rgba(0, 0, 0, 0.15);
-}
-
-.button-group button {
- border: none;
- margin: 0;
- border-radius: 0;
- box-shadow: none;
-}
-
-.button-group button:not(:last-child) {
- border-right: 1px solid var(--border-light);
-}
-
-.button-group button:hover {
- box-shadow: none;
- transform: none;
-}
-
-.button-group button:active {
- box-shadow: none;
- transform: none;
-}
-
-/* alerts & messages */
-
-.alert {
- padding: var(--space-md);
- margin: var(--space-md) 0;
- border: 2px solid var(--border-light);
- border-left: 4px solid var(--info);
- background: var(--surface);
- box-shadow:
- inset 1px 1px 0 rgba(255, 255, 255, 0.3),
- inset -1px -1px 0 rgba(0, 0, 0, 0.6),
- 3px 3px 0 rgba(0, 0, 0, 0.15);
-}
-
-.alert.success {
- border-left-color: var(--success);
- background-color: rgba(76, 175, 80, 0.1);
-}
-
-.alert.error {
- border-left-color: var(--error);
- background-color: rgba(244, 67, 54, 0.1);
-}
-
-.alert.warning {
- border-left-color: var(--warning);
- background-color: rgba(255, 152, 0, 0.1);
-}
-
-.alert.info {
- border-left-color: var(--info);
- background-color: rgba(33, 150, 243, 0.1);
-}
-
-/* badges & pills */
-
-.badge {
- display: inline-block;
- padding: 0.25rem 0.5rem;
- margin: 0 0.25rem;
- background: var(--secondary);
- color: var(--bg);
- font-size: 0.75rem;
- font-weight: bold;
- border: 1px solid var(--border-light);
-}
-
-.badge.primary {
- background: var(--primary);
-}
-
-.badge.success {
- background: var(--success);
- color: white;
-}
-
-.badge.error {
- background: var(--error);
- color: white;
-}
-
-.badge.warning {
- background: var(--warning);
- color: white;
-}
-
-.badge.info {
- background: var(--info);
- color: white;
-}
-
-.badge.contrast {
- background: var(--fg);
- color: var(--bg);
-}
-
-/* helpers */
-
-.text-success {
- color: var(--success);
- font-weight: bold;
-}
-
-.text-error {
- color: var(--error);
- font-weight: bold;
-}
-
-.text-warning {
- color: var(--warning);
- font-weight: bold;
-}
-
-.text-info {
- color: var(--info);
- font-weight: bold;
-}
-
-.text-muted {
- color: var(--muted);
-}
-
-.text-contrast {
- color: var(--fg);
- font-weight: bold;
-}
-
-.text-center {
- text-align: center;
-}
-
-.text-right {
- text-align: right;
-}
-
-.text-left {
- text-align: left;
-}
-
-.mt-xs { margin-top: var(--space-xs); }
-.mt-sm { margin-top: var(--space-sm); }
-.mt-md { margin-top: var(--space-md); }
-.mt-lg { margin-top: var(--space-lg); }
-.mt-xl { margin-top: var(--space-xl); }
-
-.mb-xs { margin-bottom: var(--space-xs); }
-.mb-sm { margin-bottom: var(--space-sm); }
-.mb-md { margin-bottom: var(--space-md); }
-.mb-lg { margin-bottom: var(--space-lg); }
-.mb-xl { margin-bottom: var(--space-xl); }
-
-.mx-auto {
- margin-left: auto;
- margin-right: auto;
-}
-
-.py-md {
- padding-top: var(--space-md);
- padding-bottom: var(--space-md);
-}
-
-#theme-toggle {
- margin-left: auto;
- margin-bottom: 0;
-}
-
-/* fairy dust */
-
-@keyframes fairy-float {
- 0% {
- opacity: 1;
- transform: translateY(0) scale(1);
- }
- 100% {
- opacity: 0;
- transform: translateY(40px) scale(0.5);
- }
-}