This repository has been archived on 2026-04-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
website/public/assets/css/style-extra.css
T
2026-04-25 18:43:33 +09:00

216 lines
7.7 KiB
CSS

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;
}