Files
wow-registrace/public/assets/style.css
T
vojta 2b9a673912 Initial commit: AzerothCore registration site
PHP registration page for AzerothCore with SRP6 salt/verifier generation,
Cloudflare Turnstile + honeypot + rate limiting anti-spam, and a WoW-themed
landing page with client setup instructions.
2026-08-05 11:41:24 +02:00

434 lines
10 KiB
CSS

:root {
color-scheme: dark;
--gold-bright: #f0d78c;
--gold: #c9a227;
--gold-dim: #7a5c14;
--ink: #0a0805;
--panel: #14100a;
--panel-light: #1d1710;
--parchment: #e8dcc0;
--parchment-dim: #a99a7c;
--blood: #b23a2f;
--moss: #6b8f3f;
}
* {
box-sizing: border-box;
}
html, body {
height: 100%;
}
body {
margin: 0;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 32px 16px;
font-family: "EB Garamond", Georgia, "Times New Roman", serif;
color: var(--parchment);
background: url("background.jpg") center center / cover no-repeat fixed, #05040a;
position: relative;
overflow-x: hidden;
}
/* dark overlay + vignette over the background artwork, so the gold/parchment
UI stays readable regardless of how bright the underlying image is */
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
background:
radial-gradient(ellipse at 50% 45%, rgba(5, 4, 8, 0.35) 0%, rgba(4, 3, 6, 0.72) 60%, rgba(3, 2, 4, 0.9) 100%),
repeating-linear-gradient(0deg, rgba(255,255,255,0.012) 0px, rgba(255,255,255,0.012) 1px, transparent 1px, transparent 3px);
z-index: 0;
}
.frame {
position: relative;
z-index: 1;
width: 100%;
max-width: 460px;
padding: 3px;
background: linear-gradient(135deg, var(--gold-dim), var(--gold-bright) 15%, var(--gold-dim) 30%, #4a3a10 50%, var(--gold-bright) 70%, var(--gold-dim) 85%, var(--gold-bright));
border-radius: 6px;
box-shadow:
0 0 0 1px #000,
0 20px 60px rgba(0, 0, 0, 0.7),
0 0 40px rgba(201, 162, 39, 0.08);
}
.frame-wide {
max-width: 640px;
}
.card {
position: relative;
background:
linear-gradient(180deg, var(--panel-light) 0%, var(--panel) 12%, var(--panel) 88%, var(--panel-light) 100%);
border: 1px solid #000;
border-radius: 4px;
padding: 40px 36px 34px;
box-shadow:
inset 0 0 0 1px rgba(201, 162, 39, 0.35),
inset 0 2px 12px rgba(0, 0, 0, 0.6);
}
/* ornamental corner brackets, drawn in CSS to echo carved-stone UI frames */
.card::before,
.card::after,
.frame::before,
.frame::after {
content: "";
position: absolute;
width: 22px;
height: 22px;
border: 2px solid var(--gold-bright);
z-index: 2;
pointer-events: none;
opacity: 0.9;
}
.frame::before { top: -3px; left: -3px; border-right: none; border-bottom: none; }
.frame::after { top: -3px; right: -3px; border-left: none; border-bottom: none; }
.card::before { bottom: -3px; left: -3px; border-right: none; border-top: none; }
.card::after { bottom: -3px; right: -3px; border-left: none; border-top: none; }
.crest {
width: 54px;
height: 54px;
margin: 0 auto 10px;
background: radial-gradient(circle at 35% 30%, var(--gold-bright), var(--gold) 55%, var(--gold-dim) 100%);
clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 50% 100%, 0% 60%, 10% 20%);
box-shadow: 0 0 18px rgba(201, 162, 39, 0.45), inset 0 0 0 2px rgba(0,0,0,0.4);
}
h1 {
margin: 0 0 6px;
text-align: center;
font-family: "Cinzel Decorative", "Cinzel", Georgia, serif;
font-weight: 700;
font-size: 1.5rem;
line-height: 1.3;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--gold-bright);
background: linear-gradient(180deg, #fff3cf 0%, var(--gold-bright) 30%, var(--gold) 65%, #8a6a1c 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow: none;
filter: drop-shadow(0 2px 1px rgba(0, 0, 0, 0.9));
}
h1 .realm-name {
font-size: 1.05rem;
letter-spacing: 0.12em;
}
.divider {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin: 14px 0 26px;
color: var(--gold-dim);
}
.divider::before,
.divider::after {
content: "";
height: 1px;
flex: 1;
background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
}
.divider span {
color: var(--gold);
font-size: 0.95rem;
transform: rotate(45deg);
display: inline-block;
}
label {
display: block;
margin: 18px 0 6px;
font-family: "Cinzel", Georgia, serif;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--gold);
}
input[type="text"],
input[type="email"],
input[type="password"] {
width: 100%;
padding: 11px 13px;
background: #0d0a06;
border: 1px solid #3a2f1a;
border-radius: 2px;
color: var(--parchment);
font-family: "EB Garamond", Georgia, serif;
font-size: 1.05rem;
box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
input::placeholder {
color: #5a5040;
}
input:focus {
outline: none;
border-color: var(--gold);
box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6), 0 0 0 2px rgba(201, 162, 39, 0.25), 0 0 14px rgba(201, 162, 39, 0.25);
}
.hint {
margin: 5px 2px 0;
font-size: 0.78rem;
font-style: italic;
color: var(--parchment-dim);
}
button[type="submit"] {
position: relative;
display: block;
width: 100%;
margin-top: 30px;
padding: 13px;
background: linear-gradient(180deg, #3a2f18 0%, #241a0d 55%, #1a1209 100%);
border: 1px solid var(--gold-dim);
border-radius: 2px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
inset 0 0 0 1px rgba(0, 0, 0, 0.6),
0 4px 10px rgba(0, 0, 0, 0.5);
cursor: pointer;
transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}
button[type="submit"] span {
font-family: "Cinzel", Georgia, serif;
font-weight: 600;
font-size: 0.9rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--gold-bright);
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.9);
}
button[type="submit"]:hover {
border-color: var(--gold-bright);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 0 0 1px rgba(0, 0, 0, 0.6),
0 0 18px rgba(201, 162, 39, 0.35);
}
button[type="submit"]:active {
transform: translateY(1px);
}
.cf-turnstile {
margin-top: 22px;
display: flex;
justify-content: center;
}
.alert {
padding: 12px 16px;
border-radius: 2px;
margin-bottom: 20px;
font-size: 0.92rem;
font-style: italic;
text-align: center;
}
.alert-success {
background: linear-gradient(180deg, rgba(107, 143, 63, 0.18), rgba(107, 143, 63, 0.06));
border: 1px solid rgba(150, 190, 90, 0.5);
box-shadow: inset 0 0 12px rgba(107, 143, 63, 0.15);
color: #c9e8a0;
}
.alert-error {
background: linear-gradient(180deg, rgba(178, 58, 47, 0.2), rgba(178, 58, 47, 0.07));
border: 1px solid rgba(210, 90, 75, 0.55);
box-shadow: inset 0 0 12px rgba(178, 58, 47, 0.18);
color: #f0b2a8;
}
.alert-error ul {
margin: 0;
padding: 0;
list-style: none;
}
.alert-error li::before {
content: "☠ ";
}
/* Honeypot: skryté vizuálně, ale přítomné v DOM pro boty */
.hp-field {
position: absolute;
left: -9999px;
top: -9999px;
}
.back-link {
display: inline-block;
margin-bottom: 18px;
font-family: "Cinzel", Georgia, serif;
font-size: 0.72rem;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--parchment-dim);
text-decoration: none;
transition: color 0.15s ease;
}
.back-link:hover {
color: var(--gold-bright);
}
/* --- Landing page: steps list --- */
.steps-section h2 {
margin: 0 0 22px;
text-align: center;
font-family: "Cinzel", Georgia, serif;
font-size: 1rem;
font-weight: 600;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--gold);
}
.steps {
list-style: none;
margin: 0;
padding: 0;
counter-reset: step;
display: flex;
flex-direction: column;
gap: 26px;
}
.steps li {
counter-increment: step;
display: flex;
gap: 18px;
align-items: flex-start;
}
.steps li::before {
content: counter(step);
flex: none;
width: 34px;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
font-family: "Cinzel", Georgia, serif;
font-weight: 700;
font-size: 0.95rem;
color: var(--ink);
background: radial-gradient(circle at 35% 30%, var(--gold-bright), var(--gold) 60%, var(--gold-dim) 100%);
clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 50% 100%, 0% 60%, 10% 20%);
box-shadow: 0 0 10px rgba(201, 162, 39, 0.35);
}
.step-body {
flex: 1;
min-width: 0;
padding-top: 4px;
}
.step-body h3 {
margin: 0 0 6px;
font-family: "Cinzel", Georgia, serif;
font-size: 0.98rem;
font-weight: 600;
letter-spacing: 0.03em;
color: var(--gold-bright);
}
.step-body p {
margin: 0 0 8px;
font-size: 0.95rem;
line-height: 1.5;
color: var(--parchment);
}
.step-body .hint {
margin: 6px 0 0;
}
.path,
.realmlist-code {
display: block;
width: 100%;
margin: 4px 0 10px;
padding: 9px 12px;
background: #0d0a06;
border: 1px solid #3a2f1a;
border-radius: 2px;
box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
font-family: "Courier New", Consolas, monospace;
font-size: 0.85rem;
word-break: break-all;
color: var(--parchment-dim);
}
.realmlist-code {
color: var(--gold-bright);
}
.btn-link {
display: inline-block;
margin-top: 4px;
padding: 9px 20px;
background: linear-gradient(180deg, #3a2f18 0%, #241a0d 55%, #1a1209 100%);
border: 1px solid var(--gold-dim);
border-radius: 2px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
inset 0 0 0 1px rgba(0, 0, 0, 0.6);
font-family: "Cinzel", Georgia, serif;
font-weight: 600;
font-size: 0.8rem;
letter-spacing: 0.08em;
text-transform: uppercase;
text-decoration: none;
color: var(--gold-bright);
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.9);
transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.btn-link:hover {
border-color: var(--gold-bright);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.1),
inset 0 0 0 1px rgba(0, 0, 0, 0.6),
0 0 18px rgba(201, 162, 39, 0.35);
}
.btn-link.btn-primary {
background: linear-gradient(180deg, #4a3a10 0%, #2c2109 55%, #1a1209 100%);
border-color: var(--gold);
}
@media (max-width: 480px) {
.card {
padding: 32px 22px 26px;
}
h1 {
font-size: 1.25rem;
}
.steps li {
gap: 12px;
}
}