Kyoto Requiem
https://tale.violaine.xyz/osmium/
/*
* Kyoto Requiem - DIR EN GREY Inspired Theme
* A dark, intense, and experimental aesthetic for Write.as/WriteFreely
*
* Inspired by the visual-kei aesthetic of DIR EN GREY
* Features:
* - Deep blacks and purples with silver/white accents
* - Distressed and angular typography
* - Experimental, avant-garde design elements
* - Sharp contrasts and bold visual hierarchy
* - Ethereal and haunting atmosphere
*/
:root {
--requiem-black: #0a0a0a;
--requiem-dark: #1a1a1a;
--requiem-darker: #0f0f0f;
--requiem-purple: #2d1b4e;
--requiem-deep-purple: #1a0f2e;
--requiem-silver: #d4d4d4;
--requiem-white: #f5f5f5;
--requiem-accent: #c0a0ff;
--requiem-accent-dark: #8b5fbf;
--requiem-accent-light: #e0c8ff;
--requiem-blood-red: #8b0000;
--requiem-transition: 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
--requiem-transition-fast: 200ms ease-out;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Georgia', 'Garamond', serif;
font-size: 16px;
line-height: 1.8;
color: var(--requiem-silver);
background-color: var(--requiem-black);
background-image:
radial-gradient(circle at 20% 50%, rgba(45, 27, 78, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(139, 0, 0, 0.05) 0%, transparent 50%);
background-attachment: fixed;
margin: 0;
padding: 0;
letter-spacing: 0.5px;
font-weight: 400;
}
/* Header and Navigation */
body h1 a,
body h1 a:visited,
body h1 a:link,
body header h2 a,
body header h2 a:visited,
body header h2 a:link {
color: var(--requiem-white);
text-decoration: none;
font-weight: 700;
font-family: 'Georgia', serif;
letter-spacing: 0.15em;
text-transform: uppercase;
font-size: 1.4em;
transition: var(--requiem-transition);
position: relative;
display: inline-block;
}
body h1 a::before,
body header h2 a::before {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--requiem-accent);
transition: var(--requiem-transition);
}
body h1 a:hover,
body header h2 a:hover {
color: var(--requiem-accent-light);
text-shadow: 0 0 20px rgba(192, 160, 255, 0.4);
}
body h1 a:hover::before,
body header h2 a:hover::before {
width: 100%;
}
body header nav a,
#post nav a:not(.home) {
color: var(--requiem-accent);
transition: var(--requiem-transition);
}
body header nav a::before,
#post nav a:not(.home)::before {
transition: var(--requiem-transition);
}
body header nav a:hover,
#post nav a:not(.home):hover {
color: var(--requiem-accent-light);
}
/* Typography */
body#post article h2#title {
font-family: 'Georgia', serif;
font-size: 3rem;
font-weight: 700;
color: var(--requiem-white);
line-height: 1.2;
margin-bottom: 2rem;
text-align: center;
letter-spacing: 0.1em;
text-transform: uppercase;
position: relative;
transition: var(--requiem-transition);
text-shadow: 0 0 30px rgba(139, 0, 0, 0.2);
}
body#post article h2#title::before,
body#post article h2#title::after {
display: block;
color: var(--requiem-accent);
font-size: 1.5rem;
margin: 1rem 0;
opacity: 0.6;
transition: var(--requiem-transition);
}
body#post article h2#title:hover {
color: var(--requiem-accent-light);
text-shadow: 0 0 40px rgba(192, 160, 255, 0.6);
letter-spacing: 0.2em;
}
body#post article h2#title:hover::before,
body#post article h2#title:hover::after {
opacity: 1;
color: var(--requiem-accent-light);
}
.post-title {
font-family: 'Georgia', serif;
font-size: 2rem;
font-weight: 700;
color: var(--requiem-white);
text-decoration: none;
line-height: 1.3;
transition: var(--requiem-transition);
display: block;
margin-bottom: 1rem;
text-transform: uppercase;
letter-spacing: 0.08em;
position: relative;
}
.post-title a::before {
content: '';
position: absolute;
left: -20px;
top: 50%;
transform: translateY(-50%);
width: 3px;
height: 0;
background: var(--requiem-accent);
transition: var(--requiem-transition);
}
.post-title a:hover {
color: var(--requiem-accent-light);
text-shadow: 0 0 20px rgba(192, 160, 255, 0.5);
transform: translateX(10px);
}
.post-title a:hover::before {
height: 100%;
}
/* Content Areas - Experimental design */
body#post,
body#collection,
body#subpage {
color: var(--requiem-silver);
max-width: 750px;
margin: 2.5rem auto;
padding: 3rem 2.5rem;
background: linear-gradient(135deg, rgba(26, 26, 26, 0.9) 0%, rgba(45, 27, 78, 0.3) 100%);
border: 1px solid rgba(192, 160, 255, 0.2);
border-left: 4px solid var(--requiem-accent);
border-radius: 0;
position: relative;
box-shadow:
0 0 60px rgba(139, 0, 0, 0.1),
inset 0 0 40px rgba(45, 27, 78, 0.1);
transition: var(--requiem-transition);
}
body#post::before,
body#collection::before,
body#subpage::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent 0%, var(--requiem-accent) 50%, transparent 100%);
opacity: 0.5;
}
body#post::after,
body#collection::after,
body#subpage::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent 0%, var(--requiem-blood-red) 50%, transparent 100%);
opacity: 0.3;
}
body#post:hover,
body#collection:hover,
body#subpage:hover {
box-shadow:
0 0 80px rgba(192, 160, 255, 0.15),
inset 0 0 60px rgba(45, 27, 78, 0.15);
border-left-color: var(--requiem-accent-light);
}
/* Paragraphs */
body#post p,
body#collection p,
body#subpage p {
margin-bottom: 1.8rem;
color: var(--requiem-silver);
font-weight: 400;
line-height: 1.9;
}
/* Links - Ethereal style */
body article p a:not(.hashtag),
body article ul a:not(.hashtag),
body article table a:not(.hashtag),
p a {
color: var(--requiem-accent);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: var(--requiem-transition);
font-weight: 500;
position: relative;
padding-bottom: 3px;
}
body article p a:not(.hashtag)::after,
body article ul a:not(.hashtag)::after,
body article table a:not(.hashtag)::after,
p a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 1px;
background: var(--requiem-accent-light);
transition: var(--requiem-transition);
}
body article p a:not(.hashtag):hover,
body article ul a:not(.hashtag):hover,
body article table a:not(.hashtag):hover,
p a:hover {
color: var(--requiem-accent-light);
text-shadow: 0 0 15px rgba(192, 160, 255, 0.6);
}
body article p a:not(.hashtag):hover::after,
body article ul a:not(.hashtag):hover::after,
body article table a:not(.hashtag):hover::after,
p a:hover::after {
width: 100%;
}
body article p a:not(.hashtag):active,
body article ul a:not(.hashtag):active,
body article table a:not(.hashtag):active,
p a:active {
transform: scale(0.98);
}
/* Timestamps and Meta */
body#post article time.dt-published,
body#collection article time.dt-published,
body#subpage article time.dt-published,
#collection #wrapper time,
#subpage #wrapper time {
color: var(--requiem-accent-dark);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.15em;
text-transform: uppercase;
opacity: 0.7;
display: block;
margin-bottom: 1.5rem;
}
/* Blockquotes - Distressed aesthetic */
body#post blockquote,
body#collection blockquote,
body#subpage blockquote {
color: var(--requiem-accent);
border-left: none;
padding: 2rem 2.5rem;
margin: 2.5rem 0;
font-style: italic;
background: rgba(45, 27, 78, 0.2);
border-top: 2px solid var(--requiem-accent-dark);
border-bottom: 2px solid var(--requiem-accent-dark);
position: relative;
box-shadow: inset 0 0 30px rgba(192, 160, 255, 0.05);
transition: var(--requiem-transition);
font-weight: 500;
letter-spacing: 0.02em;
}
body#post blockquote::before,
body#collection blockquote::before,
body#subpage blockquote::before {
font-size: 2rem;
color: var(--requiem-blood-red);
position: absolute;
top: -1rem;
left: 2rem;
opacity: 0.5;
font-family: Georgia, serif;
}
body#post blockquote::after,
body#collection blockquote::after,
body#subpage blockquote::after {
font-size: 2rem;
color: var(--requiem-blood-red);
position: absolute;
bottom: -1rem;
right: 2rem;
opacity: 0.5;
font-family: Georgia, serif;
}
body#post blockquote:hover,
body#collection blockquote:hover,
body#subpage blockquote:hover {
background: rgba(45, 27, 78, 0.4);
box-shadow: inset 0 0 50px rgba(192, 160, 255, 0.1);
border-top-color: var(--requiem-accent-light);
border-bottom-color: var(--requiem-accent-light);
}
/* Code - Experimental styling */
body#post pre,
body#post code,
body#collection pre,
body#collection code,
body#subpage pre,
body#subpage code {
background: rgba(45, 27, 78, 0.3);
color: var(--requiem-accent-light);
font-family: 'Courier New', monospace;
font-size: 13px;
border: 1px solid rgba(192, 160, 255, 0.3);
border-radius: 0;
font-weight: 500;
letter-spacing: 0.05em;
}
body#post pre,
body#collection pre,
body#subpage pre {
padding: 1.8rem;
border-left: 3px solid var(--requiem-accent);
overflow-x: auto;
background: rgba(15, 15, 15, 0.6);
transition: var(--requiem-transition);
position: relative;
}
body#post pre::before,
body#collection pre::before,
body#subpage pre::before {
display: block;
color: var(--requiem-accent-dark);
font-size: 10px;
letter-spacing: 0.2em;
margin-bottom: 1rem;
opacity: 0.6;
}
body#post pre:hover,
body#collection pre:hover,
body#subpage pre:hover {
background: rgba(45, 27, 78, 0.2);
box-shadow: 0 0 30px rgba(192, 160, 255, 0.1);
border-left-color: var(--requiem-accent-light);
}
/* Hashtags */
a.hashtag span:first-child {
color: var(--requiem-accent-dark);
}
a.hashtag span,
span.p-category {
color: var(--requiem-accent);
font-weight: 600;
letter-spacing: 0.05em;
}
/* Horizontal Rules */
hr {
background: none;
height: 1px;
border: none;
margin: 3rem 0;
background: linear-gradient(90deg, transparent 0%, var(--requiem-accent) 50%, transparent 100%);
border-radius: 0;
opacity: 0.5;
}
/* Footer */
body footer a.home:link,
body footer a.home:visited {
color: var(--requiem-accent);
text-decoration: none;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: var(--requiem-transition);
font-weight: 600;
position: relative;
}
body footer a.home::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 0;
height: 1px;
background: var(--requiem-accent);
transition: var(--requiem-transition);
}
body footer a.home:hover {
color: var(--requiem-accent-light);
text-shadow: 0 0 10px rgba(192, 160, 255, 0.5);
}
body footer a.home:hover::after {
width: 100%;
}
/* Ethereal animations */
@keyframes etherealGlow {
0%, 100% {
text-shadow: 0 0 10px rgba(192, 160, 255, 0.3);
}
50% {
text-shadow: 0 0 30px rgba(192, 160, 255, 0.6);
}
}
@keyframes requiemPulse {
0%, 100% {
box-shadow:
0 0 60px rgba(139, 0, 0, 0.1),
inset 0 0 40px rgba(45, 27, 78, 0.1);
}
50% {
box-shadow:
0 0 80px rgba(192, 160, 255, 0.15),
inset 0 0 60px rgba(45, 27, 78, 0.15);
}
}
body#post article h2#title:hover {
animation: etherealGlow 2s ease-in-out infinite;
}
body#post:hover {
animation: requiemPulse 3s ease-in-out infinite;
}
/* Responsive Design */
@media (max-width: 768px) {
body#post,
body#collection,
body#subpage {
padding: 2.5rem 1.8rem;
margin: 1.5rem 0.5rem;
}
body#post article h2#title {
font-size: 2.2rem;
}
.post-title a:link,
.post-title a:visited {
font-size: 1.6rem;
}
body header nav a,
#post nav a:not(.home) {
padding: 0.5rem 1rem;
font-size: 11px;
}
}
@media (max-width: 480px) {
body {
font-size: 15px;
}
body#post article h2#title {
font-size: 1.6rem;
letter-spacing: 0.08em;
}
.post-title a:link,
.post-title a:visited {
font-size: 1.3rem;
}
body#post,
body#collection,
body#subpage {
padding: 1.8rem 1.2rem;
margin: 1rem 0;
}
body#post p,
body#collection p,
body#subpage p {
margin-bottom: 1.5rem;
}
}