adjust style
This commit is contained in:
		
							parent
							
								
									c9612d8a1d
								
							
						
					
					
						commit
						ad8718ba49
					
				
					 48 changed files with 4217 additions and 15 deletions
				
			
		| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
  width: 16px;
 | 
					  width: 16px;
 | 
				
			||||||
  height: 16px;
 | 
					  height: 16px;
 | 
				
			||||||
  border-radius: 50%;
 | 
					  border-radius: 50%;
 | 
				
			||||||
  background: var(--accent-color);
 | 
					  background: var(--bg-color);
 | 
				
			||||||
  border: 2px solid white;
 | 
					  border: 2px solid white;
 | 
				
			||||||
  z-index: 1;
 | 
					  z-index: 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@
 | 
				
			||||||
  left: -160px;
 | 
					  left: -160px;
 | 
				
			||||||
  width: 100px;
 | 
					  width: 100px;
 | 
				
			||||||
  text-align: right;
 | 
					  text-align: right;
 | 
				
			||||||
  color: #ffffff;
 | 
					  color: var(--fg-color);
 | 
				
			||||||
  font-weight: bold;
 | 
					  font-weight: bold;
 | 
				
			||||||
  font-size: 0.9rem;
 | 
					  font-size: 0.9rem;
 | 
				
			||||||
  line-height: 1.3;
 | 
					  line-height: 1.3;
 | 
				
			||||||
| 
						 | 
					@ -78,7 +78,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Hover Effects */
 | 
					/* Hover Effects */
 | 
				
			||||||
#timeline-content li.event:hover::before {
 | 
					#timeline-content li.event:hover::before {
 | 
				
			||||||
  background: var(--accent-color-dark);
 | 
					  background: var(--accent-color);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#timeline-content li.event:hover {
 | 
					#timeline-content li.event:hover {
 | 
				
			||||||
| 
						 | 
					@ -87,5 +87,5 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* From + To Label Hover Effect */
 | 
					/* From + To Label Hover Effect */
 | 
				
			||||||
#timeline-content li.event:hover::after {
 | 
					#timeline-content li.event:hover::after {
 | 
				
			||||||
  color: var(--fg-color);
 | 
					  color: var(--accent-color);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										81
									
								
								sass/_alerts.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								sass/_alerts.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					blockquote {
 | 
				
			||||||
 | 
						&.note {
 | 
				
			||||||
 | 
							border-inline-start: 0.25rem solid var(--blue-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title,
 | 
				
			||||||
 | 
							li::marker {
 | 
				
			||||||
 | 
								color: var(--blue-fg);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-info);
 | 
				
			||||||
 | 
								mask-image: var(--icon-info);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.tip {
 | 
				
			||||||
 | 
							border-inline-start: 0.25rem solid var(--green-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title,
 | 
				
			||||||
 | 
							li::marker {
 | 
				
			||||||
 | 
								color: var(--green-fg);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-lightbulb);
 | 
				
			||||||
 | 
								mask-image: var(--icon-lightbulb);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.important {
 | 
				
			||||||
 | 
							border-inline-start: 0.25rem solid var(--purple-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title,
 | 
				
			||||||
 | 
							li::marker {
 | 
				
			||||||
 | 
								color: var(--purple-fg);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-important);
 | 
				
			||||||
 | 
								mask-image: var(--icon-important);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.warning {
 | 
				
			||||||
 | 
							border-inline-start: 0.25rem solid var(--yellow-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title,
 | 
				
			||||||
 | 
							li::marker {
 | 
				
			||||||
 | 
								color: var(--yellow-fg);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
								mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.caution {
 | 
				
			||||||
 | 
							border-inline-start: 0.25rem solid var(--red-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title,
 | 
				
			||||||
 | 
							li::marker {
 | 
				
			||||||
 | 
								color: var(--red-fg);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.alert-title .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-caution);
 | 
				
			||||||
 | 
								mask-image: var(--icon-caution);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.alert-title {
 | 
				
			||||||
 | 
							margin-block-end: -0.75rem;
 | 
				
			||||||
 | 
							font-weight: bold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								vertical-align: -0.125em;
 | 
				
			||||||
 | 
								margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										445
									
								
								sass/_article-list.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										445
									
								
								sass/_article-list.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,445 @@
 | 
				
			||||||
 | 
					#article-list {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-direction: column;
 | 
				
			||||||
 | 
						gap: 1rem;
 | 
				
			||||||
 | 
						margin-block-start: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						article {
 | 
				
			||||||
 | 
							--bg-overlay: var(--accent-color-alpha);
 | 
				
			||||||
 | 
							position: relative;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							border-start-end-radius: 2.125rem;
 | 
				
			||||||
 | 
							border-end-end-radius: 1.8125rem;
 | 
				
			||||||
 | 
							background-image: linear-gradient(var(--bg-overlay), var(--bg-overlay)),
 | 
				
			||||||
 | 
								linear-gradient(var(--glass-bg), var(--glass-bg)), var(--blurnail);
 | 
				
			||||||
 | 
							background-position: center;
 | 
				
			||||||
 | 
							background-size: cover;
 | 
				
			||||||
 | 
							background-color: var(--bg-overlay);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
							overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								h3::after {
 | 
				
			||||||
 | 
									transform: none;
 | 
				
			||||||
 | 
									opacity: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: scaleX(-1);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active:not(:has(.tag:active)) {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:has(> a:focus-visible) {
 | 
				
			||||||
 | 
								animation: focus-in var(--transition);
 | 
				
			||||||
 | 
								outline: 0.125rem solid var(--accent-color);
 | 
				
			||||||
 | 
								outline-offset: 0.125rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@supports not selector(:focus-visible) {
 | 
				
			||||||
 | 
								&:has(> a:focus) {
 | 
				
			||||||
 | 
									animation: focus-in var(--transition);
 | 
				
			||||||
 | 
									outline: 0.125rem solid var(--accent-color);
 | 
				
			||||||
 | 
									outline-offset: 0.125rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							& > a {
 | 
				
			||||||
 | 
								position: absolute;
 | 
				
			||||||
 | 
								inset: 0;
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
								border-start-end-radius: 2.125rem;
 | 
				
			||||||
 | 
								border-end-end-radius: 1.8125rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							h3 {
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								color: var(--accent-color);
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
								line-height: 1;
 | 
				
			||||||
 | 
								font-family: var(--font-system-ui);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::after {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-right);
 | 
				
			||||||
 | 
									display: inline-block;
 | 
				
			||||||
 | 
									position: relative;
 | 
				
			||||||
 | 
									transform: translateX(-0.25rem);
 | 
				
			||||||
 | 
									opacity: 0;
 | 
				
			||||||
 | 
									mask-image: var(--icon-right);
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
									margin-inline-start: 0.25rem;
 | 
				
			||||||
 | 
									background-color: currentColor;
 | 
				
			||||||
 | 
									width: 1rem;
 | 
				
			||||||
 | 
									height: 1rem;
 | 
				
			||||||
 | 
									pointer-events: none;
 | 
				
			||||||
 | 
									content: "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: scaleX(-1) translateX(-0.25rem);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.tags {
 | 
				
			||||||
 | 
								position: relative;
 | 
				
			||||||
 | 
								justify-content: flex-end;
 | 
				
			||||||
 | 
								z-index: 1;
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								a {
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--accent-color);
 | 
				
			||||||
 | 
										color: var(--contrast-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.draft,
 | 
				
			||||||
 | 
							&.archive,
 | 
				
			||||||
 | 
							&.featured,
 | 
				
			||||||
 | 
							&.hot,
 | 
				
			||||||
 | 
							&.poor {
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									position: absolute;
 | 
				
			||||||
 | 
									transform: translateY(-50%);
 | 
				
			||||||
 | 
									opacity: var(--disabled-opacity);
 | 
				
			||||||
 | 
									mask-size: cover;
 | 
				
			||||||
 | 
									transition: var(--transition-longer);
 | 
				
			||||||
 | 
									inset-block-start: 50%;
 | 
				
			||||||
 | 
									inset-inline-end: -3rem;
 | 
				
			||||||
 | 
									width: 12rem;
 | 
				
			||||||
 | 
									height: 12rem;
 | 
				
			||||||
 | 
									content: "";
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover::before {
 | 
				
			||||||
 | 
									transform: translateY(-50%) rotate(-10deg) scale(1.5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] &:hover::before {
 | 
				
			||||||
 | 
									transform: translateY(-50%) rotate(10deg) scale(1.5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.draft {
 | 
				
			||||||
 | 
								--bg-overlay: var(--fg-muted-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-pencil);
 | 
				
			||||||
 | 
									mask-image: var(--icon-pencil);
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								h3 {
 | 
				
			||||||
 | 
									color: var(--fg-muted-4);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.badge {
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-pencil);
 | 
				
			||||||
 | 
										mask-image: var(--icon-pencil);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.tags a {
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--fg-muted-5);
 | 
				
			||||||
 | 
										color: var(--fg-contrast);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.archive {
 | 
				
			||||||
 | 
								--bg-overlay: var(--purple-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
									mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
									background-color: var(--purple-bg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								h3 {
 | 
				
			||||||
 | 
									color: var(--purple-fg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.badge {
 | 
				
			||||||
 | 
									background-color: var(--purple-bg);
 | 
				
			||||||
 | 
									color: var(--purple-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
										mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.tags a {
 | 
				
			||||||
 | 
									background-color: var(--purple-bg);
 | 
				
			||||||
 | 
									color: var(--purple-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--purple-fg);
 | 
				
			||||||
 | 
										color: var(--fg-contrast);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.featured {
 | 
				
			||||||
 | 
								--bg-overlay: var(--yellow-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-star);
 | 
				
			||||||
 | 
									mask-image: var(--icon-star);
 | 
				
			||||||
 | 
									background-color: var(--yellow-bg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									&::before {
 | 
				
			||||||
 | 
										transform: translateY(-50%) rotate(62deg) scale(1.5);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] &::before {
 | 
				
			||||||
 | 
										transform: translateY(-50%) rotate(-62deg) scale(1.5);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								h3 {
 | 
				
			||||||
 | 
									color: var(--yellow-fg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.badge {
 | 
				
			||||||
 | 
									background-color: var(--yellow-bg);
 | 
				
			||||||
 | 
									color: var(--yellow-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-star);
 | 
				
			||||||
 | 
										mask-image: var(--icon-star);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.tags a {
 | 
				
			||||||
 | 
									background-color: var(--yellow-bg);
 | 
				
			||||||
 | 
									color: var(--yellow-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--yellow-fg);
 | 
				
			||||||
 | 
										color: var(--fg-contrast);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.hot {
 | 
				
			||||||
 | 
								--bg-overlay: var(--red-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-fire);
 | 
				
			||||||
 | 
									mask-image: var(--icon-fire);
 | 
				
			||||||
 | 
									background-color: var(--red-bg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								h3 {
 | 
				
			||||||
 | 
									color: var(--red-fg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.badge {
 | 
				
			||||||
 | 
									background-color: var(--red-bg);
 | 
				
			||||||
 | 
									color: var(--red-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-fire);
 | 
				
			||||||
 | 
										mask-image: var(--icon-fire);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.tags a {
 | 
				
			||||||
 | 
									background-color: var(--red-bg);
 | 
				
			||||||
 | 
									color: var(--red-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--red-fg);
 | 
				
			||||||
 | 
										color: var(--fg-contrast);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.poor {
 | 
				
			||||||
 | 
								--bg-overlay: var(--brown-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-poop);
 | 
				
			||||||
 | 
									mask-image: var(--icon-poop);
 | 
				
			||||||
 | 
									background-color: var(--brown-bg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								h3 {
 | 
				
			||||||
 | 
									color: var(--brown-fg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.badge {
 | 
				
			||||||
 | 
									background-color: var(--brown-bg);
 | 
				
			||||||
 | 
									color: var(--brown-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-poop);
 | 
				
			||||||
 | 
										mask-image: var(--icon-poop);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.tags a {
 | 
				
			||||||
 | 
									background-color: var(--brown-bg);
 | 
				
			||||||
 | 
									color: var(--brown-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--brown-fg);
 | 
				
			||||||
 | 
										color: var(--fg-contrast);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.badge {
 | 
				
			||||||
 | 
								float: inline-end;
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								padding: 0.375rem 0.75rem;
 | 
				
			||||||
 | 
								height: fit-content;
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
								white-space: nowrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									vertical-align: -0.125em;
 | 
				
			||||||
 | 
									margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.details {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								flex-wrap: nowrap;
 | 
				
			||||||
 | 
								justify-content: space-between;
 | 
				
			||||||
 | 
								align-items: center;
 | 
				
			||||||
 | 
								gap: 0.25rem;
 | 
				
			||||||
 | 
								margin-block-start: 1rem;
 | 
				
			||||||
 | 
								border-block-start: max(1px, 0.0625rem) solid var(--fg-muted-2);
 | 
				
			||||||
 | 
								padding-block-start: 0.5rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#paginator {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-direction: row;
 | 
				
			||||||
 | 
						justify-content: center;
 | 
				
			||||||
 | 
						align-items: center;
 | 
				
			||||||
 | 
						gap: 0.25rem;
 | 
				
			||||||
 | 
						margin-block-start: 4rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-first,
 | 
				
			||||||
 | 
						#paginator-previous,
 | 
				
			||||||
 | 
						#paginator-next,
 | 
				
			||||||
 | 
						#paginator-last {
 | 
				
			||||||
 | 
							display: inline-block;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: 1rem;
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0.5rem;
 | 
				
			||||||
 | 
							color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							line-height: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									transform: scaleX(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a#paginator-first,
 | 
				
			||||||
 | 
						a#paginator-previous,
 | 
				
			||||||
 | 
						a#paginator-next,
 | 
				
			||||||
 | 
						a#paginator-last {
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
								color: var(--fg-muted-5);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
								border-radius: 1rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						span#paginator-first,
 | 
				
			||||||
 | 
						span#paginator-previous,
 | 
				
			||||||
 | 
						span#paginator-next,
 | 
				
			||||||
 | 
						span#paginator-last {
 | 
				
			||||||
 | 
							opacity: var(--disabled-opacity);
 | 
				
			||||||
 | 
							cursor: not-allowed;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-previous {
 | 
				
			||||||
 | 
							border-start-end-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							border-end-end-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-next {
 | 
				
			||||||
 | 
							border-start-start-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							border-end-start-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-first .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-first);
 | 
				
			||||||
 | 
							mask-image: var(--icon-first);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-previous .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-previous);
 | 
				
			||||||
 | 
							mask-image: var(--icon-previous);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-next .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-next);
 | 
				
			||||||
 | 
							mask-image: var(--icon-next);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-last .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-last);
 | 
				
			||||||
 | 
							mask-image: var(--icon-last);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#paginator-counter {
 | 
				
			||||||
 | 
							display: inline-block;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
							padding: 0.5rem 0.625rem;
 | 
				
			||||||
 | 
							color: var(--accent-color);
 | 
				
			||||||
 | 
							font-weight: bold;
 | 
				
			||||||
 | 
							line-height: 1;
 | 
				
			||||||
 | 
							font-variant-numeric: tabular-nums;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:has(a#paginator-previous:active) #paginator-counter {
 | 
				
			||||||
 | 
							border-start-start-radius: 1rem;
 | 
				
			||||||
 | 
							border-end-start-radius: 1rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:has(a#paginator-next:active) #paginator-counter {
 | 
				
			||||||
 | 
							border-start-end-radius: 1rem;
 | 
				
			||||||
 | 
							border-end-end-radius: 1rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										248
									
								
								sass/_article.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										248
									
								
								sass/_article.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,248 @@
 | 
				
			||||||
 | 
					#banner-container {
 | 
				
			||||||
 | 
						--mask: linear-gradient(black, transparent);
 | 
				
			||||||
 | 
						-webkit-user-select: none;
 | 
				
			||||||
 | 
						-webkit-mask-image: var(--mask);
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						z-index: -1;
 | 
				
			||||||
 | 
						mask-image: var(--mask);
 | 
				
			||||||
 | 
						inset-block-start: 0;
 | 
				
			||||||
 | 
						inset-inline-start: 0;
 | 
				
			||||||
 | 
						aspect-ratio: 2 / 1;
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						user-select: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#banner {
 | 
				
			||||||
 | 
							position: fixed;
 | 
				
			||||||
 | 
							transition: none;
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							inset-block-start: 0;
 | 
				
			||||||
 | 
							inset-inline-start: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						& + #heading {
 | 
				
			||||||
 | 
							margin-block-start: calc(50vw - 7rem);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
							body:has(&) #site-nav:not(#handle + #site-nav) {
 | 
				
			||||||
 | 
								margin-block-start: calc(50vw + 1rem);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#heading {
 | 
				
			||||||
 | 
						margin: 2rem 0 1rem;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						h1 {
 | 
				
			||||||
 | 
							-webkit-background-clip: text;
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							background-image: linear-gradient(
 | 
				
			||||||
 | 
								to right,
 | 
				
			||||||
 | 
								var(--fg-muted-4),
 | 
				
			||||||
 | 
								var(--fg-color),
 | 
				
			||||||
 | 
								var(--fg-muted-4)
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							background-clip: text;
 | 
				
			||||||
 | 
							color: transparent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							& + p {
 | 
				
			||||||
 | 
								display: inline;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.tags {
 | 
				
			||||||
 | 
							display: inline-flex;
 | 
				
			||||||
 | 
							justify-content: center;
 | 
				
			||||||
 | 
							margin-block-start: 1rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#buttons-container {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						position: fixed;
 | 
				
			||||||
 | 
						flex-direction: column;
 | 
				
			||||||
 | 
						gap: 0.5rem;
 | 
				
			||||||
 | 
						inset-block-end: 1rem;
 | 
				
			||||||
 | 
						inset-inline-end: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
							position: static;
 | 
				
			||||||
 | 
							flex-direction: row-reverse;
 | 
				
			||||||
 | 
							// justify-content: center;
 | 
				
			||||||
 | 
							margin-block-start: 2rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						summary,
 | 
				
			||||||
 | 
						#go-to-top,
 | 
				
			||||||
 | 
						#share,
 | 
				
			||||||
 | 
						#issue {
 | 
				
			||||||
 | 
							display: inline-block;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0.5rem;
 | 
				
			||||||
 | 
							color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							line-height: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
								color: var(--fg-muted-5);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						details {
 | 
				
			||||||
 | 
							position: relative;
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
							background-color: transparent;
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&[open] summary ~ * {
 | 
				
			||||||
 | 
								transform-origin: bottom right;
 | 
				
			||||||
 | 
								animation: button-dropdown-open var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									transform-origin: bottom left;
 | 
				
			||||||
 | 
									animation: button-dropdown-open-rtl var(--transition);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@keyframes button-dropdown-open {
 | 
				
			||||||
 | 
									from {
 | 
				
			||||||
 | 
										transform: scale(0.5) translate(1rem, 1rem);
 | 
				
			||||||
 | 
										opacity: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@keyframes button-dropdown-open-rtl {
 | 
				
			||||||
 | 
									from {
 | 
				
			||||||
 | 
										transform: scale(0.5) translate(-1rem, 1rem);
 | 
				
			||||||
 | 
										opacity: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							summary {
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									display: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						summary + div {
 | 
				
			||||||
 | 
							-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							flex-direction: column;
 | 
				
			||||||
 | 
							z-index: 1;
 | 
				
			||||||
 | 
							backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							inset-block-end: 0;
 | 
				
			||||||
 | 
							inset-inline-end: 3rem;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							background-color: var(--glass-bg);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
							width: min(calc(var(--container-width) / 3), calc(90vw - 3rem));
 | 
				
			||||||
 | 
							max-height: 50vh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
								inset-inline-end: 2.5rem;
 | 
				
			||||||
 | 
								width: min(calc(var(--container-width) / 3), calc(90vw - 2.5rem));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							strong.title {
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							div {
 | 
				
			||||||
 | 
								--mask: linear-gradient(
 | 
				
			||||||
 | 
									to bottom,
 | 
				
			||||||
 | 
									transparent,
 | 
				
			||||||
 | 
									black 1rem,
 | 
				
			||||||
 | 
									black calc(100% - 1rem),
 | 
				
			||||||
 | 
									transparent
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--mask);
 | 
				
			||||||
 | 
								flex: 1;
 | 
				
			||||||
 | 
								mask-image: var(--mask);
 | 
				
			||||||
 | 
								margin: 0 -1rem -1rem;
 | 
				
			||||||
 | 
								padding: 1rem;
 | 
				
			||||||
 | 
								padding-block-start: 0;
 | 
				
			||||||
 | 
								overflow: auto;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ol,
 | 
				
			||||||
 | 
							ul {
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding-inline-start: 0.75rem;
 | 
				
			||||||
 | 
								font-size: var(--font-size-small);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:first-child {
 | 
				
			||||||
 | 
									margin-block-start: 0.75rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								li::marker {
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								a {
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#toc .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-toc);
 | 
				
			||||||
 | 
							mask-image: var(--icon-toc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform: scaleX(-1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#backlinks {
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-backlink);
 | 
				
			||||||
 | 
								mask-image: var(--icon-backlink);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									transform: scaleX(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							summary + div {
 | 
				
			||||||
 | 
								width: min(calc(var(--container-width) / 3), calc(90vw - 5rem));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#go-to-top {
 | 
				
			||||||
 | 
							@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
								display: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-top);
 | 
				
			||||||
 | 
								mask-image: var(--icon-top);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#share .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-share);
 | 
				
			||||||
 | 
							mask-image: var(--icon-share);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#issue .icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-bug);
 | 
				
			||||||
 | 
							mask-image: var(--icon-bug);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										72
									
								
								sass/_buttons.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								sass/_buttons.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,72 @@
 | 
				
			||||||
 | 
					.buttons {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-direction: row;
 | 
				
			||||||
 | 
						justify-content: space-between;
 | 
				
			||||||
 | 
						margin-block-start: 4rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.centered {
 | 
				
			||||||
 | 
							justify-content: space-around;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a {
 | 
				
			||||||
 | 
							text-decoration: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						button {
 | 
				
			||||||
 | 
							appearance: none;
 | 
				
			||||||
 | 
							cursor: pointer;
 | 
				
			||||||
 | 
							border: none;
 | 
				
			||||||
 | 
							font-family: inherit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:disabled {
 | 
				
			||||||
 | 
								cursor: not-allowed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									transform: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a,
 | 
				
			||||||
 | 
						button {
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0.75rem 1rem;
 | 
				
			||||||
 | 
							color: var(--fg-muted-5);
 | 
				
			||||||
 | 
							font-weight: bold;
 | 
				
			||||||
 | 
							font-size: var(--font-size-small);
 | 
				
			||||||
 | 
							line-height: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
								color: var(--fg-color);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.colored {
 | 
				
			||||||
 | 
								box-shadow: none;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.big {
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								padding: 1rem 1.5rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										74
									
								
								sass/_code.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								sass/_code.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					// CODE
 | 
				
			||||||
 | 
					pre,
 | 
				
			||||||
 | 
					code,
 | 
				
			||||||
 | 
					kbd,
 | 
				
			||||||
 | 
					samp {
 | 
				
			||||||
 | 
						font-family: var(--font-monospace-code);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					code:not(pre code) {
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						padding: 0.125rem 0.375rem;
 | 
				
			||||||
 | 
						color: var(--red-fg);
 | 
				
			||||||
 | 
						font-size: var(--font-size-small-em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pre {
 | 
				
			||||||
 | 
						margin: 1rem 0 1rem;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight), var(--shadow);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						padding: 1rem;
 | 
				
			||||||
 | 
						max-width: 100vw;
 | 
				
			||||||
 | 
						overflow: auto;
 | 
				
			||||||
 | 
						line-height: normal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						table {
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
							background-color: transparent;
 | 
				
			||||||
 | 
							table-layout: auto;
 | 
				
			||||||
 | 
							overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							tr {
 | 
				
			||||||
 | 
								&:nth-child(even) {
 | 
				
			||||||
 | 
									background-color: transparent;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								th,
 | 
				
			||||||
 | 
								td {
 | 
				
			||||||
 | 
									padding: 0;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								th {
 | 
				
			||||||
 | 
									background-color: transparent;
 | 
				
			||||||
 | 
									font-weight: normal;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// The line number cells
 | 
				
			||||||
 | 
						table td:nth-of-type(1) {
 | 
				
			||||||
 | 
							-webkit-user-select: none;
 | 
				
			||||||
 | 
							user-select: none;
 | 
				
			||||||
 | 
							text-align: center;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						mark {
 | 
				
			||||||
 | 
							display: block;
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0; // Unset code block border radius
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0; // Unset mark padding
 | 
				
			||||||
 | 
							color: var(
 | 
				
			||||||
 | 
								--fg-color
 | 
				
			||||||
 | 
							); // Unset mark color from accent color to text color
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// The line numbers already provide some kind of left/right padding
 | 
				
			||||||
 | 
						&[data-linenos] {
 | 
				
			||||||
 | 
							padding: 1rem 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										471
									
								
								sass/_comments.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										471
									
								
								sass/_comments.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,471 @@
 | 
				
			||||||
 | 
					#comments {
 | 
				
			||||||
 | 
						#qrcode {
 | 
				
			||||||
 | 
							float: inline-end;
 | 
				
			||||||
 | 
							transform-origin: right;
 | 
				
			||||||
 | 
							box-sizing: content-box;
 | 
				
			||||||
 | 
							margin-inline-start: 1rem;
 | 
				
			||||||
 | 
							margin-block-start: 3rem;
 | 
				
			||||||
 | 
							margin-block-end: 0;
 | 
				
			||||||
 | 
							background-color: white;
 | 
				
			||||||
 | 
							padding: 0.75rem;
 | 
				
			||||||
 | 
							width: 7.8125rem; // 125px
 | 
				
			||||||
 | 
							height: 7.8125rem; // 125px
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform-origin: left;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
								display: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.buttons {
 | 
				
			||||||
 | 
							justify-content: start;
 | 
				
			||||||
 | 
							gap: 0.25rem;
 | 
				
			||||||
 | 
							margin-block-start: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#load-comments:disabled {
 | 
				
			||||||
 | 
								--shimmer: rgb(
 | 
				
			||||||
 | 
									from var(--accent-color) r g b / calc(var(--color-opacity) * 2)
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								animation: loading-shimmer var(--transition-long) ease-in-out
 | 
				
			||||||
 | 
									alternate infinite;
 | 
				
			||||||
 | 
								transition: none;
 | 
				
			||||||
 | 
								background-image: linear-gradient(
 | 
				
			||||||
 | 
									to right,
 | 
				
			||||||
 | 
									var(--fg-muted-1) 50%,
 | 
				
			||||||
 | 
									var(--shimmer) 75%,
 | 
				
			||||||
 | 
									var(--fg-muted-1) 100%
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								background-size: 200%;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									background-color: transparent;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@keyframes loading-shimmer {
 | 
				
			||||||
 | 
									to {
 | 
				
			||||||
 | 
										background-position-x: -200%;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#comments-wrapper {
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							flex-direction: column;
 | 
				
			||||||
 | 
							gap: 2rem;
 | 
				
			||||||
 | 
							margin-block-start: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#comments-status {
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
								font-size: var(--font-size-x-large);
 | 
				
			||||||
 | 
								text-align: center;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.comment {
 | 
				
			||||||
 | 
								display: grid;
 | 
				
			||||||
 | 
								grid-template-columns: min-content;
 | 
				
			||||||
 | 
								grid-template-areas:
 | 
				
			||||||
 | 
									"avatar name        "
 | 
				
			||||||
 | 
									"avatar time        "
 | 
				
			||||||
 | 
									"avatar post        "
 | 
				
			||||||
 | 
									"...... media       "
 | 
				
			||||||
 | 
									"...... card         "
 | 
				
			||||||
 | 
									"...... interactions";
 | 
				
			||||||
 | 
								column-gap: 1rem;
 | 
				
			||||||
 | 
								justify-items: start;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&.comment-reply {
 | 
				
			||||||
 | 
									position: relative;
 | 
				
			||||||
 | 
									border-radius: 0.25rem;
 | 
				
			||||||
 | 
									border-inline-start: 0.25rem solid var(--fg-muted-2);
 | 
				
			||||||
 | 
									padding-inline-start: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:has(+ .comment-reply) {
 | 
				
			||||||
 | 
										border-end-start-radius: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									& + .comment-reply {
 | 
				
			||||||
 | 
										margin-block-start: -2rem;
 | 
				
			||||||
 | 
										border-start-start-radius: 0;
 | 
				
			||||||
 | 
										padding-block-start: 2rem;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.avatar-link {
 | 
				
			||||||
 | 
									position: relative;
 | 
				
			||||||
 | 
									grid-area: avatar;
 | 
				
			||||||
 | 
									width: 4rem;
 | 
				
			||||||
 | 
									height: 4rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.avatar {
 | 
				
			||||||
 | 
										transition: var(--transition);
 | 
				
			||||||
 | 
										margin: 0;
 | 
				
			||||||
 | 
										background-size: cover;
 | 
				
			||||||
 | 
										width: 100%;
 | 
				
			||||||
 | 
										height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											transform: rotate(10deg) var(--hover);
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:active {
 | 
				
			||||||
 | 
											transform: var(--active);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.author {
 | 
				
			||||||
 | 
									display: flex;
 | 
				
			||||||
 | 
									grid-area: name;
 | 
				
			||||||
 | 
									align-items: center;
 | 
				
			||||||
 | 
									gap: 0.25rem;
 | 
				
			||||||
 | 
									font-weight: bold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.instance {
 | 
				
			||||||
 | 
										transition: var(--transition);
 | 
				
			||||||
 | 
										box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
										border-radius: 999px;
 | 
				
			||||||
 | 
										background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
										padding: 0.375rem 0.75rem;
 | 
				
			||||||
 | 
										color: var(--fg-muted-5);
 | 
				
			||||||
 | 
										font-size: var(--font-size-small);
 | 
				
			||||||
 | 
										line-height: 1;
 | 
				
			||||||
 | 
										text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											background-color: var(--fg-muted-5);
 | 
				
			||||||
 | 
											color: var(--fg-contrast);
 | 
				
			||||||
 | 
											text-decoration: none;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:active {
 | 
				
			||||||
 | 
											transform: var(--active);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&.op {
 | 
				
			||||||
 | 
											background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
											padding-inline-start: 0.4375rem;
 | 
				
			||||||
 | 
											color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											&:hover {
 | 
				
			||||||
 | 
												background-color: var(--accent-color);
 | 
				
			||||||
 | 
												color: var(--contrast-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												&::before {
 | 
				
			||||||
 | 
													background-color: var(--contrast-color);
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											&::before {
 | 
				
			||||||
 | 
												-webkit-mask-image: var(--icon-verified);
 | 
				
			||||||
 | 
												display: inline-block;
 | 
				
			||||||
 | 
												vertical-align: -0.1875rem;
 | 
				
			||||||
 | 
												mask-image: var(--icon-verified);
 | 
				
			||||||
 | 
												mask-size: cover;
 | 
				
			||||||
 | 
												transition: var(--transition);
 | 
				
			||||||
 | 
												margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
												background-color: var(--accent-color);
 | 
				
			||||||
 | 
												width: 1rem;
 | 
				
			||||||
 | 
												height: 1rem;
 | 
				
			||||||
 | 
												content: "";
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
												padding: 0.375rem 0.5rem 0.375rem 0.75rem;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.mention {
 | 
				
			||||||
 | 
									display: inline-block;
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									padding: 0.25rem 0.375rem;
 | 
				
			||||||
 | 
									line-height: 1;
 | 
				
			||||||
 | 
									text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--accent-color);
 | 
				
			||||||
 | 
										color: var(--contrast-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:active {
 | 
				
			||||||
 | 
										transform: var(--active);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&.hashtag {
 | 
				
			||||||
 | 
										background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
										color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											background-color: var(--fg-muted-5);
 | 
				
			||||||
 | 
											color: var(--fg-contrast);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								time {
 | 
				
			||||||
 | 
									grid-area: time;
 | 
				
			||||||
 | 
									margin-block-start: 0.5rem;
 | 
				
			||||||
 | 
									font-size: var(--font-size-small);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									a {
 | 
				
			||||||
 | 
										color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:after {
 | 
				
			||||||
 | 
											background-color: var(--fg-muted-5);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								details {
 | 
				
			||||||
 | 
									&[open] {
 | 
				
			||||||
 | 
										border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
										background-image: linear-gradient(
 | 
				
			||||||
 | 
												to right,
 | 
				
			||||||
 | 
												transparent,
 | 
				
			||||||
 | 
												transparent 0.5rem,
 | 
				
			||||||
 | 
												var(--fg-muted-1) 0.5rem,
 | 
				
			||||||
 | 
												var(--fg-muted-1) calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent
 | 
				
			||||||
 | 
											),
 | 
				
			||||||
 | 
											linear-gradient(
 | 
				
			||||||
 | 
												to right,
 | 
				
			||||||
 | 
												transparent,
 | 
				
			||||||
 | 
												transparent 0.5rem,
 | 
				
			||||||
 | 
												var(--bg-color) 0.5rem,
 | 
				
			||||||
 | 
												var(--bg-color) calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent
 | 
				
			||||||
 | 
											),
 | 
				
			||||||
 | 
											repeating-linear-gradient(
 | 
				
			||||||
 | 
												45deg,
 | 
				
			||||||
 | 
												var(--contrast-color),
 | 
				
			||||||
 | 
												var(--contrast-color) 0.25rem,
 | 
				
			||||||
 | 
												var(--accent-color) 0.25rem,
 | 
				
			||||||
 | 
												var(--accent-color) 0.5rem
 | 
				
			||||||
 | 
											);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										summary {
 | 
				
			||||||
 | 
											border-radius: 0;
 | 
				
			||||||
 | 
											background-image: none;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									summary {
 | 
				
			||||||
 | 
										border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
										background-image: linear-gradient(
 | 
				
			||||||
 | 
												to right,
 | 
				
			||||||
 | 
												transparent,
 | 
				
			||||||
 | 
												transparent 0.5rem,
 | 
				
			||||||
 | 
												var(--fg-muted-1) 0.5rem,
 | 
				
			||||||
 | 
												var(--fg-muted-1) calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent
 | 
				
			||||||
 | 
											),
 | 
				
			||||||
 | 
											linear-gradient(
 | 
				
			||||||
 | 
												to right,
 | 
				
			||||||
 | 
												transparent,
 | 
				
			||||||
 | 
												transparent 0.5rem,
 | 
				
			||||||
 | 
												var(--bg-color) 0.5rem,
 | 
				
			||||||
 | 
												var(--bg-color) calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent calc(100% - 0.5rem),
 | 
				
			||||||
 | 
												transparent
 | 
				
			||||||
 | 
											),
 | 
				
			||||||
 | 
											repeating-linear-gradient(
 | 
				
			||||||
 | 
												45deg,
 | 
				
			||||||
 | 
												var(--contrast-color),
 | 
				
			||||||
 | 
												var(--contrast-color) 0.25rem,
 | 
				
			||||||
 | 
												var(--accent-color) 0.25rem,
 | 
				
			||||||
 | 
												var(--accent-color) 0.5rem
 | 
				
			||||||
 | 
											);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								main {
 | 
				
			||||||
 | 
									grid-area: post;
 | 
				
			||||||
 | 
									margin: 1rem 0 0;
 | 
				
			||||||
 | 
									width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:first-child {
 | 
				
			||||||
 | 
										margin-block-start: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:last-child {
 | 
				
			||||||
 | 
										margin-block-end: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.attachments {
 | 
				
			||||||
 | 
									display: grid;
 | 
				
			||||||
 | 
									grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
 | 
				
			||||||
 | 
									grid-area: media;
 | 
				
			||||||
 | 
									gap: 0.5rem;
 | 
				
			||||||
 | 
									margin-block-start: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									img,
 | 
				
			||||||
 | 
									video {
 | 
				
			||||||
 | 
										margin: 0;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.card {
 | 
				
			||||||
 | 
									grid-area: card;
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
									margin-block-start: 1rem;
 | 
				
			||||||
 | 
									width: min(calc(var(--container-width) / 2), 100%);
 | 
				
			||||||
 | 
									font-weight: normal;
 | 
				
			||||||
 | 
									text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover:not(:active) {
 | 
				
			||||||
 | 
										img {
 | 
				
			||||||
 | 
											transform: var(--hover);
 | 
				
			||||||
 | 
											box-shadow: var(--edge-highlight), var(--shadow-raised);
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										figcaption {
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
											background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:active {
 | 
				
			||||||
 | 
										transform: var(--active);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									figure {
 | 
				
			||||||
 | 
										display: flex;
 | 
				
			||||||
 | 
										flex-direction: column;
 | 
				
			||||||
 | 
										gap: 0.25rem;
 | 
				
			||||||
 | 
										margin: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										img {
 | 
				
			||||||
 | 
											margin: 0;
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner)
 | 
				
			||||||
 | 
												var(--rounded-corner) var(--rounded-corner-small)
 | 
				
			||||||
 | 
												var(--rounded-corner-small);
 | 
				
			||||||
 | 
											aspect-ratio: 16 / 9;
 | 
				
			||||||
 | 
											object-fit: cover;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											& + figcaption {
 | 
				
			||||||
 | 
												border-radius: var(--rounded-corner-small)
 | 
				
			||||||
 | 
													var(--rounded-corner-small)
 | 
				
			||||||
 | 
													var(--rounded-corner) var(--rounded-corner);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										figcaption {
 | 
				
			||||||
 | 
											display: flex;
 | 
				
			||||||
 | 
											flex-direction: column;
 | 
				
			||||||
 | 
											gap: 0.25rem;
 | 
				
			||||||
 | 
											transition: var(--transition);
 | 
				
			||||||
 | 
											box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
											background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
											padding: 1rem;
 | 
				
			||||||
 | 
											color: var(--fg-color);
 | 
				
			||||||
 | 
											font-size: var(--font-size-medium);
 | 
				
			||||||
 | 
											text-align: start;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											p {
 | 
				
			||||||
 | 
												margin: 0;
 | 
				
			||||||
 | 
												color: var(--fg-muted-5);
 | 
				
			||||||
 | 
												font-size: var(--font-size-small);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								footer {
 | 
				
			||||||
 | 
									display: flex;
 | 
				
			||||||
 | 
									grid-area: interactions;
 | 
				
			||||||
 | 
									gap: 0.25rem;
 | 
				
			||||||
 | 
									margin-block-start: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.boosts,
 | 
				
			||||||
 | 
									.faves {
 | 
				
			||||||
 | 
										transition: var(--transition);
 | 
				
			||||||
 | 
										border-radius: 999px;
 | 
				
			||||||
 | 
										background-color: transparent;
 | 
				
			||||||
 | 
										padding: 0.5rem 0.75rem;
 | 
				
			||||||
 | 
										padding-inline-start: 0.625rem;
 | 
				
			||||||
 | 
										line-height: 1;
 | 
				
			||||||
 | 
										font-variant-numeric: tabular-nums;
 | 
				
			||||||
 | 
										text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										.icon {
 | 
				
			||||||
 | 
											vertical-align: -0.125em;
 | 
				
			||||||
 | 
											transition: var(--transition-longer);
 | 
				
			||||||
 | 
											margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
											text-decoration: none;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:active {
 | 
				
			||||||
 | 
											transform: var(--active);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.boosts {
 | 
				
			||||||
 | 
										color: var(--purple-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											background-color: var(--purple-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											.icon {
 | 
				
			||||||
 | 
												transform: rotate(180deg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
													transform: scaleX(-1) rotate(180deg);
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										.icon {
 | 
				
			||||||
 | 
											-webkit-mask-image: var(--icon-boosts);
 | 
				
			||||||
 | 
											mask-image: var(--icon-boosts);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
												transform: scaleX(-1);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.faves {
 | 
				
			||||||
 | 
										color: var(--yellow-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										&:hover {
 | 
				
			||||||
 | 
											background-color: var(--yellow-bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											.icon {
 | 
				
			||||||
 | 
												transform: rotate(72deg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
													transform: rotate(-72deg);
 | 
				
			||||||
 | 
												}
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										.icon {
 | 
				
			||||||
 | 
											-webkit-mask-image: var(--icon-star);
 | 
				
			||||||
 | 
											mask-image: var(--icon-star);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										104
									
								
								sass/_crt.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								sass/_crt.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,104 @@
 | 
				
			||||||
 | 
					.crt {
 | 
				
			||||||
 | 
						margin: 1rem 0 1rem;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight), var(--shadow-glow);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						background-image: radial-gradient(
 | 
				
			||||||
 | 
							color-mix(in srgb, var(--accent-color) 30%, black),
 | 
				
			||||||
 | 
							color-mix(in srgb, var(--accent-color) 10%, black) 80%,
 | 
				
			||||||
 | 
							color-mix(in srgb, var(--accent-color) 5%, black)
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pre {
 | 
				
			||||||
 | 
							--text-shadow-1: hsl(from var(--accent-color) h s l / 0.5);
 | 
				
			||||||
 | 
							--text-shadow-2: hsl(from var(--accent-color) h calc(s * 2) l);
 | 
				
			||||||
 | 
							animation: flicker 0.25s alternate infinite;
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							background-color: transparent !important;
 | 
				
			||||||
 | 
							padding: 1rem 1rem;
 | 
				
			||||||
 | 
							color: var(--accent-color) !important;
 | 
				
			||||||
 | 
							text-shadow:
 | 
				
			||||||
 | 
								var(--text-shadow-1) 0 0 0.25rem,
 | 
				
			||||||
 | 
								var(--text-shadow-2) 0 0 0.75rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@keyframes flicker {
 | 
				
			||||||
 | 
								25% {
 | 
				
			||||||
 | 
									opacity: 0.95;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								50% {
 | 
				
			||||||
 | 
									opacity: 0.85;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								75% {
 | 
				
			||||||
 | 
									opacity: 1;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								to {
 | 
				
			||||||
 | 
									opacity: 0.9;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.scanlines {
 | 
				
			||||||
 | 
						position: relative;
 | 
				
			||||||
 | 
						overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							display: block;
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							z-index: 1;
 | 
				
			||||||
 | 
							animation: scanlines 0.1s linear infinite;
 | 
				
			||||||
 | 
							inset: 0;
 | 
				
			||||||
 | 
							background-image: repeating-linear-gradient(
 | 
				
			||||||
 | 
								to bottom,
 | 
				
			||||||
 | 
								rgb(0 0 0 / 0.25),
 | 
				
			||||||
 | 
								rgb(0 0 0 / 0.25) 0.125rem,
 | 
				
			||||||
 | 
								transparent 0.125rem,
 | 
				
			||||||
 | 
								transparent 0.25rem
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							pointer-events: none;
 | 
				
			||||||
 | 
							content: "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@keyframes scanlines {
 | 
				
			||||||
 | 
								to {
 | 
				
			||||||
 | 
									background-position-y: 0.25rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::after {
 | 
				
			||||||
 | 
							--scanline-color: rgb(from var(--accent-color) r g b / 0.05);
 | 
				
			||||||
 | 
							display: block;
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							animation: scanline 5s linear infinite;
 | 
				
			||||||
 | 
							inset: 0;
 | 
				
			||||||
 | 
							background-image: linear-gradient(
 | 
				
			||||||
 | 
								to bottom,
 | 
				
			||||||
 | 
								transparent,
 | 
				
			||||||
 | 
								var(--scanline-color) 16rem
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							background-size: auto 16rem;
 | 
				
			||||||
 | 
							background-repeat: no-repeat;
 | 
				
			||||||
 | 
							background-position-y: -16rem;
 | 
				
			||||||
 | 
							pointer-events: none;
 | 
				
			||||||
 | 
							content: "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@keyframes scanline {
 | 
				
			||||||
 | 
								to {
 | 
				
			||||||
 | 
									background-position-y: calc(100% + 16rem);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.cursor {
 | 
				
			||||||
 | 
						animation: cursor-blink 1s infinite;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@keyframes cursor-blink {
 | 
				
			||||||
 | 
							50% {
 | 
				
			||||||
 | 
								opacity: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								sass/_emoji.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								sass/_emoji.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					.emoji {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						vertical-align: bottom;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						cursor: zoom-in;
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
						background-color: transparent;
 | 
				
			||||||
 | 
						width: 1.5em;
 | 
				
			||||||
 | 
						height: 1.5em;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover {
 | 
				
			||||||
 | 
							transform: scale(2);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								sass/_external.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								sass/_external.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					a.external::after {
 | 
				
			||||||
 | 
						-webkit-mask-image: var(--icon-external);
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						opacity: var(--dim-opacity);
 | 
				
			||||||
 | 
						mask-image: var(--icon-external);
 | 
				
			||||||
 | 
						mask-size: cover;
 | 
				
			||||||
 | 
						margin-inline-start: 0.25rem;
 | 
				
			||||||
 | 
						background-color: currentColor;
 | 
				
			||||||
 | 
						width: max(0.75rem, 0.75em);
 | 
				
			||||||
 | 
						height: max(0.75rem, 0.75em);
 | 
				
			||||||
 | 
						content: "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
							transform: scaleX(-1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								sass/_feed.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								sass/_feed.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					h1 a:has(.icon.feed) {
 | 
				
			||||||
 | 
						color: currentColor;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1 .icon.feed {
 | 
				
			||||||
 | 
						-webkit-mask-image: var(--icon-feed);
 | 
				
			||||||
 | 
						vertical-align: -0.375rem;
 | 
				
			||||||
 | 
						mask-image: var(--icon-feed);
 | 
				
			||||||
 | 
						margin-inline-start: 0.5rem;
 | 
				
			||||||
 | 
						width: 1em;
 | 
				
			||||||
 | 
						height: 1em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										137
									
								
								sass/_footer.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								sass/_footer.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,137 @@
 | 
				
			||||||
 | 
					#site-footer {
 | 
				
			||||||
 | 
						grid-area: footer;
 | 
				
			||||||
 | 
						margin-block-end: 2rem;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nav {
 | 
				
			||||||
 | 
							display: inline-block;
 | 
				
			||||||
 | 
							margin: 0 auto 1rem;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: 1.375rem;
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0.25rem;
 | 
				
			||||||
 | 
							max-width: 90%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ul {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								flex-wrap: wrap;
 | 
				
			||||||
 | 
								justify-content: center;
 | 
				
			||||||
 | 
								align-items: center;
 | 
				
			||||||
 | 
								gap: 0.25rem;
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							li {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
								list-style: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
									flex: 0 0 100%;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							a {
 | 
				
			||||||
 | 
								flex: 1;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								padding: 0.375rem 0.75rem;
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
								text-align: center;
 | 
				
			||||||
 | 
								text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&.active {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--accent-color);
 | 
				
			||||||
 | 
										color: var(--contrast-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									transform: var(--active);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#socials {
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							flex-wrap: wrap;
 | 
				
			||||||
 | 
							justify-content: center;
 | 
				
			||||||
 | 
							gap: 0.5rem;
 | 
				
			||||||
 | 
							margin: 1rem auto 0;
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							li {
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
								list-style: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							a {
 | 
				
			||||||
 | 
								display: block;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								padding: 0.5rem;
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
								line-height: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									transform: var(--active);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon);
 | 
				
			||||||
 | 
									mask-image: var(--icon);
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
									width: 1.5rem;
 | 
				
			||||||
 | 
									height: 1.5rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								span {
 | 
				
			||||||
 | 
									display: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						p {
 | 
				
			||||||
 | 
							margin: 1rem auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.link {
 | 
				
			||||||
 | 
							display: inline-block;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
							padding: 0.25rem 0.375rem;
 | 
				
			||||||
 | 
							line-height: 1;
 | 
				
			||||||
 | 
							text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--accent-color);
 | 
				
			||||||
 | 
								color: var(--contrast-color);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								sass/_footnotes-list.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								sass/_footnotes-list.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					.footnotes-list {
 | 
				
			||||||
 | 
						p {
 | 
				
			||||||
 | 
							margin-block-start: 0;
 | 
				
			||||||
 | 
							margin-block-end: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										140
									
								
								sass/_general.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								sass/_general.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,140 @@
 | 
				
			||||||
 | 
					* {
 | 
				
			||||||
 | 
						box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:root {
 | 
				
			||||||
 | 
						scroll-behavior: smooth;
 | 
				
			||||||
 | 
						scrollbar-color: var(--accent-color) transparent;
 | 
				
			||||||
 | 
						accent-color: var(--accent-color);
 | 
				
			||||||
 | 
						font-size: 16px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
						text-wrap: pretty;
 | 
				
			||||||
 | 
						display: grid; // Put footer at the bottom for short pages, such as the 404
 | 
				
			||||||
 | 
						grid-template-rows: auto minmax(auto, 1fr) auto; // Header, stuff, footer
 | 
				
			||||||
 | 
						grid-template-areas:
 | 
				
			||||||
 | 
							"nav"
 | 
				
			||||||
 | 
							"main"
 | 
				
			||||||
 | 
							"footer";
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
						background-color: var(--bg-color);
 | 
				
			||||||
 | 
						min-height: 100vh;
 | 
				
			||||||
 | 
						color: var(--fg-color);
 | 
				
			||||||
 | 
						line-height: 1.5;
 | 
				
			||||||
 | 
						font-family: var(--font-system-ui), var(--font-emoji);
 | 
				
			||||||
 | 
						overflow-wrap: break-word;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:has(#sidebar) {
 | 
				
			||||||
 | 
							grid-template-columns: 1fr min(var(--container-width), 90%) 1fr;
 | 
				
			||||||
 | 
							grid-template-areas:
 | 
				
			||||||
 | 
								"nav nav nav"
 | 
				
			||||||
 | 
								"sidebar main ."
 | 
				
			||||||
 | 
								"footer footer footer";
 | 
				
			||||||
 | 
							@media only screen and (max-width: 1200px) {
 | 
				
			||||||
 | 
								grid-template-areas:
 | 
				
			||||||
 | 
								"nav nav nav"
 | 
				
			||||||
 | 
								". sidebar ."
 | 
				
			||||||
 | 
								". main ."
 | 
				
			||||||
 | 
								"footer footer footer";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Style text selection to use accent color
 | 
				
			||||||
 | 
					::selection {
 | 
				
			||||||
 | 
						background-color: var(--accent-color);
 | 
				
			||||||
 | 
						color: var(--contrast-color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Make focused anchor not get covered by nav,
 | 
				
			||||||
 | 
					// and flash it with accent color when jumping to it
 | 
				
			||||||
 | 
					:target:not(#main-content) {
 | 
				
			||||||
 | 
						transition:
 | 
				
			||||||
 | 
							all var(--transition),
 | 
				
			||||||
 | 
							scroll-margin-block-start 0s;
 | 
				
			||||||
 | 
						scroll-margin-block-start: 15vh;
 | 
				
			||||||
 | 
						color: var(--accent-color);
 | 
				
			||||||
 | 
						text-shadow: var(--text-shadow-glow);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Custom focus indicator
 | 
				
			||||||
 | 
					:focus-visible {
 | 
				
			||||||
 | 
						animation: focus-in var(--transition);
 | 
				
			||||||
 | 
						outline: 0.125rem solid var(--accent-color);
 | 
				
			||||||
 | 
						outline-offset: 0.125rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Fallback for older browsers
 | 
				
			||||||
 | 
					@supports not selector(:focus-visible) {
 | 
				
			||||||
 | 
						:focus {
 | 
				
			||||||
 | 
							animation: focus-in var(--transition);
 | 
				
			||||||
 | 
							outline: 0.125rem solid var(--accent-color);
 | 
				
			||||||
 | 
							outline-offset: 0.125rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@keyframes focus-in {
 | 
				
			||||||
 | 
						from {
 | 
				
			||||||
 | 
							outline: 0.5rem solid transparent;
 | 
				
			||||||
 | 
							outline-offset: 0.25rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main {
 | 
				
			||||||
 | 
						margin: 4.25rem auto 4rem;
 | 
				
			||||||
 | 
						width: min(var(--container-width), 90%);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#sidebar {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						position: sticky;
 | 
				
			||||||
 | 
						top: 0;
 | 
				
			||||||
 | 
						grid-area: sidebar;
 | 
				
			||||||
 | 
						opacity: 0.2;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						height: 100vh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover {
 | 
				
			||||||
 | 
							opacity: 1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 1200px) {
 | 
				
			||||||
 | 
							position: static;
 | 
				
			||||||
 | 
							opacity: 1;
 | 
				
			||||||
 | 
							margin-block-start: 4.25rem;
 | 
				
			||||||
 | 
							margin-block-end: -4.25rem;
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
							height: auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						& > div {
 | 
				
			||||||
 | 
							--mask: linear-gradient(to bottom,
 | 
				
			||||||
 | 
									transparent,
 | 
				
			||||||
 | 
									black 1rem,
 | 
				
			||||||
 | 
									black calc(100% - 1rem),
 | 
				
			||||||
 | 
									transparent);
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--mask);
 | 
				
			||||||
 | 
							mask-image: var(--mask);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
							overflow: auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						& + main {
 | 
				
			||||||
 | 
							grid-area: main;
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							margin-block-start: 4.25rem;
 | 
				
			||||||
 | 
							margin-block-end: 4rem;
 | 
				
			||||||
 | 
							width: auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@media (prefers-reduced-motion) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						*,
 | 
				
			||||||
 | 
						*::before,
 | 
				
			||||||
 | 
						*::after {
 | 
				
			||||||
 | 
							animation-duration: 0s !important;
 | 
				
			||||||
 | 
							transition-duration: 0s !important;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										4
									
								
								sass/_hidden.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								sass/_hidden.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					.hidden {
 | 
				
			||||||
 | 
						display: none;
 | 
				
			||||||
 | 
						visibility: hidden;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								sass/_icon.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								sass/_icon.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					i.icon {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						mask-size: cover;
 | 
				
			||||||
 | 
						background-color: currentColor;
 | 
				
			||||||
 | 
						width: 1rem;
 | 
				
			||||||
 | 
						height: 1rem;
 | 
				
			||||||
 | 
						font-style: normal;
 | 
				
			||||||
 | 
						font-variant: normal;
 | 
				
			||||||
 | 
						line-height: 0;
 | 
				
			||||||
 | 
						text-rendering: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										30
									
								
								sass/_iframe.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								sass/_iframe.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					iframe {
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
						margin: 1rem auto;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight), var(--shadow);
 | 
				
			||||||
 | 
						border: none;
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						max-width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.mastodon-embed {
 | 
				
			||||||
 | 
							aspect-ratio: 3 / 4;
 | 
				
			||||||
 | 
							width: min(calc(var(--container-width) / 2), 100%);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.vimeo-embed,
 | 
				
			||||||
 | 
						&.youtube-embed {
 | 
				
			||||||
 | 
							aspect-ratio: 16 / 9;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:fullscreen {
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:-webkit-full-screen {
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										203
									
								
								sass/_input.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								sass/_input.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,203 @@
 | 
				
			||||||
 | 
					input[type="radio"],
 | 
				
			||||||
 | 
					input[type="checkbox"],
 | 
				
			||||||
 | 
					input[type="color"] {
 | 
				
			||||||
 | 
						position: relative;
 | 
				
			||||||
 | 
						appearance: none;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
						border: 0.15rem solid var(--fg-muted-2);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						width: 1rem;
 | 
				
			||||||
 | 
						height: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover {
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:disabled {
 | 
				
			||||||
 | 
							opacity: var(--disabled-opacity);
 | 
				
			||||||
 | 
							cursor: not-allowed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:checked {
 | 
				
			||||||
 | 
									background-color: var(--accent-color);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type="radio"],
 | 
				
			||||||
 | 
					input[type="checkbox"] {
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							display: block;
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							transform: scale(0.5);
 | 
				
			||||||
 | 
							opacity: 0;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							background-color: var(--contrast-color);
 | 
				
			||||||
 | 
							content: "";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:checked {
 | 
				
			||||||
 | 
							border: 0.15rem solid transparent;
 | 
				
			||||||
 | 
							background-color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::before {
 | 
				
			||||||
 | 
								transform: scale(1);
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type="radio"] {
 | 
				
			||||||
 | 
						vertical-align: -0.1875em;
 | 
				
			||||||
 | 
						border-radius: 50%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							inset-block-start: 0.125rem;
 | 
				
			||||||
 | 
							inset-inline-start: 0.125rem;
 | 
				
			||||||
 | 
							border-radius: 50%;
 | 
				
			||||||
 | 
							width: 0.5rem;
 | 
				
			||||||
 | 
							height: 0.5rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type="checkbox"] {
 | 
				
			||||||
 | 
						vertical-align: -0.1875em;
 | 
				
			||||||
 | 
						border-radius: calc(var(--rounded-corner-small) / 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-checkmark);
 | 
				
			||||||
 | 
							transform-origin: bottom left;
 | 
				
			||||||
 | 
							mask-image: var(--icon-checkmark);
 | 
				
			||||||
 | 
							mask-size: cover;
 | 
				
			||||||
 | 
							inset-block-start: -0.125rem;
 | 
				
			||||||
 | 
							inset-inline-start: -0.125rem;
 | 
				
			||||||
 | 
							width: 1rem;
 | 
				
			||||||
 | 
							height: 1rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.switch {
 | 
				
			||||||
 | 
							vertical-align: -0.375rem;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border: none;
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							width: 2.5rem;
 | 
				
			||||||
 | 
							height: 1.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.big {
 | 
				
			||||||
 | 
								vertical-align: -0.625rem;
 | 
				
			||||||
 | 
								width: 3rem;
 | 
				
			||||||
 | 
								height: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									width: 1.5rem;
 | 
				
			||||||
 | 
									height: 1.5rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::before {
 | 
				
			||||||
 | 
								transform: none;
 | 
				
			||||||
 | 
								transform-origin: center;
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
								mask-image: none;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								inset-block-start: 0.25rem;
 | 
				
			||||||
 | 
								inset-inline-start: 0.25rem;
 | 
				
			||||||
 | 
								box-shadow: var(--shadow);
 | 
				
			||||||
 | 
								border-radius: 50%;
 | 
				
			||||||
 | 
								background-color: white;
 | 
				
			||||||
 | 
								width: 1rem;
 | 
				
			||||||
 | 
								height: 1rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:checked {
 | 
				
			||||||
 | 
								background-color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									transform: translateX(1rem);
 | 
				
			||||||
 | 
									background-color: var(--contrast-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: translateX(-1rem);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:disabled {
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									box-shadow: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type="color"] {
 | 
				
			||||||
 | 
						vertical-align: -0.375em;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border: none;
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						padding: 0.25rem;
 | 
				
			||||||
 | 
						width: 3rem;
 | 
				
			||||||
 | 
						height: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-moz-color-swatch {
 | 
				
			||||||
 | 
							border: none;
 | 
				
			||||||
 | 
							border-radius: calc(var(--rounded-corner-small) - 0.25rem);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-webkit-color-swatch-wrapper {
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-webkit-color-swatch {
 | 
				
			||||||
 | 
							border-radius: calc(var(--rounded-corner-small) - 0.25rem);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input[type="range"] {
 | 
				
			||||||
 | 
						appearance: none;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: 999px;
 | 
				
			||||||
 | 
						background: var(--accent-color);
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						height: 0.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-webkit-slider-thumb {
 | 
				
			||||||
 | 
							appearance: none;
 | 
				
			||||||
 | 
							filter: brightness(0.9);
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							cursor: grab;
 | 
				
			||||||
 | 
							box-shadow: var(--shadow);
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: white;
 | 
				
			||||||
 | 
							width: 1.5rem;
 | 
				
			||||||
 | 
							height: 1.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
								cursor: grabbing;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-moz-range-thumb {
 | 
				
			||||||
 | 
							appearance: none;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							cursor: grab;
 | 
				
			||||||
 | 
							box-shadow: var(--shadow);
 | 
				
			||||||
 | 
							border: none;
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: white;
 | 
				
			||||||
 | 
							width: 1.5rem;
 | 
				
			||||||
 | 
							height: 1.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
								cursor: grabbing;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										164
									
								
								sass/_media.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								sass/_media.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,164 @@
 | 
				
			||||||
 | 
					img,
 | 
				
			||||||
 | 
					video {
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
						margin: 1rem auto;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight), var(--shadow);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						max-width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.full,
 | 
				
			||||||
 | 
						&[src*="#full"] {
 | 
				
			||||||
 | 
							width: 100%;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.full-bleed,
 | 
				
			||||||
 | 
						&[src*="#full-bleed"] {
 | 
				
			||||||
 | 
							margin-inline-start: calc((-100vw + 100%) / 2);
 | 
				
			||||||
 | 
							margin-inline-end: calc((-100vw + 100%) / 2);
 | 
				
			||||||
 | 
							width: 100vw;
 | 
				
			||||||
 | 
							max-width: 100vw;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.start,
 | 
				
			||||||
 | 
						&.end,
 | 
				
			||||||
 | 
						&[src*="#start"],
 | 
				
			||||||
 | 
						&[src*="#end"] {
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							width: 30%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
								float: none;
 | 
				
			||||||
 | 
								margin-inline-start: 0;
 | 
				
			||||||
 | 
								margin-inline-end: 0;
 | 
				
			||||||
 | 
								margin-block-start: 1rem;
 | 
				
			||||||
 | 
								margin-block-end: 1rem;
 | 
				
			||||||
 | 
								width: 100%;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.start,
 | 
				
			||||||
 | 
						&[src*="#start"] {
 | 
				
			||||||
 | 
							float: inline-start;
 | 
				
			||||||
 | 
							transform-origin: left;
 | 
				
			||||||
 | 
							margin-inline-end: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform-origin: right;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.end,
 | 
				
			||||||
 | 
						&[src*="#end"] {
 | 
				
			||||||
 | 
							float: inline-end;
 | 
				
			||||||
 | 
							transform-origin: right;
 | 
				
			||||||
 | 
							margin-inline-start: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform-origin: left;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.pixels,
 | 
				
			||||||
 | 
						&[src*="#pixels"] {
 | 
				
			||||||
 | 
							image-rendering: pixelated;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.transparent,
 | 
				
			||||||
 | 
						&.full-bleed,
 | 
				
			||||||
 | 
						&[src*="#transparent"],
 | 
				
			||||||
 | 
						&[src*="#full-bleed"] {
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
							background-color: transparent;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.spoiler,
 | 
				
			||||||
 | 
						&[src*="#spoiler"] {
 | 
				
			||||||
 | 
							opacity: var(--dim-opacity);
 | 
				
			||||||
 | 
							clip-path: inset(0 0 0 0 round var(--rounded-corner));
 | 
				
			||||||
 | 
							filter: blur(1rem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover,
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
								clip-path: inset(
 | 
				
			||||||
 | 
									-0.75rem -0.75rem -0.75rem -0.75rem round
 | 
				
			||||||
 | 
										var(--rounded-corner-small)
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								filter: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.solid,
 | 
				
			||||||
 | 
							&[src*="#solid"] {
 | 
				
			||||||
 | 
								clip-path: none;
 | 
				
			||||||
 | 
								filter: brightness(0) contrast(0.5);
 | 
				
			||||||
 | 
								box-shadow: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover,
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									filter: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					img {
 | 
				
			||||||
 | 
						transition: var(--transition-longer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:not(
 | 
				
			||||||
 | 
								.no-hover,
 | 
				
			||||||
 | 
								.full-bleed,
 | 
				
			||||||
 | 
								[src*="#no-hover"],
 | 
				
			||||||
 | 
								[src*="#full-bleed"],
 | 
				
			||||||
 | 
								.emoji
 | 
				
			||||||
 | 
							) {
 | 
				
			||||||
 | 
							cursor: zoom-in;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								position: relative;
 | 
				
			||||||
 | 
								transform: var(--hover);
 | 
				
			||||||
 | 
								z-index: 1;
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight), var(--shadow-raised);
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.start,
 | 
				
			||||||
 | 
							&.end,
 | 
				
			||||||
 | 
							&[src*="#start"],
 | 
				
			||||||
 | 
							&[src*="#end"] {
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									transform: scale(2);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
									transform-origin: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										transform: var(--hover);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.transparent,
 | 
				
			||||||
 | 
							&[src*="#transparent"] {
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a img:not(.no-hover, .full-bleed, [src*="#no-hover"], [src*="#full-bleed"]) {
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					video:fullscreen {
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					video:-webkit-full-screen {
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										478
									
								
								sass/_nav.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										478
									
								
								sass/_nav.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,478 @@
 | 
				
			||||||
 | 
					#handle {
 | 
				
			||||||
 | 
						position: fixed;
 | 
				
			||||||
 | 
						z-index: 999;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						margin: 0 auto;
 | 
				
			||||||
 | 
						inset-block-start: 0;
 | 
				
			||||||
 | 
						inset-inline-end: 0;
 | 
				
			||||||
 | 
						inset-inline-start: 0;
 | 
				
			||||||
 | 
						width: min(var(--container-width), 90%);
 | 
				
			||||||
 | 
						height: 4.25rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							margin: 0 auto;
 | 
				
			||||||
 | 
							inset-block-start: 0.5rem;
 | 
				
			||||||
 | 
							inset-inline-end: 0;
 | 
				
			||||||
 | 
							inset-inline-start: 0;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: var(--accent-color);
 | 
				
			||||||
 | 
							width: min(calc(var(--container-width) / 4), 100%);
 | 
				
			||||||
 | 
							height: 0.5rem;
 | 
				
			||||||
 | 
							content: "";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover::before,
 | 
				
			||||||
 | 
						&:has(+ #site-nav:hover)::before,
 | 
				
			||||||
 | 
						&:has(+ #site-nav *:focus-visible, + #site-nav *:focus)::before {
 | 
				
			||||||
 | 
							transform: translateY(-1rem) scale(0.5);
 | 
				
			||||||
 | 
							opacity: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover + #site-nav,
 | 
				
			||||||
 | 
						& + #site-nav:hover,
 | 
				
			||||||
 | 
						& + #site-nav:has(*:focus-visible, *:focus) {
 | 
				
			||||||
 | 
							transform: none;
 | 
				
			||||||
 | 
							opacity: 1;
 | 
				
			||||||
 | 
							pointer-events: auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::before {
 | 
				
			||||||
 | 
								-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
								backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						& + #site-nav {
 | 
				
			||||||
 | 
							position: fixed;
 | 
				
			||||||
 | 
							transform: translateY(-1rem) scale(0.5);
 | 
				
			||||||
 | 
							transform-origin: top;
 | 
				
			||||||
 | 
							opacity: 0;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							margin: 0 auto;
 | 
				
			||||||
 | 
							width: max-content;
 | 
				
			||||||
 | 
							pointer-events: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::before {
 | 
				
			||||||
 | 
								-webkit-backdrop-filter: saturate(1) blur(0);
 | 
				
			||||||
 | 
								backdrop-filter: saturate(1) blur(0);
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#site-nav {
 | 
				
			||||||
 | 
						position: sticky;
 | 
				
			||||||
 | 
						grid-area: nav;
 | 
				
			||||||
 | 
						z-index: 999;
 | 
				
			||||||
 | 
						margin: 1rem auto 0;
 | 
				
			||||||
 | 
						inset-block-start: 1rem;
 | 
				
			||||||
 | 
						inset-inline-end: 0;
 | 
				
			||||||
 | 
						inset-inline-start: 0;
 | 
				
			||||||
 | 
						border-radius: 1.625rem;
 | 
				
			||||||
 | 
						max-width: min(var(--container-width), 90%);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
							position: relative;
 | 
				
			||||||
 | 
							margin: 0 auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							z-index: -1;
 | 
				
			||||||
 | 
							backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							inset: 0;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: 1.625rem;
 | 
				
			||||||
 | 
							background-color: var(--glass-bg);
 | 
				
			||||||
 | 
							content: "";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nav {
 | 
				
			||||||
 | 
							padding: 0.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							& > a {
 | 
				
			||||||
 | 
								-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
								position: absolute;
 | 
				
			||||||
 | 
								left: 50%;
 | 
				
			||||||
 | 
								transform: translateX(-50%);
 | 
				
			||||||
 | 
								opacity: 0;
 | 
				
			||||||
 | 
								z-index: 999;
 | 
				
			||||||
 | 
								backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								inset-block-start: 0;
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								background-color: var(--glass-bg);
 | 
				
			||||||
 | 
								padding: 0.625rem 0.75rem;
 | 
				
			||||||
 | 
								pointer-events: none;
 | 
				
			||||||
 | 
								line-height: 1;
 | 
				
			||||||
 | 
								text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:focus {
 | 
				
			||||||
 | 
									opacity: 1;
 | 
				
			||||||
 | 
									inset-block-start: calc(100% + 0.5rem);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ul {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								flex-wrap: wrap;
 | 
				
			||||||
 | 
								justify-content: center;
 | 
				
			||||||
 | 
								align-items: center;
 | 
				
			||||||
 | 
								gap: 0.25rem;
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							li {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								margin: 0;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
								list-style: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
									&:not(:has(.circle)) {
 | 
				
			||||||
 | 
										flex: 0 0 100%;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							a,
 | 
				
			||||||
 | 
							summary {
 | 
				
			||||||
 | 
								flex: 1;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								box-shadow: none;
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								padding: 0.625rem 0.75rem;
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
								line-height: 1;
 | 
				
			||||||
 | 
								list-style: none;
 | 
				
			||||||
 | 
								text-align: center;
 | 
				
			||||||
 | 
								text-decoration: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							a.active {
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
								background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
								color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									background-color: var(--accent-color);
 | 
				
			||||||
 | 
									color: var(--contrast-color);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#home a {
 | 
				
			||||||
 | 
								color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								font-weight: 800;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									color: var(--fg-color);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&.active {
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										color: var(--contrast-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-home);
 | 
				
			||||||
 | 
									vertical-align: -0.125em;
 | 
				
			||||||
 | 
									mask-image: var(--icon-home);
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
									margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.divider {
 | 
				
			||||||
 | 
								align-self: stretch;
 | 
				
			||||||
 | 
								margin: 0 0.25rem;
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
								width: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
									display: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							a,
 | 
				
			||||||
 | 
							#search button,
 | 
				
			||||||
 | 
							#language-switcher summary,
 | 
				
			||||||
 | 
							#theme-switcher summary,
 | 
				
			||||||
 | 
							#theme-switcher button,
 | 
				
			||||||
 | 
							summary {
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									transform: var(--active);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.circle {
 | 
				
			||||||
 | 
								padding: 0.625rem 0.625rem;
 | 
				
			||||||
 | 
								line-height: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									display: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									vertical-align: -0.125em;
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button {
 | 
				
			||||||
 | 
								appearance: none;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								cursor: pointer;
 | 
				
			||||||
 | 
								border: none;
 | 
				
			||||||
 | 
								border-radius: 999px;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								font-size: var(--font-size-medium);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							details {
 | 
				
			||||||
 | 
								display: flex;
 | 
				
			||||||
 | 
								position: relative;
 | 
				
			||||||
 | 
								flex: 1;
 | 
				
			||||||
 | 
								box-shadow: none;
 | 
				
			||||||
 | 
								border-radius: 0;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&[open] ul {
 | 
				
			||||||
 | 
									animation: dropdown-open var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									@keyframes dropdown-open {
 | 
				
			||||||
 | 
										from {
 | 
				
			||||||
 | 
											transform: scale(0.5) translate(-50%, -1rem);
 | 
				
			||||||
 | 
											opacity: 0;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								ul {
 | 
				
			||||||
 | 
									-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
									position: absolute;
 | 
				
			||||||
 | 
									left: 50%;
 | 
				
			||||||
 | 
									flex-direction: column;
 | 
				
			||||||
 | 
									transform: translateX(-50%);
 | 
				
			||||||
 | 
									transform-origin: top left;
 | 
				
			||||||
 | 
									z-index: 1;
 | 
				
			||||||
 | 
									backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
									inset-block-start: 3.25rem;
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
									border-radius: calc(var(--rounded-corner) + 0.25rem);
 | 
				
			||||||
 | 
									background-color: var(--glass-bg);
 | 
				
			||||||
 | 
									padding: 0.25rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									li {
 | 
				
			||||||
 | 
										width: 100%;
 | 
				
			||||||
 | 
										white-space: nowrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										a {
 | 
				
			||||||
 | 
											border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
											text-align: start;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@media only screen and (max-width: 480px) {
 | 
				
			||||||
 | 
									&:has(summary:not(.circle)) ul {
 | 
				
			||||||
 | 
										inset-block-start: 2.75rem;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#search .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-search);
 | 
				
			||||||
 | 
								mask-image: var(--icon-search);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									transform: scaleX(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#feed .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-feed);
 | 
				
			||||||
 | 
								mask-image: var(--icon-feed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									transform: scaleX(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#repo .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-git);
 | 
				
			||||||
 | 
								mask-image: var(--icon-git);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#language-switcher .icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-languages);
 | 
				
			||||||
 | 
								mask-image: var(--icon-languages);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#theme-switcher {
 | 
				
			||||||
 | 
								ul {
 | 
				
			||||||
 | 
									flex-direction: row;
 | 
				
			||||||
 | 
									flex-wrap: nowrap;
 | 
				
			||||||
 | 
									border-radius: 999px;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.active {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:hover {
 | 
				
			||||||
 | 
										background-color: var(--accent-color);
 | 
				
			||||||
 | 
										color: var(--contrast-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								#theme-system .icon,
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-theme-system);
 | 
				
			||||||
 | 
									mask-image: var(--icon-theme-system);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: scaleX(-1);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								#theme-light .icon,
 | 
				
			||||||
 | 
								.icon.light {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-theme-light);
 | 
				
			||||||
 | 
									mask-image: var(--icon-theme-light);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								#theme-dark .icon,
 | 
				
			||||||
 | 
								.icon.dark {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-theme-dark);
 | 
				
			||||||
 | 
									mask-image: var(--icon-theme-dark);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: scaleX(-1);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-container {
 | 
				
			||||||
 | 
							transform: scale(0.5) translateY(-2.75rem);
 | 
				
			||||||
 | 
							opacity: 0;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							padding: 0 0.5rem 0;
 | 
				
			||||||
 | 
							height: 0;
 | 
				
			||||||
 | 
							pointer-events: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.active {
 | 
				
			||||||
 | 
								transform: none;
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
								padding: 0 0.5rem 0.5rem;
 | 
				
			||||||
 | 
								height: 2.75rem;
 | 
				
			||||||
 | 
								pointer-events: all;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-bar {
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border: none;
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0 0.75rem;
 | 
				
			||||||
 | 
							width: 100%;
 | 
				
			||||||
 | 
							height: 2.25rem;
 | 
				
			||||||
 | 
							color: inherit;
 | 
				
			||||||
 | 
							font-size: var(--font-size-medium);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::placeholder {
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-results-container {
 | 
				
			||||||
 | 
							-webkit-backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							backdrop-filter: var(--blur);
 | 
				
			||||||
 | 
							inset-block-start: calc(100% + 0.5rem);
 | 
				
			||||||
 | 
							inset-inline-start: 0;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight), var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: calc(var(--rounded-corner) + 0.5rem);
 | 
				
			||||||
 | 
							background-color: var(--glass-bg);
 | 
				
			||||||
 | 
							width: 100%;
 | 
				
			||||||
 | 
							max-height: 50vh;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-results {
 | 
				
			||||||
 | 
							--mask: linear-gradient(to bottom,
 | 
				
			||||||
 | 
									transparent,
 | 
				
			||||||
 | 
									black 1rem,
 | 
				
			||||||
 | 
									black calc(100% - 1rem),
 | 
				
			||||||
 | 
									transparent);
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--mask);
 | 
				
			||||||
 | 
							display: none;
 | 
				
			||||||
 | 
							flex: 1;
 | 
				
			||||||
 | 
							flex-direction: column;
 | 
				
			||||||
 | 
							gap: 0.5rem;
 | 
				
			||||||
 | 
							mask-image: var(--mask);
 | 
				
			||||||
 | 
							padding: 0.5rem;
 | 
				
			||||||
 | 
							overflow: auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.item {
 | 
				
			||||||
 | 
								display: inline-flex;
 | 
				
			||||||
 | 
								flex-direction: column;
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
								padding: 0.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								a {
 | 
				
			||||||
 | 
									width: fit-content;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&::after {
 | 
				
			||||||
 | 
										content: " →";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
											content: " ←";
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								span {
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:first-of-type,
 | 
				
			||||||
 | 
									&.more-matches {
 | 
				
			||||||
 | 
										margin-block-start: 0.5rem;
 | 
				
			||||||
 | 
										border-block-start: max(1px, 0.0625rem) solid var(--fg-muted-2);
 | 
				
			||||||
 | 
										padding-block-start: 0.25rem;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&.more-matches {
 | 
				
			||||||
 | 
										font-size: var(--font-size-small);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									strong {
 | 
				
			||||||
 | 
										color: var(--fg-color);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										276
									
								
								sass/_normalize.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								sass/_normalize.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,276 @@
 | 
				
			||||||
 | 
					// Document
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Correct the line height in all browsers.
 | 
				
			||||||
 | 
					// 2. Prevent adjustments of font size after orientation changes in iOS.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(html) {
 | 
				
			||||||
 | 
						-webkit-text-size-adjust: 100%; // 2
 | 
				
			||||||
 | 
						text-size-adjust: 100%; // 2
 | 
				
			||||||
 | 
						line-height: 1.15; // 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Sections
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Correct the font size and margin on `h1` elements within `section` and
 | 
				
			||||||
 | 
					// `article` contexts in Chrome, Edge, Firefox, and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(h1) {
 | 
				
			||||||
 | 
						margin-block-start: 0.67em;
 | 
				
			||||||
 | 
						margin-block-end: 0.67em;
 | 
				
			||||||
 | 
						font-size: 2em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Grouping content
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the margin on nested lists in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(dl, ol, ul) :where(dl, ol, ul) {
 | 
				
			||||||
 | 
						margin-block-start: 0;
 | 
				
			||||||
 | 
						margin-block-end: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Add the correct box sizing in Firefox.
 | 
				
			||||||
 | 
					// 2. Correct the inheritance of border color in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(hr) {
 | 
				
			||||||
 | 
						box-sizing: content-box; // 1
 | 
				
			||||||
 | 
						height: 0; // 1
 | 
				
			||||||
 | 
						color: inherit; // 2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Text-level semantics
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct text decoration in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(abbr[title]) {
 | 
				
			||||||
 | 
						text-decoration: underline;
 | 
				
			||||||
 | 
						text-decoration: underline dotted;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct font weight in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(b, strong) {
 | 
				
			||||||
 | 
						font-weight: bolder;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Correct the inheritance and scaling of font size in all browsers.
 | 
				
			||||||
 | 
					// 2. Correct the odd `em` font sizing in all browsers.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(code, kbd, pre, samp) {
 | 
				
			||||||
 | 
						font-size: 1em; // 2
 | 
				
			||||||
 | 
						font-family: monospace, monospace; // 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct font size in all browsers.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(small) {
 | 
				
			||||||
 | 
						font-size: 80%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Tabular data
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Correct table border color in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					// 2. Remove text indentation from table contents in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(table) {
 | 
				
			||||||
 | 
						border-color: currentColor; // 1
 | 
				
			||||||
 | 
						text-indent: 0; // 2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Forms
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the margin on controls in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(button, input, select) {
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the inheritance of text transform in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(button) {
 | 
				
			||||||
 | 
						text-transform: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Correct the inability to style buttons in iOS and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(
 | 
				
			||||||
 | 
							button,
 | 
				
			||||||
 | 
							input:is([type="button" i], [type="reset" i], [type="submit" i])
 | 
				
			||||||
 | 
						) {
 | 
				
			||||||
 | 
						-webkit-appearance: button;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct vertical alignment in Chrome, Edge, and Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(progress) {
 | 
				
			||||||
 | 
						vertical-align: baseline;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the inheritance of text transform in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(select) {
 | 
				
			||||||
 | 
						text-transform: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the margin in Firefox and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(textarea) {
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Correct the odd appearance in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					// 2. Correct the outline style in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(input[type="search" i]) {
 | 
				
			||||||
 | 
						-webkit-appearance: textfield; // 1
 | 
				
			||||||
 | 
						outline-offset: -2px; // 2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Correct the cursor style of increment and decrement buttons in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-inner-spin-button,
 | 
				
			||||||
 | 
					::-webkit-outer-spin-button {
 | 
				
			||||||
 | 
						height: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Correct the text style of placeholders in Chrome, Edge, and Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-input-placeholder {
 | 
				
			||||||
 | 
						opacity: 0.54;
 | 
				
			||||||
 | 
						color: inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the inner padding in Chrome, Edge, and Safari on macOS.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-search-decoration {
 | 
				
			||||||
 | 
						-webkit-appearance: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// 1. Correct the inability to style upload buttons in iOS and Safari.
 | 
				
			||||||
 | 
					// 2. Change font properties to `inherit` in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-file-upload-button {
 | 
				
			||||||
 | 
						-webkit-appearance: button; // 1
 | 
				
			||||||
 | 
						font: inherit; // 2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the inner border and padding of focus outlines in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(
 | 
				
			||||||
 | 
							button,
 | 
				
			||||||
 | 
							input:is(
 | 
				
			||||||
 | 
									[type="button" i],
 | 
				
			||||||
 | 
									[type="color" i],
 | 
				
			||||||
 | 
									[type="reset" i],
 | 
				
			||||||
 | 
									[type="submit" i]
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
 | 
						)::-moz-focus-inner {
 | 
				
			||||||
 | 
						border-style: none;
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Restore the focus outline styles unset by the previous rule in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(
 | 
				
			||||||
 | 
							button,
 | 
				
			||||||
 | 
							input:is(
 | 
				
			||||||
 | 
									[type="button" i],
 | 
				
			||||||
 | 
									[type="color" i],
 | 
				
			||||||
 | 
									[type="reset" i],
 | 
				
			||||||
 | 
									[type="submit" i]
 | 
				
			||||||
 | 
								)
 | 
				
			||||||
 | 
						)::-moz-focusring {
 | 
				
			||||||
 | 
						outline: 1px dotted ButtonText;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Remove the additional :invalid styles in Firefox.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(:-moz-ui-invalid) {
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Interactive
 | 
				
			||||||
 | 
					// ==========================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct styles in Safari.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(dialog) {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						right: 0;
 | 
				
			||||||
 | 
						left: 0;
 | 
				
			||||||
 | 
						margin: auto;
 | 
				
			||||||
 | 
						border: solid;
 | 
				
			||||||
 | 
						background-color: white;
 | 
				
			||||||
 | 
						padding: 1em;
 | 
				
			||||||
 | 
						width: -moz-fit-content;
 | 
				
			||||||
 | 
						width: fit-content;
 | 
				
			||||||
 | 
						height: -moz-fit-content;
 | 
				
			||||||
 | 
						height: fit-content;
 | 
				
			||||||
 | 
						color: black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(dialog:not([open])) {
 | 
				
			||||||
 | 
						display: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Add the correct display in all browsers.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:where(summary) {
 | 
				
			||||||
 | 
						display: list-item;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								sass/_not-found.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								sass/_not-found.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					#not-found {
 | 
				
			||||||
 | 
						width: min(calc(var(--container-width) / 5), 100%);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										69
									
								
								sass/_post-nav.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								sass/_post-nav.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					#post-nav {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-direction: row;
 | 
				
			||||||
 | 
						gap: 0.25rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
							flex-direction: column;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.post-nav-item {
 | 
				
			||||||
 | 
							flex: 1;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
							padding-block-end: 0.75rem;
 | 
				
			||||||
 | 
							min-width: 0;
 | 
				
			||||||
 | 
							text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
								background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.post-title {
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.post-nav-prev .nav-arrow::before {
 | 
				
			||||||
 | 
								content: "← ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
									content: "→ ";
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.post-nav-next {
 | 
				
			||||||
 | 
								text-align: end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.nav-arrow::after {
 | 
				
			||||||
 | 
									content: " →";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										content: " ←";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.nav-arrow {
 | 
				
			||||||
 | 
								margin-block-end: 0.75rem;
 | 
				
			||||||
 | 
								color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								font-weight: normal;
 | 
				
			||||||
 | 
								line-height: 1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.post-title {
 | 
				
			||||||
 | 
								display: block;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								max-width: 90vw;
 | 
				
			||||||
 | 
								overflow: hidden;
 | 
				
			||||||
 | 
								color: var(--fg-color);
 | 
				
			||||||
 | 
								text-overflow: ellipsis;
 | 
				
			||||||
 | 
								white-space: nowrap;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										98
									
								
								sass/_pre-container.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								sass/_pre-container.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,98 @@
 | 
				
			||||||
 | 
					.pre-container {
 | 
				
			||||||
 | 
						margin: 1rem 0 1rem;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight), var(--shadow);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.header {
 | 
				
			||||||
 | 
							--shimmer: rgb(
 | 
				
			||||||
 | 
								from var(--accent-color) r g b / calc(var(--color-opacity) * 2)
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							justify-content: space-between;
 | 
				
			||||||
 | 
							align-items: center;
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner) var(--rounded-corner) 0 0;
 | 
				
			||||||
 | 
							background-image: linear-gradient(
 | 
				
			||||||
 | 
								to right,
 | 
				
			||||||
 | 
								var(--fg-muted-1) 50%,
 | 
				
			||||||
 | 
								var(--shimmer) 75%,
 | 
				
			||||||
 | 
								var(--fg-muted-1) 100%
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							background-size: 200%;
 | 
				
			||||||
 | 
							padding: 0.25rem;
 | 
				
			||||||
 | 
							height: 2.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							span {
 | 
				
			||||||
 | 
								margin-inline-start: 0.75rem;
 | 
				
			||||||
 | 
								color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
								line-height: 1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							button {
 | 
				
			||||||
 | 
								appearance: none;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								cursor: pointer;
 | 
				
			||||||
 | 
								border: none;
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								padding: 0.5rem;
 | 
				
			||||||
 | 
								color: var(--fg-muted-4);
 | 
				
			||||||
 | 
								line-height: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:hover {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
									color: var(--fg-muted-5);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:active {
 | 
				
			||||||
 | 
									transform: var(--active);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&:disabled {
 | 
				
			||||||
 | 
									cursor: not-allowed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									&:active {
 | 
				
			||||||
 | 
										transform: none;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.icon {
 | 
				
			||||||
 | 
									-webkit-mask-image: var(--icon-copy);
 | 
				
			||||||
 | 
									mask-image: var(--icon-copy);
 | 
				
			||||||
 | 
									transition: var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
										transform: scaleX(-1);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.active {
 | 
				
			||||||
 | 
								animation: active-shimmer var(--transition-long);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								button {
 | 
				
			||||||
 | 
									box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.icon {
 | 
				
			||||||
 | 
										-webkit-mask-image: var(--icon-done);
 | 
				
			||||||
 | 
										mask-image: var(--icon-done);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								@keyframes active-shimmer {
 | 
				
			||||||
 | 
									to {
 | 
				
			||||||
 | 
										background-position-x: -200%;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pre {
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0 0 var(--rounded-corner) var(--rounded-corner);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										26
									
								
								sass/_sparkline.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								sass/_sparkline.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,26 @@
 | 
				
			||||||
 | 
					.sparkline {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-direction: row;
 | 
				
			||||||
 | 
						align-items: flex-end;
 | 
				
			||||||
 | 
						float: inline-end;
 | 
				
			||||||
 | 
						gap: 0.25rem;
 | 
				
			||||||
 | 
						margin: 1rem 0;
 | 
				
			||||||
 | 
						width: 6rem;
 | 
				
			||||||
 | 
						height: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						div {
 | 
				
			||||||
 | 
							flex: 1;
 | 
				
			||||||
 | 
							transform-origin: bottom;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							background-image: linear-gradient(
 | 
				
			||||||
 | 
								to top,
 | 
				
			||||||
 | 
								var(--accent-color) var(--bar-height),
 | 
				
			||||||
 | 
								transparent var(--bar-height)
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
							height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								height: 200%;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								sass/_spoiler.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								sass/_spoiler.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					span.spoiler {
 | 
				
			||||||
 | 
						filter: blur(0.25rem);
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover,
 | 
				
			||||||
 | 
						&:active {
 | 
				
			||||||
 | 
							filter: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.solid {
 | 
				
			||||||
 | 
							filter: none;
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							color: transparent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover,
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								color: inherit;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										60
									
								
								sass/_statements.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								sass/_statements.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,60 @@
 | 
				
			||||||
 | 
					.statement-container {
 | 
				
			||||||
 | 
						margin: 1rem 0;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						padding: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:last-child {
 | 
				
			||||||
 | 
							margin-block-end: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						& > :nth-child(2) {
 | 
				
			||||||
 | 
							margin-block-start: 0.5rem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						li::marker {
 | 
				
			||||||
 | 
							color: inherit;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a {
 | 
				
			||||||
 | 
							color: inherit;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.title {
 | 
				
			||||||
 | 
							color: inherit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								margin-inline-end: 0.375rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.archive {
 | 
				
			||||||
 | 
							background-color: var(--purple-bg);
 | 
				
			||||||
 | 
							color: var(--purple-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
								mask-image: var(--icon-archive);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.disclaimer {
 | 
				
			||||||
 | 
							background-color: var(--red-bg);
 | 
				
			||||||
 | 
							color: var(--red-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
								mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&.trigger {
 | 
				
			||||||
 | 
							background-color: var(--yellow-bg);
 | 
				
			||||||
 | 
							color: var(--yellow-fg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.icon {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
								mask-image: var(--icon-warning);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										24
									
								
								sass/_table.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								sass/_table.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					table {
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						border-collapse: collapse;
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tr {
 | 
				
			||||||
 | 
							&:nth-child(even) {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							th,
 | 
				
			||||||
 | 
							td {
 | 
				
			||||||
 | 
								padding: 0.5rem 1rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							th {
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
								font-weight: bold;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										69
									
								
								sass/_tags.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								sass/_tags.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					.tags {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-wrap: wrap;
 | 
				
			||||||
 | 
						gap: 0.25rem;
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
						margin-block-start: 2rem;
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
						list-style: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						li {
 | 
				
			||||||
 | 
							display: flex;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							margin: 0;
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: var(--active);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a {
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 0.375rem 0.75rem;
 | 
				
			||||||
 | 
							color: var(--fg-muted-5);
 | 
				
			||||||
 | 
							font-size: var(--font-size-small);
 | 
				
			||||||
 | 
							line-height: 1;
 | 
				
			||||||
 | 
							text-decoration: none;
 | 
				
			||||||
 | 
							white-space: nowrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:hover {
 | 
				
			||||||
 | 
								background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
								color: var(--accent-color);
 | 
				
			||||||
 | 
								text-decoration: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								.count {
 | 
				
			||||||
 | 
									background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
									color: var(--accent-color);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:has(.tag) {
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.tag {
 | 
				
			||||||
 | 
								display: inline-block;
 | 
				
			||||||
 | 
								padding-inline-start: 0.75rem;
 | 
				
			||||||
 | 
								padding-inline-end: 0.5rem;
 | 
				
			||||||
 | 
								padding-block-start: 0.375rem;
 | 
				
			||||||
 | 
								padding-block-end: 0.375rem;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.count {
 | 
				
			||||||
 | 
								display: inline-block;
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								border-start-end-radius: 999px;
 | 
				
			||||||
 | 
								border-end-end-radius: 999px;
 | 
				
			||||||
 | 
								background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
								padding-inline-start: 0.5rem;
 | 
				
			||||||
 | 
								padding-inline-end: 0.625rem;
 | 
				
			||||||
 | 
								padding-block-start: 0.375rem;
 | 
				
			||||||
 | 
								padding-block-end: 0.375rem;
 | 
				
			||||||
 | 
								font-variant-numeric: tabular-nums;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								sass/_title.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								sass/_title.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					strong.title {
 | 
				
			||||||
 | 
						color: var(--accent-color);
 | 
				
			||||||
 | 
						font-size: var(--font-size-x-large);
 | 
				
			||||||
 | 
						line-height: 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										312
									
								
								sass/_typography.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								sass/_typography.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,312 @@
 | 
				
			||||||
 | 
					// HEADINGS
 | 
				
			||||||
 | 
					h1,
 | 
				
			||||||
 | 
					h2,
 | 
				
			||||||
 | 
					h3,
 | 
				
			||||||
 | 
					h4,
 | 
				
			||||||
 | 
					h5,
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						text-wrap: balance;
 | 
				
			||||||
 | 
						margin: 2rem 0 1rem;
 | 
				
			||||||
 | 
						font-weight: lighter;
 | 
				
			||||||
 | 
						line-height: normal;
 | 
				
			||||||
 | 
						font-family: var(--font-antique);
 | 
				
			||||||
 | 
						letter-spacing: -0.05em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-xxx-large);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h2 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-xx-large);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h3 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-x-large);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h4 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-large);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h5 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-medium);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						font-size: var(--font-size-small);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					small {
 | 
				
			||||||
 | 
						color: var(--fg-muted-5);
 | 
				
			||||||
 | 
						font-size: var(--font-size-small-em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abbr[title] {
 | 
				
			||||||
 | 
						cursor: help;
 | 
				
			||||||
 | 
						text-decoration: underline;
 | 
				
			||||||
 | 
						text-decoration-style: dotted;
 | 
				
			||||||
 | 
						text-decoration-thickness: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					figcaption {
 | 
				
			||||||
 | 
						color: var(--fg-muted-4);
 | 
				
			||||||
 | 
						font-size: var(--font-size-small-em);
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					blockquote {
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
						border-radius: 0.25rem;
 | 
				
			||||||
 | 
						border-inline-start: 0.25rem solid var(--accent-color);
 | 
				
			||||||
 | 
						padding-inline-start: 0.75rem;
 | 
				
			||||||
 | 
						color: var(--fg-muted-5);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark,
 | 
				
			||||||
 | 
					del,
 | 
				
			||||||
 | 
					ins,
 | 
				
			||||||
 | 
					samp,
 | 
				
			||||||
 | 
					q {
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						padding: 0.125rem 0.375rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark {
 | 
				
			||||||
 | 
						background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
						color: var(--accent-color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					del {
 | 
				
			||||||
 | 
						background-color: var(--red-bg);
 | 
				
			||||||
 | 
						color: var(--red-fg);
 | 
				
			||||||
 | 
						text-decoration: line-through;
 | 
				
			||||||
 | 
						text-decoration-thickness: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ins {
 | 
				
			||||||
 | 
						background-color: var(--green-bg);
 | 
				
			||||||
 | 
						color: var(--green-fg);
 | 
				
			||||||
 | 
						text-decoration: underline;
 | 
				
			||||||
 | 
						text-decoration-thickness: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					samp {
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						color: var(--fg-muted-5);
 | 
				
			||||||
 | 
						font-size: var(--font-size-small-em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					q {
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						color: var(--fg-muted-5);
 | 
				
			||||||
 | 
						font-style: italic;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u {
 | 
				
			||||||
 | 
						text-decoration: underline;
 | 
				
			||||||
 | 
						text-decoration-style: wavy;
 | 
				
			||||||
 | 
						text-decoration-color: var(--red-fg);
 | 
				
			||||||
 | 
						text-decoration-thickness: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					progress {
 | 
				
			||||||
 | 
						appearance: none;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border: none;
 | 
				
			||||||
 | 
						border-radius: 999px;
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						height: 0.5rem;
 | 
				
			||||||
 | 
						color: var(--accent-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:indeterminate {
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:indeterminate::-moz-progress-bar {
 | 
				
			||||||
 | 
							background-color: transparent;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-webkit-progress-bar {
 | 
				
			||||||
 | 
							background-color: transparent;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-moz-progress-bar {
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: var(--accent-color);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::-webkit-progress-value {
 | 
				
			||||||
 | 
							border-radius: 999px;
 | 
				
			||||||
 | 
							background-color: var(--accent-color);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kbd {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
						box-shadow:
 | 
				
			||||||
 | 
							var(--edge-highlight),
 | 
				
			||||||
 | 
							inset 0 -0.125rem 0 var(--fg-muted-2);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner-small);
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
						padding: 0.125rem 0.375rem;
 | 
				
			||||||
 | 
						font-size: var(--font-size-small-em);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Small nice thingy, keys can be pressed!
 | 
				
			||||||
 | 
						&:active {
 | 
				
			||||||
 | 
							transform: translateY(0.125rem);
 | 
				
			||||||
 | 
							box-shadow: inset 0 0.0625rem 0 var(--fg-muted-2);
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
						color: var(--accent-color);
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
						text-decoration-thickness: max(1px, 0.0625em);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover {
 | 
				
			||||||
 | 
							text-decoration-style: wavy;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					hr {
 | 
				
			||||||
 | 
						margin: 2rem auto;
 | 
				
			||||||
 | 
						border: none;
 | 
				
			||||||
 | 
						border-block-start: 0.1875rem double var(--fg-muted-2);
 | 
				
			||||||
 | 
						overflow: visible;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::after {
 | 
				
			||||||
 | 
							position: relative;
 | 
				
			||||||
 | 
							inset-block-start: -1.25rem;
 | 
				
			||||||
 | 
							content: "❦";
 | 
				
			||||||
 | 
							color: var(--fg-muted-4);
 | 
				
			||||||
 | 
							font-size: var(--font-size-x-large);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dt {
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dd {
 | 
				
			||||||
 | 
						margin-inline-start: 1.5rem;
 | 
				
			||||||
 | 
						margin-block-end: 1rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					aside {
 | 
				
			||||||
 | 
						float: right;
 | 
				
			||||||
 | 
						margin-inline-start: 1rem;
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
						background-color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
						padding: 1rem;
 | 
				
			||||||
 | 
						width: 30%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
							float: left;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 720px) {
 | 
				
			||||||
 | 
							float: none;
 | 
				
			||||||
 | 
							margin-inline-start: 0;
 | 
				
			||||||
 | 
							width: 100%;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:first-child {
 | 
				
			||||||
 | 
							margin-block-start: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:last-child {
 | 
				
			||||||
 | 
							margin-block-end: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					details {
 | 
				
			||||||
 | 
						summary {
 | 
				
			||||||
 | 
							cursor: pointer;
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
							color: var(--fg-muted-5);
 | 
				
			||||||
 | 
							font-weight: bold;
 | 
				
			||||||
 | 
							line-height: 1;
 | 
				
			||||||
 | 
							list-style: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::marker,
 | 
				
			||||||
 | 
							&::-webkit-details-marker {
 | 
				
			||||||
 | 
								display: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&::before {
 | 
				
			||||||
 | 
								-webkit-mask-image: var(--icon-down);
 | 
				
			||||||
 | 
								display: inline-block;
 | 
				
			||||||
 | 
								vertical-align: -0.125em;
 | 
				
			||||||
 | 
								mask-image: var(--icon-down);
 | 
				
			||||||
 | 
								transition: var(--transition);
 | 
				
			||||||
 | 
								margin-inline-end: 0.25rem;
 | 
				
			||||||
 | 
								background-color: currentColor;
 | 
				
			||||||
 | 
								width: 1rem;
 | 
				
			||||||
 | 
								height: 1rem;
 | 
				
			||||||
 | 
								content: "";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:last-child {
 | 
				
			||||||
 | 
							margin-block-end: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&[open] {
 | 
				
			||||||
 | 
							box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
							border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							background-color: var(--fg-muted-1);
 | 
				
			||||||
 | 
							padding: 1rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							summary {
 | 
				
			||||||
 | 
								box-shadow: none;
 | 
				
			||||||
 | 
								border-radius: 0;
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
								padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									transform: scaleY(-1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								& ~ * {
 | 
				
			||||||
 | 
									animation: details-open var(--transition);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									@keyframes details-open {
 | 
				
			||||||
 | 
										from {
 | 
				
			||||||
 | 
											transform: translateY(-1rem);
 | 
				
			||||||
 | 
											opacity: 0;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					figure {
 | 
				
			||||||
 | 
						margin-inline: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ol,
 | 
				
			||||||
 | 
					ul {
 | 
				
			||||||
 | 
						padding-inline-start: 1.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					li {
 | 
				
			||||||
 | 
						margin: 0.125rem 0;
 | 
				
			||||||
 | 
						padding-inline-start: 0.25rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::marker {
 | 
				
			||||||
 | 
							color: var(--accent-color);
 | 
				
			||||||
 | 
							font-weight: bold;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										204
									
								
								sass/_variables.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										204
									
								
								sass/_variables.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,204 @@
 | 
				
			||||||
 | 
					@mixin theme-variables {
 | 
				
			||||||
 | 
						:root {
 | 
				
			||||||
 | 
							@content ("light");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[data-theme="dark"] {
 | 
				
			||||||
 | 
							@content ("dark");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media (prefers-color-scheme: dark) {
 | 
				
			||||||
 | 
							:root:not([data-theme="light"]) {
 | 
				
			||||||
 | 
								@content ("dark");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@include theme-variables using ($theme) {
 | 
				
			||||||
 | 
						@if $theme == "dark" {
 | 
				
			||||||
 | 
							// COLORS
 | 
				
			||||||
 | 
							--bg-color: color-mix(in srgb, var(--accent-color) 10%, black);
 | 
				
			||||||
 | 
							--bg-overlay: linear-gradient(rgb(0 0 0 / 0.9), rgb(0 0 0 / 0.9));
 | 
				
			||||||
 | 
							--fg-color: rgb(255 255 255);
 | 
				
			||||||
 | 
							--fg-contrast: rgb(0 0 0 / 0.8);
 | 
				
			||||||
 | 
							--fg-muted-1: rgb(255 255 255 / 0.05);
 | 
				
			||||||
 | 
							--fg-muted-2: rgb(255 255 255 / 0.1);
 | 
				
			||||||
 | 
							--fg-muted-3: rgb(255 255 255 / 0.2);
 | 
				
			||||||
 | 
							--fg-muted-4: rgb(255 255 255 / 0.5);
 | 
				
			||||||
 | 
							--fg-muted-5: rgb(255 255 255 / 0.6);
 | 
				
			||||||
 | 
							--glass-bg: rgb(25 25 25 / 0.7);
 | 
				
			||||||
 | 
							--blue-fg: rgb(153 193 241);
 | 
				
			||||||
 | 
							--brown-fg: rgb(205 171 143);
 | 
				
			||||||
 | 
							--green-fg: rgb(143 240 164);
 | 
				
			||||||
 | 
							--purple-fg: rgb(220 138 221);
 | 
				
			||||||
 | 
							--red-fg: rgb(246 97 81);
 | 
				
			||||||
 | 
							--yellow-fg: rgb(248 228 92);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							color-scheme: dark;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@else {
 | 
				
			||||||
 | 
							// COLORS
 | 
				
			||||||
 | 
							--bg-color: color-mix(in srgb, var(--accent-color) 20%, white);
 | 
				
			||||||
 | 
							--bg-overlay: linear-gradient(rgb(255 255 255 / 0.8), rgb(255 255 255 / 0.8));
 | 
				
			||||||
 | 
							--fg-color: rgb(0 0 0 / 0.8);
 | 
				
			||||||
 | 
							--fg-contrast: rgb(255 255 255);
 | 
				
			||||||
 | 
							--fg-muted-1: rgb(0 0 0 / 0.05);
 | 
				
			||||||
 | 
							--fg-muted-2: rgb(0 0 0 / 0.1);
 | 
				
			||||||
 | 
							--fg-muted-3: rgb(0 0 0 / 0.2);
 | 
				
			||||||
 | 
							--fg-muted-4: rgb(0 0 0 / 0.5);
 | 
				
			||||||
 | 
							--fg-muted-5: rgb(0 0 0 / 0.6);
 | 
				
			||||||
 | 
							--glass-bg: rgb(242 242 242 / 0.7);
 | 
				
			||||||
 | 
							--accent-color-alpha: rgb(from var(--accent-color) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--blue-bg: rgb(from var(--blue-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--blue-fg: rgb(53 132 228);
 | 
				
			||||||
 | 
							--brown-bg: rgb(from var(--brown-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--brown-fg: rgb(99 69 44);
 | 
				
			||||||
 | 
							--green-bg: rgb(from var(--green-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--green-fg: rgb(38 162 105);
 | 
				
			||||||
 | 
							--purple-bg: rgb(from var(--purple-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--purple-fg: rgb(145 65 172);
 | 
				
			||||||
 | 
							--red-bg: rgb(from var(--red-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--red-fg: rgb(224 27 36);
 | 
				
			||||||
 | 
							--yellow-bg: rgb(from var(--yellow-fg) r g b / var(--color-opacity));
 | 
				
			||||||
 | 
							--yellow-fg: rgb(156 110 3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// CONTRAST COLOR
 | 
				
			||||||
 | 
							--l: clamp(0, (l / 0.623 - 1) * -infinity, 1);
 | 
				
			||||||
 | 
							--a: calc(var(--l) + (var(--dim-opacity) * (1 - var(--l))));
 | 
				
			||||||
 | 
							--contrast-color: oklch(from var(--accent-color) var(--l) 0 h / var(--a));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// CONTAINERS
 | 
				
			||||||
 | 
							--container-width: 1024px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// CORNERS
 | 
				
			||||||
 | 
							--rounded-corner: 0.75rem;
 | 
				
			||||||
 | 
							--rounded-corner-small: 0.5rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// FILTERS
 | 
				
			||||||
 | 
							--blur: saturate(1.8) blur(0.75rem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// FONT SIZES
 | 
				
			||||||
 | 
							--font-size-xx-small: 0.625rem;
 | 
				
			||||||
 | 
							--font-size-x-small: 0.75rem;
 | 
				
			||||||
 | 
							--font-size-small: 0.875rem;
 | 
				
			||||||
 | 
							--font-size-medium: 1rem;
 | 
				
			||||||
 | 
							--font-size-large: 1.25rem;
 | 
				
			||||||
 | 
							--font-size-x-large: 1.5rem;
 | 
				
			||||||
 | 
							--font-size-xx-large: 2rem;
 | 
				
			||||||
 | 
							--font-size-xxx-large: 3rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// FONT SIZES (RELATIVE)
 | 
				
			||||||
 | 
							--font-size-xx-small-em: 0.625em;
 | 
				
			||||||
 | 
							--font-size-x-small-em: 0.75em;
 | 
				
			||||||
 | 
							--font-size-small-em: 0.875em;
 | 
				
			||||||
 | 
							--font-size-medium-em: 1em;
 | 
				
			||||||
 | 
							--font-size-large-em: 1.25em;
 | 
				
			||||||
 | 
							--font-size-x-large-em: 1.5em;
 | 
				
			||||||
 | 
							--font-size-xx-large-em: 2em;
 | 
				
			||||||
 | 
							--font-size-xxx-large-em: 3em;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// FONTS
 | 
				
			||||||
 | 
							--font-system-ui: system-ui, sans-serif;
 | 
				
			||||||
 | 
							--font-transitional: Charter, "Bitstream Charter", "Sitka Text", Cambria,
 | 
				
			||||||
 | 
								serif;
 | 
				
			||||||
 | 
							--font-old-style: "Iowan Old Style", "Palatino Linotype",
 | 
				
			||||||
 | 
								"URW Palladio L", P052, serif;
 | 
				
			||||||
 | 
							--font-humanist: Seravek, "Gill Sans Nova", Ubuntu, Calibri,
 | 
				
			||||||
 | 
								"DejaVu Sans", source-sans-pro, sans-serif;
 | 
				
			||||||
 | 
							--font-geometric-humanist: Avenir, Montserrat, Corbel, "URW Gothic",
 | 
				
			||||||
 | 
								source-sans-pro, sans-serif;
 | 
				
			||||||
 | 
							--font-classical-humanist: Optima, Candara, "Noto Sans", source-sans-pro,
 | 
				
			||||||
 | 
								sans-serif;
 | 
				
			||||||
 | 
							--font-neo-grotesque: Inter, Roboto, "Helvetica Neue", "Arial Nova",
 | 
				
			||||||
 | 
								"Nimbus Sans", Arial, sans-serif;
 | 
				
			||||||
 | 
							--font-monospace-slab-serif: "Nimbus Mono PS", "Courier New", monospace;
 | 
				
			||||||
 | 
							--font-monospace-code: ui-monospace, "Cascadia Code", "Source Code Pro",
 | 
				
			||||||
 | 
								Menlo, Consolas, "DejaVu Sans Mono", monospace;
 | 
				
			||||||
 | 
							--font-industrial: Bahnschrift, "DIN Alternate",
 | 
				
			||||||
 | 
								"Franklin Gothic Medium", "Nimbus Sans Narrow", sans-serif-condensed,
 | 
				
			||||||
 | 
								sans-serif;
 | 
				
			||||||
 | 
							--font-rounded-sans: ui-rounded, "Hiragino Maru Gothic ProN", Quicksand,
 | 
				
			||||||
 | 
								Comfortaa, Manjari, "Arial Rounded MT", "Arial Rounded MT Bold",
 | 
				
			||||||
 | 
								Calibri, source-sans-pro, sans-serif;
 | 
				
			||||||
 | 
							--font-slab-serif: Rockwell, "Rockwell Nova", "Roboto Slab",
 | 
				
			||||||
 | 
								"DejaVu Serif", "Sitka Small", serif;
 | 
				
			||||||
 | 
							--font-antique: Superclarendon, "Bookman Old Style", "URW Bookman",
 | 
				
			||||||
 | 
								"URW Bookman L", "Georgia Pro", Georgia, serif;
 | 
				
			||||||
 | 
							--font-didone: Didot, "Bodoni MT", "Noto Serif Display",
 | 
				
			||||||
 | 
								"URW Palladio L", P052, Sylfaen, serif;
 | 
				
			||||||
 | 
							--font-handwritten: "Segoe Print", "Bradley Hand", Chilanka, TSCu_Comic,
 | 
				
			||||||
 | 
								casual, cursive;
 | 
				
			||||||
 | 
							--font-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
 | 
				
			||||||
 | 
								"Noto Color Emoji";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// OPACITY
 | 
				
			||||||
 | 
							--color-opacity: 0.1;
 | 
				
			||||||
 | 
							--dim-opacity: 0.8;
 | 
				
			||||||
 | 
							--disabled-opacity: 0.6;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// SHADOWS
 | 
				
			||||||
 | 
							--edge-highlight: inset 0 0.0625rem 0 rgb(255 255 255 / 0.1);
 | 
				
			||||||
 | 
							--shadow: 0 0 0 0.0625rem rgb(0 0 0 / 0.03),
 | 
				
			||||||
 | 
								0 0.0625rem 0.1875rem 0.0625rem rgb(0 0 0 / 0.07),
 | 
				
			||||||
 | 
								0 0.125rem 0.375rem 0.125rem rgb(0 0 0 / 0.03);
 | 
				
			||||||
 | 
							--shadow-raised: 0 0 0 0.0625rem rgb(0 0 0 / 0.06),
 | 
				
			||||||
 | 
								0 0.125rem 0.375rem 0.125rem rgb(0 0 0 / 0.14),
 | 
				
			||||||
 | 
								0 0.25rem 0.75rem 0.25rem rgb(0 0 0 / 0.06);
 | 
				
			||||||
 | 
							--shadow-glass: 0 0.75rem 1.5rem -1rem rgb(0 0 0 / 0.5);
 | 
				
			||||||
 | 
							--shadow-glow: 0 0 0 0.0625rem var(--accent-color-alpha),
 | 
				
			||||||
 | 
								0 0.125rem 0.375rem 0.125rem var(--accent-color-alpha),
 | 
				
			||||||
 | 
								0 0.25rem 1.5rem 0.25rem var(--accent-color-alpha);
 | 
				
			||||||
 | 
							--text-shadow-glow: var(--accent-color-alpha) 0 0 0.25rem,
 | 
				
			||||||
 | 
								var(--accent-color) 0 0 0.75rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// STATES
 | 
				
			||||||
 | 
							--hover: scale(1.1);
 | 
				
			||||||
 | 
							--active: scale(0.9);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// TRANSITIONS
 | 
				
			||||||
 | 
							--transition: 0.2s;
 | 
				
			||||||
 | 
							--transition-longer: 0.4s;
 | 
				
			||||||
 | 
							--transition-long: 0.8s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// ICONS (16px)
 | 
				
			||||||
 | 
							--icon-archive: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M2 1C.89 1 0 1.89 0 3v2c0 .751.41 1.402 1.018 1.744A2 2 0 0 0 1 7v7c0 1.11.89 2 2 2h10c1.11 0 2-.89 2-2V7a2 2 0 0 0-.018-.256A2 2 0 0 0 16 5V3c0-1.11-.89-2-2-2zm0 2h12v2H2zm1 4h10v7H3zm3 1v1h4V8z'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-backlink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M5 14a1 1 0 0 1-.707-.293l-4-4a1 1 0 0 1 0-1.414l4-4a1 1 0 1 1 1.414 1.414L3.414 8H12c1.117 0 2-.883 2-2s-.883-2-2-2c-.55 0-1-.45-1-1s.45-1 1-1c2.2 0 4 1.8 4 4s-1.8 4-4 4H3.414l2.293 2.293A1 1 0 0 1 5 14m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-boosts: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 1v2H4C1.8 3 0 4.8 0 7v2a4 4 0 0 0 1.02 2.672 1 1 0 1 0 1.488-1.336A1.97 1.97 0 0 1 2 9V7c0-1.125.875-2 2-2h4v2h1v-.008a1 1 0 0 0 .707-.285l2-2a1 1 0 0 0 0-1.414l-2-2A1 1 0 0 0 9 1.008V1zm6.29 3a1 1 0 0 0-.72.258.993.993 0 0 0-.078 1.41c.317.355.508.816.508 1.34v2c0 1.125-.875 2-2 2H8V9H7v.008a1 1 0 0 0-.707.285l-2 2a1 1 0 0 0 0 1.414l2 2c.187.184.441.29.707.285V15h1v-1.992h4c2.2 0 4-1.805 4-4v-2a4 4 0 0 0-1.02-2.676A1 1 0 0 0 14.29 4m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-bug: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M5 0c-.55 0-1 .45-1 1 0 .691.39 1.285.8 1.605C4.298 3.277 4 4.105 4 5H3V4H1v1c0 .832.563 1.523 1.05 1.77.493.246.95.23.95.23h1v1H1v2h3v1H3s-.457-.016-.95.23C1.563 11.477 1 12.168 1 13v3h2v-3h1.129c.45 1.719 2.016 3 3.871 3s3.422-1.281 3.871-3H13v3h2v-3c0-.832-.562-1.523-1.05-1.77-.493-.246-.95-.23-.95-.23h-1v-1h3V8h-3V7h1s.457.016.95-.23C14.437 6.523 15 5.832 15 5V4h-2v1h-1c0-.895-.297-1.723-.8-2.395.41-.32.8-.914.8-1.605 0-.55-.45-1-1-1s-1 .45-1 1a1 1 0 0 0-.645.238C8.93 1.086 8.473 1 8 1s-.93.086-1.355.238A1 1 0 0 0 6 1c0-.55-.45-1-1-1m2.969 5.031h.062A.97.97 0 0 1 9 6v3.063a.97.97 0 0 1-.969.968H7.97A.97.97 0 0 1 7 9.062V6a.97.97 0 0 1 .969-.969m0 6h.062A.97.97 0 0 1 9 12v.063a.97.97 0 0 1-.969.968H7.97a.97.97 0 0 1-.97-.969V12a.97.97 0 0 1 .969-.969m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-caution: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M5 0a1 1 0 0 0-.707.293l-4 4A1 1 0 0 0 0 5v6a1 1 0 0 0 .293.707l4 4A1 1 0 0 0 5 16h6a1 1 0 0 0 .707-.293l4-4A1 1 0 0 0 16 11V5a1 1 0 0 0-.293-.707l-4-4A1 1 0 0 0 11 0zm.414 2h5.172L14 5.414v5.172L10.586 14H5.414L2 10.586V5.414zM8 4c-.554 0-1 .446-1 1v3c0 .554.446 1 1 1s1-.446 1-1V5c0-.554-.446-1-1-1m0 6a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-checkmark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M13.754 4.668c.176-.2.262-.461.246-.723a1 1 0 0 0-.34-.687 1 1 0 0 0-.726-.246 1 1 0 0 0-.688.34L5.95 10.547 3.707 8.3A1 1 0 0 0 2 9.01a1 1 0 0 0 .293.708l3 3c.195.195.465.3.742.293.278-.012.535-.133.719-.344zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-copy: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 3c0-1.645 1.355-3 3-3h5c1.645 0 3 1.355 3 3 0 .55-.45 1-1 1s-1-.45-1-1c0-.57-.43-1-1-1H3c-.57 0-1 .43-1 1v5c0 .57.43 1 1 1 .55 0 1 .45 1 1s-.45 1-1 1c-1.645 0-3-1.355-3-3zm5 5c0-1.645 1.355-3 3-3h5c1.645 0 3 1.355 3 3v5c0 1.645-1.355 3-3 3H8c-1.645 0-3-1.355-3-3zm2 0v5c0 .57.43 1 1 1h5c.57 0 1-.43 1-1V8c0-.57-.43-1-1-1H8c-.57 0-1 .43-1 1m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-done: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M7.883 0q-.486.008-.965.074a7.98 7.98 0 0 0-4.602 2.293 8.01 8.01 0 0 0-1.23 9.664 8.015 8.015 0 0 0 9.02 3.684 8 8 0 0 0 5.89-7.75 1 1 0 1 0-2 .008 5.986 5.986 0 0 1-4.418 5.816 5.996 5.996 0 0 1-6.762-2.766 5.99 5.99 0 0 1 .922-7.25 5.99 5.99 0 0 1 7.239-.984 1 1 0 0 0 1.363-.371c.273-.48.11-1.09-.371-1.367A8 8 0 0 0 9.492.14 8 8 0 0 0 7.882 0m7.15 1.998-.1.002a1 1 0 0 0-.687.34L7.95 9.535 5.707 7.29A1 1 0 0 0 4 8a1 1 0 0 0 .293.707l3 3c.195.195.465.3.742.293.277-.012.535-.133.719-.344l7-8A1 1 0 0 0 16 2.934a1 1 0 0 0-.34-.688 1 1 0 0 0-.627-.248'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='m2.293 6.707 5 5a1 1 0 0 0 1.414 0l5-5a1 1 0 1 0-1.414-1.414L8 9.586 3.707 5.293a1 1 0 1 0-1.414 1.414m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-feed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M1.988 1.988V3c.008.547.453.984 1 .988.004-.004.008-.004.012-.004v.028A8.977 8.977 0 0 1 11.988 13a.991.991 0 0 0 1 .984h1V13h-.004c0-.004 0-.004.004-.008C13.984 7.02 9.184 2.148 3.242 2.02A1.004 1.004 0 0 0 3 1.988v-.004zm0 4V7c.008.547.453.984 1 .988.004-.004.008-.004.012-.004V8a4.985 4.985 0 0 1 4.996 4.844 1.002 1.002 0 0 0 .988 1.145c.008-.005.012-.005.016-.005v.004h.984V13H10c0-3.793-3.047-6.898-6.82-6.992 0-.004-.004-.004-.004-.004A.892.892 0 0 0 3 5.988v-.004zm2 4a1.999 1.999 0 1 0-.002 3.998 1.999 1.999 0 0 0 .002-3.998m0 0'%3E%3C/path%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-fire: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M9.184.973C4.957 3.113 5.586 6.273 7 9 5.762 7.36 5.016 5.48 5 4 3.375 5 2 7 2 9a6.005 6.005 0 0 0 3.969 5.648c-.492-.84-.367-1.96.703-3.015 2.14-2.11 1.558-2.735 1.558-2.735 2.266 1.149-.32 3.137.418 3.88.563.558 1.758-1.391 1.77-2.184.848.96 1.246 1.676 1.246 2.75q0 .273-.035.52c2.512-1.805 3.273-5.41.46-8.184C8.095 1.742 9.185.973 9.185.973m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-first: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M3 2v12h2V8.414l5.293 5.293a1 1 0 1 0 1.414-1.414L7.414 8l4.293-4.293a1 1 0 1 0-1.414-1.414L5 7.586V2zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-git: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 0a1 1 0 0 0-.707.293L5.707 1.875l5.238 5.234c.176-.07.364-.109.555-.109A1.5 1.5 0 1 1 10 8.5q0-.276.102-.535L8.05 5.915v4.19a1.5 1.5 0 1 1-1-.035V4.914L4.859 2.727.293 7.293a1 1 0 0 0 0 1.414l7 7a1 1 0 0 0 1.414 0l7-7a1.007 1.007 0 0 0 0-1.414l-7-7A1 1 0 0 0 8 0m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 .361a2.2 2.2 0 0 0-1.41.51L2.129 4.59A3.14 3.14 0 0 0 1 7v6c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V7c0-.93-.414-1.813-1.129-2.41L9.411.87A2.2 2.2 0 0 0 8 .361m0 2.002a.2.2 0 0 1 .129.047l4.46 3.719c.263.215.411.535.411.871v6c0 .547-.453 1-1 1h-2V9c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5H4c-.547 0-1-.453-1-1V7c0-.336.148-.656.41-.871L7.871 2.41A.2.2 0 0 1 8 2.363'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-important: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M3 0C1.355 0 0 1.355 0 3v7c0 1.256.893 2.14 2 2.584V15a1 1 0 0 0 1.707.707L6.414 13H13c1.645 0 3-1.355 3-3V3c0-1.645-1.355-3-3-3zm0 2h10c.571 0 1 .429 1 1v7c0 .571-.429 1-1 1H6a1 1 0 0 0-.707.293L4 12.586V12a1 1 0 0 0-1-1c-.571 0-1-.429-1-1V3c0-.571.429-1 1-1m5 1c-.554 0-1 .446-1 1v2c0 .554.446 1 1 1s1-.446 1-1V4c0-.554-.446-1-1-1m0 5a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 0C3.59 0 0 3.59 0 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8m0 2c3.332 0 6 2.668 6 6s-2.668 6-6 6-6-2.668-6-6 2.668-6 6-6m0 1.875a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25M6.477 7A.5.5 0 0 0 6.5 8H7v3h-.5a.499.499 0 1 0 0 1h3a.499.499 0 1 0 0-1H9V7zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-languages: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M3.98 1v3H1v2h2.947a4.8 4.8 0 0 1-.592 1.871c-.425.758-1.101 1.488-2.062 2.45l1.414 1.413c.92-.92 1.703-1.728 2.283-2.697.38.632.844 1.196 1.377 1.768l.668-2.309a6 6 0 0 1-.41-.625A4.75 4.75 0 0 1 6.033 6h1.53l.511-2H6V1zm5.24 1L6 15h2l.781-3h4.438L14 15h2L12.781 2zm1.562 2h.438l1.5 6H9.28z'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-last: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M11 2v5.586L5.707 2.293a1 1 0 1 0-1.414 1.414L8.586 8l-4.293 4.293a1 1 0 1 0 1.414 1.414L11 8.414V14h2V2zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-lightbulb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M7.996 0C5.16 0 2.703 2 2.125 4.777c-.527 2.535.688 5.036 2.871 6.325L5 12a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-.898c2.184-1.293 3.402-3.797 2.871-6.332A6.01 6.01 0 0 0 7.996 0m0 2a3.994 3.994 0 0 1 3.918 3.18 3.99 3.99 0 0 1-2.312 4.484 1.01 1.01 0 0 0-.602.914V11H6.996v-.418a1 1 0 0 0-.598-.914 3.994 3.994 0 0 1-2.316-4.484A3.99 3.99 0 0 1 7.996 2m-.998 4a.5.5 0 0 0-.354.852l1 1a.5.5 0 0 0 .708 0l1-1a.5.5 0 0 0 0-.707.507.507 0 0 0-.707 0l-.649.648-.644-.648A.5.5 0 0 0 6.998 6M6 14v1c0 .555.445 1 1 1h2c.555 0 1-.445 1-1v-1z'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-link: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M4 4C1.8 4 0 5.8 0 8s1.8 4 4 4v-2c-1.125 0-2-.875-2-2s.875-2 2-2h3c1.125 0 2 .875 2 2 0 .84-.496 1.535-1.207 1.84l.785 1.84A4 4 0 0 0 11 8c0-2.2-1.8-4-4-4zm8 2v2c1.125 0 2 .875 2 2s-.875 2-2 2H9c-1.125 0-2-.875-2-2 0-.828.484-1.516 1.184-1.828l-.817-1.828A4.01 4.01 0 0 0 5 10c0 2.2 1.8 4 4 4h3c2.2 0 4-1.8 4-4s-1.8-4-4-4'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-next: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='m6.707 13.707 5-5a1 1 0 0 0 0-1.414l-5-5a1 1 0 1 0-1.414 1.414L9.586 8l-4.293 4.293a1 1 0 1 0 1.414 1.414m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-pencil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M12.277.832c-.578.008-1.168.23-1.691.754l-9 9A2 2 0 0 0 1 12v3h3c.531 0 1.04-.21 1.414-.586l9-9c1.79-1.789.082-4.39-1.89-4.57-.083-.012-.165-.012-.247-.012M10.5 4.437 11.563 5.5 4.5 12.563 3.438 11.5zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-poop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8.963 1.514A4 4 0 0 1 5 5H4c-1.108 0-2 .892-2 2s.892 2 2 2H3c-1.662 0-3 1.338-3 3s1.338 3 3 3h10c1.662 0 3-1.338 3-3s-1.338-3-3-3h-1c1.108 0 2-.892 2-2s-.892-2-2-2h-1a4 4 0 0 0-2.037-3.486'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-previous: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='m9.293 13.707-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 1 1 1.414 1.414L6.414 8l4.293 4.293a1 1 0 1 1-1.414 1.414m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='m5.707 1.293 6 6a1 1 0 0 1 0 1.414l-6 6a1 1 0 1 1-1.414-1.414L9.586 8 4.293 2.707a1 1 0 1 1 1.414-1.414m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M6.57.063c-3.578 0-6.5 2.921-6.5 6.5 0 3.578 2.922 6.5 6.5 6.5a6.46 6.46 0 0 0 3.83-1.256l2.975 2.974c.957.938 2.363-.5 1.406-1.437l-2.96-2.961a6.46 6.46 0 0 0 1.25-3.82c0-3.579-2.923-6.5-6.5-6.5m0 2c2.5 0 4.5 2.003 4.5 4.5 0 2.5-2 4.5-4.5 4.5-2.496 0-4.5-2-4.5-4.5 0-2.497 2.004-4.5 4.5-4.5'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-share: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 1a1 1 0 0 0-.5.135 1 1 0 0 0-.207.158l-3 3a1 1 0 0 0 0 1.414 1 1 0 0 0 1.414 0L7 4.414V10a1 1 0 0 0 1 1 1 1 0 0 0 1-1V4.414l1.293 1.293a1 1 0 0 0 1.414 0 1 1 0 0 0 0-1.414L8.738 1.326 8.7 1.287a1 1 0 0 0-.195-.15l-.008-.004a1 1 0 0 0-.236-.098h-.004A1 1 0 0 0 8 1M4 7c-1.645 0-3 1.355-3 3v2c0 1.645 1.355 3 3 3h8c1.645 0 3-1.355 3-3v-2c0-1.645-1.355-3-3-3a1 1 0 0 0 0 2c.564 0 1 .436 1 1v2c0 .564-.436 1-1 1H4c-.564 0-1-.436-1-1v-2c0-.564.436-1 1-1a1 1 0 0 0 0-2'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 0a1 1 0 0 0-.95.684l-1.448 4.34-4.59-.016C.032 5.004-.371 6.266.43 6.828l3.625 2.555-1.5 4.285c-.317.902.687 1.691 1.492 1.172l4.004-2.594 3.894 2.586c.801.531 1.817-.258 1.5-1.16l-1.504-4.29 3.645-2.577c.789-.563.394-1.809-.574-1.813l-4.66-.015L8.949.69A1 1 0 0 0 8 0m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-theme-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M.918 8.004a7.072 7.072 0 0 0 14.102.793 1.01 1.01 0 0 0-.457-.957 1 1 0 0 0-1.063-.004 3.9 3.9 0 0 1-2.031.578 3.89 3.89 0 0 1-3.883-3.883c0-.715.203-1.422.578-2.031a1 1 0 0 0-.004-1.062c-.207-.32-.578-.5-.957-.458A7.07 7.07 0 0 0 .918 8.004M5.586 4.53a5.877 5.877 0 0 0 8.965 5.004l-1.52-.96a5.09 5.09 0 0 1-5.035 4.507 5.09 5.09 0 0 1-5.078-5.078 5.09 5.09 0 0 1 4.508-5.035l-.961-1.52a5.9 5.9 0 0 0-.88 3.082m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-theme-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8.004-.008a1 1 0 0 0-1 1v1a1 1 0 1 0 2 0v-1c0-.554-.445-1-1-1M3.053 2.035a1 1 0 0 0-.26.035.994.994 0 0 0-.45 1.672l.708.707a1 1 0 1 0 1.414-1.414l-.707-.707a1 1 0 0 0-.705-.293m9.9.012a1 1 0 0 0-.707.293l-.707.707a1 1 0 1 0 1.414 1.414l.707-.707a1 1 0 0 0-.707-1.707M8 4C5.785 4 4 5.785 4 8s1.785 4 4 4 4-1.785 4-4-1.785-4-4-4m0 2c1.098 0 2 .902 2 2s-.902 2-2 2-2-.902-2-2 .902-2 2-2m-7.004.984a1 1 0 1 0 0 2h1a1 1 0 1 0 0-2zM14 7c-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zM3.748 11.234a1 1 0 0 0-.705.293l-.711.707a1.007 1.007 0 0 0 0 1.414c.39.391 1.027.391 1.418 0l.707-.707a1 1 0 0 0-.709-1.707m8.49.006q-.131 0-.261.033a1.01 1.01 0 0 0-.707.711 1 1 0 0 0 .261.965l.707.707a.995.995 0 0 0 1.672-.445 1 1 0 0 0-.258-.969l-.707-.707a1 1 0 0 0-.707-.295m-4.246 1.756c-.554 0-1 .445-1 1v1a1 1 0 1 0 2 0v-1a1 1 0 0 0-1-1'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-theme-system: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 0C3.594 0 0 3.594 0 8s3.594 8 8 8 8-3.594 8-8-3.594-8-8-8m0 1.941c3.36 0 6.059 2.7 6.059 6.059s-2.7 6.059-6.059 6.059zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-toc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M2 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2m4 0c-.554 0-1 .446-1 1s.446 1 1 1h8c.554 0 1-.446 1-1s-.446-1-1-1ZM2 7a1 1 0 1 0 0 2 1 1 0 0 0 0-2m4 0c-.554 0-1 .446-1 1s.446 1 1 1h8c.554 0 1-.446 1-1s-.446-1-1-1Zm-4 4a1 1 0 1 0 0 2 1 1 0 0 0 0-2m4 0c-.554 0-1 .446-1 1s.446 1 1 1h8c.554 0 1-.446 1-1s-.446-1-1-1z'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-top: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M1 11a1 1 0 0 1 .293-.707l6-6a1 1 0 0 1 1.414 0l6 6a1 1 0 1 1-1.414 1.414L8 6.414l-5.293 5.293A1 1 0 0 1 1 11m0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-verified: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M5.21 1.27A3.7 3.7 0 0 1 8 0c1.113 0 2.11.492 2.79 1.27a3.68 3.68 0 0 1 2.866 1.074A3.68 3.68 0 0 1 14.73 5.21C15.54 5.914 16 6.93 16 8s-.46 2.086-1.27 2.79a3.68 3.68 0 0 1-1.074 2.866 3.68 3.68 0 0 1-2.867 1.074C10.086 15.54 9.07 16 8 16s-2.086-.46-2.79-1.27a3.68 3.68 0 0 1-2.866-1.074A3.68 3.68 0 0 1 1.27 10.79 3.7 3.7 0 0 1 0 8c0-1.113.492-2.11 1.27-2.79a3.68 3.68 0 0 1 1.074-2.866A3.68 3.68 0 0 1 5.21 1.27m5.75 5.242a.613.613 0 0 0-.437-.98.61.61 0 0 0-.562.265L7.305 9.512 5.973 8.18a.616.616 0 0 0-.868.87l1.844 1.845a.61.61 0 0 0 .485.18.63.63 0 0 0 .453-.255zm0 0'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
							--icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 .844c-.907 0-1.814.444-2.291 1.334l-.002.002-5.178 9.697C-.45 13.704.928 16.002 3 16h10c2.072.002 3.45-2.296 2.47-4.123L10.294 2.18l-.002-.002C9.814 1.288 8.907.844 8 .844M8 2.77c.201 0 .403.118.53.353l5.177 9.697.002.002c.307.573-.057 1.18-.707 1.178H2.998c-.65.001-1.014-.605-.707-1.178l.002-.002 5.18-9.699c.126-.233.327-.351.527-.351M8 5c-.554 0-1 .446-1 1v3c0 .554.446 1 1 1s1-.446 1-1V6c0-.554-.446-1-1-1m0 6a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// MINI ICONS (12px)
 | 
				
			||||||
 | 
							--icon-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' %3E%3Cpath d='m6 6 5-5M7 1h4v4M4 2H3a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h5a2 2 0 0 0 2-2V8' style='fill:none;stroke:black;stroke-linejoin:round;stroke-linecap:round;stroke-width:2'/%3E%3C/svg%3E");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								sass/_visually-hidden.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								sass/_visually-hidden.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					.visually-hidden {
 | 
				
			||||||
 | 
						clip: rect(0 0 0 0);
 | 
				
			||||||
 | 
						position: absolute !important;
 | 
				
			||||||
 | 
						clip-path: inset(100%);
 | 
				
			||||||
 | 
						width: 1px !important;
 | 
				
			||||||
 | 
						height: 1px !important;
 | 
				
			||||||
 | 
						overflow: hidden;
 | 
				
			||||||
 | 
						white-space: nowrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										62
									
								
								sass/_zola-anchor.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								sass/_zola-anchor.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					h1,
 | 
				
			||||||
 | 
					h2,
 | 
				
			||||||
 | 
					h3,
 | 
				
			||||||
 | 
					h4,
 | 
				
			||||||
 | 
					h5,
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						&:hover .zola-anchor {
 | 
				
			||||||
 | 
							transform: translateY(-0.125em);
 | 
				
			||||||
 | 
							opacity: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform: translateY(-0.125em);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.zola-anchor {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						transform: translateX(0.5rem) translateY(-0.125em);
 | 
				
			||||||
 | 
						opacity: 0;
 | 
				
			||||||
 | 
						transition: var(--transition);
 | 
				
			||||||
 | 
						margin-inline-start: calc(-1em + -0.5rem);
 | 
				
			||||||
 | 
						color: var(--fg-muted-4);
 | 
				
			||||||
 | 
						line-height: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@media only screen and (max-width: 832px) {
 | 
				
			||||||
 | 
							display: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
							transform: translateX(-0.5rem) translateY(-0.125em);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:hover {
 | 
				
			||||||
 | 
							color: var(--accent-color);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:active {
 | 
				
			||||||
 | 
							transform: var(--active);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&:focus-visible {
 | 
				
			||||||
 | 
							opacity: 1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.icon {
 | 
				
			||||||
 | 
							-webkit-mask-image: var(--icon-link);
 | 
				
			||||||
 | 
							mask-image: var(--icon-link);
 | 
				
			||||||
 | 
							mask-size: cover;
 | 
				
			||||||
 | 
							transition: var(--transition);
 | 
				
			||||||
 | 
							width: 1em;
 | 
				
			||||||
 | 
							height: 1em;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							:root[dir*="rtl"] & {
 | 
				
			||||||
 | 
								transform: scaleX(-1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:target .zola-anchor {
 | 
				
			||||||
 | 
						color: var(--accent-color-alpha);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										56
									
								
								sass/fonts.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								sass/fonts.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					@font-face {
 | 
				
			||||||
 | 
						font-style: normal;
 | 
				
			||||||
 | 
						font-weight: 100 900;
 | 
				
			||||||
 | 
						src: url("fonts/InterVariable.woff2") format("woff2");
 | 
				
			||||||
 | 
						font-family: "Inter Variable";
 | 
				
			||||||
 | 
						font-display: swap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@font-face {
 | 
				
			||||||
 | 
						font-style: italic;
 | 
				
			||||||
 | 
						font-weight: 100 900;
 | 
				
			||||||
 | 
						src: url("fonts/InterVariable-Italic.woff2") format("woff2");
 | 
				
			||||||
 | 
						font-family: "Inter Variable";
 | 
				
			||||||
 | 
						font-display: swap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@font-face {
 | 
				
			||||||
 | 
						font-style: normal;
 | 
				
			||||||
 | 
						font-weight: 100 900;
 | 
				
			||||||
 | 
						src: url("fonts/JetBrainsMono.woff2") format("woff2");
 | 
				
			||||||
 | 
						font-family: "JetBrains Mono";
 | 
				
			||||||
 | 
						font-display: swap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@font-face {
 | 
				
			||||||
 | 
						font-style: italic;
 | 
				
			||||||
 | 
						font-weight: 100 900;
 | 
				
			||||||
 | 
						src: url("fonts/JetBrainsMono-Italic.woff2") format("woff2");
 | 
				
			||||||
 | 
						font-family: "JetBrains Mono";
 | 
				
			||||||
 | 
						font-display: swap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
						font-family: "Inter Variable", var(--font-system-ui), var(--font-emoji);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1,
 | 
				
			||||||
 | 
					h2,
 | 
				
			||||||
 | 
					h3,
 | 
				
			||||||
 | 
					h4,
 | 
				
			||||||
 | 
					h5,
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
						font-family: "Inter Variable", var(--font-system-ui), var(--font-emoji);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1 {
 | 
				
			||||||
 | 
						font-weight: 900;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pre,
 | 
				
			||||||
 | 
					code,
 | 
				
			||||||
 | 
					kbd,
 | 
				
			||||||
 | 
					samp {
 | 
				
			||||||
 | 
						font-family: "JetBrains Mono", var(--font-monospace-code);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										45
									
								
								sass/mods/_classic-article-list.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								sass/mods/_classic-article-list.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					#article-list {
 | 
				
			||||||
 | 
						gap: 2rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						article {
 | 
				
			||||||
 | 
							position: relative;
 | 
				
			||||||
 | 
							transition: none;
 | 
				
			||||||
 | 
							box-shadow: none;
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
							border-block-end: max(1px, 0.0625rem) solid var(--fg-muted-2);
 | 
				
			||||||
 | 
							background: none;
 | 
				
			||||||
 | 
							padding: 0;
 | 
				
			||||||
 | 
							padding-block-end: 1rem;
 | 
				
			||||||
 | 
							overflow: visible;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:last-of-type {
 | 
				
			||||||
 | 
								border-block-end: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&:active {
 | 
				
			||||||
 | 
								transform: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							& > a {
 | 
				
			||||||
 | 
								border-radius: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							&.draft,
 | 
				
			||||||
 | 
							&.archive,
 | 
				
			||||||
 | 
							&.featured,
 | 
				
			||||||
 | 
							&.hot,
 | 
				
			||||||
 | 
							&.poor {
 | 
				
			||||||
 | 
								background-color: transparent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								&::before {
 | 
				
			||||||
 | 
									display: none;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.details {
 | 
				
			||||||
 | 
								margin-block-start: 0;
 | 
				
			||||||
 | 
								border-block-start: none;
 | 
				
			||||||
 | 
								padding-block-start: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								sass/mods/_classic-del.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								sass/mods/_classic-del.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					del {
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
						background-color: transparent;
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
						color: inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								sass/mods/_classic-nav.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								sass/mods/_classic-nav.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					#site-nav {
 | 
				
			||||||
 | 
						margin-block-start: 0;
 | 
				
			||||||
 | 
						inset-block-start: 0;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						max-width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							box-shadow: var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nav,
 | 
				
			||||||
 | 
						#search-container {
 | 
				
			||||||
 | 
							margin: 0 auto;
 | 
				
			||||||
 | 
							width: min(var(--container-width), 90%);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nav ul li {
 | 
				
			||||||
 | 
							a,
 | 
				
			||||||
 | 
							summary,
 | 
				
			||||||
 | 
							&#search button,
 | 
				
			||||||
 | 
							&#language-switcher details summary,
 | 
				
			||||||
 | 
							&#theme-switcher details summary {
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#home {
 | 
				
			||||||
 | 
							margin-inline-end: auto;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.divider {
 | 
				
			||||||
 | 
							display: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-container {
 | 
				
			||||||
 | 
							#search-bar {
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								sass/mods/_modern-headings.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								sass/mods/_modern-headings.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					h1,
 | 
				
			||||||
 | 
					h2,
 | 
				
			||||||
 | 
					h3,
 | 
				
			||||||
 | 
					h4,
 | 
				
			||||||
 | 
					h5,
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
						font-family: var(--font-system-ui);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					h1 {
 | 
				
			||||||
 | 
						font-weight: 900;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								sass/mods/_modern-hr.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								sass/mods/_modern-hr.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					hr {
 | 
				
			||||||
 | 
						box-shadow: var(--edge-highlight);
 | 
				
			||||||
 | 
						border: none;
 | 
				
			||||||
 | 
						border-radius: 999px;
 | 
				
			||||||
 | 
						background-color: var(--fg-muted-2);
 | 
				
			||||||
 | 
						width: 50%;
 | 
				
			||||||
 | 
						height: 0.25rem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::after {
 | 
				
			||||||
 | 
							display: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								sass/mods/_no-edge-highlight.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								sass/mods/_no-edge-highlight.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					@import "../_variables.scss";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@include theme-variables using ($theme) {
 | 
				
			||||||
 | 
						@if $theme == "light" {
 | 
				
			||||||
 | 
							--edge-highlight: 0 0 transparent;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								sass/mods/_sticked-nav.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								sass/mods/_sticked-nav.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					#site-nav {
 | 
				
			||||||
 | 
						margin-block-start: 0;
 | 
				
			||||||
 | 
						inset-block-start: 0;
 | 
				
			||||||
 | 
						border-radius: 0 0 calc(var(--rounded-corner) + 0.5rem)
 | 
				
			||||||
 | 
							calc(var(--rounded-corner) + 0.5rem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::before {
 | 
				
			||||||
 | 
							box-shadow: var(--shadow-glass);
 | 
				
			||||||
 | 
							border-radius: 0 0 calc(var(--rounded-corner) + 0.5rem)
 | 
				
			||||||
 | 
								calc(var(--rounded-corner) + 0.5rem);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nav ul li {
 | 
				
			||||||
 | 
							a,
 | 
				
			||||||
 | 
							summary,
 | 
				
			||||||
 | 
							&#search button,
 | 
				
			||||||
 | 
							&#language-switcher details summary,
 | 
				
			||||||
 | 
							&#theme-switcher details summary {
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#search-container {
 | 
				
			||||||
 | 
							#search-bar {
 | 
				
			||||||
 | 
								border-radius: var(--rounded-corner);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										41
									
								
								sass/style.scss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								sass/style.scss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					/*!
 | 
				
			||||||
 | 
					 * Duckquill v6.3.0 (https://duckquill.daudix.one)
 | 
				
			||||||
 | 
					 * Copyright 2024-2025 David "Daudix" Lapshin
 | 
				
			||||||
 | 
					 * Licensed under MIT (https://codeberg.org/daudix/duckquill/src/branch/main/LICENSE)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@use "normalize";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@use "variables";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@use "alerts";
 | 
				
			||||||
 | 
					@use "article-list";
 | 
				
			||||||
 | 
					@use "article";
 | 
				
			||||||
 | 
					@use "buttons";
 | 
				
			||||||
 | 
					@use "code";
 | 
				
			||||||
 | 
					@use "comments";
 | 
				
			||||||
 | 
					@use "crt";
 | 
				
			||||||
 | 
					@use "emoji";
 | 
				
			||||||
 | 
					@use "external";
 | 
				
			||||||
 | 
					@use "feed";
 | 
				
			||||||
 | 
					@use "footer";
 | 
				
			||||||
 | 
					@use "footnotes-list";
 | 
				
			||||||
 | 
					@use "general";
 | 
				
			||||||
 | 
					@use "hidden";
 | 
				
			||||||
 | 
					@use "icon";
 | 
				
			||||||
 | 
					@use "iframe";
 | 
				
			||||||
 | 
					@use "input";
 | 
				
			||||||
 | 
					@use "media";
 | 
				
			||||||
 | 
					@use "nav";
 | 
				
			||||||
 | 
					@use "not-found";
 | 
				
			||||||
 | 
					@use "post-nav";
 | 
				
			||||||
 | 
					@use "pre-container";
 | 
				
			||||||
 | 
					@use "sparkline";
 | 
				
			||||||
 | 
					@use "spoiler";
 | 
				
			||||||
 | 
					@use "statements";
 | 
				
			||||||
 | 
					@use "table";
 | 
				
			||||||
 | 
					@use "tags";
 | 
				
			||||||
 | 
					@use "title";
 | 
				
			||||||
 | 
					@use "typography";
 | 
				
			||||||
 | 
					@use "visually-hidden";
 | 
				
			||||||
 | 
					@use "zola-anchor";
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
  width: 16px;
 | 
					  width: 16px;
 | 
				
			||||||
  height: 16px;
 | 
					  height: 16px;
 | 
				
			||||||
  border-radius: 50%;
 | 
					  border-radius: 50%;
 | 
				
			||||||
  background: var(--accent-color);
 | 
					  background: var(--bg-color);
 | 
				
			||||||
  border: 2px solid white;
 | 
					  border: 2px solid white;
 | 
				
			||||||
  z-index: 1;
 | 
					  z-index: 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@
 | 
				
			||||||
  left: -160px;
 | 
					  left: -160px;
 | 
				
			||||||
  width: 100px;
 | 
					  width: 100px;
 | 
				
			||||||
  text-align: right;
 | 
					  text-align: right;
 | 
				
			||||||
  color: #ffffff;
 | 
					  color: var(--fg-color);
 | 
				
			||||||
  font-weight: bold;
 | 
					  font-weight: bold;
 | 
				
			||||||
  font-size: 0.9rem;
 | 
					  font-size: 0.9rem;
 | 
				
			||||||
  line-height: 1.3;
 | 
					  line-height: 1.3;
 | 
				
			||||||
| 
						 | 
					@ -78,7 +78,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Hover Effects */
 | 
					/* Hover Effects */
 | 
				
			||||||
#timeline-content li.event:hover::before {
 | 
					#timeline-content li.event:hover::before {
 | 
				
			||||||
  background: var(--accent-color-dark);
 | 
					  background: var(--accent-color);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#timeline-content li.event:hover {
 | 
					#timeline-content li.event:hover {
 | 
				
			||||||
| 
						 | 
					@ -87,5 +87,5 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* From + To Label Hover Effect */
 | 
					/* From + To Label Hover Effect */
 | 
				
			||||||
#timeline-content li.event:hover::after {
 | 
					#timeline-content li.event:hover::after {
 | 
				
			||||||
  color: var(--fg-color);
 | 
					  color: var(--accent-color);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,13 +3,13 @@
 | 
				
			||||||
  <ul class="timeline">
 | 
					  <ul class="timeline">
 | 
				
			||||||
    {% for d in dt %}
 | 
					    {% for d in dt %}
 | 
				
			||||||
    <li class="event" data-from="{{ d.from }}" data-to="{{ d.to }}">
 | 
					    <li class="event" data-from="{{ d.from }}" data-to="{{ d.to }}">
 | 
				
			||||||
      {% if d.icon %}
 | 
					
 | 
				
			||||||
        <i class="{{ d.icon }} timeline-icon"></i>
 | 
					 | 
				
			||||||
      {% endif %}
 | 
					 | 
				
			||||||
      <h3>{{ d.title | markdown | safe }}</h3>
 | 
					      <h3>{{ d.title | markdown | safe }}</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      {% if d.location %}
 | 
					      {% if d.location %}
 | 
				
			||||||
        <p><strong>{{ d.location }}</strong></p>
 | 
					        {% if d.icon %}
 | 
				
			||||||
 | 
					          <p> <i class="{{ d.icon }} timeline-icon"></i> <strong>{{ d.location }}</strong></p>
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
      {% endif %}
 | 
					      {% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <p>{{ d.body | safe }}</p>
 | 
					      <p>{{ d.body | safe }}</p>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue