main { view-transition-name: main-content; padding-top: 60px; } main > *:first-child { margin-top: 16px; } footer { view-transition-name: footer-content; } /* Progressive Blur */ header { view-transition-name: header-content; will-change: transform; background-color: transparent; overflow: hidden; isolation: isolate; } header::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, transparent, var(--color-dark-grey)); pointer-events: none; } .header-blur { position: absolute; inset: 0; z-index: -2; pointer-events: none; } .header-blur > div { position: absolute; inset: 0; backdrop-filter: blur(var(--blur)); -webkit-backdrop-filter: blur(var(--blur)); -webkit-mask-image: linear-gradient(to top, transparent var(--from), black var(--to)); mask-image: linear-gradient(to top, transparent var(--from), black var(--to)); } .header-blur > div:nth-child(1) { --blur: 0.0px; --from: 0%; --to: 2%; } .header-blur > div:nth-child(2) { --blur: 0.02px; --from: 2%; --to: 4%; } .header-blur > div:nth-child(3) { --blur: 0.09px; --from: 4%; --to: 6%; } .header-blur > div:nth-child(4) { --blur: 0.2px; --from: 6%; --to: 8%; } .header-blur > div:nth-child(5) { --blur: 0.35px; --from: 8%; --to: 10%; } .header-blur > div:nth-child(6) { --blur: 0.55px; --from: 10%; --to: 12%; } .header-blur > div:nth-child(7) { --blur: 0.8px; --from: 12%; --to: 14%; } .header-blur > div:nth-child(8) { --blur: 1.09px; --from: 14%; --to: 16%; } .header-blur > div:nth-child(9) { --blur: 1.42px; --from: 16%; --to: 18%; } .header-blur > div:nth-child(10) { --blur: 1.8px; --from: 18%; --to: 20%; } .header-blur > div:nth-child(11) { --blur: 2.22px; --from: 20%; --to: 22%; } .header-blur > div:nth-child(12) { --blur: 2.68px; --from: 22%; --to: 24%; } .header-blur > div:nth-child(13) { --blur: 3.19px; --from: 24%; --to: 26%; } .header-blur > div:nth-child(14) { --blur: 3.75px; --from: 26%; --to: 28%; } .header-blur > div:nth-child(15) { --blur: 4.34px; --from: 28%; --to: 30%; } .header-blur > div:nth-child(16) { --blur: 4.99px; --from: 30%; --to: 32%; } .header-blur > div:nth-child(17) { --blur: 5.67px; --from: 32%; --to: 34%; } .header-blur > div:nth-child(18) { --blur: 6.4px; --from: 34%; --to: 36%; } .header-blur > div:nth-child(19) { --blur: 7.18px; --from: 36%; --to: 38%; } .header-blur > div:nth-child(20) { --blur: 8.0px; --from: 38%; --to: 40%; } /* Fonts */ @font-face { font-family: "MesloLGS Nerd Font"; font-style: normal; font-weight: 400; src: local("MesloLGS Nerd Font"), url("https://assets.nercone.dev/fonts/MesloLGSNerdFont-Regular.woff2") format("woff2") } @font-face { font-family: "MesloLGS Nerd Font"; font-style: normal; font-weight: 700; src: local("MesloLGS Nerd Font"), url("https://assets.nercone.dev/fonts/MesloLGSNerdFont-Bold.woff2") format("woff2") } @font-face { font-family: "MesloLGS Nerd Font"; font-style: italic; font-weight: 400; src: local("MesloLGS Nerd Font"), url("https://assets.nercone.dev/fonts/MesloLGSNerdFont-Italic.woff2") format("woff2") } @font-face { font-family: "MesloLGS Nerd Font"; font-style: italic; font-weight: 700; src: local("MesloLGS Nerd Font"), url("https://assets.nercone.dev/fonts/MesloLGSNerdFont-BoldItalic.woff2") format("woff2") } /* View Transition */ @keyframes vt-fade-out { from { opacity: 1; } to { opacity: 0; } } @keyframes vt-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes vt-blur-out { from { filter: blur(0px); } to { filter: blur(6px); } } @keyframes vt-blur-in { from { filter: blur(6px); } to { filter: blur(0px); } } @media (prefers-reduced-motion: reduce) { ::view-transition-old(main-content), ::view-transition-new(main-content), ::view-transition-old(footer-content), ::view-transition-new(footer-content) { z-index: 1; pointer-events: none; } } /* Cursor */ * { cursor: none; } #cursor { view-transition-name: none; position: fixed; z-index: 99999; width: 25px; height: 25px; border-radius: 50%; background: #FFFFFFC0; pointer-events: none; transform: translate(-50%, -50%); opacity: 0; transition: left 0.08s ease-out, top 0.08s ease-out, width 0.15s cubic-bezier(0.22, 1, 0.36, 1), height 0.15s cubic-bezier(0.22, 1, 0.36, 1), border-radius 0.15s cubic-bezier(0.22, 1, 0.36, 1), background 0.15s ease, transform 0.08s ease-out, opacity 0.3s ease; } #cursor.visible { opacity: 1; } #cursor.on-text { width: 3px; border-radius: 1.5px; background: #FFFFFFC0; } #cursor.on-link { border-radius: 6px; background: #FFFFFF40; transform: translate(0, 0); } /* Loading Overlay */ #loading-overlay { view-transition-name: none; position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background-color: var(--color-dark-grey); backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px); pointer-events: none; opacity: 1; } #loading-overlay svg { --size: clamp(340px, 28vmin, 380px); width: var(--size); height: calc(var(--size) * 512 / 832); opacity: 0; filter: blur(20px); transform: scale(1); will-change: opacity, filter, transform; } #loading-overlay polyline { will-change: stroke-dashoffset; }