288 lines
7.3 KiB
CSS
288 lines
7.3 KiB
CSS
/* ============================================================
|
||
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; }
|
||
}
|