raycaster-3d/public/style.css

154 lines
3.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.

/* =====================================================================
* style.css — retro arayüz (RAYCASTER-3D)
* ===================================================================== */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #0b0c10;
--panel: #11141b;
--line: #2a303c;
--accent: #e7ff3c; /* retro sarı-yeşil */
--cyan: #2fd4ff;
}
html, body {
height: 100%;
}
body {
background:
radial-gradient(ellipse at 50% 0%, #151927 0%, var(--bg) 70%);
color: #cfd6e4;
font-family: 'Courier New', Courier, monospace;
display: flex;
flex-direction: column;
user-select: none;
}
/* ---------- Üst bar ---------- */
.topbar {
display: flex;
align-items: baseline;
gap: 18px;
padding: 12px 18px;
border-bottom: 1px solid var(--line);
background: linear-gradient(180deg, #151a24, #10131a);
flex-wrap: wrap;
}
.topbar .logo {
font-weight: 700;
font-size: 17px;
letter-spacing: 2px;
color: var(--accent);
text-shadow: 0 0 8px rgba(231,255,60,.35);
}
.topbar .logo .dim { color: #7f8aa0; font-weight: 400; }
.topbar .tag, .topbar .hint {
font-size: 11px;
color: #6f7a90;
}
.topbar .hint { margin-left: auto; color: #9aa6bc; }
/* ---------- Sahne ------------- */
.stage { flex: 1; display: flex; flex-direction: column; padding: 14px 18px; }
.viewport {
position: relative;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
}
.viewport canvas#game {
border: 3px solid #262c38;
box-shadow: 0 0 0 1px #0c0f14, 0 12px 40px rgba(0,0,0,.7);
background: #000;
image-rendering: pixelated;
image-rendering: crisp-edges;
max-width: 100%;
}
/* ---------- Çapraz nişangâh (retro hedef) ---------- */
.crosshair {
position: absolute;
left: 50%; top: 50%;
width: 0; height: 0;
pointer-events: none;
z-index: 5;
}
.crosshair .y {
position: absolute;
width: 22px; height: 2px;
margin: -1px -11px;
background: rgba(255,255,255,.9);
box-shadow: 0 0 3px #000;
}
.crosshair .x {
position: absolute;
width: 2px; height: 22px;
margin: -11px -1px;
background: rgba(255,255,255,.9);
box-shadow: 0 0 3px #000;
}
/* ---------- Minimap / radar ---------- */
.minimap-wrap {
position: absolute;
right: 10px;
top: 10px;
padding: 4px;
background: rgba(8,11,16,.88);
border: 1px solid #39424f;
box-shadow: 0 4px 16px rgba(0,0,0,.6);
z-index: 6;
}
.minimap-wrap canvas {
display: block;
image-rendering: pixelated;
image-rendering: crisp-edges;
}
.mm-label {
position: absolute;
bottom: 6px;
right: 8px;
font-size: 9px;
letter-spacing: 2px;
color: #ffe14d;
text-shadow: 0 0 4px #000;
}
/* ---------- HUD barı ---------- */
.hudbar {
display: flex;
align-items: stretch;
gap: 0;
border-top: 2px solid #2a303c;
background: linear-gradient(180deg, #171b25, #0d0f15);
padding: 10px 14px 12px;
}
.hud-block {
display: flex;
flex-direction: column;
min-width: 84px;
border-right: 1px solid #262c38;
padding: 0 16px 0 4px;
}
.hud-block label {
font-size: 9px;
letter-spacing: 2px;
color: #6f7a90;
}
.hud-block strong {
font-size: 20px;
letter-spacing: 1px;
color: var(--accent);
text-shadow: 0 0 6px rgba(231,255,60,.28);
}
.hud-fill { flex: 1; }
.hud-copy {
align-self: flex-end;
font-size: 10px;
color: #49536a;
letter-spacing: 1px;
}