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.01px; --from: 2%; --to: 4%; } .header-blur > div:nth-child(3) { --blur: 0.03px; --from: 4%; --to: 6%; } .header-blur > div:nth-child(4) { --blur: 0.06px; --from: 6%; --to: 8%; } .header-blur > div:nth-child(5) { --blur: 0.11px; --from: 8%; --to: 10%; } .header-blur > div:nth-child(6) { --blur: 0.17px; --from: 10%; --to: 12%; } .header-blur > div:nth-child(7) { --blur: 0.24px; --from: 12%; --to: 14%; } .header-blur > div:nth-child(8) { --blur: 0.33px; --from: 14%; --to: 16%; } .header-blur > div:nth-child(9) { --blur: 0.43px; --from: 16%; --to: 18%; } .header-blur > div:nth-child(10) { --blur: 0.54px; --from: 18%; --to: 20%; } .header-blur > div:nth-child(11) { --blur: 0.67px; --from: 20%; --to: 22%; } .header-blur > div:nth-child(12) { --blur: 0.81px; --from: 22%; --to: 24%; } .header-blur > div:nth-child(13) { --blur: 0.96px; --from: 24%; --to: 26%; } .header-blur > div:nth-child(14) { --blur: 1.13px; --from: 26%; --to: 28%; } .header-blur > div:nth-child(15) { --blur: 1.31px; --from: 28%; --to: 30%; } .header-blur > div:nth-child(16) { --blur: 1.5px; --from: 30%; --to: 32%; } .header-blur > div:nth-child(17) { --blur: 1.71px; --from: 32%; --to: 34%; } .header-blur > div:nth-child(18) { --blur: 1.93px; --from: 34%; --to: 36%; } .header-blur > div:nth-child(19) { --blur: 2.16px; --from: 36%; --to: 38%; } .header-blur > div:nth-child(20) { --blur: 2.41px; --from: 38%; --to: 40%; } .header-blur > div:nth-child(21) { --blur: 2.67px; --from: 40%; --to: 42%; } .header-blur > div:nth-child(22) { --blur: 2.94px; --from: 42%; --to: 44%; } .header-blur > div:nth-child(23) { --blur: 3.23px; --from: 44%; --to: 46%; } .header-blur > div:nth-child(24) { --blur: 3.53px; --from: 46%; --to: 48%; } .header-blur > div:nth-child(25) { --blur: 3.84px; --from: 48%; --to: 50%; } .header-blur > div:nth-child(26) { --blur: 4.16px; --from: 50%; --to: 52%; } .header-blur > div:nth-child(27) { --blur: 4.5px; --from: 52%; --to: 54%; } .header-blur > div:nth-child(28) { --blur: 4.86px; --from: 54%; --to: 56%; } .header-blur > div:nth-child(29) { --blur: 5.22px; --from: 56%; --to: 58%; } .header-blur > div:nth-child(30) { --blur: 5.6px; --from: 58%; --to: 60%; } .header-blur > div:nth-child(31) { --blur: 6.0px; --from: 60%; --to: 62%; } .header-blur > div:nth-child(32) { --blur: 6.4px; --from: 62%; --to: 64%; } .header-blur > div:nth-child(33) { --blur: 6.82px; --from: 64%; --to: 66%; } .header-blur > div:nth-child(34) { --blur: 7.26px; --from: 66%; --to: 68%; } .header-blur > div:nth-child(35) { --blur: 7.7px; --from: 68%; --to: 70%; } .header-blur > div:nth-child(36) { --blur: 8.16px; --from: 70%; --to: 72%; } .header-blur > div:nth-child(37) { --blur: 8.64px; --from: 72%; --to: 74%; } .header-blur > div:nth-child(38) { --blur: 9.12px; --from: 74%; --to: 76%; } .header-blur > div:nth-child(39) { --blur: 9.62px; --from: 76%; --to: 78%; } .header-blur > div:nth-child(40) { --blur: 10.14px; --from: 78%; --to: 80%; } .header-blur > div:nth-child(41) { --blur: 10.66px; --from: 80%; --to: 82%; } .header-blur > div:nth-child(42) { --blur: 11.2px; --from: 82%; --to: 84%; } .header-blur > div:nth-child(43) { --blur: 11.76px; --from: 84%; --to: 86%; } .header-blur > div:nth-child(44) { --blur: 12.32px; --from: 86%; --to: 88%; } .header-blur > div:nth-child(45) { --blur: 12.9px; --from: 88%; --to: 90%; } .header-blur > div:nth-child(46) { --blur: 13.49px; --from: 90%; --to: 92%; } .header-blur > div:nth-child(47) { --blur: 14.1px; --from: 92%; --to: 94%; } .header-blur > div:nth-child(48) { --blur: 14.72px; --from: 94%; --to: 96%; } .header-blur > div:nth-child(49) { --blur: 15.35px; --from: 96%; --to: 98%; } .header-blur > div:nth-child(50) { --blur: 16.0px; --from: 98%; --to: 100%; } /* 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; }