/*
* DUM SPIRO SPERO: Industrial Hope - DIR EN GREY Album Inspired Theme
* A heavy, industrial, and spiritual aesthetic for Write.as/WriteFreely
*
* Inspired by DIR EN GREY's "DUM SPIRO SPERO" album
* Latin phrase: "While I breathe, I hope"
* Themes: Industrial, Spiritual, Heavy, Powerful, Hopeful
*
* Features:
* - Deep blacks with metallic silver and copper accents
* - Industrial, angular typography
* - Textured, distressed design elements
* - Heavy, powerful visual presence
* - Spiritual and mystical undertones
* - Bold contrasts and striking visuals
*/
:root {
--dss-black: #0d0d0d;
--dss-dark: #1a1a1a;
--dss-darker: #0a0a0a;
--dss-charcoal: #2a2a2a;
--dss-gray: #4a4a4a;
--dss-silver: #c0c0c0;
--dss-white: #e8e8e8;
--dss-metallic: #b8b8b8;
--dss-copper: #b87333;
--dss-accent: #d4af37;
--dss-red: #cc3333;
--dss-deep-red: #8b0000;
--dss-transition: 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
--dss-transition-fast: 200ms ease-out;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Arial', 'Helvetica', sans-serif;
font-size: 16px;
line-height: 1.8;
color: var(--dss-silver);
background-color: var(--dss-black);
background-image:
repeating-linear-gradient(
0deg,
rgba(26, 26, 26, 0.15),
rgba(26, 26, 26, 0.15) 2px,
transparent 2px,
transparent 4px
),
radial-gradient(circle at 20% 50%, rgba(139, 0, 0, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(184, 115, 51, 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(--dss-white);
text-decoration: none;
font-weight: 900;
font-family: 'Arial', sans-serif;
letter-spacing: 0.2em;
text-transform: uppercase;
font-size: 1.5em;
transition: var(--dss-transition);
position: relative;
display: inline-block;
text-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
}
body h1 a::before,
body header h2 a::before {
content: '';
position: absolute;
bottom: -8px;
left: 0;
width: 0;
height: 3px;
background: linear-gradient(90deg, var(--dss-copper) 0%, var(--dss-accent) 50%, var(--dss-copper) 100%);
transition: var(--dss-transition);
box-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}
body h1 a:hover,
body header h2 a:hover {
color: var(--dss-accent);
text-shadow: 0 0 20px rgba(212, 175, 55, 0.6);
letter-spacing: 0.3em;
}
body h1 a:hover::before,
body header h2 a:hover::before {
width: 100%;
}
body header p.description {
color: var(--dss-copper);
font-size: 11px;
font-weight: 700;
margin-top: 0.75rem;
letter-spacing: 0.15em;
text-transform: uppercase;
opacity: 0.8;
font-style: italic;
}
body header nav a,
#post nav a:not(.home) {
color: var(--dss-white);
}
body header nav a::before,
#post nav a:not(.home)::before {
transition: var(--dss-transition);
}
body header nav a:hover,
#post nav a:not(.home):hover {
color: var(--dss-accent);
}
body header nav a:hover::before,
#post nav a:not(.home):hover::before {
left: 0;
}
body header nav a:active,
#post nav a:not(.home):active {
transform: scale(0.95);
}
/* Typography */
body#post article h2#title {
font-family: 'Arial', sans-serif;
font-size: 3.2rem;
font-weight: 900;
color: var(--dss-white);
line-height: 1.1;
margin-bottom: 2rem;
text-align: center;
letter-spacing: 0.15em;
text-transform: uppercase;
position: relative;
transition: var(--dss-transition);
text-shadow: 0 0 30px rgba(212, 175, 55, 0.4);
}
body#post article h2#title::before,
body#post article h2#title::after {
display: block;
color: var(--dss-accent);
font-size: 1.8rem;
margin: 1rem 0;
opacity: 0.7;
transition: var(--dss-transition);
}
body#post article h2#title:hover {
color: var(--dss-accent);
letter-spacing: 0.25em;
text-shadow: 0 0 50px rgba(212, 175, 55, 0.8);
}
body#post article h2#title:hover::before,
body#post article h2#title:hover::after {
opacity: 1;
color: var(--dss-copper);
text-shadow: 0 0 15px rgba(212, 175, 55, 0.6);
}
.post-title {
font-family: 'Arial', sans-serif;
font-size: 2rem;
font-weight: 900;
color: var(--dss-white);
text-decoration: none;
line-height: 1.2;
transition: var(--dss-transition);
display: block;
margin-bottom: 1.2rem;
text-transform: uppercase;
letter-spacing: 0.1em;
position: relative;
text-shadow: 0 0 15px rgba(212, 175, 55, 0.3);
}
.post-title a::before {
position: absolute;
left: -25px;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 0;
background: linear-gradient(180deg, var(--dss-copper) 0%, var(--dss-accent) 100%);
transition: var(--dss-transition);
box-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}
.post-title a:hover {
color: var(--dss-accent);
text-shadow: 0 0 25px rgba(212, 175, 55, 0.7);
transform: translateX(12px);
}
.post-title a:hover::before {
height: 100%;
}
/* Content Areas - Industrial design */
body#post,
body#collection,
body#subpage {
color: var(--dss-silver);
max-width: 750px;
margin: 2.5rem auto;
padding: 3rem 2.5rem;
background: linear-gradient(135deg, rgba(26, 26, 26, 0.95) 0%, rgba(42, 42, 42, 0.5) 100%);
border: 2px solid var(--dss-copper);
border-left: 6px solid var(--dss-accent);
border-radius: 0;
position: relative;
box-shadow:
0 0 60px rgba(212, 175, 55, 0.15),
inset 0 0 40px rgba(139, 0, 0, 0.08);
transition: var(--dss-transition);
}
body#post::before,
body#collection::before,
body#subpage::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent 0%, var(--dss-accent) 50%, transparent 100%);
opacity: 0.8;
}
body#post::after,
body#collection::after,
body#subpage::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent 0%, var(--dss-copper) 50%, transparent 100%);
opacity: 0.6;
}
body#post:hover,
body#collection:hover,
body#subpage:hover {
box-shadow:
0 0 80px rgba(212, 175, 55, 0.25),
inset 0 0 60px rgba(139, 0, 0, 0.12);
border-left-color: var(--dss-white);
}
/* Paragraphs */
body#post p,
body#collection p,
body#subpage p {
margin-bottom: 1.8rem;
color: var(--dss-silver);
font-weight: 400;
line-height: 1.9;
}
/* Links - Industrial style */
body article p a:not(.hashtag),
body article ul a:not(.hashtag),
body article table a:not(.hashtag),
p a {
color: var(--dss-accent);
text-decoration: none;
border-bottom: 2px solid transparent;
transition: var(--dss-transition);
font-weight: 700;
position: relative;
padding-bottom: 3px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
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: 2px;
background: linear-gradient(90deg, var(--dss-copper) 0%, var(--dss-accent) 100%);
transition: var(--dss-transition);
box-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}
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(--dss-white);
text-shadow: 0 0 15px rgba(212, 175, 55, 0.7);
}
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(--dss-copper);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.2em;
text-transform: uppercase;
opacity: 0.8;
display: block;
margin-bottom: 1.5rem;
}
/* Blockquotes - Industrial with spiritual touch */
body#post blockquote,
body#collection blockquote,
body#subpage blockquote {
color: var(--dss-accent);
border-left: none;
padding: 2rem 2.5rem;
margin: 2.5rem 0;
font-style: italic;
background: rgba(139, 0, 0, 0.1);
border-top: 3px solid var(--dss-copper);
border-bottom: 3px solid var(--dss-accent);
position: relative;
box-shadow: inset 0 0 30px rgba(212, 175, 55, 0.08);
transition: var(--dss-transition);
font-weight: 600;
letter-spacing: 0.02em;
}
body#post blockquote::before,
body#collection blockquote::before,
body#subpage blockquote::before {
font-size: 2rem;
color: var(--dss-copper);
position: absolute;
top: -1rem;
left: 2rem;
opacity: 0.6;
font-family: Arial, sans-serif;
}
body#post blockquote::after,
body#collection blockquote::after,
body#subpage blockquote::after {
font-size: 2rem;
color: var(--dss-accent);
position: absolute;
bottom: -1rem;
right: 2rem;
opacity: 0.6;
font-family: Arial, sans-serif;
}
body#post blockquote:hover,
body#collection blockquote:hover,
body#subpage blockquote:hover {
background: rgba(139, 0, 0, 0.15);
box-shadow: inset 0 0 50px rgba(212, 175, 55, 0.12);
border-top-color: var(--dss-white);
border-bottom-color: var(--dss-white);
}
/* Code - Industrial styling */
body#post pre,
body#post code,
body#collection pre,
body#collection code,
body#subpage pre,
body#subpage code {
background: rgba(42, 42, 42, 0.6);
color: var(--dss-accent);
font-family: 'Courier New', monospace;
font-size: 13px;
border: 1px solid var(--dss-copper);
border-radius: 0;
font-weight: 600;
letter-spacing: 0.05em;
}
body#post pre,
body#collection pre,
body#subpage pre {
padding: 1.8rem;
border-left: 4px solid var(--dss-accent);
overflow-x: auto;
background: rgba(13, 13, 13, 0.8);
transition: var(--dss-transition);
position: relative;
}
body#post pre::before,
body#collection pre::before,
body#subpage pre::before {
display: block;
color: var(--dss-copper);
font-size: 10px;
letter-spacing: 0.2em;
margin-bottom: 1rem;
opacity: 0.7;
}
body#post pre:hover,
body#collection pre:hover,
body#subpage pre:hover {
background: rgba(42, 42, 42, 0.8);
box-shadow: 0 0 30px rgba(212, 175, 55, 0.15);
border-left-color: var(--dss-white);
}
/* Hashtags */
a.hashtag span:first-child {
color: var(--dss-copper);
}
a.hashtag span,
span.p-category {
color: var(--dss-accent);
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
}
/* Forms - Industrial */
input {
font-family: 'Arial', sans-serif;
border: 2px solid var(--dss-copper);
border-radius: 0;
padding: 0.8rem 1.2rem;
background: rgba(42, 42, 42, 0.5);
color: var(--dss-silver);
transition: var(--dss-transition);
letter-spacing: 0.05em;
font-weight: 600;
font-size: 14px;
text-transform: uppercase;
}
input::placeholder {
color: var(--dss-copper);
opacity: 0.6;
}
input:focus {
border-color: var(--dss-accent);
outline: none;
box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
background: rgba(42, 42, 42, 0.7);
}
input[type=email] {
border: 2px solid var(--dss-copper);
}
#subscribe-btn {
border: 2px solid var(--dss-accent);
background: rgba(212, 175, 55, 0.1);
color: var(--dss-white);
border-radius: 0;
padding: 0.8rem 1.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
transition: var(--dss-transition);
cursor: pointer;
font-size: 11px;
font-family: 'Arial', sans-serif;
position: relative;
overflow: hidden;
}
#subscribe-btn::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: rgba(212, 175, 55, 0.2);
transition: var(--dss-transition);
z-index: -1;
}
#subscribe-btn:hover {
background: rgba(212, 175, 55, 0.15);
border-color: var(--dss-white);
color: var(--dss-accent);
text-shadow: 0 0 10px rgba(212, 175, 55, 0.6);
box-shadow: 0 0 20px rgba(212, 175, 55, 0.3);
}
#subscribe-btn:hover::before {
left: 0;
}
#subscribe-btn:active {
transform: scale(0.98);
}
/* Horizontal Rules */
hr {
background: none;
height: 2px;
border: none;
margin: 3rem 0;
background: linear-gradient(90deg, transparent 0%, var(--dss-accent) 50%, transparent 100%);
border-radius: 0;
opacity: 0.7;
box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
}
/* Footer */
body footer a.home:link,
body footer a.home:visited {
color: var(--dss-accent);
text-decoration: none;
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.15em;
transition: var(--dss-transition);
font-weight: 700;
position: relative;
}
body footer a.home::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 0;
height: 2px;
background: linear-gradient(90deg, var(--dss-copper) 0%, var(--dss-accent) 100%);
transition: var(--dss-transition);
box-shadow: 0 0 8px rgba(212, 175, 55, 0.5);
}
body footer a.home:hover {
color: var(--dss-white);
text-shadow: 0 0 10px rgba(212, 175, 55, 0.6);
}
body footer a.home:hover::after {
width: 100%;
}
/* Industrial animations */
@keyframes industrialGlow {
0%, 100% {
text-shadow: 0 0 15px rgba(212, 175, 55, 0.4);
}
50% {
text-shadow: 0 0 35px rgba(212, 175, 55, 0.8);
}
}
@keyframes industrialPulse {
0%, 100% {
box-shadow:
0 0 60px rgba(212, 175, 55, 0.15),
inset 0 0 40px rgba(139, 0, 0, 0.08);
}
50% {
box-shadow:
0 0 80px rgba(212, 175, 55, 0.25),
inset 0 0 60px rgba(139, 0, 0, 0.12);
}
}
body#post article h2#title:hover {
animation: industrialGlow 2s ease-in-out infinite;
}
body#post:hover {
animation: industrialPulse 3s ease-in-out infinite;
}
/* Light mode override */
@media (prefers-color-scheme: light) {
:root {
--dss-black: #f5f5f5;
--dss-dark: #e8e8e8;
--dss-darker: #d0d0d0;
--dss-charcoal: #b0b0b0;
--dss-gray: #808080;
--dss-silver: #333333;
--dss-white: #0d0d0d;
--dss-metallic: #505050;
--dss-copper: #8b4513;
--dss-accent: #d4af37;
--dss-red: #cc3333;
--dss-deep-red: #8b0000;
}
body {
background-color: var(--dss-black);
}
body#post,
body#collection,
body#subpage {
background: linear-gradient(135deg, rgba(232, 232, 232, 0.95) 0%, rgba(208, 208, 208, 0.5) 100%);
}
body#post blockquote,
body#collection blockquote,
body#subpage blockquote {
background: rgba(204, 51, 51, 0.08);
}
input {
background: rgba(208, 208, 208, 0.5);
}
input:focus {
background: rgba(212, 175, 55, 0.15);
}
}
/* 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.4rem;
}
.post-title a:link,
.post-title a:visited {
font-size: 1.6rem;
}
body header nav a,
#post nav a:not(.home) {
padding: 0.6rem 1rem;
font-size: 10px;
}
}
@media (max-width: 480px) {
body {
font-size: 15px;
}
body#post article h2#title {
font-size: 1.8rem;
letter-spacing: 0.1em;
}
.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;
}
}