/* === CYBERPUNK THEME === */ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Orbitron:wght@400;700;900&display=swap'); :root { --cyber-bg: #0a0a0f; --cyber-surface: #12121a; --cyber-cyan: #00f0ff; --cyber-magenta: #ff00aa; --cyber-purple: #a855f7; --cyber-yellow: #facc15; --cyber-grid: rgba(0, 240, 255, 0.03); --glow-cyan: 0 0 20px rgba(0, 240, 255, 0.5), 0 0 40px rgba(0, 240, 255, 0.2); --glow-magenta: 0 0 20px rgba(255, 0, 170, 0.5), 0 0 40px rgba(255, 0, 170, 0.2); } * { box-sizing: border-box; } body { margin: 0; padding: 0; background: var(--cyber-bg); background-image: linear-gradient(var(--cyber-grid) 1px, transparent 1px), linear-gradient(90deg, var(--cyber-grid) 1px, transparent 1px); background-size: 50px 50px; min-height: 100vh; font-family: 'JetBrains Mono', monospace; color: #e0e0e0; } /* === MAIN CONTENT === */ .main-content { padding: 20px 30px; min-height: 100vh; max-width: 1400px; margin: 0 auto; } #container { width: 100%; } /* === HEADER === */ .main-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid rgba(0, 240, 255, 0.3); } h1 { font-family: 'Orbitron', sans-serif; font-size: 24px; font-weight: 700; color: var(--cyber-cyan); text-shadow: var(--glow-cyan); letter-spacing: 1px; margin: 0; } h3 { font-family: 'Orbitron', sans-serif; font-size: 18px; font-weight: 700; color: var(--cyber-cyan); text-shadow: var(--glow-cyan); letter-spacing: 1px; margin: 0 0 15px 0; } .version-badge { font-size: 13px; font-family: 'JetBrains Mono', monospace; color: var(--cyber-magenta); background: rgba(255, 0, 170, 0.15); padding: 6px 12px; border: 1px solid rgba(255, 0, 170, 0.4); text-decoration: none; text-shadow: 0 0 10px rgba(255, 0, 170, 0.5); transition: all 0.2s ease; flex-shrink: 0; } .version-badge:hover { color: var(--cyber-yellow); border-color: var(--cyber-yellow); background: rgba(250, 204, 21, 0.15); text-shadow: 0 0 15px rgba(250, 204, 21, 0.7); } .header-links { display: flex; gap: 12px; align-items: center; } .lib-link { font-size: 13px; font-family: 'JetBrains Mono', monospace; color: var(--cyber-cyan); background: rgba(0, 240, 255, 0.1); padding: 6px 12px; border: 1px solid rgba(0, 240, 255, 0.4); text-decoration: none; text-shadow: 0 0 10px rgba(0, 240, 255, 0.5); transition: all 0.2s ease; } .lib-link:hover { color: var(--cyber-magenta); border-color: var(--cyber-magenta); background: rgba(255, 0, 170, 0.15); text-shadow: 0 0 15px rgba(255, 0, 170, 0.7); } /* === NAVIGATION LINKS === */ .nav-links { list-style: none; padding: 0; margin: 0 0 25px 0; display: flex; flex-wrap: wrap; gap: 8px; } .nav-links li { background: linear-gradient(135deg, rgba(18, 18, 26, 0.9) 0%, rgba(10, 10, 15, 0.95) 100%); border: 1px solid rgba(0, 240, 255, 0.3); border-left: 3px solid var(--cyber-cyan); padding: 8px 14px; font-size: 13px; transition: all 0.2s ease; } .nav-links li:hover { border-color: var(--cyber-magenta); border-left-color: var(--cyber-magenta); box-shadow: var(--glow-magenta); } .nav-links li a { color: #c0c0c0; text-decoration: none; transition: color 0.2s ease; } .nav-links li a:hover { color: var(--cyber-magenta); } /* === PARAGRAPHS === */ p { color: #a0a0a0; line-height: 1.6; margin-bottom: 15px; padding-left: 12px; border-left: 2px solid rgba(168, 85, 247, 0.4); } p code { background: rgba(168, 85, 247, 0.2); border: 1px solid var(--cyber-purple); padding: 2px 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--cyber-purple); } p a { color: var(--cyber-cyan); text-decoration: none; transition: color 0.2s ease; } p a:hover { color: var(--cyber-magenta); } /* === DRAGGABLE BOXES === */ .box { background: linear-gradient(145deg, rgba(18, 18, 26, 0.9) 0%, rgba(30, 30, 45, 0.9) 100%); border: 1px solid var(--cyber-cyan); width: 180px; height: 180px; margin: 10px; padding: 15px; float: left; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; font-size: 13px; color: #c0c0c0; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 4px 20px rgba(0, 0, 0, 0.5); transition: border-color 0.2s ease, box-shadow 0.2s ease; overflow: hidden; } .box:hover { border-color: var(--cyber-magenta); box-shadow: var(--glow-magenta), inset 0 1px 0 rgba(255, 255, 255, 0.05); } /* === CURSORS === */ .react-draggable, .cursor { cursor: move; } .no-cursor { cursor: auto; } .cursor-y { cursor: ns-resize; } .cursor-x { cursor: ew-resize; } /* === HANDLE === */ .react-draggable strong { background: linear-gradient(135deg, rgba(0, 240, 255, 0.2) 0%, rgba(0, 240, 255, 0.1) 100%); border: 1px solid var(--cyber-cyan); display: block; margin-bottom: 10px; padding: 6px 10px; text-align: center; font-weight: 500; color: var(--cyber-cyan); text-shadow: 0 0 8px rgba(0, 240, 255, 0.4); transition: all 0.2s ease; } .react-draggable strong:hover { background: linear-gradient(135deg, rgba(255, 0, 170, 0.2) 0%, rgba(255, 0, 170, 0.1) 100%); border-color: var(--cyber-magenta); color: var(--cyber-magenta); text-shadow: 0 0 10px rgba(255, 0, 170, 0.5); } /* === SPECIAL STATES === */ .no-pointer-events { pointer-events: none; } .hovered { background: linear-gradient(145deg, rgba(255, 0, 170, 0.2) 0%, rgba(30, 30, 45, 0.9) 100%) !important; border-color: var(--cyber-magenta) !important; } .drop-target { border-style: dashed; } /* === REM POSITION FIX === */ .rem-position-fix { position: static !important; } /* === BOUNDED CONTAINER === */ .bounded-container { height: 500px; width: 500px; position: relative; overflow: auto; padding: 0; background: var(--cyber-surface); border: 1px solid rgba(0, 240, 255, 0.2); background-image: linear-gradient(rgba(0, 240, 255, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 240, 255, 0.05) 1px, transparent 1px); background-size: 20px 20px; float: left; margin: 10px; } .bounded-inner { height: 1000px; width: 1000px; padding: 10px; } /* === ACTIVE DRAGS COUNTER === */ .active-drags { font-family: 'Orbitron', sans-serif; color: var(--cyber-yellow); background: rgba(250, 204, 21, 0.1); border: 1px solid rgba(250, 204, 21, 0.3); padding: 8px 15px; display: inline-block; margin-bottom: 20px; font-size: 12px; } /* === SCROLLBAR === */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--cyber-bg); } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--cyber-cyan), var(--cyber-magenta)); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--cyber-magenta), var(--cyber-cyan)); } /* === PREVENT TEXT SELECTION DURING DRAG === */ body:has(.react-draggable-dragging) { user-select: none; -webkit-user-select: none; } /* === RESPONSIVE === */ @media (max-width: 768px) { .main-content { padding: 15px; } .main-header { flex-direction: column; gap: 10px; align-items: flex-start; } h1 { font-size: 18px; } .box { width: 150px; height: 150px; } }