Files

288 lines
7.3 KiB
CSS
Raw Permalink 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.
/* ============================================================
18.000 ALEM — Canlı Uzay
Saf CSS/JS · harici kütüphane yok
============================================================ */
:root {
--bosluk: #02030a;
--bosluk-2: #060818;
--altin: #ffd27a;
--altin-sicak: #ff9a3c;
--ilahi: #a8d8ff;
--ilahi-mor: #b98cff;
--metin: #eaf0ff;
--metin-soluk: #8fa0c4;
--cam: rgba(10, 14, 30, 0.62);
--cam-kenar: rgba(168, 216, 255, 0.18);
--golge: 0 8px 32px rgba(0, 0, 0, 0.55);
--r: 14px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
width: 100%;
min-height: 100%;
background: var(--bosluk);
color: var(--metin);
font-family: "Segoe UI", "Inter", system-ui, -apple-system, sans-serif;
overflow-x: hidden;
overflow-y: auto; /* madde: body overflow hidden YASAK */
-webkit-font-smoothing: antialiased;
}
body {
/* Uzay boşluğunun kendisi: derinlik gradyanı */
background:
radial-gradient(ellipse 80% 60% at 50% 45%, #0b1030 0%, transparent 60%),
radial-gradient(ellipse 60% 50% at 15% 12%, #1a0f35 0%, transparent 55%),
radial-gradient(ellipse 60% 50% at 88% 85%, #041e2e 0%, transparent 55%),
linear-gradient(180deg, #02030a 0%, #05071a 50%, #02030a 100%);
background-attachment: fixed;
}
/* ---------------- CANVAS ---------------- */
#evren {
position: fixed;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
touch-action: none;
}
/* İlahi güç perdesi: canvas üstünde yumuşak ışık taşması */
#ilahi-perde {
position: fixed;
inset: 0;
z-index: 2;
pointer-events: none;
mix-blend-mode: screen;
opacity: 0.55;
background:
radial-gradient(circle at 50% 50%,
rgba(255, 210, 122, 0.16) 0%,
rgba(185, 140, 255, 0.07) 22%,
transparent 55%);
animation: ilahiNefes 9s ease-in-out infinite;
}
@keyframes ilahiNefes {
0%, 100% { opacity: 0.35; transform: scale(1); }
50% { opacity: 0.72; transform: scale(1.06); }
}
/* ---------------- HUD ---------------- */
.hud {
position: fixed;
left: 50%;
transform: translateX(-50%);
z-index: 10;
pointer-events: none;
text-align: center;
width: min(92vw, 900px);
}
.hud-ust { top: max(14px, 2vh); }
.baslik {
font-size: clamp(1.35rem, 4.5vw, 3rem);
font-weight: 800;
letter-spacing: clamp(2px, 0.9vw, 9px);
background: linear-gradient(180deg, #fff6e0 0%, var(--altin) 45%, var(--altin-sicak) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
filter: drop-shadow(0 0 22px rgba(255, 170, 60, 0.5));
animation: baslikParlaklik 6s ease-in-out infinite;
}
@keyframes baslikParlaklik {
0%, 100% { filter: drop-shadow(0 0 16px rgba(255, 170, 60, 0.35)); }
50% { filter: drop-shadow(0 0 34px rgba(255, 190, 90, 0.75)); }
}
.alt-yazi {
margin-top: 0.35rem;
font-size: clamp(0.62rem, 1.7vw, 0.85rem);
letter-spacing: clamp(1.5px, 0.5vw, 5px);
text-transform: uppercase;
color: var(--metin-soluk);
}
.hud-alt {
bottom: max(10px, 1.6vh);
display: flex;
justify-content: center;
align-items: center;
gap: 0.6rem;
font-size: clamp(0.62rem, 1.6vw, 0.8rem);
color: var(--metin-soluk);
letter-spacing: 1px;
}
.ayrac { opacity: 0.4; }
/* ---------------- PANEL ---------------- */
.panel {
position: fixed;
top: max(14px, 2vh);
right: max(12px, 2vw);
z-index: 20;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 10px;
}
.panel-ac {
width: 46px;
height: 46px;
min-width: 46px;
min-height: 46px; /* WCAG dokunma hedefi */
border-radius: 50%;
border: 1px solid var(--cam-kenar);
background: var(--cam);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
color: var(--altin);
font-size: 1.25rem;
cursor: pointer;
box-shadow: var(--golge);
transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.panel-ac:hover {
transform: rotate(90deg) scale(1.08);
border-color: rgba(255, 210, 122, 0.5);
box-shadow: 0 0 26px rgba(255, 180, 70, 0.35);
}
.panel-govde {
width: min(88vw, 290px);
padding: 16px 16px 14px;
border-radius: var(--r);
border: 1px solid var(--cam-kenar);
background: var(--cam);
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
box-shadow: var(--golge);
display: flex;
flex-direction: column;
gap: 15px;
transform-origin: top right;
transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
}
.panel-govde.gizli {
opacity: 0;
transform: scale(0.9) translateY(-8px);
visibility: hidden;
pointer-events: none;
}
.satir { display: flex; flex-direction: column; gap: 7px; }
.satir label {
font-size: 0.72rem;
letter-spacing: 1.4px;
text-transform: uppercase;
color: var(--metin-soluk);
display: flex;
justify-content: space-between;
align-items: center;
}
.deger {
font-variant-numeric: tabular-nums;
color: var(--altin);
font-size: 0.74rem;
letter-spacing: 0.5px;
}
/* Range input */
input[type="range"] {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 22px; /* dokunma alanı */
background: transparent;
cursor: pointer;
}
input[type="range"]::-webkit-slider-runnable-track {
height: 4px;
border-radius: 4px;
background: linear-gradient(90deg, rgba(255, 210, 122, 0.85), rgba(168, 216, 255, 0.35));
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 17px;
height: 17px;
margin-top: -6.5px;
border-radius: 50%;
background: radial-gradient(circle at 35% 30%, #fff8e6, var(--altin) 55%, var(--altin-sicak));
border: 1px solid rgba(255, 255, 255, 0.65);
box-shadow: 0 0 12px rgba(255, 180, 70, 0.75);
}
input[type="range"]::-moz-range-track {
height: 4px;
border-radius: 4px;
background: linear-gradient(90deg, rgba(255, 210, 122, 0.85), rgba(168, 216, 255, 0.35));
}
input[type="range"]::-moz-range-thumb {
width: 17px;
height: 17px;
border: 1px solid rgba(255, 255, 255, 0.65);
border-radius: 50%;
background: radial-gradient(circle at 35% 30%, #fff8e6, var(--altin) 55%, var(--altin-sicak));
box-shadow: 0 0 12px rgba(255, 180, 70, 0.75);
}
/* Buton grubu */
.satir-buton {
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
}
.mini-btn {
flex: 1 1 auto;
min-height: 44px; /* WCAG dokunma hedefi */
min-width: 82px;
padding: 0 12px;
border-radius: 10px;
border: 1px solid var(--cam-kenar);
background: rgba(255, 255, 255, 0.04);
color: var(--metin-soluk);
font-size: 0.72rem;
letter-spacing: 0.8px;
text-transform: uppercase;
font-family: inherit;
cursor: pointer;
transition: all 0.22s;
}
.mini-btn:hover { border-color: rgba(168, 216, 255, 0.45); color: var(--metin); }
.mini-btn.aktif {
background: linear-gradient(135deg, rgba(255, 210, 122, 0.22), rgba(255, 154, 60, 0.12));
border-color: rgba(255, 210, 122, 0.65);
color: #fff4dd;
box-shadow: 0 0 16px rgba(255, 180, 70, 0.22) inset;
}
/* ---------------- MOBİL ---------------- */
@media (max-width: 640px) {
.hud-ust { top: 10px; }
.hud-alt { bottom: 6px; }
.panel { top: 10px; right: 10px; gap: 8px; }
.panel-govde { padding: 13px 13px 12px; gap: 13px; }
.satir-buton .mini-btn { flex: 1 1 44%; font-size: 0.66rem; }
}
@media (max-width: 380px) {
.satir-buton .mini-btn { flex: 1 1 100%; }
}
/* Hareket azaltma tercihi */
@media (prefers-reduced-motion: reduce) {
#ilahi-perde, .baslik { animation: none; }
}