Files
neru.rip/src/app/page.css
T

313 lines
5.3 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
:root {
--bg: #fff;
--bg-pattern: #f5eded;
--surface: #ffffff;
--border: #fbcfe8;
--text-header: #475569;
--text-title: #64748b;
--text-title-shadow: #cbd5e1;
--text-main: #64748b;
--text-dim: #94a3b8;
--accent: #d7e6ff;
--pink-accent: #ffd6f5;
--sparkle: #ffffff;
--sparkle-glow: rgba(255, 182, 193, 0.8);
--border-width: 2px;
}
* {
cursor: url('/cur/kuromi.webp') 32 32, auto;
}
body {
color: var(--text-main);
font-family: "Times New Roman", Times, serif;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
overflow-x: hidden;
background-color: var(--bg);
background-image: radial-gradient(var(--bg-pattern) 2px, transparent 2px);
background-size: 16px 16px;
}
/*
layout stuffs
*/
@keyframes float {
0% {
transform: translateY(0px);
}
50% {
transform: translateY(-6px);
}
100% {
transform: translateY(0px);
}
}
.main-frame {
background: var(--surface);
padding: 35px 25px 25px 25px;
position: relative;
max-width: 400px;
width: calc(100% - 30px);
border: 1px solid var(--pink-accent);
outline: 4px solid #fff;
box-shadow: 0 0 0 5px var(--accent), 8px 8px 0px rgba(215, 230, 255, 0.5);
border-radius: 2px;
animation: float 5s ease-in-out infinite;
}
.main-frame::before,
.main-frame::after {
content: "✧";
position: absolute;
color: var(--sparkle);
font-size: 1.5rem;
text-shadow: 0 0 20px var(--sparkle-glow), 0 0 15px var(--sparkle-glow), 0 0 10px var(--sparkle-glow), 0 0 5px var(--sparkle-glow)
}
.main-frame::before {
top: 10px;
left: 10px;
}
.main-frame::after {
top: 10px;
right: 10px;
}
.content-box {
border: 1px double var(--accent);
background: #fffdfd;
margin-top: 20px;
padding: 15px;
position: relative;
box-shadow: inset 0 0 10px rgba(255, 214, 245, 0.2);
}
.content-box::before {
content: "•";
position: absolute;
top: -4px;
left: 6px;
background: #fff;
padding: 0 4px;
font-size: 0.6rem;
color: var(--text-dim);
}
/*
text stuff
*/
h1 {
font-size: 1.8rem;
letter-spacing: 1px;
color: var(--text-header);
text-transform: lowercase;
font-style: italic;
font-weight: normal;
margin-top: 10px;
margin-bottom: 2px;
text-shadow: 2px 2px 0px var(--pink-accent);
}
.motto {
font-size: 0.75rem;
letter-spacing: 1px;
margin-bottom: 15px;
color: var(--text-dim);
}
.social-links {
margin: 20px 0;
font-size: 0.8rem;
color: var(--pink-accent);
}
.social-links a {
color: var(--text-main);
text-decoration: none;
margin: 0 6px;
padding: 2px 6px;
border-bottom: 1px dashed transparent;
transition: all 0.3s ease;
}
.social-links a:hover {
color: var(--pink-accent);
border-bottom: 1px dashed var(--pink-accent);
}
.social-links button {
background: none;
border: none;
font-family: inherit;
font-size: 0.8rem;
color: var(--text-main);
padding: 2px 6px;
margin: 0 6px;
border-bottom: 1px dashed transparent;
transition: all 0.3s ease;
}
.social-links button:hover {
color: var(--pink-accent);
border-bottom: 1px dashed var(--pink-accent);
}
.title {
font-size: 0.95rem;
font-style: italic;
font-weight: normal;
margin-bottom: 8px;
color: var(--text-title);
letter-spacing: 0.5px;
}
.directory {
list-style: none;
padding: 0;
display: flex;
justify-content: center;
gap: 8px;
margin: 5px 0;
flex-wrap: wrap;
}
.directory a {
text-decoration: none;
background: #fff;
font-size: 0.73rem;
color: var(--text-main);
padding: 3px 10px;
border: 1px solid var(--accent);
box-shadow: 2px 2px 0px var(--pink-accent);
transition: 0.2s ease;
}
.directory a::before {
content: " "
}
.directory a::after {
content: " "
}
.directory a:hover {
cursor: url('/cur/kuromi-hearts.webp') 0 0, auto !important;
color: var(--text-header);
box-shadow: 1px 1px 0px var(--pink-accent);
background: var(--pink-accent);
}
/*
marquee stuff at the bottom
*/
.marquee {
width: 100%;
overflow: hidden;
white-space: nowrap;
padding: 6px 0;
margin-top: 25px;
font-size: 0.7rem;
color: var(--text-main);
opacity: 0.8;
border-top: 1px double var(--pink-accent);
border-bottom: 1px double var(--pink-accent);
background: linear-gradient(to right, transparent, rgba(255, 214, 245, 0.3), transparent);
}
.marquee-track {
display: flex;
width: max-content;
animation: marquee-loop 10s linear infinite;
}
.marquee-track span {
padding-right: 2rem;
}
@keyframes marquee-loop {
0% {
transform: translate3d(0, 0, 0);
}
100% {
transform: translate3d(-50%, 0, 0);
}
}
/*
modal
*/
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.4);
backdrop-filter: blur(3px);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-content {
background: var(--surface);
padding: 20px;
border: 1px solid var(--pink-accent);
box-shadow: 4px 4px 0px var(--accent);
text-align: center;
min-width: 250px;
}
.modal-header {
color: var(--text-title);
font-size: 1rem;
font-style: italic;
margin-bottom: 12px;
border-bottom: 1px dashed var(--accent);
padding-bottom: 5px;
}
.modal-body p {
font-size: 0.85rem;
margin: 6px 0;
color: var(--text-main);
}
.modal-close-btn {
background: none;
border: none;
margin-top: 12px;
font-family: inherit;
font-size: 0.7rem;
color: var(--text-dim);
text-transform: lowercase;
font-style: italic;
cursor: pointer;
text-decoration: underline;
text-underline-offset: 2px;
}